互联网企业安全高级指南3.7 如何看待SDL

    xiaoxiao2023-12-29  178

    3.7 如何看待SDL

    SDL(安全开发生命周期)优化模型如图3-1所示。

     

    图3-1 SDL优化模型

    SDL起源于微软,2004年将SDL引入其内部软件开发流程中,目的是减少其软件中的漏洞数量和降低其严重级别。SDL侧重于长期维护、流程改进并能够帮助开发过程应对不断变化的威胁状况。早些年微软的产品安全问题比较多,微软在某一年甚至下令所有产品线开发计划停止半年,全部用于整顿安全问题。起初SDL适用于传统的瀑布模型和螺旋式开发,到了2010年SDL增加了敏捷的部分改进,用于应对互联网下的Web开发,目前SDL的“全貌”如图3-2所示。

     

    图3-2 SDL整体框架

    基本软件安全培训应涵盖的基础概念如下所示。

    安全设计,包括以下主题:

    减小攻击面

    深度防御

    最小权限原则

    安全默认设置

    威胁建模,包括以下主题:

    威胁建模概述

    威胁模型的设计意义

    基于威胁模型的编码约束

    安全编码,包括以下主题:

    缓冲区溢出(对于使用 C 和 C++ 的应用程序)

    整数算法错误(对于使用 C 和 C++ 的应用程序)

    跨站点脚本(对于托管代码和 Web 应用程序)

    SQL 注入(对于托管代码和 Web 应用程序)

    弱加密

    安全测试,包括以下主题:

    安全测试与功能测试之间的区别

    风险评估

    安全测试方法

    隐私,包括以下主题:

    隐私敏感数据的类型

    隐私设计最佳实践

    风险评估

    隐私开发最佳实践

    隐私测试最佳实践

    高级概念方面的培训,包括但不限于以下方面:

    高级安全设计和体系结构

    可信用户界面设计

    安全漏洞细节

    实施自定义威胁缓解

    先看这份培训列表。能把这些彻底讲明白的人其实还是资深工程师以上的人。有人可能觉得我说的夸张了,原因在于大部分互联网公司的研发环境主要是Web,有很多人能把SQL注入、XSS、CSRF这些讲清楚,但问题是这样就算SDL了么?非也,当下热闹的安全大会各种讲攻防的议题,但这些离真正的产品安全设计还差很远,行业的普遍现状是能做入侵检测,能把漏洞修补原理说清楚,但很少有人能把安全架构设计非常体系化的讲清楚。很多人认为SDL在互联网公司无法完全落地的原因是因为DevOps模式下的频繁交付导致SDL显得过于“厚重”,我觉得这只说对了一半,根据大多数互联网公司现行的模式,我加了一个帽子,姑且就叫“攻防驱动修改”吧。

    相关资源:七夕情人节表白HTML源码(两款)
    最新回复(0)