【51CTO.com快译】安全过去是最后开发阶段某个专门团队的责任,但随着开发周期的数量和速度同提升,安全实践需要与时俱进。
这导致DevSecOps(开发安全运维)大行其道,DevSecOps强调为DevOps融入安全。公司需要DevSecOps来确保项目安全可靠地运作。如果没有DevSecOps,DevOps团队需要在发现漏洞后重建和更新所有系统,这费时费力。
以下是项目负责人开始实施DevSecOps时要考虑的四个关键因素:
1. 了解贵公司的安全策略和标准,以便开发时可以明智地选择安全组件。
适当的安全和审计策略很重要,以便能够证明生产环境中预期的样子就是实际运行时的样子。能够验证你在生产环境中运行的软件不需要将特殊代码添加到原始代码,那样就无需重新测试和维护新代码。实际上,如果可以在运行时进行这番验证,并立即报告所有应用程序上运行的组件,那么你的团队就能获得一直缺乏的证据和监管:安全、治理和合规证明。
2. 实施静态、可重现、不可变的构建环境。
如果在整个组织中利用系统化、可重复的构建流程建立构建环境,团队就能够减少漏洞,并确保应用程序的质量。实施面向整个组织的流程,以便针对依赖项、许可证和安全来解决开源语言的构建。这将消除浪费在改建上的时间、集成安全机制以及提高灵活性。
受信任、精挑细选的语言发行版可以在整个团队中带来这些好处,并构建开源语言的三个生命周期阶段:构建、认证和解决。
3. 积极主动。
开发过程中确定许可证合规和漏洞方面要注意的事项,而不是事后再做。了解应用程序中的组件,让你的所有应用程序组合了解这些组件,并密切跟踪那些更新,这是繁重的工作。这实际上可以实现自动化,以了解团队依赖某个组件的情况和与组件有关的风险。
这种方法使团队能够将安全目标放在首要的位置,并在自动通知开源组件的更新时保持持续交付。
应扫描所有第三方开源组件以查找许可证合规和漏洞。应用程序的风险在逐渐变化,因此有必要在整个软件开发生命周期(包括CI/CD流程和进入到生产环境)中密切关注开源软件包,关注漏洞、有效期和许可。
以前,跨SDLC和生产环境跟踪安全需要安装某个持续运行的代理,或者在系统层面使用应用程序扫描工具(AST),或者在应用程序的代码里面使用运行时应用程序自保护(RASP)解决方案。
如今,借助解释器插件进行的无代理监控可以将安全机制直接部署到源代码中,以便安全团队能够跟上开发步伐,并使产品更快地进入市场。这种方法可以更深入地了解合规团队、InfoSec团队和风险管理团队当中的安全。
4. 使用最新版本的组件,组件应尽量来自积极维护的项目。
过时或维护不力的开源软件会为不法分子提供可趁之机,并破坏关键任务型应用程序的稳定性。许多开源软件包由多个贡献者创建,可能没有走严格的安全审核流程。此外,即使软件包过去经过了安全评估,也可能含有未知的新漏洞。而现有的工具和流程检测不出这些新漏洞。
为了解决这些问题,企业应实施策略以防止使用易受攻击的软件包、模块和库;为应用程序使用的软件包维护一份最新的清单;根据可靠的信息来源,定期检查漏洞。若发现任何软件包含有漏洞,必须打补丁,并部署新版本。
新的安全机会
在组织内部实施DevSecOps标准并不完全是开发人员的责任。然而,开发期间制定安全标准却是开发人员的职责。为什么不超越最基本的许可证合规、漏洞检查和组件检查,使用可用的工具和流程制定更强大的安全标准?DevSecOps为节省时间、避免沮丧和返工,同时提高安全、缩短投放市场的时间提供了机会。
原文标题:DevSecOps: 4 key considerations for beginners,作者:Bart Copeland
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】