译者|布加迪
审校|孙淑娟
安全左移(shiftsecurityleft)这股热潮使开发人员能够及早发现并修复缺陷。当应用程序部署到生产环境后,它可以尽可能摆脱当时已知的漏洞……但安全左移只是一个开端。漏洞出现在已经部署和运行的软件组件中。从开发环境到生产环境,组织需要一套综合全面的方法来规避。虽然没有通用的方法实现端到端安全性,但有几个宝贵的策略可以帮助您实现这个目标。
全面的端到端云原生安全策略有三个“P”,有助于全面弥补安全缺口。
坚持不懈(Persistence)
以生产环境为中心(Production-centric)
确定优先级(Prioritization)
坚持不懈
新的漏洞层出不穷,随时可能冒出来。发现漏洞所需的时间从数小时到数年不等。GitHub发现软件包中的安全漏洞平均需要4年的时间,而开发和分发修复程序另需要14周的时间。漏洞被发现的时间跨度非常长,需要持续的扫描、监控和分析,这需要保持警惕和坚持不懈。
哪怕使用最好的漏洞扫描工具,您也应该明白:左移扫描无法检测一切,因为它只能洞察特定时间点的安全性。即使相同的代码现在被认为是安全的也无法保证将来不出现漏洞。在整个CI/CD生命周期中坚持扫描和检测工作的安全团队才有能力有效地修复威胁。
以生产环境为中心
左移可以帮助组织在开发应用程序时心系安全。但是无论应用程序离开开发环境后,您对其安全性有多大信心,都无法保证它在生产环境中依然安全。
我们经常看到,漏洞常常在部署到生产环境后暴露无遗。ApacheStruts、Heartbleed以及最近的Log4j就是几个典型例子,后者于2013年首次发布,但直到去年才被发现。
此外,生产环境不仅包含您部署的代码,还包括以下内容:
从外部存储库提取的容器镜像。
部署软件时,安装的运行时Sidecar和集成工具。
没有像您的代码那样经过严格检查就部署的第三方应用程序,比如应用程序服务器、仪表板、代理和防火墙。
不受DevOps团队控制且无法通过左移工具扫描的基础架构。
确定生产环境中应用程序的上下文是保护云原生应用程序的一个重要部分。还有哪些其他组件、代码和基础架构与该应用程序进行交互?您需要不同的理念和额外的工具集来全面弥补安全缺口。
确定优先级
扫描生产系统中的漏洞可能会发现成百上千个易受攻击的组件,但检测到的漏洞不一定就与高风险威胁有关,这是由于脆弱性不等同于可利用性。
为了更好地了解漏洞带来的风险,有必要了解漏洞在应用程序上下文中的位置。是否可以通过特定方式使用应用程序来利用漏洞?是否可以从外部攻击面访问易受攻击的应用程序,或者潜在的攻击者是否需要先获得一定程度的内部控制权才能访问它?
通过确定最严重的漏洞,您可以为修复工作确定优先级。团队可以从成百上千个潜在漏洞中过滤掉良性问题(以及它们引发的所有警报),优先考虑极少数破坏很严重的漏洞,因为它们现在就对您的安全构成了最大风险。如果专注于被利用的风险,并按严重程度为修复工作确定优先级,连人手不足的小团队都能有效地保护大批的云原生应用程序。
结论
综上所述,安全左移是一种非常值得采用的做法,但光靠它还不够。只有坚持不懈、关注生产环境以及优先考虑对贵组织真正构成风险的小部分漏洞,您才能以更大的把握管理贵组织的安全状况。