目录
随着DevOps的发展,企业应用迭代的速度得到了大幅提升。但同时,安全如果不能跟上步伐,不仅会抵消DevOps变革带来的提升,拖慢企业数字化转型进程,还会导致漏洞与风险不约而至。2012年,Gartner提出了DevSecOps的理念,将安全防护流程有机地融入传统的 DevOps 流程中,为研发安全提供强有力保证,安全工具是支撑研发阶段安全要求落地的重要保障。
安全测试的重要性
在Forrester 2020年发布的调查报告统计《The State Of Application Security, 2020》中显示,在 480家全球企业已经确认的外部攻击中,针对Web应用程序是位于首位,占比39%,攻击 Web 应用程序主要指基于程序的 SQL 注入、跨站脚本或者远程文件包含攻击。针对软件漏洞攻击占比30%,主要指对于安全漏洞的利用攻击。
安全测试方法
安全测试是 DevSecOps 实践的关键部分,软件程序经过各种方法的测试以保证质量。安全测试是一个专业领域,拥有自己的一套工具和实践,旨在暴露这些漏洞。
安全测试工具分为两类:自动化安全测试工具和手工安全测试。而自动化安全测试工具现在市场细分已经非常完善,有诸如SAST、SCA等等工具。手工安全测试一般则指的是渗透测试。
AST工具
1.SAST简介
超过50%的安全漏洞是由错误的编码产生的,开发人员一般安全开发意识和安全开发技能不足,更加关注业务功能的实现。想从源头上治理漏洞就需要制定代码检测机制。
SAST是一种白盒测试技术,通常在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。是在开发阶段对源代码进行安全测试发现安全漏洞的测试方案。
SAST一般优势:
①代码具有高度可视性,检测问题类型更丰富
②测试对象包括WEB应用程序、APP
③不需要用户界面(UI),漏洞发现更及时
SAST一般劣势:
①代码理解局限性、区分开发语言
②不能确定漏洞可利用性,漏洞分类不明确
③不能整合测试问题,集成系统的漏洞发现不了
2.DAST简介
DAST是一种黑盒测试技术,是目前应用最广泛、使用最简单的一种Web应用安全测试方法。在测试或运行阶段分析应用程序的动态运行状态。它模拟黑客行为对应用程序进行动态攻击,分析应用程序的反应,从而确定该Web应用是否易受攻击。
安全工程师常用的工具如AWVS、AppScan等就是基于DAST原理的产品。
通用实现流程:
DAST一般优势:
①攻击者视角,可发现大多数高风险问题
②无需源代码,测试对象范围较广
③支持当前的各类主流编程语言开发的应用、第三方组件、第三方框架
DAST一般劣势: