当前位置: 首页 > 网络应用技术

使用Nginx App Protect来保护Kubernetes中的应用程序

时间:2023-03-07 14:00:09 网络应用技术

  企业知道,他们需要快速将服务和应用程序推向市场,因为如果他们不这样做,竞争对手肯定会这样做。但是,Web应用程序是网络攻击的主要目标。盲目的快速更新只会通过质量检查加剧成功安全漏洞的风险并输入生产。

  受许多因素的影响,企业很难遵守严格的安全标准。将代码迅速发布到生产环境的压力经常被忽略。

  自动化工具(例如过度依赖脆弱性扫描程序)非常危险,因为它们没有找到所有问题。使用使用不同跨职位的开发团队提供的代码的实践使安全管理中的职责划分不足。生产环境中的应用将引入更多的漏洞。

  最终,这导致了安全工具(例如Web应用程序防火墙(WAF))的需求,这是前所未有的。这些安全工具通常与负载平衡的代理集成并部署在公司网络的边缘(或前门)以创建一个安全边界。

  现代应用程序和基础设施的安全漏洞表明,该方法迫切需要改进:

  ?边界保护不足。几乎没有简单的边界,基于代理的安全工具(例如WAF)必须更靠近它想要保护的位置。

  ?安全不再只是首席信息安全官和SECOPS团队的重点。DevOps团队在接受,测试和部署安全策略(作为其CI/CD组装线的一部分)中起着至关重要的作用。

  将WAF集成到入口控制器可以带来三个独特的优势:

  ?保护应用程序边界 - 在合理的体系结构中,入口控制器是数据平面流向Kubernetes的唯一入口点,这使其成为部署安全代理的理想位置。

  ?集成数据平面 - 将WAF置于入口控制器中,以消除对单个WAF设备的需求。这可以减少复杂性,成本和故障点的数量。

  ?集成控制平面-WAF配置现在可以使用Kubernetes API管理,该配置有助于更轻松地实现CI/CD Process.nginx Plus Ingress Controller配置Kubernetes基于角色的访问控制(RBAC)练习,因此您可以进行练习,以便您可以将WAF配置分配给特殊的DevSecops团队。

  应用程序保护的配置对象在入口控制器(使用YAML文件)和Nginx Plus之间保持一致。

  主要配置可以轻松地迁移并在任何设备上部署,这有助于更轻松地将WAF配置作为代码管理,并将其部署到任何应用程序环境中。

  您可以使用两个新的自定义资源来配置NGINX PLUS Ingress Controller中的应用程序保护:

  ?Appolicy定义了应用程序保护应用程序的WAF策略。WAF策略是独立应用程序保护json格式策略的YAML版本。

  ?aplogConf定义了应用程序保护模块的日志记录行为。

  入口控制器图像还包含一个应用程序保护签名集,该签名集构造时嵌入其中。

  在部署适当的Appolicy和AplogConf资源之后,您可以使用一组注释来引用Kubernetes Ingress Resources:

  然后,批准将检查并防止Ingress Controller处理的所有请求。

  您可以在不同的命名空间中定义Appolicy和AplogConf资源(可以由DevSecops团队拥有)。可以安全可靠地隔离,例如在大型企业中,将安全策略分配给专业团队。

  APP Protect和Nginx Plus Ingress Controller的日志旨在在设计中分开,旨在反映安全团队通常如何独立于DevOps和应用程序所有者。

  通过将参数设置为App-Protect-Security-Log-Destation,您可以将App Protect Log发送到可访问Kubernetes Pod的任何Syslog目标。

  此外,您还可以使用aplogConf资源来指定您关心的应用程序保护日志,并指定要发送到Syslog Pod的日志。对于所有Kubernetes容器,NGINX PLUS Ingress Controller日志都转发到本地标准输出。

  最后,Ingress控制器上的NGINX APP保护提供了可配置的CPU的可配置资源保护阈值,并为App Protect的内存利用提供了可防止它们耗尽其他过程的可配置资源保护阈值。这在诸如Kubernetes之类的多重环境中尤为重要。这样的环境取决于资源共享,可能会受到“嘈杂的邻居”问题的困扰。

  以下是ConfigMap的资源阈值的示例,以设置App Protect进程的资源阈值。

  当应用程序进入故障模式时的利用率以及低阈值设置其退出故障模式时的利用率。对于内存利用率,它们为100%和10%,对于CPU,它们为100%和50%, 分别。

  drop for App_protect_failure_mode_action numerals表示,应用程序保护通过在故障模式下关闭连接来拒绝流量。

  有关NGINX Plus Ingress Controller中NGINX APP Protect的配置和故障排除的更多详细信息,请参见Ingress Controller文档。

  对于现代集装箱应用程序,通常假定所有进口流(“北方和南方”)都是不可信的,并且内部流(“东方和西方”)格式是正确且可信的。在这种情况下,入口控制器是理想的部署安全代理(例如WAF)的位置。

  NGINX Plus Ingress Controller带有NGINX APP Protect,是唯一与完全支持的WAF集成的入口控制器。

  通过集成数据图形设备并使用Kubernetes API进行配置,可以进一步提高将WAF嵌入到入口控制器中的效率。

  资料来源:NGINX开源社区