Microsoft SDL SecDevOps实践

0x00背景

                                       将安全原则和实践作为DevOps的组成部分,同时保持提高的效率和生产力。

从一开始,Microsoft SDL就确定安全性是每个人的职责,并且在SDL中包括了针对程序经理,开发人员和测试人员的实践,所有这些实践都是为了提高安全性。此外,认识到一种规模并不适合所有开发方法,因此描述了灵活的实践和活动,这些实践和活动被证明可以使用经典的瀑布式方法或较新的敏捷方法来提高开发每个阶段的软件应用程序的安全性。但是,除了考虑生产环境之外,SDL不包括运营工程师的活动。

DevOps方法改变了这一点。现在,开发和运营紧密集成在一起,可以为终端用户快速连续地交付价值。DevOps取代了孤立的开发和运营部门,以创建可以与共享且高效的实践,工具和KPI协同工作的多学科团队。为了在瞬息万变的环境中提供高度安全的软件和服务,以相同的速度移动安全至关重要。实现此目的的一种方法是在开发(SDL)和操作(OSA)流程中建立安全性。 

0x01概述

实践经验

DevOps中使用的实践为提高安全性提供了绝佳机会。自动化,监视,协作以及快速和早期反馈之类的实践为在DevOps流程中建立安全性奠定了坚实的基础。 

 

有用的链接:

心态转变为DevSecOps文化

 

 

0x02 8大实践

练习1:提供培训

培训对于成功至关重要。确保每个人都了解攻击者的观点,他们的目标以及他们如何利用编码和配置错误或体系结构弱点,将有助于吸引所有人的注意力并提高集体知识的水平。

 

练习2-定义要求

建立同时考虑安全性和合规性控制的最低安全性基准。确保将它们烘焙到DevOps流程和管道中。至少,请确保基准考虑到现实世界中的威胁,例如OWASP前10名SANS前25名,以及行业或法规要求以及已知的问题或您选择的技术堆栈中可能由人为错误引起的问题。 

 

练习3-定义指标和合规性报告

通过定义特定的指标来推动工程师采取所需的行为,以推动行动并支持合规性目标。

 

练习4 –使用软件组成分析(SCA)和治理

选择第三方组件(包括商业组件和开源组件)时,重要的是要了解组件中的漏洞可能对系统的整体安全性造成的影响。SCA工具可以协助许可披露,提供准确的组件清单并报告所引用组件的任何漏洞。使用高风险的第三方组件时,您还应该更具选择性,并考虑在使用它们之前进行更彻底的评估。

了解有关使用安全的第三方组件的更多信息>

有用的链接

白源

 

练习5:执行威胁建模

尽管由于威胁建模的缓慢性,威胁建模可能在DevOps中具有挑战性,但它是任何安全开发过程的关键组成部分。在大多数情况下,对威胁场景应用结构化方法可帮助团队更有效,更便宜地识别安全漏洞,确定来自那些威胁的风险,然后选择安全功能并建立适当的缓解措施。至少,应该在存在有意义的安全风险的环境中使用威胁建模。

 

练习6:使用工具和自动化

使用精心选择的工具和集成到工程师世界中的智能自动化(例如集成开发环境)。在现代工程界中,很容易假设自动化是解决方案,正确的自动化是至关重要的,但是在选择工具时要有选择性,在部署工具时要小心,这一点很重要。目标是解决问题,而不是使工程师超出其日常工程经验之外的太多工具或外来流程。用作安全DevOps工作流程一部分的工具应遵循以下原则:

  • 工具必须集成到CI / CD管道中。
  • 工具一定不需要安全专家。
  • 工具必须避免报告问题的假阳性率很高。

将静态应用程序安全测试(SAST)集成到您的IDE(集成开发环境)中可以提供对语法,语义的深入分析见解,并提供及时的学习,从而防止在将应用程序代码提交给您之前引入安全漏洞。代码库。同样,将动态分析安全测试(DAST)工具集成到连续集成/连续交付管道中,将有助于快速发现仅在所有组件都已集成并运行时才出现的问题。

 

有用的链接

Microsoft安全风险检测(MSRD)

微软DevSkim

VSTS安全市场

密码扫描

Roslyn诊断安全分析仪

微软BinSkim

具有白盒模糊测试的自动渗透测试

Microsoft安全代码分析

如果使用的是Azure,则可以从Visual Studio Marketplace中下载Secure DevOps Kit

 

练习7-保持凭据安全

在预提交期间,有必要在源文件中扫描凭据和其他敏感内容,因为它们可以减少将敏感信息传播到团队的CI / CD流程中的风险。与其使用代码存储敏感密钥,不如考虑使用自带密钥(BYOK)解决方案,该解决方案使用硬件安全模块(HSM)生成密钥。

有用的链接

凭证扫描器

使用Key Vault Connected Service

 

练习8:使用持续学习和监控

使用高级分析功能监视应用程序,基础结构和网络可以帮助发现安全和性能问题。将持续集成/连续部署(CI / CD)做法与监视工具结合使用时,您将能够更好地了解应用程序的运行状况,并主动识别和缓解风险,以减少遭受攻击的风险。监视也是支持深度防御策略的重要组成部分,可以减少组织的平均识别时间(MTTI)和平均包含时间(MTTC)指标。

有用的链接

Azure监控器

先进的威胁检测

 

0x03官方帮助文档

主页:https://www.microsoft.com/en-us/securityengineering/devsecops

发布了247 篇原创文章 · 获赞 213 · 访问量 142万+

猜你喜欢

转载自blog.csdn.net/qq_29277155/article/details/103197336
SDL
今日推荐