前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SDL软件安全开发流程总结

SDL软件安全开发流程总结

作者头像
FB客服
发布2020-02-20 13:30:35
2.2K0
发布2020-02-20 13:30:35
举报
文章被收录于专栏:FreeBufFreeBuf

前言

现在有很多公司SDL的流程刚刚起步,我想分享一下自己在SDL中的一些经验。由于经验尚浅,无法估量整个 SDL的建设情况,以下只是自己在工作中的理解和拍脑袋的想法,请各位大佬指点。

SDL全称Security Development Lifecycle,又称作安全开发生命周期,包括安全培训、安全需求设计、安全开发、安全检测和安全监控五个阶段。本文会以安全检测为重点展开。

一、安全培训

安全培训的重点是提高全体项目人员的安全意识,包括产品经理的安全意识和研发测试人员的代码安全意识。

项目的中期可开展针对性的培训,例如代码中经常出现的问题、测试过程中多次出现的漏洞等都可以作为培训的重点。

二、安全需求设计

针对系统业务要求实施风险评估工作,根据需求文档与项目经理确定安全需求,制定安全需求表,供后续开发检测时使用。

三、安全开发

安全开发阶段由项目经理把控。作为安全人员,在项目开始前对所有研发人员做好安全培训,中期做针对性的问题漏洞培训,能够减轻在安全检测时的工作量。

四、安全检测

在从前任职的公司,安全体系相对完善,所有的新项目上线前都需要经过三步检查——代码审计、Web应用扫描、人工渗透扫描。

代码审计

使用 Jekens 拉 Gitlab 代码放入Fortify 中扫描。开发过程中,开发人员每次更新代码都要进行扫描,并有权限查看Fortify相关项目漏洞情况,进行整改(不允许有中高危以上漏洞)。开发有权对漏洞进行忽略处理,但需要承担相应后果。若不知道如何处理,可请安全组提供解决方案。(代码扫描可以使用其他安全工具)

WEB应用扫描

WEB应用扫描不需要安全基础即可操作。因为安全人员比测试人员少,一般交予测试人员协助处理。扫描器可选择项很多,包括开源或者商用,选择适合自己的就好。

人工渗透扫描

这也是最后一步。针对不同的应用发布情况,若是应用为新应用则需要对总体项目进行渗透测试;若为增量项目(版本迭代更新)则只需要对增加项相关接口做测试。渗透人员由安全组人员负责。

以上报告中出现中高危以上问题必须整改,整改完成前不允许上线。

五、安全监控

一般来说,公司都具有安全设备,安全的维护也可以借助SRC(Security Response Center安全应急响应中心)或者第三方漏洞平台。

六、SDL流程监督

最后分享一下关于SDL流程监督的经验。

SDL流程由项目经理负责,同样SDL的监督对象为项目经理,项目经理为整改流程的主导。流程监督是贯穿整个开发周期的,包括前期的安全培训、需求设计,中期的代码开发、安全检测,后期的安全监控。

再介绍一下在SDL流程中的《安全选项表》。《安全选项表》中的内容为等级保护和网站备案中必须存在的一些安全功能项,属于法律合规的内容。不是产品必须符合其中的内容,而是尽量符合。若不用相关功能,可以在表格中解释一下,日后在做等级保护等检查时也可直接提供与检查人员。

若项目为全新项目,则按照《安全选项表》(图1)中流程进行。产品经理需要参考表中的内容,对项目进行梳理,选择保留项。若选项不保留,则需要在备注中说明理由。

图1

开发和测试根据产品填写好的《安全选项表》内容进行测试。部分安全专业的测试工作由安全人员进行测试。完成最后的安全测试并允许上线后,三份测试报告和此安全选项表格要进行归档。其中比较重要的环节是对四条线的人(项目经理、产品、开发、测试)培训安全选项表内容。

若项目为后期迭代,则需求评审的时候需要安全人员参与,负责安全性评估和后期渗透检查。代码和WEB应用扫描可以照常进行。

结束语

以上SDL整体的流程完全依据个人平时的工作理解而成,供大家参考。有错误的地方欢迎大佬们指正,有更好的完善方法也欢迎大家补充探讨。

相关资料

https://blog.csdn.net/shark1357/article/details/89368328 https://jenkins.io/doc/pipeline/steps/fortify/ https://wiki.jenkins.io/display/JENKINS/Fortify+Plugin

*本文原创作者:山城安全MTSec,本文属于FreeBuf原创奖励计划,未经许可禁止转载

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、安全培训
  • 二、安全需求设计
  • 三、安全开发
  • 四、安全检测
    • 代码审计
      • WEB应用扫描
        • 人工渗透扫描
        • 五、安全监控
        • 六、SDL流程监督
        • 结束语
        • 相关资料
        相关产品与服务
        代码审计
        代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档