zoukankan      html  css  js  c++  java
  • SDL-软件安全开发周期流程

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

    一、安全培训

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

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

    二、安全需求设计

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

    三、安全开发

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

    四、安全检测

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

    代码审计

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

    WEB应用扫描

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

    人工渗透扫描

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

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

    五、安全监控

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

    六、SDL流程监督

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

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

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

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

    图1 

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

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

  • 相关阅读:
    常春藤之路,从幼儿园开始走起
    常青藤零距离
    web-service
    WebService到底是什么?
    How to add libraries to “External Libraries” in WebStorm/PhpStorm/Intellij
    浏览器核心说明
    万维网
    js和jquery获取span里面的值
    TPshop学习
    sphinx文档
  • 原文地址:https://www.cnblogs.com/wenyoudo/p/13613850.html
Copyright © 2011-2022 走看看