SDL核心理念是将安全集成到项目开发的每一个阶段中:需求分析、设计、编码、测试、维护阶段。
安全开发第一个解决的问题是争取企业高层领导的重视,在绝大多数企业中,网络安全工作都是增加成本的,在收益中很难体现出来,若是安全开发工作没有企业高层领导的推动,自上而下,各部门的配合不会很顺畅。
第二:建立完整的安全开发流程,做到标准化的实施。
第三,建立一套完整的SDL运营体系,制定相关安全规范;
第四,一步步解决,不要一开始就从最难入手,例如:威胁建模,做的浅的话难以深入,效果差;做的深的话对人员要求和能力要求极高,并且会对项目具体实施产生阻碍,避免资源的投入和实施的难度给SDL推动带来负面影响;
最后积极拥抱新的技术,近年来,DevSecOps的提出,敏捷开发模型的提出,对SDL的瀑布模型提出了挑战,SDL应该与DevOps理念进行融合,建设更加适用于DevOps模式的SDL流程。
对于安全开发体系建设最基本也是最重要的六个安全目标可以总结如下:
- 防欺骗:防止非法访问和使用另一个用户的凭证
- 防篡改:防止恶意修改:修改数据、修改代码
- 防抵赖:防止操作行为的否认、对系统操作具备追踪回溯能力
- 防信息泄漏:防止敏感数据的泄漏或未经授权的访问获取数据
- 防拒绝服务:访问WEB服务器无法提供服务或降低服务级别
- 防权限提升:防止获得访问资源的高级特权
对于SDL来说,比较困难的一点就是做的工作如何体现出来,采用运营的思维考虑:一个事情如果不能使用量化方法衡量他,就不知道他的改进点在哪里,就不能进行持续优化个改进。
建设SDL前面也说到,对于企业来说是成本消耗项目,对于上层来说,SDL价值单纯通过工作介绍是无法体现出来的,还需要给上层一个明确的量化评价方法,让实施可视化,也可以让各个部门看到SDL具体实施的效果。
设计一套合理的评价体系,最明显的一个展示方面就是漏洞维度,如在实施SDL后每个周期内漏洞的变化趋势,发现和修复漏洞的平均时间等,据此设计出参考的KPI指标如下:
- 漏洞密度:每千行代码中产生的安全漏洞,漏洞数值越低,说明实施效果越好
- 漏洞发现时间及修复时间:MTTD、MTTR,越短说明效果越好
- 按时漏洞修复率:在漏洞等级规定修复时间内完成的修复率
除了漏洞还有其他评价维度,还应考虑制度、规范、流程的完善程度。对于安全开发来说,设计一个完整的安全开发知识库和安全开发规范很有必要,安全需求和设计知识库可以excel形式构建,包括场景、安全威胁、安全需求、安全设计等字段。也可做成自查表供业务完成自查输出。
在编码阶段、测试阶段若是能将自动化安全开发能力输出,也是对SDL的成果能力展示很好的一个手段。
最新评论