SDL浅谈

SDL简介 SDL security development lifecycle(安全开发生命周期),是微软提出的从安全角度指导软件开发过程的管理模式。SDL是一个安全保证的过程,起重点是软件开发,它在开发的所有阶段都引入了安全和隐私的原则。自2004年起,SDL一直都是微软在全公司实施的强制性策略。

SDL阶段

微软把SDL分为10多个阶段,太多冗余繁琐,并不利于我们在快速迭代的互联网中推动, 为了快速推动落地可以把SDL从流程维度分为五个阶段:需求、设计、实施、测试、上线、运维。

img

SDL流程推动

参与人员

主要参与人员有开发、测试、运维、安全、产品经理等人员,开发包括项目经理、架构师、开发人员等。

方式

推动方式是指沟通方式,有会议交流、邮件交流、面对面交流、甚至有电话沟通。

文档

安全人员推动过程中制定为研发、测试、运维提供理论、培训、规范的文档,包括不限于:安全意识培训PPT文档、安全需求CHECKLIST EXCEL表格、安全编码规范WORD文档、漏洞修复培训PPT文档、各类基线EXCEL表格、入侵检测CHECKLIST EXECEL表格等,这些文档在FREEBUF等安全媒体平台上可以获取到。

具体流程实现

立项

安全需求分析

明确数据安全目标和合规目标,产品经理是主要责任人,安全部提供赋能培训、演练与试点辅导等服务。同时安全部提供一系列的安全服务,协助产品经理实现安全闭环。

威胁建模

常用的是微软STRIDE威胁分析模型。

img

威胁建模一定要简单,以暴露面为主,核心就是认证授权和数据处理等红线。

安全规范

安全设计:为主要场景下的安全措施设计提供一致的文本参考标准和检查标准,安全部提供推广培训、简易CheckList和合规审核等服务。

安全组件与平台:为安全设计规范合规提供标准化的技术实现,降低安全措施的设计与实施的门槛。安全部负责安全组件与平台的需求收集、设计与推广服务,协助其他部门开发。安全部提供桥梁服务,将个别产品线的优秀安全组件或服务推广到其他产品线。

安全编码规范:为安全设计规范合规提供标准化的技术实现,降低安全措施的设计与实施的门槛。安全部负责安全组件与平台的需求收集、设计与推广服务,协助其他部门开发。安全部提供桥梁服务,将个别产品线的优秀安全组件或服务推广到其他产品线。

安全培训

线下形式有PPT演讲,线上形式有安全视频培训,真实案例分享等。笔者还开发基于真实案例的训战平台,通过docker容器作为漏洞靶场的形式,夺取flag,在做题过程中帮助大家学习漏洞原理,提高安全意识。

实施

编码规范检测

安全编码规范条目不宜过多,互联网从业者总结的经验是10条左右,条目过多容易分散学习者和审计者的精力,难以达到预期的效果。 安全编码规范不能简单等同于安全编码知识库,了解到的一些单位,其安全编码规范通常是从网络、兄弟单位或标准化机构借用过来的常见漏洞的解决方案,缺乏针对性,我们建议针对一个轮次中(比如一年)代码人工审计和工具扫描的结果进行统计排序,排名靠前并且风险重大的安全编码漏洞及其解决方案建议写入安全编码规范,并且在新一轮年度工作中作为安全编码检查重点,重点消除这些安全编码漏洞。

代码白盒安全扫描平台

img

可以通过配置,自动连接代码仓库。在DevOps平台中自动执行上线前的代码审计扫描,扫描报告发送到安全团队邮箱进行报告复核。开源的可以使用Findbugs+SonarRQube进行代码审计,商业的可以使用fortify

测试

渗透测试

推动渗透测试人员与产品经理、开发经理合作,获取并理解需求,获取代码更新比对信息,在持续迭代过程中,渗透测试资源倾斜到那些新增或变更数据、功能和接口上,将资源聚焦,避免重复测试,将渗透测试由黑盒转变为灰白盒。

自动化扫描

黑盒就是被动方式,收集各个地方的流量,测试环境、线上流量都有覆盖,然后清洗入库再消费,加上 payload 重放,不过线上环境很小心,要兼顾 qps 和去ticket,避免造成生成事故。 一般大型互联网都是自研扫描器,前期投入比较有限,可以使用wvs扫描器或其他开源扫描器。

运维

发布前检测

包括上线前的三方库检测,项目部署所在系统的安全加固,以及上线前发布系统恶意软件引入的检测等。

发布后运营

主机入侵检测hids必不可少的,前期可以使用开源框架驭龙,后期组建起安全团队可以自己研发或者基于开源做二次开发。做好hids后,最重要的工作就是运营hids,跟进入侵事件,并且不断研究新case补充hids策略。

如果公司资源够,也可以组建SRC团队,主要负责应急响应和集合白帽子的力量挖掘公司的漏洞。这期间需要开发的项目就包括漏洞管理平台和SRC平台。这两个平台也都有开源产品,可以使用开源产品进行二次改造,尤其是漏洞管理平台,应该要复用或者对接自动化扫描的漏洞管理平台,能有效的对接公司的工单系统,保证漏洞能发送到责任人并做相应的闭环。

参考:

https://www.freebuf.com/articles/security-management/233899.html

https://zhuanlan.zhihu.com/p/137766604

https://www.secrss.com/articles/8784

https://www.secrss.com/articles/8784