博客 | NGINX

将 F5 和 NGINX WAF 策略引入 Controller App Security

NGINX-F5-horiz-black-type-RGB 的一部分
Daphne Won 缩略图
达芙妮·温
2021 年 9 月 15 日发布

自 NGINX 两年前加入 F5 以来,我们为客户带来的最显著好处之一就是将 F5 业界领先的安全专业知识融入到 NGINX 产品中。 F5 NGINX App Protect WAFF5 NGINX Controller App Security利用与F5 Advanced WAF(API 安全 - 新一代 WAF)F5 Silverline WAF和其他 F5 安全解决方案相同的 Web应用防火墙 (WAF) 技术。 虽然每种产品都有不同的形式来支持特定的环境、部署场景和管理用例,但客户可以确信相同的已知和值得信赖的安全实施引擎正在保护他们免受最先进的网络攻击。

NGINX 和 F5 安全解决方案利用 F5 业界领先的 WAF 技术

共享 WAF 技术还意味着 F5 客户在从使用 F5 Advanced WAF(API 安全 - 新一代 WAF)等产品的传统环境迁移到容器化和云环境(NGINX App Protect WAF 更适合)时,可以保留其安全团队已经批准的标准化策略。 WAF 策略在各个产品之间的可移植性使 F5 和 NGINX 客户能够快速轻松地确保强大、一致且合规的安全态势。

当我们为application交付模块引入NGINX 控制器应用安全性时,它带有一项默认策略,重点是防御OWASP Top 10和其他威胁,并将误报率降至最低。 借助application交付模块 3.20 版的 Controller App Security,您现在可以导入自定义的 NGINX App Protect WAF 策略并将其分发到所有托管部署中。 我们将其称为“自带 NGINX 应用保护 WAF 策略” (BYO 应用保护策略)。

要了解更多信息,请继续阅读并查看此视频概述:

在整个应用程序现代化过程中保持一致的 WAF 策略

我们许多拥有传统应用交付环境的客户开始使用 F5 Advanced WAF(API 安全 - 新一代 WAF)或 BIG-IP ASM。 随着他们在应用现代化过程中不断进步,他们可以利用 NGINX App Protect 和 NGINX Controller App Security 来部署需要采用符合 DevOps 的方法来部署 WAF 服务的新应用。

NGINX App Protect WAF 本身可保护现代应用程序的安全,其功能包括防御 OWASP Top Ten 和其他高级威胁,以及简化的声明性策略定义。 采用 Controller App Security 来管理 NGINX App Protect WAF 实例还有其他好处:

  • 安全团队可以获得更好的开箱即用的可视性,并可以为开发和 DevOps 团队提供批准的 WAF 策略以及 NGINX App Protect WAF 实例的自助服务配置和管理。 更好的是,单个控制器实例可以支持多个团队。
  • Dev 和 DevOps 团队可以使用他们已经熟悉的控制器 API 和 GUI 将批准的 WAF 策略应用到他们的应用程序,而无需深入了解策略或在数据平面上执行策略的 NGINX App Protect WAF 实例的配置。
拓扑图显示 NGINX Controller App Security Add-On 在管理平面上运行,而 NGINX App Protect WAF 在数据平面上运行
Controller App Security 使用 NGINX App Protect WAF 在数据平面上实施策略

为控制器应用安全准备 F5 WAF 策略

为了帮助您在应用现代化过程中在所有 F5 和 NGINX WAF 实施中保持一致的策略,我们提供了NGINX App Protect 策略转换器。 它将 F5 Advanced WAF(API 安全 - 新一代 WAF)策略(XML 格式)转换为 NGINX App Protect WAF 策略(JSON 格式)。 然后,您可以按照下一节中的说明将转换后的策略传递给 Controller App Security。

以下是将 F5 Advanced WAF(API 安全 - 新一代 WAF)策略转换为 NGINX App Protect WAF 策略的步骤,并附有说明链接。

该图显示了将 F5 Advanced WAF(API 安全 - 新一代 WAF)策略转换为 NGINX App Protect 策略的步骤
将 F5 Advanced WAF(API 安全 - 新一代 WAF)策略转换为 NGINX App Protect 策略
  1. 下载并安装NGINX App Protect Policy Converter 的 Docker 映像。
  2. 导出F5Advanced WAF(API 安全 - 新一代 WAF)策略(说明参考“BIG-IP ASM 安全策略”,但也适用于 F5Advanced WAF(API 安全 - 新一代 WAF)策略)。
  3. 将策略转换为 JSON 格式的 NGINX App Protect WAF 策略。

将您的 NGINX 应用保护 WAF 策略纳入控制器应用安全

借助application交付模块 3.20 版的 Controller App Security,您可以使用BYO App Protect Policy流程引入 NGINX App Protect WAF 策略并将其分发到所有托管的 NGINX App Protect 实例中。 NGINX App Protect WAF 策略可以是本机策略,也可以是如上一节所述从 F5 Advanced WAF(API 安全 - 新一代 WAF)转换而来的策略。

BYO App Protect Policy 流程采用称为“安全策略”的控制器对象,它是安全相关策略(包括自定义 NGINX App Protect WAF 策略)的逻辑容器。 然后,您引用应用程序中的安全策略将相关的 WAF 策略应用于该应用程序。

有关 BYO App Protect Policy 流程的更多信息,请参阅产品文档

请参阅以下部分中有关您选择的界面的说明:

完成这些步骤后,使用 BYO App Protect Policy 流程引入 Controller App Security 的 WAF 策略的更新将自动传播到引用相关安全策略的所有应用程序组件。

使用application交付模块 3.20 版本的 Controller App Security,仅支持在单个文件中定义的 WAF 策略。 计划在未来版本中支持使用外部引用的 WAF 策略(由多个文件表示的 WAF 策略)。

使用 API

执行以下步骤,使用 Controller API 将 WAF 策略引入 Controller App Security:

  1. 将 NGINX App Protect WAF 策略通过PUT请求传递到安全策略端点:

    https://{{CONTROLLER_FQDN}}/api/v1/security/policies/{{policy}}
    

    其 JSON 对象类似如下:

    {
    “元数据”:{
    “名称”:“lowriskapppolicy”,
    “显示名称”: “低风险应用保护政策”,
    “说明”: “针对内部低风险应用的企业 WAF 政策”,
    },
    “desiredState”: {
    “content”: {
    “policy”: {
    “name”: “lowriskapppolicy”,
    “template”: {
    “name”: “POLICY_TEMPLATE_NGINX_BASE”
    },
    “applicationLanguage”: “utf-8”,
    “enforcementMode”: “blocking”,
    “signatures”: [
    {
    “signatureId”: 123458888,
    “已启用”: false
    },
    {
    “签名 ID”: 304500123,
    “已启用”: false
    }
    ],
    }
    }
    }
    }
    
  2. 创建一个引用 WAF 策略的安全策略,并通过向安全策略端点发送PUT请求:

    https://{{CONTROLLER_FQDN}}/api/v1/security/strategies/{{strategy}}
    

    其 JSON 对象类似如下:

    {
    “元数据”:{
    “名称”:“低风险策略”,
    “显示名称”: “低风险应用策略”,
    “描述”: “内部低风险应用的企业策略”,
    },
    “desiredState”: {
    “content”: {
    “securityPolicyRef”: “/security/policies/lowriskapppolicy”
    }
    }
    }
    
  3. 将 WAF 策略应用于应用程序组件(例如应用程序的应用程序 URI),以使用PUTPOST请求引用安全策略到应用程序组件端点:

    https://{{Controller_FQDN}}/api/v1/services/environments/{{env}}/apps/{{app}}/components/{{component}}
    

    其 JSON 对象类似如下:

    {
    “metadata”:{
    “name”:“main”
    },
    “desiredState”:{
    “ingress”:{
    “uris”:{
    “/”:{
    } 
    },
    . . . 
    
    “security”:{
    “strategyRef”:{
    “ref”:“/security/strategies/lowriskstrategy”
    },
    “waf”:{
    “isEnabled”:true
    }
    },
    . . . 
    }
    

使用 GUI

执行以下步骤,使用控制器 GUI 将 WAF 策略引入并应用到 Controller App Security 中:

  1. 在创建安全策略安全策略

  2. 如果 NGINX App Protect WAF 策略已在控制器中可用,请从策略字段的下拉菜单中选择它。

    如果尚未列出,请单击“+ 新建” 。 在出现的“创建安全策略”弹出窗口中,上传包含 JSON 格式的 NGINX App Protect WAF 策略的文件。

  3. 在您要应用 WAF 策略的应用程序的编辑应用程序组件页面上,选择关联的安全策略。

在 NGINX 控制器内共享策略

使用 BYO App Protect Policy 流程将策略引入 Controller App Security 后,该策略可以在 Controller 中定义的所有应用程序之间共享,即使它们由不同的团队管理。 让多个控制器应用程序组件(或应用程序的子组件,如 URI)引用相同的策略有助于标准化许多应用程序和 API 的安全态势。

该图显示了多个应用程序如何引用相同的 BYO App Protect WAF 策略
多个应用可以引用同一政策

控制器集中管理和版本控制 WAF 策略。 当您发布新版本的政策时,它会在引用它的所有控制器应用组件中更新 - 大大简化了操作。

概括

F5 WAF 技术平台支持相同 WAF 保护策略的可移植性和可重复使用性,以实现跨应用程序的标准化安全态势。 这种设计理念还有助于支持受 F5 和 NGINX WAF 解决方案保护的所有用例,使应用程序安全的管理和部署更快、更容易、更可重复。

借助 Controller App Security 的 BYO App Protect Policy 功能(在 Controller ADM 3.20 中可用),您现在可以使用自定义的 NGINX App Protect WAF 策略,从而更轻松地使用通过 NGINX App Protect WAF 或 F5 Advanced WAF(API 安全 - 新一代 WAF)构建的强大、一致且经过验证的策略来保护新应用。 最重要的是,通过 BYO App Protect Policy 和 Controller App Security,单一经过审查的策略可应用于许多应用程序,从而大大简化和优化策略变更流程。

NGINX Controller 继续支持安全团队以自助服务模式为其应用团队提供安全性,从而提高组织的生产力和安全性。

想要亲自尝试 NGINX Controller App Security 吗? 立即开始30 天免费试用 NGINX Controller联系我们讨论您的用例


“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”