安全攻防技能 30 讲
何为舟
前微博安全研发负责人
34681 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
开篇词 (1讲)
安全攻防技能 30 讲
15
15
1.0x
00:00/00:00
登录|注册

24 | SDL:怎样才能写出更“安全”的代码?

响应
部署
测试
开发
设计
需求分析
安全培训
在SDL的覆盖面上,可以有所取舍
灵活变通,不要生搬硬套
基于现有的制度拓展SDL
什么是SDL?
软件开发生命周期DLC
思考题
总结
如何推动SDL落地?
SDL中的基础概念
怎样才能写出更“安全”的代码?

该思维导图由 AI 生成,仅供参考

你好,我是何为舟。
安全漏洞的源头是开发,只有当开发人员写出了包含安全漏洞的代码,黑客才有可乘之机。因此,如何保障开发写出更“安全”的代码,是安全防护工作中最关键的一环。
2004 年,微软提出了 SDL(Security Development Lifecycle,安全开发生命周期)。因为对安全和隐私的考虑贯穿了整个软件的开发进程,SDL 能够帮助开发人员写出更“安全”的代码,在解决安全合规需求的同时,也能减少由安全问题带来的损失。
和安全标准一样,SDL 本质上是一个宏观指导性质的框架。但是,它确实成为了很多公司建设安全开发体系的参照标准。各个公司依据微软的 SDL 标准,结合自身的实际情况,衍生出了适合公司自身发展的 SDL。今天,我们就一起来学习,到底什么是 SDL,以及 SDL 是如何让开发写出更安全的代码的。

SDL 中的基础概念

我们先来看一个软件开发中的经典概念:软件开发生命周期 DLC(Software Development Life Cycle)(这个概念的英文缩写种类比较多,为了和 SDL 区分,我们用 DLC 代表软件开发生命周期)。SDL 是以软件开发生命周期为基础发展成的安全框架,所以,了解 DLC 能够帮助我们更好地认识 SDL。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

SDL(Security Development Lifecycle,安全开发生命周期)框架是微软提出的一种软件开发生命周期基础上的安全开发方法。该框架将软件开发过程分为7个步骤:安全培训、需求分析、设计、开发、测试、部署和响应。通过安全培训解决人的问题,提出安全需求、发现安全漏洞,并在部署和响应阶段处理安全问题。SDL的落地面临挑战,但可以通过基于现有制度拓展SDL、灵活变通和在SDL的覆盖面上取舍来推动。尽管SDL非常实用,但其落地仍面临问题,需要基于公司已有的开发流程和机制,灵活部署SDL。SDL的成功落地需要开发人员的支持和安全人员的高效率工作,可以通过工具来自动或者半自动化地完成一些开发和测试工作。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《安全攻防技能 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • 小老鼠
    1,SDL适用于敏捷和DevOps,若适用有什么不同之外,若不适用,那在敏捷和DevOps下又有什么框架(据我学习,DevOps包括开发、测试、运维、安全的统一)2,我是一个从事二十年的测试人员,您认为安全测试应该由测试人员来作好还是安全人员来作,当然包括测试分析、设计、准备、执行及报告各个测试阶段。

    作者回复: 1、我觉得SDL更多的强调了安全在开发中的重要性,因此稍加调整,是可以适用于敏捷和DevOps的。比如,现在提的比较多的是SecDevOps,就是尝试在DevOps中加入和强调安全。 2、安全和测试都是服务于开发,仅从安全测试这一工作来看,我觉得是可以由测试来统一完成的。只是安全还需要去做其他的企业防御类的工作。

    2020-03-03
    4
  • 瑞泉
    老师,持续集成工具,比如jenkins集成openvas漏扫工具是否可行,自动测试软件漏洞

    作者回复: 理论上是可行的。主要的问题在于扫描会产生误报,因此很难要求说,扫描出漏洞就不允许发布。这就是矛盾点了,如果不强制要求,大部分开发可能会选择忽略报警。如果由安全人员对漏洞进行人审的话,又失去了自动化的意义。

    2020-02-16
    2
    4
  • Parko
    从原来注重开发管理的SDLC,到打通开发与运维隔阂的DevOps,在发展到DevSecOps,把代码安全扫描也加入到整个自动化发布过程中

    作者回复: 循序渐进,小步快跑,还是比较符合互联网公司的发展模式的~

    2020-04-04
    1
  • leslie
    学习了:这块确实可以去研究一下;看来这块确实是我最后一块真正的弱点。去年的运维大会刚好有提及,然后发现确实这也是属于运维的一方面,一点点学习一点点补漏。
    2020-02-13
    1
  • 小晏子
    SDL开发测试过程中可以集成一些插件漏洞检测工具,看看引入的第三方插件是否有已知的安全漏洞,比如之前文中提到的dependecy-check工具检查cve漏洞,最好是将这个工具集成到devops pipeline中,这样可以做到自动化的定期检查预警
    2020-02-12
    1
  • COOK
    SDL要落地挺难的,特别是在大家都觉得安全很重要,却又不肯在安全上多投入的时候
    2020-03-29
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部