自NGINX两年前加入F5以来,客户获得的一项重要收益,是F5深厚的行业安全专业能力已融入NGINX产品。F5 NGINX App Protect WAF和F5 NGINX Controller App Security采用与F5 Advanced WAF、F5 Silverline WAF及其他F5安全解决方案相同的Web应用防火墙(WAF)技术。每款产品采用不同的产品形态,以支持特定环境、部署场景和管理用例,但客户可以确信,同一款久经验证且值得信赖的安全策略执行引擎正在帮助抵御复杂的Web攻击。

共享的WAF技术还意味着,F5客户从使用F5 Advanced WAF等产品的传统环境迁移到更适合使用NGINX App Protect WAF的容器化和云环境时,可以保留已获安全团队批准的标准化策略。WAF策略可跨产品移植,让F5和NGINX客户能够快速、轻松地确保安全态势稳健、一致且合规。
我们为Application Delivery Module推出NGINX Controller App Security时,随附了一项默认策略,重点防范OWASP十大Web应用安全风险及其他威胁,同时尽可能减少误报。借助Application Delivery Module 3.20版的Controller App Security,现在可以导入自定义NGINX App Protect WAF策略,并将其分发到所有托管部署中。我们将此功能称为自带NGINX App Protect WAF策略(BYO App Protect Policy)。
要了解更多信息,请继续阅读并观看此概览视频:
 
在应用现代化进程中保持WAF策略一致
许多采用传统应用交付环境的客户最初使用F5 Advanced WAF或BIG-IP ASM。随着应用现代化进程不断推进,他们可以利用NGINX App Protect和NGINX Controller App Security,为需要采用符合DevOps模式来部署WAF服务的新应用提供支持。
NGINX App Protect WAF本身即可保护现代应用,其功能涵盖防御OWASP十大风险及其他高级威胁,以及简化的声明式策略定义。采用Controller App Security管理NGINX App Protect WAF实例还可带来以下优势:
- 安全团队无需额外配置即可获得更强的可见性,并可向开发和DevOps团队提供经批准的WAF策略,以及NGINX App Protect WAF实例的自助式配置和管理功能。此外,单个Controller实例可支持多个团队。
- 开发和DevOps团队可以使用熟悉的Controller API和GUI,将已获批准的WAF策略应用于其应用,而无需深入了解这些策略,也无需深入了解在数据平面上执行这些策略的NGINX App Protect WAF实例配置。

为Controller App Security准备F5 WAF策略
为帮助您在推进应用现代化的过程中,使所有F5和NGINX WAF实施保持策略一致,我们提供了NGINX App Protect Policy Converter。它可将F5 Advanced WAF策略(XML格式)转换为NGINX App Protect WAF策略(JSON格式)。然后,您可以按照下一节中的说明,将转换后的策略传递给Controller App Security。
以下是将F5 Advanced WAF策略转换为NGINX App Protect WAF策略的步骤,并附有相关说明链接。

- 下载并安装 NGINX App Protect Policy Converter 的Docker镜像。
- 导出 F5 Advanced WAF策略(说明中称为“BIG‑IP ASM安全策略”,但同样适用于F5 Advanced WAF策略)。
- 转换策略为采用JSON格式的NGINX App Protect WAF策略。
将NGINX App Protect WAF策略导入Controller App Security
借助Application Delivery Module 3.20版的Controller App Security,可以使用BYO App Protect Policy流程导入NGINX App Protect WAF策略,并将其分发到所有受管的NGINX App Protect实例。NGINX App Protect WAF策略可以是原生策略,也可以是按照上一节所述方法从F5 Advanced WAF转换而来的策略。
BYO App Protect Policy流程使用一个名为“安全策略”的Controller对象。该对象是安全相关策略的逻辑容器,其中包括自定义NGINX App Protect WAF策略。然后,在应用中引用该安全策略,即可将关联的WAF策略应用于该应用。
有关BYO App Protect Policy流程的更多信息,请参阅产品文档。
请根据所选界面参阅以下相应章节中的说明:
完成这些步骤后,通过BYO App Protect Policy流程导入Controller App Security的WAF策略如有更新,将自动传播到引用关联Security Strategy的所有App Components。
Application Delivery Module 3.20版的Controller App Security仅支持在单个文件中定义的WAF策略。对使用外部引用的WAF策略(即由多个文件表示的WAF策略)的支持计划在未来版本中提供。
使用API
按照以下步骤,使用Controller API将WAF策略导入Controller App Security:
- 通过
PUT请求将NGINX App Protect WAF策略传递到安全策略端点:
https://{{CONTROLLER_FQDN}}/api/v1/security/policies/{{policy}}- ,并使用类似以下内容的JSON对象:
{
"metadata": {
"name": "lowriskapppolicy",
"displayName": "Low-Risk App Protect Policy",
"description": "Corporate WAF policy for internal low-risk apps",
},
"desiredState": {
"content": {
"policy": {
"name": "lowriskapppolicy",
"template": {
"name": "POLICY_TEMPLATE_NGINX_BASE"
},
"applicationLanguage": "utf-8",
"enforcementMode": "blocking",
"signatures": [
{
"signatureId": 123458888,
"enabled": false
},
{
"signatureId": 304500123,
"enabled": false
}
],
}
}
}
}- 创建引用该WAF策略的安全策略,并向Security Strategies端点发送
PUT请求:
https://{{CONTROLLER_FQDN}}/api/v1/security/strategies/{{strategy}}- ,并使用类似以下内容的JSON对象:
{
"metadata": {
"name": "lowriskstrategy",
"displayName": "Low-Risk App Strategy",
"description": "Corporate strategy for internal low-risk apps",
},
"desiredState": {
"content": {
"securityPolicyRef": "/security/policies/lowriskapppolicy"
}
}
}- 将WAF策略应用于App Component(例如App的应用URI),以便通过向App Component端点发送
PUT或POST请求来引用Security Strategy:
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
使用Controller GUI,按以下步骤将WAF策略导入Controller App Security并应用:
- 在创建安全策略页面上创建安全策略。

- 如果Controller中已有NGINX App Protect WAF策略,请从策略字段的下拉菜单中选择该策略。如果列表中没有该策略,请单击+ 新建。在随后显示的创建安全策略弹出窗口中,上传包含JSON格式NGINX App Protect WAF策略的文件。

- 在要应用WAF策略的应用对应的“编辑应用组件”页面上,选择关联的安全策略。

在NGINX Controller中共享策略
使用BYO App Protect Policy流程将策略导入Controller App Security后,即使Controller中定义的各个App由不同团队管理,也可以在所有App之间共享该策略。让多个Controller App Component(或App的子组件,例如URI)引用相同的策略,有助于统一众多应用和API的安全态势。

Controller可集中管理WAF策略及其版本。发布策略的新版本后,所有引用该策略的Controller App组件都会同步更新,从而大幅简化运维。
总结
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构建的稳健、一致且经过验证的策略来保护新应用。更重要的是,结合使用BYO App Protect Policy和Controller App Security,可将一项经过审核的策略应用于多个应用,从而大幅简化并优化策略变更流程。
NGINX Controller继续支持安全团队以自助服务模式为应用团队提供安全防护,帮助组织兼顾生产力与安全性。
想亲自试用NGINX Controller App Security?立即开始NGINX Controller 30天免费试用,或联系我们,讨论您的用例。
相关博客文章
NGINX Plus R26 正式发布
NGINX Plus R26通过缓存JSON Web密钥集加快JWT验证,并强化TLS握手,从而提升安全性。NGINX JavaScript的新功能包括增强对异步函数的支持,以及实现WebCrypto API。
使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击
gRPC具备开发人员设计和部署现代应用所需的速度与灵活性,但其开放性也使其极易受到第7层DoS攻击。NGINX App Protect DoS可保护gRPC应用免受此类破坏性攻击。
Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划
了解选择错误的Ingress控制器可能带来的风险,以及如何从关键方面着手,让您的选择更好地适应未来需求。
NGINX Plus R19 正式发布
NGINX Plus R19扩展了监控功能,不仅提供更多指标,还新增了指标分析方式;增加试运行模式,用于测试限速效果;增强键值存储,以支持IP地址范围;并使限速更加动态。
NGINX现已正式加入F5
NGINX现已正式成为F5的一部分。Gus Robertson现任F5 NGINX业务部门负责人。他阐述了两家公司在人才、文化和愿景方面融合的价值,以及双方将如何携手增强NGINX的开源产品和商业产品。
