为了发现软件的漏洞和缺陷,确保Web应用程序在交付之前和交付之后都是安全的,就需要利用Web应用安全测试技术识别Web应用程序中架构的薄弱点和漏洞,并且必须赶在网络黑客找到和利用它们之前。
Web应用安全测试技术经过多年的发展,目前业界常用的技术主要分为3大类别。
DAST:
动态应用程序安全测试(Dynamic Application Security Testing)技术在测试或运行阶段分析应用程序的动态运行状态。它模拟黑客行为对应用程序进行动态攻击,分析应用程序的反应,从而确定该Web应用是否易受攻击。
DAST是一种黑盒测试技术,是目前应用最广泛、使用最简单的一种Web应用安全测试方法,安全工程师常用的工具如AWVS、AppScan等就是基于DAST原理的产品。
SAST:
静态应用程序安全测试(Static Application Security Testing)技术通常在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。
超过50%的安全漏洞是由错误的编码产生的,开发人员一般安全开发意识和安全开发技能不足,更加关注业务功能的实现。想从源头上治理漏洞就需要制定代码检测机制,SAST是一种在开发阶段对源代码进行安全测试发现安全漏洞的测试方案。
IAST:
交互式应用程序安全测试(Interactive Application Security Testing)是2012年Gartner公司提出的一种新的应用程序安全测试方案,通过代理、VPN或者在服务端部署Agent程序,收集、监控Web应用程序运行时函数执行、数据传输,并与扫描器端进行实时交互,高效、准确的识别安全缺陷及漏洞,同时可准确确定漏洞所在的代码文件、行数、函数及参数。IAST相当于是DAST和SAST结合的一种互相关联运行时安全检测技术。
IAST交互式应用安全测试技术是最近几年比较火热的应用安全测试新技术,曾被Gartner咨询公司列为网络安全领域的Top 10技术之一。IAST融合了DAST和SAST的优势,漏洞检出率极高、误报率极低,同时可以定位到API接口和代码片段。