转眼5周结束,默安科技发起的“安全开发大讲堂”主题直播将告一段落。本文是最后一讲的直播回顾,主讲老师是业内低调的安全开发“全栈”大佬。
本次分享分为3部分
01 如何评估SDL做的好坏
02 三类企业的SDL建设路线图
03 简单探讨SDL与DevSecOps的区别
01
BSIMM-10
BSIMM与SDL匹配度较高,能够帮助目标企业客观地看到自身与行业整体软件安全的成熟度差异。第10版共包含119项活动和4个区域:治理、情报、SSDL触点、部署。以下所列出的4个区域的活动是根据SDL具体实践经验做过删减的版本。这个简化版本基本能对SDL实践情况给出一个较客观的参考。
如果单独针对SDL进行评估, BSIMM适用性不强,但很多企业在某些角度上也在使用,因此简单提及。
SAMM-2.0
OWASP在2020年2月发布了一个最新的SAMM2.0版本。2.0版本不但适用于传统的瀑布和迭代开发模式,还纳入了敏捷开发和DevOps,涵盖的范围较全面。该模型分为概览、入门、工具箱、基准4部分(详细介绍参见原PPT中的超链接)。这里重点介绍“概览”和“工具箱”部分。
(1)概览
SAMM成熟度模型包含5个大方向(治理、设计、实施、验证、运营)和15个域(战略、政策合规、教育指导、威胁评估、安全需求……)
每个域分为两条线StreamA、StreamB进行评分,AB关注点不同,举个栗子:
“安全测试”分为streamA、streamB两条线,A线属于基准要求(1级:使用自动化安全测试工具;2级:使用特定应用的安全测试自动化;3级:将自动化安全测试集成至构建和部署流程),B线属于深入的需求(1级:对于高风险组件执行人工安全测试;2级:执行人工渗透测试;3级:将安全测试集成到开发过程中)。
(2)工具箱
官方给出Excel和Web两个版本的工具箱,个人认为Excel更为实用。我根据个人过去几年的经验,对于常见企业的SDL建设状态,做了一次SDL实践评估,得出以下分析结果。
SAMM excel评估表默安科技已有汉化版本。
02
“3类企业”如何划分?
如上图,我将企业类型简单分为A、B、C三类(涵盖不了全部情况,这里粗略划分),划分维度有两个:一是“安全角色在哪里?”(安全部门权限);二是“安全团队的规模”(我有多少兵去做这些事)。
A类:没有独立安全部门,少量安全岗位一般嵌入运维、测试部门,很多安全工作需要外部供应商支持;
B类:与开发团队合作密切,或者相对独立的安全团队;
C类:完全独立的安全团队,与产品、开发、运维等兄弟部门平级,有高层角色。
A类企业SDL Roadmap
不要被图吓到,就像技能树一样,中间主线是SDL开展的标准环节。上下方的方框代表建设SDL中绝大部分主要的内容和安全活动,分为文档、工具、人工工作和一些度量指标,如果达到一定的程度,方框和连接线也会变成彩色。
浅黄色表示A类企业初步执行的安全工作,主要覆盖的是实施、验证、发布3个环节,如渗透测试、SAST、DAST和安全防护设备WAF等;深黄色表示A类企业下一步的安全工作,还是集中在这三个环节中,包括安全编码规范、代码审计、IAST、资产安全检查等;灰色部分对A来说则很难有资源实现。
🔼 A类企业在SDL实践中可能遇到的坑
想做更多,又没有支持/预算/人员怎么办?
日常工作尽可能的自动化(包括产品工具、知识库的嵌入);
定制入门的安全指南,让兄弟部门协作执行;
制定关键流程,设置卡点,例如上线前让测试小伙伴测试高危风险等。
每年都做很多测试工作,还是有很多漏洞怎么办?
SDL的思想就是左移,应将漏洞整改办法总结到需求环节中,从源头减少漏洞出现的可能性;
定制一些初步的基线/红线。
B类企业SDL Roadmap
B类企业用蓝色表示安全开发活动。不论成熟度如何,B类企业能够覆盖到70%-80%的SDL阶段。同样的,浅蓝色代表B类企业初步实施的安全工作,深蓝色表示下一步应该做的工作。在初步执行的安全工作中,除了实施、验证、发布三个阶段,B类企业还可以覆盖到培训、需求和响应环节,包括代码审计、安全编码规范、IAST、渗透测试、SAST、DAST、漏洞管理、资产安全检查等。下一步应执行的工作还覆盖了“设计”阶段。
B类企业的安全活动已经相对全面,但安全培训、需求评审、威胁建模、安全组件库、安全功能验证的程度无法达到一定成熟度,并且无法去做攻击树分析的工作。
🔼 威胁建模实践中的常见问题Q&A
到底用什么工具?
威胁库怎么积累?
采用什么评估方法?
威胁建模谁来做?
项目太紧,来不及做怎么办?
得到大量潜在威胁怎么办?
来自领导的灵魂拷问:
你们这样做能保证完整性吗?测试范围全面吗?
🔼 安全需求评审实践中的常见问题Q&A
谁去参加安全需求评审会?
积累了大量安全需求怎么处理?
听会后没有发现问题,比较尴尬怎么办?
安全需求的跟踪有必要吗?
C类企业SDL Roadmap
C类企业基本上所有安全开发活动都已覆盖,深绿色表示C类企业能够做得更好保证效果的工作,主要包括需求评审、安全培训、威胁建模、攻击树分析、安全组件库、安全功能验证、应急响应。
🔼 C类企业安全团队的困扰
干的事太多了怎么办?
平台化、统一管理怎么做?
人员变动大怎么办?
03
有些企业可能会存在这样的疑惑:“我SDL建设效果还不够理想,可以直接实践DevSecOps么?”
答案是肯定的。SDL重在整体流程治理,DevSecOps重在工具链落地和实际效果;SDL重在安全开发和安全设计,而DevSecOps包含了SDL不具备的Ops(运营)部分。两者并不冲突,反而是很好的互补,都是安全治理的方法。
DevSecOps与SDL安全活动对比
上图元素和之前的图类似。DevSecOps(上半部分)和SDL流程(下半部分)中有70%的内容都是重复的。主要区别有两点:
需要人工参与的工作,例如攻击树分析、代码审计、渗透测试、安全威胁验证等工作只能在SDL流程中完成,而在DevSecOps中则比较难进行;
SDL在系统上线后考虑的内容就很少了,但DevSecOps还包括运营阶段一系列的安全工作。
END
小默想说更多的精华都在这些图里面了。有兴趣了解的小伙伴可以在“默安科技”公众号后台回复“直播”下载PPT和SAMM评估表汉化版。
到这里,小默就要暂时和大家说再见啦。安全开发主题告一段落,但是可以期待一下我们接下来新一季的主题直播,还有更多你要的干货和精彩!