关于绿盟科技

智慧安全2.0

【产品】深入探析交互式扫描技术

时间:2017-02-08 来源: 作者: 打印 字号:T|T

一、概述

 

近年来,Web应用系统已广泛应用于政府、企业、个人等各个领域,与此同时,Web应用系统也因其互联、开放等特性,频繁遭受黑客攻击。Web安全事件给企业形象、甚至核心业务造成严重的破坏,导致企业及机构的形象受损和公信力的下降。若能够主动的发现网站的风险隐患,并及时采取修补措施,则可以降低风险、减少损失。随之而诞生Web漏洞扫描产品,目前市场上常见的Web漏洞扫描技术分为静态扫描、动态扫描两种类型。静态扫描采用的是静态应用安全测试(SAST)技术,而动态扫描则采用动态应用安全测试(DAST)技术。


1.1 静态扫描技术

 

静态扫描技术即通常所说的白盒测试技术,其并不运行被测试程序本身,仅通过分析、检查应用程序源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。对于逻辑性漏洞则无法检测,且误报较多,可能检测出的漏洞仅仅是个Bug


1.2动态扫描技术

 

动态扫描(DAST)技术也就是我们常说的黑盒测试技术,其在应用程序运行状态模拟黑客行为对程序进行动态测试,通过检测WEB应用和服务的动态行为发现应用程序中的安全漏洞。对未暴露但存在漏洞的接口,或者爬虫无法爬取到的接口则无法检测出漏洞。


 
       综上所述,不管是静态扫描还是动态扫描,因为其误报较多、检测率较低的问题,始终无法帮助企业全面、准确的发现Web应用安全漏洞。在2014Gartner公布的十大信息安全技术中,一种新型Web应用漏洞扫描技术出现在其中即交互式应用程序安全测试(IAST)技术。交互式扫描技术相当于是静态扫描与动态扫描互相结合的一种Web应用程序运行时安全扫描技术。

 


二、交互式扫描(IAST)技术

 

2.1 简述 
  

       交互式扫描技术是一种实时动态交互的漏洞检测技术,通过在服务端部署Agent程序,收集、监控Web应用程序运行时函数执行、数据传输,并与扫描器端进行实时交互,高效、准确的识别安全缺陷及漏洞,同时可准确确定漏洞所在的代码文件、行数、函数及参数。 IAST相当于是DASTSAST结合的一种互相关联运行时安全检测技术。


2.2 IAST技术架构 

 

       IAST技术被提出后,绿盟科技就开始研究开发新一代的安全检测技术,即WVSS交互式扫描技术。利用WVSS交互式扫描功能,可以在兼顾传统黑盒漏洞扫描的同时,监控并分析Web应用程序运行时所执行的代码,准确的发现漏洞并报告出漏洞的详细信息。



 

 

1:交互式扫描技术架构


 

       可以看出,除了在WVSS中增加了IAST功能模块,还增加了与扫描器交互的Agent模块,Agent主要功能是信息收集,监控、分析Web应用程序运行时所执行的代码,对常见的Web安全漏洞(sql注入漏洞、代码注入、命令执行、文件包含等)进行检测并将详细的漏洞信息返回给扫描器端,包括漏洞所在的函数、程序文件名、所在行号以及触发漏洞的具体参数。接下来详细介绍Agent所做的工作。

 


2.3 Agent功能

 

 

针对不同的服务器、Web Server和不同语言类型的Web程序,IAST Agent所做的工作也不同。一般Agent要做的工作如下:

访问Web应用程序源代码

获取网站配置文件信息

站点目录结构、文件列表爬取

监控HTTP请求数据、跟踪扫描器模拟攻击Payload

与扫描器进行交互

监控数据库查询、文件创建、系统命令等关函数作运行时执行操作

Web服务器日志

 

 

2.4 典型应用场景

 

Web 应用程序通常使用外部的数据库来存储信息,通过部署Agent在服务端,交互式扫描技术可以监控数据库查询等语句的执行,进而检测是否存在sql注入漏洞,如下示例代码:

 


  

2: sql注入示例代码 
  

       在上述PHP示例代码中,参数bookname未进行任何过滤及处理就拼接到sql查询语句中,导致sql注入漏洞。在Agent成功部署后,模拟扫描器发送sql注入检测请求,如下: 
  

http://10.65.10.195/iast/index.php?bookname=1WISSTART’”elqZV’WISEND


 

       IAST Agent会对sql查询函数进行监控,在检测到mysql_query函数执行时其参数中注入了WVSS 预定义的特征及引号,即可判断其未对参数进行过滤处理而存在sql注入漏洞,并报出漏洞详细信息,包括数据库类型、存在注入的程序文件名、漏洞触发函数、所在行号及参数值。



   

3: IAST应用场景-sql注入检测 

 

       交互式扫描技术相比传统黑盒测试技术的优势是,对于sql执行错误或者结果信息不显示在响应消息中时,传统的黑盒测试技术是不能检测出当前存在的sql注入漏洞,而交互式扫描却可以检测出这类漏洞。对于代码注入、命令执行、文件包含等漏洞检测也是如此。

 

三、WVSS交互式扫描功能介绍

 


 3.1 使用介绍

 

使用WVSS新建扫描任务时,在高级选项中选择开启IAST扫描选项,并在任务配置页面设置数据交互密码,下载Agent并在扫描目标站点部署Agent端。鉴于篇幅,更多关于交互式扫描功能介绍请关注WVSS产品交互式扫描模块介绍、及使用说明。



 

 

4:IAST Agent配置

 

3.2 漏洞报告展示

 

WVSS在启用交互式扫描(IAST)功能时,由IAST检测出的漏洞报告详情中会报出存在漏洞的源文件名称,并给出具体的行号以及执行的sql语句等详细信息,如图:



5: WVSS 交互式扫描展示

 

3.3 准确性对比

  

这里以sql注入漏洞测试站点的扫描结果进行对比分析,在添加了IAST交互式功能之后,爬取的链接明显增多,漏洞检测率增加近40%sql的漏报率降低近30%

 

  

6: sql注入准确性对比结果

 

 

四、总结

 

交互式扫描技术是一项前沿的漏洞检测技术,它综合了黑盒、白盒检测的优点,可以发现比传统的Web应用程序扫描器更多的安全漏洞,而且产生误报少。此外,交互式扫描可以清楚的告诉你漏洞代码的具体位置,非常便于开发人员快速确定漏洞产生原因并进行修复。目前我们已经将交互式扫描技术初步实现并应用到WVSS产品中。使的WVSS成为国内第一款支持交互式扫描技术的WEB应用漏洞扫描产品。保持绿盟科技Web漏洞扫描技术在国内的领先地位。鉴于笔者经验有限,文中若有不妥之处,欢迎来信交流。