发布时间:2020年07月14日
将安全性在应用开发周期中“左移”
DevOps的宗旨是通过自动化快速交付应用,并采用“左移”的模式,即在项目生命周期的较早阶段进行测试。
随着DevOps团队变得越来越成熟,目前在开发过程中有关测试、质量保证和部署的挑战都已经得到了解决。但是要想真正实现快速发布,还有一块绊脚石——安全性。
为了解决这个问题,最符合逻辑的下一步行动便是将安全性嵌入到DevOps中。从安全开发的角度来看,需要涵盖不同的方面,包括交付实践、应用安全性、基础结构控制和监控等,以确保在开发和运营的整个阶段符合安全标准。
恩士迅(NCS)建议用于设计DevSecOps框架的实践如下
1.将安全性嵌入到应用开发生命周期中
无论您使用的是敏捷开发模型还是瀑布开发模型,建议定期(至少每天一次)扫描代码和开放源代码库,确保安全。必须使用可以检测出“开放式Web应用安全项目(OWASP)”所定义的最高级别安全性问题的工具执行代码质量检查(Code Quality Check)和静态应用安全性测试(Static Application Security Testing)。
仅仅扫描代码层还不够。使用“交互应用安全性测试工具(Interactive Application Security Testing)”进行单元和功能测试时,仍需通过扫描检测漏洞。优质的工具应该具备跟踪对应用任何组件的请求的能力,同时对该组件中的任何漏洞都应具备完全的可追溯性。
最后,模拟攻击同样是很好的解决方案,尝试使用“动态应用安全性测试工具(Dynamic Application Security Test)”从前端服务渗透您的应用。
与持续集成并行运行所有类型的安全测试,以降低漏洞风险,增加系统安全性。
2.应用零信任架构
对于任何实体(设备、用户、系统或应用)请求访问前,须首先对通过验证。这一原则十分有效。验证可以有多种方式,如使用基于令牌的身份验证,受信任的证书或多因素身份验证等。
3.在安全性上使用“即代码”的模式
DevSecOps提倡实施“安全策略即代码”:不仅可以轻松发布和实施策略,还有助于监控安全合规性,进行策略的添加、删除、更新等。使用配置管理工具实施“即代码”的安全策略部署,能够对包括云、本地基础架构和中间件在内的环境实现全面自动化和持续的安全合规监控。