云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

游戏服务器_聊城网站建设公司_试用

小七 141 0

持续安全:在Kubernetes上交付安全应用程序

在这篇文章中,我想谈谈在Kubernetes部署应用程序时需要"左移"连续的安全实践。这将涉及到一些流行的开源工具,以及如何在Jenkins X和超越。一一个闪亮的新Kubernetes设置的好处之一,也许使用类似Jenkins X的东西,是您可以更自由地向应用程序发送快速更改。每周部署变为每日部署,每日服务更新变为每小时一次。在一个人合并一个变更和它开始推出之间的时间差距越来越接近现实时间。这个太棒了。为了实现这种快速连续交付(CD),毫无疑问,您的团队在自动化单元测试和回归方面投入了大量时间测试。所以你的应用程序的安全方面呢?传统上,应用程序级安全将涉及代码审核、评审、运行时渗透测试、批准、代码扫描等。我们的想法是在问题发生之前找出问题远了。不过,随着应用程序部署速度的加快,需要将这些工具编织到将代码投入生产的管道中,尽早捕获应用程序特有的问题,这就是所谓的"左移"安全实践(您可能会越来越多地听到这个术语)。这里暗示的"左"和"右"是从思想/源代码(左)到生产(右)的软件管道区域:静态安全应用程序组合(有时称为SAST)运行应用程序的动态安全性(有时称为首先是源代码扫描器和"软件组件分析"之类的东西。这里的一个常见做法是查看应用程序如何引入库,特别是开放源代码库,因为其中一些库可能存在漏洞,需要更新或修补好了。在事实上,GitHub对依赖关系做了一些分析,可以很早就警告您问题开。超级! 我应该马上着手解决这个问题(这个demo repo是开源的,但是幸好GitHub不会因为有非常旧的依赖关系而公开羞辱你……)好吧,那么第二种类型呢:动态安全性呢。这可能涉及到探测正在运行的应用程序是否存在问题、监视故障,甚至故意尝试中断是的。但是等等,我说的"左移"是指理想情况下在部署前捕捉到东西,但是动态需要它运行。这似乎是一个问题,但稍后我想展示Jenkins X预览应用程序如何在合并或升职了。一些便利的安全工具一些流行的(和开源的)工具可以帮助测试。首先,openwebapplicationsecurity项目发布了一个称为ZAP的便捷工具。ZAP代表Zed攻击代理。这本身就是一个项目,可以用来模拟对webapps的攻击,探测弱点等等。它以多种形式发布(包括一个Jenkins插件),并且有一个方便的命令叫做"zap baseline"。这个基线可以用来扫描webapp中的一组基本问题,并报告严重的问题或警告。令人高兴的是,他们提供了一个docker图像,经常发布和更新。这个工具是动态安全性的一个方便的补充测试。用于图像和组件(静态)类型安全,发布了锚定引擎。Anchore引擎(也可以作为docker images发布)在容器级别工作,查找已经进入容器的漏洞。这在Kubernetes世界中非常有用,因为容器是部署单元。Anchore的一个关键特性是,它从图像的最低层向上查找问题,而不是只查看应用程序所依赖的库。通常,基于图像构建的应用程序依赖于具有许多层的其他图像,而这些图像又依赖于其他图像,依此类推(因此,您几乎不知道这些内容来自何处)。此工具可以在图像投入生产之前应用于图像,但您也可以将其用于已经运行的内容,以防出现新的问题发现在应用程序的版本为升职了。还有最重要的是,锚地有所有重要的航海主题,似乎围绕着工具库伯内特斯和码头生态系统。应用我以前写过的Jenkins XAs的持续安全工具,你可以把Jenkins X看作是在Kubernetes之上交付应用程序的一种固执己见的方式。这样做的好处是,它允许它具有非常特定的钩子或扩展点,允许将安全方面编织到管道中。事实上,它是如此的固执己见,以至于可以通过上面提到的锚引擎来实现图像安全性:>jx create addon Anchore这将把所有的机器都放在适当的位置,为您的团队自动启用引擎,然后运行诸如:>jxgetcve--environment=staging这样的运行程序,它将揭示指定环境中的问题。当然,这也适用于拉请求和正在进行的工作。在Jenkins X中,每个变更(pull-request)都有自己的环境,所以在合并之前,您可以从静态的角度检查它是否正常。当然,理想情况下,您可以根据请求捕获这些数据舞台。为了动态安全,您可以使用上面提到的ZAP工具,简单到:>jx create addon owasp ZAP这会在一个预览应用程序上添加一个钩子来运行"Zed攻击代理"。在Jenkins X中,每个pull请求都会创建预览应用程序。如果它在基线测试中发现任何失败,它将自动使构建失败,并向用户报告pull请求/更改请求需要一些工作。预览应用程序是应用程序运行的迷你版,在独立的环境。注意在上述两种情况下,我不必更改任何管道,也不必为每个应用程序/项目设置管道。这在Jenkins X中是在"团队"级别工作的,这是在项目之间实施某种治理的便捷方法。对于开发人员来说,治理通常是一个脏话,但在安全性的情况下,它是有保证的(在这两种情况下,影响都相当小,但它预防问题的价值可能是巨大的)。阅读有关预览应用程序、环境和挂钩的更多信息给,这个可能就是你的管道比如:什么下一步显然还有很多事情要做,以及丰富的商业和开放工具资料来源云计算基金会(也是Kubernetes的管理机构)正在考虑一个名为"Falco"的运行时安全性建议,我不确定它是否有航海主题,但它肯定是特定于容器的。运行时安全是另一种更接近于监视的安全措施:监视异常行为(这也意味着了解应用程序的正常行为)。这将是一个值得关注的伟大项目,因为它看起来可以添加另一层连续安全性,这一层传统上被认为是非常奇特的(但希望可以很容易地应用于Kubernetes),从而为全部。附加资源了解更多关于Jenkins XRead about Jenkins X和anchore观看DevSecOps上的网络研讨会