24 | 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
《安全攻防技能 30 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(6)
- 最新
- 精选
- 小老鼠1,SDL适用于敏捷和DevOps,若适用有什么不同之外,若不适用,那在敏捷和DevOps下又有什么框架(据我学习,DevOps包括开发、测试、运维、安全的统一)2,我是一个从事二十年的测试人员,您认为安全测试应该由测试人员来作好还是安全人员来作,当然包括测试分析、设计、准备、执行及报告各个测试阶段。
作者回复: 1、我觉得SDL更多的强调了安全在开发中的重要性,因此稍加调整,是可以适用于敏捷和DevOps的。比如,现在提的比较多的是SecDevOps,就是尝试在DevOps中加入和强调安全。 2、安全和测试都是服务于开发,仅从安全测试这一工作来看,我觉得是可以由测试来统一完成的。只是安全还需要去做其他的企业防御类的工作。
2020-03-034 - 瑞泉老师,持续集成工具,比如jenkins集成openvas漏扫工具是否可行,自动测试软件漏洞
作者回复: 理论上是可行的。主要的问题在于扫描会产生误报,因此很难要求说,扫描出漏洞就不允许发布。这就是矛盾点了,如果不强制要求,大部分开发可能会选择忽略报警。如果由安全人员对漏洞进行人审的话,又失去了自动化的意义。
2020-02-1624 - Parko从原来注重开发管理的SDLC,到打通开发与运维隔阂的DevOps,在发展到DevSecOps,把代码安全扫描也加入到整个自动化发布过程中
作者回复: 循序渐进,小步快跑,还是比较符合互联网公司的发展模式的~
2020-04-041 - leslie学习了:这块确实可以去研究一下;看来这块确实是我最后一块真正的弱点。去年的运维大会刚好有提及,然后发现确实这也是属于运维的一方面,一点点学习一点点补漏。2020-02-131
- 小晏子SDL开发测试过程中可以集成一些插件漏洞检测工具,看看引入的第三方插件是否有已知的安全漏洞,比如之前文中提到的dependecy-check工具检查cve漏洞,最好是将这个工具集成到devops pipeline中,这样可以做到自动化的定期检查预警2020-02-121
- COOKSDL要落地挺难的,特别是在大家都觉得安全很重要,却又不肯在安全上多投入的时候2020-03-29
收起评论