1.简介

SDL的全称是Security Development Lifecycle,即:安全开发生命周期。由微软最早提出,是一种专注于软件开发的安全保障流程。为实现保护最终用户为目标,它在软件开发流程的各个阶段引入安全和隐私问题。

2.流程

SDL大致如下,包括了以下七个阶段:

• 安全培训:安全培训体系:安全意识+安全测试+安全开发+安全运维+安全产品
• 需求分析:确定安全需求和投入占比,寻找安全嵌入的最优方式
• 系统设计:确定设计要求,分析攻击面,威胁建模
• 实现:使用标准的工具,弃用不安全的函数,静态分析(安全开发规范+代码审计)
• 验证:黑白盒测试,攻击面评估
• 发布:安全事件响应计划、周期性安全评估
• 响应:应急响应,BUG跟踪

培训的内容应包括以下方面:
Part 1:安全设计:包括减小攻击面、深度防御、最小权限原则、服务器安全配置等
Part 2:威胁建模:概述、设计意义、基于威胁建模的编码约束
Part 3:安全编码:缓冲区溢出(针对C/C++)、整数算法错误(针对C/C++)、XSS/CSRF(对于Web类应用)、SQL注入(对于Web类应用)、弱加密
Part 4:安全测试:安全测试和黑盒测试的区别、风险评估、安全测试方法(代码审计、fuzz等)
Part 5:隐私与敏感数据:敏感数据类型、风险评估、隐私开发和测试的最佳实践
Part 6:高级概念:高级安全概念、可信用户界面设计、安全漏洞细节、自定义威胁缓解

3.SDL实战经验

  • 与项目经理进行充分沟通,排出足够的时间
  • 规范公司的立项流程,确保所有项目都能通知到安全团队,避免遗漏
  • 树立安全部门的权威,项目必须由安全部门审核完成后才能发布
  • 将技术方案写入开发、测试的工作手册中
  • 给工程师培训安全方案
  • 记录所有的安全bug,激励程序员编写安全的编码

4.需求分析与设计

引用一份之前看到的美的执行SDL的checklist。如下:

5.开发与测试

  • 使用安全的函数,比如 OWASP ESAPI
  • 代码审计工具--Fortify SCA
  • 测试阶段--漏洞扫描器 appscan,awvs,webinspect

攻防驱动SDL:

事前基线:安全编码标准、安全设计
事中措施:代码审计、发布前的安全测试、系统上线流程规范
事后机制:http全流量ids、web日志分析、流量实时审计等
事件驱动:发现了新问题就督促开发部门赶紧修复

 

6.总结:

听了很多安全同仁的想法,中小企业不建议推动SDL,可以做攻防驱动类型的SDL,因为SDL往往需要从上往下推动,归根到底还是“人”的问题。SDL的成功实施,与管理层支持力度有很多关系。

 参考文献:

《白帽子讲Web安全》

 https://mp.weixin.qq.com/s/MR3SmOLj834LK4RBMcZ2pg?

 https://xz.aliyun.com/t/226

安全开发流程(SDL)学习概述的更多相关文章

  1. 2022年Web前端开发流程和学习路线(详尽版)

    前言 前端侧重于人机交互和用户体验,后端侧重于业务逻辑和大规模数据处理.理论上,面向用户的产品里,所有问题(包括产品.设计.后端.甚至看不见的问题)的表现形式,都会暴露在前端,而只有部分问题(数据问题 ...

  2. iOS开发流程总结

    本文由社区会员umyueyue分享 以下是会员umyueue总结的iOS开发流程以及学习中的资料分享. 流程:注册.开发.真机测试.发布以及上线. iPhone iOS 4从注册到app上线开发流程 ...

  3. APPCAN学习笔记001---app高速开发AppCan.cn平台概述

    1.APPCAN学习笔记---app高速开发AppCan.cn平台概述 1. 平台概述 技术qq交流群:JavaDream:251572072 AppCan.cn开发平台是基于HTML5技术的跨平台移 ...

  4. FPGA学习笔记(二)——FPGA学习路线及开发流程

    ###### [该随笔部分内容转载自小梅哥]       ######### 一.FPGA学习路线 工具使用 -> 语法学习 -> 逻辑设计 -> IP使用 ->接口设计 -& ...

  5. 我在阿里这仨月 前端开发流程 前端进阶的思考 延伸学习的方式很简单:google 一个关键词你能看到十几篇优秀的博文,再这些博文中寻找新的关键字,直到整个大知识点得到突破

    我在阿里这仨月 Alibaba 试用期是三个月,转眼三个月过去了,也到了转正述职的时间.回想这三个月做过的事情,很多很杂,但还是有重点. 本文谈一谈工作中遇到的各种场景,需要用到的一些前端知识,以及我 ...

  6. Struts2学习笔记--Struts例子及开发流程

    参考资料:http://blog.csdn.net/hntyzgn2010/article/details/5547753 http://chenlh.iteye.com/blog/464341 入门 ...

  7. Vuforia开发完全指南---Vuforia概述

    Vuforia概述 AR(Augmented Reality)增强现实,想必大家都已经很熟悉了.这是当下最热的技术之一,是利用计算机视觉和计算机图像学领域的相关知识将虚拟世界融入到现实生活当中.AR和 ...

  8. flask实战-留言板-Web程序开发流程

    Web程序开发流程 在实际的开发中,一个Web程序的开发过程要设计多个角色,比如客户(提出需求).项目经理(决定需求的实现方式).开发者(实现需求)等,在这里我们假设自己是一个人全职开发.一般来说一个 ...

  9. FPAG结构 组成 工作原理 开发流程(转)

    FPGA组成.工作原理和开发流程 备注:下面的描述基于ALTERA系列的FPGA芯片,而且是第一次学习FPGA,其中的一部分内容是参考一些资料总结的,个人独特的分析和见解还偏少. 1. FPGA概述 ...

随机推荐

  1. SringCloud学习成长之路 八 消息总线

    Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现通知微服务 ...

  2. laravel服务提供者类说明

    IoC 是将内部设计的类交给系统去控制,但是有些类在初始化的时候,需要制定特定的参数,或者当你需要将实现类绑定到某个接口,这时候就必须对这些依赖进行配置,系统才能正确解析并引用. register 而 ...

  3. iOS-类似微信摇一摇

    首先,一直以为摇一摇的功能实现好高大上,结果百度了.我自己也模仿写了一个demo.主要代码如下: 新建一个项目,名字为AnimationShake. 主要代码: - (void)motionBegan ...

  4. 【C# 开发技巧】如何防止程序多次运行

    一.引言 最近发现很多人在论坛中问到如何防止程序被多次运行的问题的,如: http://social.msdn.microsoft.com/Forums/zh-CN/6398fb10-ecc2-4c0 ...

  5. 域名购买、SSL证书申请使用和本地服务映射外网

    万网购买域名 1.在如下网址购买,价格不是很贵,几块钱一年的都有:https://wanwang.aliyun.com/domain/?spm=5176.100251.111252.24.4ddd4f ...

  6. 【VS开发】【miscellaneous】windows(64位)下使用curl命令

    windows(64位)下使用curl命令 Curl命令可以通过命令行的方式,执行Http请求.在Elasticsearch中有使用的场景,因此这里研究下如何在windows下执行curl命令. 工具 ...

  7. 最新 盛天网络java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.盛天网络等10家互联网公司的校招Offer,因为某些自身原因最终选择了盛天网络.6.7月主要是做系统复习.项目复盘.Leet ...

  8. C#使用KingAOP实现AOP面向切面编程一

    AOP面向切面编程(Aspect Oriented Programming),是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. 实现AOP主要由两种方式,一种是编译时静态植入,优点是 ...

  9. 论文阅读 | Transformer-XL: Attentive Language Models beyond a Fixed-Length Context

    0 简述 Transformer最大的问题:在语言建模时的设置受到固定长度上下文的限制. 本文提出的Transformer-XL,使学习不再仅仅依赖于定长,且不破坏时间的相关性. Transforme ...

  10. springboot集成elk 二:springboot + elk 采集日志

    到logstash-2.0.0\bin下新建文件 logstash.conf input { tcp { mode => "server" host => " ...