总结
在本章中,你已经学习了如何通过扫描容器和基础设施即代码(IaC),确保代码和配置的一致性,以及对整个流水线进行安全加固,从而保护你的发布流水线和部署。
在下一章中,我们将讨论软件架构对软件交付性能的影响。
案例研究
直到现在,Tailwind Gears一直支付外部公司进行架构安全评审,协助进行威胁建模和风险分析,并在重大发布前进行安全测试。公司从未遭遇过安全 breach,且迄今为止,大部分投资都集中在网络安全上。然而,随着越来越多地使用云服务,Tailwind Gears已经意识到他们需要采取措施,才能够检测、响应并恢复安全事件。
IT部门已经开始使用Splunk作为他们的SIEM和ITIM解决方案,并整合越来越多的数据源,但到目前为止,IT部门无法确定是否能实时检测到正在进行的攻击。为了改变处理安全的方式,Tailwind Gears与安全合作伙伴沟通,并计划了第一次红队/蓝队模拟演练。模拟场景是对DevOps试点团队的Web应用进行内部攻击。
此次模拟演练持续了3天,红队通过以下两种方式成功入侵生产环境:
-
一次针对另一团队几名开发人员的鱼叉式钓鱼攻击成功,泄露了其中一名开发人员的凭证。通过BloodHound,红队发现该开发人员可以访问之前的Jenkins服务器,该服务器上运行着GitHub Actions Runner,尚未完全迁移到Kubernetes解决方案。该服务器没有启用MFA,mimikatz工具帮助捕获了一个测试账户的凭证。该测试账户能够访问测试环境,进而捕获了一个管理员账户的凭证,允许提取暂存环境的数据(在模拟演练中,该环境被视为生产环境)。
-
由于所有开发人员都可以读取所有仓库,红队分析了Web应用的依赖项,发现一个存在XSS漏洞的依赖项没有被修复。该组件是一个搜索控件,红队通过与另一团队的前端开发人员合作,利用该漏洞在其他用户的上下文中执行脚本。他们在一个内部GitHub仓库中开设了一个问题,并使用GitHub API在每次执行时向该问题发表评论,作为证据。
模拟演练的结果产生了许多待办事项,团队将在接下来的几周内进行处理。某些事项与DevOps团队无关,例如为所有内部系统启用MFA,或定期进行钓鱼模拟以提高员工的安全意识。
但也有许多事项涉及到DevOps团队。Tailwind Gears决定将安全性融入开发流程。这包括秘密扫描、依赖项管理(通过Dependabot)和代码扫描。团队还将与IT部门合作,安全地加强发布流水线,通过将构建服务器迁移到Kubernetes,实施全流水线的安全日志记录,并使用OpenID Connect和安全的密钥库来处理秘密。
大家都期待着三个月后的下一次红队/蓝队模拟演练。
进一步阅读
以下是本章的参考文献,你可以进一步阅读以获取有关这些主题的更多信息:
-
Kim G., Humble J., Debois P. & Willis J. (2016). The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations (1st ed.). IT Revolution Press
-
Forsgren N., Humble, J., & Kim, G. (2018). Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations (1st ed.) [E-book]. IT Revolution Press.
-
Oladimeji S., Kerner S. M. (2021). SolarWinds hack explained: Everything you need to know. https://whatis.techtarget.com/feature/SolarWindshack-explained-Everything-you-need-to-know
-
Sudhakar Ramakrishna (2021). New Findings From Our Investigation of SUNBURST. https://orangematter.solarwinds.com/2021/01/11/new-findings-from-our-investigation-of-sunburst/
-
Crowdstrike blog (2021). SUNSPOT: An Implant in the Build Process. https://www.crowdstrike.com/blog/sunspot-malware-technicalanalysis/
-
Eckels S., Smith J. & Ballenthin W. (2020). SUNBURST Additional Technical Details. https://www.mandiant.com/resources/sunburst-additionaltechnical-details
-
Souppaya M., Morello J., & Scarfone K. (2017). Application Container Security Guide: https://doi.org/10.6028/NIST.SP.800-190
-
National Telecommunications and Information Administration (NTIA), Software Bill of Materials: https://www.ntia.gov/sbom
-
Thomas Claburn (2018). Check your repos… Crypto-coin-stealing code sneaks into fairly popular NPM lib (2m downloads per week): https://www.theregister.com/2018/11/26/npm_repo_bitcoin_stealer/
-
Haymore A., Smart I., Gazdag V., Natesan D., & Fernick J. (2022). 10 real-world stories of how we’ve compromised CI/CD pipelines: https://research.nccgroup.com/2022/01/13/10-real-world-stories-of-how-wevecompromised-ci-cd-pipelines/
-
Rob Bos (2022). Setup an internal GitHub Actions Marketplace: https://devopsjournal.io/blog/2021/10/14/GitHub-Actions-InternalMarketplace.html