安全自动化实施方案

一、什么是持续安全集成

  在软件研发过程中,安全测试(类似的也包括性能、APP专项等测试)由于其专业性,一般是作为软件开发的较末环节开始手工执行和验收。但持续交付/devops的大潮提高了速度并扩张了规模,让安全和性能等专项团队也面临着新的挑战。为确保快速开发和新功能部署,安全团队必须确保安全评估的频率,既要保证安全风险最小化,同时也要考虑安全团队有限资源的可持续性。
   就是在持续集成(CI)和持续交付(CD),实现自动化的静态代码扫描,依赖组件扫描以及初级的渗透测试都可以比较容易的在交付流水线中实现。

  安全测试是个非常复杂的过程,依靠自动化扫描器并不能发现所有的安全问题,但是它可以在较小投入的情况下持续发现大部分系统的基础安全问题。如果需要更高级别的安全保障,人工渗透性测试和威胁建模等必不可少,但成本也是相对较高的。
安全测试绝不应该是测试工程师的禁区,不管是在测试思想还是工程实践上,安全测试都脱离不了持续交付和敏捷的软件工程体系。

 

二、安全测试流程

               SCM                                       CI                                                     CD

  开发人员 :  代码编写>代码提交>       

           (代码扫描Sonarlint)                     

  前置构建:                 代码检出    代码编译>单元测试>质量检测>打包发布                 jenkins自动部署

                         Sonar扫描、Fortity扫描                  AppScan

三、安全自动化实施方案步骤

  1、开发人员编写代码,在编写过程中使用Sonarlint进行扫描(eclipse插件方式)。

  2、开发人员将代码提交至git/svn源码管理库,jenkins构建服务器检测到开发提交代码后自动检出,或开发人员手工触动jenkins构建任务后检出。

  3、代码检出后,进行编译、单元测试、质量检测(Sonar和Fortify扫描)、打包发布等代码构建操作。

  4、在打包程序包自动部署生产环境后,发布后可以进行Appscan安全扫描。实现安全自动化扫描。

四、总结

  在每个安全流程环节中,把握好关键点,注重代码的细节,这样最后从开发到产品的上线,就能把安全漏洞的风险规避为最小。

原文地址:https://www.cnblogs.com/Shanghai-vame/p/9665255.html