新型爬虫如何重构“网站URL采集”这件小事?(内附视频演示)

来源:未知

点击:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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