作为开发团队的一员,虽然默认会按照SDL的流程来开发,但是没有明确基本的术语,这里来补充下。
安全开发生命周期SDL全称security development lifecycle,为了低成本的开发软件并满足合规要求。这一软件开发过程集成到开发的每个阶段:需求分析、设计、编码、测试和维护。
核心原则:攻击面最小化,基本隐私,权限最小化,默认安全,纵深防御,威胁建模
其中基本隐私确保开发者设计软件时履行法律规定与义务。
威胁建模方法之一的STRIDE按照绘制数据流图、识别威胁、提出缓解措施和安全验证的步骤将安全考虑集成到软件开发中。该建模方法明确不同的威胁:仿冒Spoofing,篡改Tampering,抵赖Repudiation,信息泄露Information disclosure,拒绝服务Denial of service和权限提升Elevation of privilege。在绘制数据流图时也可对照识别、明确不同元素的威胁,针对不同的威胁,给出标准缓解措施,同类应用可直接应用:仿冒——kerberos认证与数字签名,篡改——完整性校验,抵赖——强认证与审计,信息泄漏——加密与访问控制,拒绝服务——访问控制列表与过滤,权限提升——输入校验、用户组管理和访问控制列表。
SDL属于安全运营的一部分,安全运营贯穿产品研发、业务运行和漏洞修复等环节。SDL从源头降低安全风险。
实战经验准则: