SDL介绍

当我们需要建造一座大楼的时候需要一些步骤,包括选址、设计、建造、验收、装修等等。为了规范这些活动,在建筑上有一系列的标准来帮助我们规避其中的安全风险,如选址的时候要考虑地震火灾等,建造的时候要考虑承重等等

为什么要用SDL?

1、可以减少安全问题和隐私问题的数量

2、降低残留漏洞的安全风险,SDL可以规范公司web应用的开发流程,指导和协助项目进行安全规划,通过web 应用开发过程中的,需求分析、代码检查、应用安全测试等,减少web应用的漏洞,提升web应用的安全性,

SDL是什么?

安全开发生产周期(Security Development Lifecycle),SDL从源头降低安全风险,符合Secure at the Source 的战略思想,最早是来自于微软,在微软内部推行之后使得Windows核心软件的漏洞大大减少

SDL由那几个阶段组成?

1、培训:使得所有相关工作人员有相关的工作技能

2、需求:从用户角度分析用户需求,确定用户需要满足那些功能,包括安全需求。

3、设计:将各个功能进行分解和规划,并且设计相应的实现方式,

4、实施:其实就是敲代码的过程。

5、验证:对功能进行验证和测试。

6、发布:产品的上线或者交付。

7、响应:产品上线之后,对各类安全事件和其它事件进行响应和处理的过程。比如我们的应用用到了str2框架,当str2爆发漏洞时,就要进行相应的响应和处理。

SDL流程在每个阶段需要做那些和安全相关的事情?

 

核心安全培训是指所有安全的基础,绝大多数的安全问题都是由于设计、开发、测试人员缺乏安全意识和相关的安全知识所引起的,所以对相关的人员进行培训相当重要,进行培训时可以分为不同的角色,例如开发偏重于安全编码、测试人员更加偏重于安全测试、运维人员偏重于安全意识教育和安全运营。

需求阶段需要充分的考虑,确保所有的需求得到确认。包括安全需求分析,比如我们的应用是怎样认证的,时通过最普通的账号密码还是证书,是通过base64还是其他的,我们的认证需要加密吗?权限是怎么做的?审计是怎么做的?第二块要考虑的内容是审计要求和bug数量,这是确保安全和隐私质量的重要指标,在需求阶段就要制定好这个最低的标准,然后在后面严格执行和遵从。现在隐私也越来越受到用户的重视,产品中要考虑会不会涉及到用户的隐私数据,例如身份证号、银行卡、手机号等等,并且根据隐私评估来设计相应的评级,比如我们涉及到了身份证号,就要考虑在存储和传输的过程中进行加密。

在设计阶段就像建造大楼的时候画的图纸,在这一阶段应该着重考虑安全和隐私问题,并尽可能的避免安全引起的需求变更。攻击面分析和威胁建模是从两个不同的角度考虑安全问题的,攻击面分析是从应用和系统本身的弱点出发,尽可能地减小本身可以暴露的漏洞和弱点,实施最小权限原则,系统加固、关闭不需要的服务,卸载不需要的组件等等,就像在大楼建设过程中可有可无的窗户可以不建。而威胁建模是从威胁来源,即外在的一些威胁的可能来考虑这些东西,明确攻击可能来自那些方面,做到知己知彼,

在实施阶段程序员需要和安全团队进行沟通,包括如何正确的配置和使用id、编译器、连接器等相关的工具。同时许多常用函数可能存在一些安全隐患,例如一些伪随机函数、级别较低的安全加密算法都应该被禁用,这些应该禁用的函数或API列表都应该由安全团队来提供。静态代码分析由大量的现成的工具可以使用,也可以和人工相结合。

验证阶段由QA出手,首先可以使用动态分析对前面的静态分析进行合理的补充,用于测试环节验证程序的安全性。而模糊测试主要是通过发送大量的输入,查看输出来判断是否存在安全漏洞,绝大部分的网络扫面器都是这个原理,最后在验证阶段需要重新进行威胁建模和攻击面分析,有助于我们分析由于需求变更而引入的新的安全问题。

到了发布阶段需要建立安全事件响应计划,并且进行演练,保证发生事情的时候能够按部就班的处理,不至于手忙脚乱。最终安全评析是发布之前仔细检查应用所执行二点所有安全活动,得到一个最终的结果,用于判断和上报管理层。而发布存档同样非常重要,可以为应急响应和产品升级提供帮助。

小结

SDL即安全开发生命周期,是一种应用开发在各个阶段融入各种安全活动和控制措施来提升web应用的安全,降低安全漏洞修复成本的一种工程化的方法。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值