随著 Web 发展的日益成熟,人们开始进入「数字化生存」时代。网上银行、电子商务、个人空间、云存储等不断涌入生活,Web 应用安全问题也日益凸显。

根据 Gartner 的调查,信息安全攻击有75%都是发生在 Web 应用而非网路层面上。同时,OWASP 发布的数据也显示,三分之二的 Web 站点都相当脆弱,易受攻击。

对 Web 应用的安全性进行手工测试和审计是一项复杂且耗时的工作,对于安全运维人员来说,基于安全的管理占用大量工作时间。自动化的 Web 漏洞扫描器能够大幅简化针对安全隐患的检测工作,有助于安全运维人员将精力转向如何处理安全风险上来。

Web 漏洞扫描器

一般来讲,Web 漏洞扫描器是基于 URL 的漏洞扫描工具,在工作时需要解决采集和核心检测两个关键问题:

如何采集输入源(即采集网站 URL)

如何调用扫描插件(即对 URL 进行扫描)

怎样去评价一个扫描器的好坏?首先要关注的就是:收集的 URL 够不够全面?资产搜集不全,检测准确率就无从谈起。

发现率低下 传统爬虫的技术之觞

在 Web 漏扫中,采集输入源的方式一般包括爬虫、流量、代理和日志,其中爬虫是获取扫描网站 URL 最常见的、不可或缺的一种主动采集模式。

Web 漏洞扫描器的爬虫面临著比其他网路爬虫更高的技术挑战,这是因为漏洞扫描器的爬虫不仅仅需要爬取网页内容、分析链接信息,还需要尽可能多的触发网页上的各种事件,从而获取更多的有效链接信息。

然而,现有的爬虫受限于其在技术上的先天不足,给使用 Web 漏洞扫描工具的安全运维人员造成了诸多困扰:

1、 极易触发 WAF 设置的 IP 访问上限

通常情况下,网站的防火墙会对某个固定 IP 在某段时间内请求的次数做限制,如果没有超过上限则正常返回数据,超过了,则拒绝请求。值得说明的是,IP限制大多数时候是出于网站安全原因针对 DOS 攻击的防御措施,而不是专门针对爬虫的。但是传统爬虫工作时,机器和 IP 有限,很容易达到 WAF 设置的 IP 上限而导致请求被拒绝。

2、 无法自动处理网页中的交互问题

Web 2.0 时代,Web 应用与用户交互十分频繁,给漏扫爬虫造成了干扰。以输入验证码登录为例,网站将一串随机产生的数字或符号,生成一幅图片, 图片里加上一些干扰像素(防止 OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。传统爬虫在遇到这种情况时,通常难以自动处理。

3、 无法全面爬取 JavaScript 解析的网页

JavaScript 框架的诞生是研发工程师在效率至上时代的一大福音,工程师们得以摆脱了开发与维护之苦。毋庸置疑,Angular、React、Vue 等单页应用的 Web 框架成了开发者的首选,JavaScript 解析的网页日益普及,所以网页中大多数有用的数据都是通过 ajax/fetch 动态获取后然后再由js填充到网页 DOM 树中,单纯的 HTML 静态页面中有用的数据很少,这也直接导致了 Web 漏扫爬虫的爬取不全面问题。

传统爬虫与聚焦爬虫

纵观市面上常用的漏洞扫描产品,所使用的爬虫通常包含以下两类,即传统爬虫和聚焦爬虫:

传统爬虫

它的工作流程是从一个或若干初始网页的 URL 开始,获得初始网页上的 URL,在抓取网页的过程中,不断从当前页面上抽取新的 URL 放入队列,直到满足系统设置的一系列停止条件,爬取操作停止。

传统爬虫流程图

聚焦爬虫

聚焦爬虫的工作流程比传统爬虫复杂,需要根据一定的网页分析演算法过滤与扫描目标无关的 URL,保留有用的 URL,并将其放入等待抓取的 URL 队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页 URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;所以一个完整的聚焦爬虫一般会包含如下三个模块:网路请求模块、爬取流程式控制制模块、内容分析提取模块。

然而,无论是传统爬虫还是聚焦爬虫,因其技术上的先天不足,导致在采集网站 URL 时均存在无法自动处理网页交互、JavaScript 解析以及极易触发外界 WAF 防御措施限制等问题。

洞鉴(X-Ray)创新技术提高爬虫发现率

洞鉴(X-Ray)安全评估系统针对目前用户遇到的漏扫爬虫采集目标URL不全的问题,创造性地提出了基于语义分析、机器学习技术和高模拟实时渲染 DOM 遍历演算法的「新型爬虫」:

1、 创新加入 js 语义分析演算法 避免 IP 访问超限

对于传统网站,在聚焦爬虫的基础上,长亭科技创新采用 js 语义分析演算法,针对 WAF 对 DOS 攻击采取的 IP 访问限制防御措施,洞鉴(X-Ray)爬虫会在本地对 JS 文件进行分析,从理解语义的基础上来解析网站结构,不会疯狂触发请求,从而避免了因超过 IP 访问限制,而被拒绝访问的情况发生。

洞鉴(X-Ray)聚焦爬虫的流程原理图

2、 通过机器学习技术,实现交互行为分析

对於单页应用网站,洞鉴(X-Ray)内嵌了模拟浏览器爬虫。通过运用机器学习技术,洞鉴(X-Ray)的模拟浏览器爬虫以各类 Web 应用页面结构作为训练样本,在访问每个页面时,可以智能地判断各种交互操作,其判断逻辑大概是这样的:

判断是表单输入、点击事件等行为;

自动判断表单输入框该填入什么内容,用户名、密码、IP 地址等,然后将相应的内容样本填入;自动触发点击事件,从而成功发起请求

3、 高模拟实时渲染 DOM 遍历演算法 完美解决 JavaScript 解析

针对采用 JavaScript 解析的单页Web应用,洞鉴(X-Ray)模拟浏览器创新引入高模拟实时渲染 DOM 遍历演算法,在这种演算法引擎的驱动下,可以完美解析 Angular、React、Vue 等 Web 框架实现的单页应用网站,对 Web 页面中所有内容进行操作,达到全面获取目标网站 URL 信息的目的,其判断逻辑如下:

查找网页的 DOM 节点,形成 DOM 树;

内置浏览器,从深度和广度两个层面,高模拟的对网页遍历 DOM 树;真实浏览器画面,实时渲染 DOM 树的遍历过程

在机器学习技术和高模拟实时渲染 DOM 遍历演算法的驱动下,洞鉴(X-Ray)模拟浏览器爬虫智能模拟人的行为,自动进行单击、双击、拖拽等操作,从而避免了传统爬虫在 URL 获取时无法满足交互和无法应对 JavaScript 解析等问题。

下面以访问 DVWA 为例,展示模拟浏览器的行为

视频封面

00:35dvwa浏览器点击

以网上银行、电子商务、云存储等 Web 应用为代表的 Web 3.0 时代已经来临,洞鉴(X-Ray)安全评估系统蓄势待发,你,准备好了吗?


推荐阅读:
相关文章