1 编写背景
从入职到现在已将近一年半,从最开始的安全测试,后来的安全开发规范和代码审计平台搭建、移动APP安全加固项目,最近的安全测试技术与安全开发、新员工入职培训,以及标准化项目中产出的安全设计checklist…我们在应用安全的积累也越来越多。恰好正在思考这段时间以来的收获,脑海中SDL这一词瞬间闪现出来,我们制定出的诸多规范和流程也需要在各种业务方打磨,期间产生的各种“麻烦”、“困难”十分宝贵,遂记之。(2018年8月22日星期三 18:31)
记得在之前参加面试时,被问到SDL,勉强把其流程稍加解释的给背了出来,面试官一脸不屑的样子记忆犹新。因为那时负责的是乙方安服技术团队,针对甲方推崇但又没几家实际落地并做好的SDL,的确缺少经验。后来,在网上找了很多相关资料,但大多都是没血没肉的理论指导性文章,落地的案例寥寥无几。再后来,主动联系了当初的面试官,请教他们公司的SDL如何开展,得到的回复却是:这玩意儿真正落地的公司比较少,都是一二线互联网公司在玩;外面那些paper都太形而上了,没有落地空间,有些概念可以参考,跟领导吹吹牛逼是可以的。
时至今日,工作方向已由应用安全转向负责基础安全。经过近一年的演变,公司落地版的SDL已稍见雏形,各个环节已基本打通并稳定,期间的各种经验和心得甚为宝贵,于是乎计划着编写这一系列的文章,或许可以在SDL案例缺失的时间,给同行朋友带来一丝参考与思考。由于是最初实践,肯定存在一些不足甚至错误,烦请指正并热烈讨论。
2 总体概述
2.1 SDL概况
安全开发生命周期(SDL)即Security Development Lifecycle,是微软提出的从安全角度指导软件开发过程的管理模式。在传统软件开发生命周期的各个阶段增加了一些必要的安全活动,软件开发的不同阶段所执行的安全活动也不同,每个活动就算单独执行也都能对软件安全起到一定作用。
2.2 SDL流程
SDL的核心理念就是将安全考虑集成在软件开发的每一个阶段:需求分析、设计、编码、测试和维护。从需求、设计到发布产品的每一个阶段都增加相应的安全活动,以减少软件中漏洞的数量并将安全缺陷降低到最小程度。其流程分为以下七部分:安全培训、安全需求、安全设计、安全开发、安全测试、发布审核、安全响应
结合实际情况与资源,可以分为这样的七部分:
该实践基于作者以及所在安全团队边学边推行的最初实践,服务于物流行业一家由传统转型互联网的公司,同样面临安全起步较晚且安全团队人数较少,安全开发能力欠佳。
但凭借内外部资源、公司内部系统项目、安全事件推动等因素,已基本实现所有新业务系统、旧业务系统功能大变更,均按照SDL推行。
来源:freebuf.com 2020-02-23 13:16:14 by: 阿尔法之梦
请登录后发表评论
注册