Web应用程序和REST API可能容易受到传统HTTP请求-响应交互无法检测到的某些类型的漏洞的影响。这些带外漏洞很难找到,但为攻击者提供了一种方法,可以攻击原本无法访问的内部系统。攻击者可能会利用此优势。
自2019年以来的一个例子是针对一家大型美国银行的广为流传的数据泄露事件,其中攻击的关键因素是利用服务器端请求伪造(SSRF)漏洞。使用SSRF,易受攻击的应用程序(或API)本质上用作对内部应用程序,云服务或其他受保护系统的攻击的代理。易受攻击的应用程序将攻击者提供的数据合并到发送到内部/受保护系统的请求或消息中。由于该请求或消息来自受信任的来源,因此被认为是安全的。
外部传感器是动态扫描仪识别这些类型的带外漏洞的有用技术。在成功执行扫描程序的有效负载后,外部传感器可以捕获易受攻击的应用程序发送的信息。有时将这种技术称为带外应用程序安全性测试或OAST。
什么是Qualys潜望镜?
Qualys Web应用程序扫描(WAS)是我们领先的动态应用程序安全测试(DAST)产品。Periscope是Qualys WAS中的一种新的带外漏洞检测机制。借助Periscope,外部传感器可以捕获和处理由易受攻击的应用程序或API生成的DNS查找请求,从而使WAS能够检测并报告新的漏洞类别。
使用Periscope检测到的当前漏洞列表为:
- QID 150179 –盲XXE注射
- QID 150255 – SMTP标头注入
- QID 150258 –服务器端请求伪造(SSRF)
- QID 150267 – Oracle WebLogic中的RCE漏洞(CVE-2019-2725)
- QID 150279 – Atlassian Jira中的SSRF漏洞(CVE-2019-8451)
这些新的QID默认作为WAS中核心检测范围的一部分启用。将来,我们希望增加更多利用这种外部传感器方法的漏洞检测。
Qualys潜望镜如何工作?
Periscope包括一个外部传感器,可捕获易受攻击的应用程序生成的DNS查找请求。具有漏洞的已扫描Web应用程序将针对特定漏洞类型执行扫描程序发送的有效负载。有效负载执行触发外部DNS查找请求,其中请求的源是应用程序本身。Qualys Periscope通过捕获和分析此传入DNS请求来发挥作用。其工作是分解嵌入在请求中的数据,以了解识别出哪种类型的漏洞,哪种扫描触发了请求以及用作注入点的特定URL和参数。此外,它将有关漏洞的相关信息发送到WAS,WAS随后报告适当的QID。
检测机制包括以下步骤:
- 当Qualys WAS扫描Web应用程序中是否存在带外漏洞时,它将使用特制的有效负载对字段进行模糊处理/注入。不同的有效载荷用于不同的漏洞类型。在此示例中,WAS正在扫描位于“ www.example.com”的Web应用程序。想象一下,此Web应用程序包含显示从特定URL检索的图像的功能。为了测试SSRF,扫描仪将发送与以下请求类似的请求。在这里,我们看到被模糊处理的字段是“ url”查询字符串参数,而特定的有效负载用于SSRF。
- 如果扫描的Web应用程序容易受到攻击,它将尝试发出以下HTTP请求,但首先必须解析有效载荷中提到的具有qualysperiscope.com域的FQDN。
http://2a3b948a2b0a.1463985_40627.1466122137.ssrf01.ssrf.in03.qualysperiscope.com
- 现在,作为DNS解析过程的一部分,该请求将进入Qualys Periscope的DNS服务。DNS服务最初处理请求以验证请求中嵌入的哈希值是否有效。这样可以确保查找请求是真实的,并且是从WAS扫描生成的。验证所有内容后,Periscope将在内部记录请求。如果验证失败,则仅丢弃该请求。
- 随后,Qualys WAS将请求Periscope的查找请求数据以及扫描ID和哈希值。Periscope再次验证哈希并提供与该扫描ID(如果存在)相对应的外部请求数据。
从Periscope接收的数据采用JSON,如下所示:
{
“ lookup”:“ A-record”
“ request”:“ 2a3b948a2b0a.1463985_40627.1466122137.ssrf01.ssrf.in03.qualysperiscope.com”,
}