配置网络爬取

InsightVM 可以爬取网站以发现其目录结构、默认目录、其服务器上的文件和应用程序、断开的链接、不可访问的链接和其他信息。

然后本应用程序会分析此数据,寻找安全漏洞的证据,如 SQL 注入、跨站点脚本编制 (CSS/XSS)、备份脚本文件、可读取 CGI 脚本、不安全密码使用和由于软件缺陷或配置错误造成的其他问题。

一些内置扫描模板默认使用网络爬取

您可以调整这些模板里的设置。您亦可以配置自定义模板中的网络爬取设置。爬虫会检查每个网页内的链接,确认哪些页面已被扫描。在许多网站中,还没有被扫描的页面会在地址栏中显示一个后面带有参数定向链接的基准 URL。

例如,在地址 www.exampleinc.com/index.html?id=6 中,?id=6 参数可能指应被发送到浏览器的内容。如果您启用了此设置以加入查询字符串,则爬虫将根据已被检索的 URL 页面检查完全字符串 www.exampleinc.com/index.html?id=6,从而查看此页面是否已被分析。

如果您不启用此设置,则爬虫将只会检查无 ?id=6 参数的基准 URL。

为了能访问网站进行扫描,本应用程序会以流行网页浏览器的身份出现在网络服务器应用程序面前。通过像浏览器一样向服务器发送一个网页请求即可实现此目的。请求包括被称为头的信息片段。其中一个头叫做用户代理,它定义了一个用户浏览器的特征,如版本号和它支持的网络应用技术。用户代理将本应用程序以一个特定浏览器的身份展示给网站,因为一些网站会拒绝它们不支持浏览器的 HTTP 请求。默认的用户代理字符串将本应用程序以 Internet Explorer 7 的身份展示给目标网站。

网络爬取的配置步骤和选项

配置网络爬虫的一般设置

  1. 进入扫描模板配置面板的网络爬取页面。
  2. 选择启用网络爬取的复选框。

注意: 在网络爬取复选框中加入查询字符串会引起爬虫向网络服务器发出更多请求。这会增加整体扫描时间,可能影响正当用户的网络服务器性能。

  1. 根据需要在爬取时选择正确的复选框加入查询字符串。
  2. 如果您想使用爬虫去测试在单独扫描中是否存在持续的跨站点脚本编制,则选择此选项的复选框。

这个测试会帮助减少通过保存在网络服务器的恶意代码而带来的危险攻击的风险。启用此功能可能会增加网络爬虫扫描时间。

注意:  修改默认用户代理设置可能会改变本应用程序接收自网站的内容。

  1. 如果您想修改默认值,则在浏览器 ID用户代理字段输入一个新值。

如果您不确定输入什么用户代理字符串,请咨询您的网站开发者。

  1. 根据需要选择检查常用用户名和密码使用的选项。本应用程序会报告这些凭证的使用为漏洞。这是不安全的操作,因为攻击者可轻易猜到它们。启用此设置后,本应用程序会通过向已发现的认证表单提交常用用户名和密码从而尝试登录网络应用。多次登录尝试可能造成认证服务器封锁这些凭证的账户。

可选启用网络爬虫以检查凭证的强弱程度

网络爬虫在扫描中发现登录表单,可以确定任何这些表单是否接受常用的用户名或密码,而对利用此操作的自动攻击者来说,它们是可入侵的。为执行此检查,网络爬虫尝试通过常用凭证登录这些表单。任何成功的尝试均算作一个漏洞。

注意:  此项检查可能引起带有某些安全政策的认证服务封锁使用这些常用凭证的账户。

  1. 进入网络爬取配置页面的凭证强弱检查,选择标记为检查使用常用用户名和密码的复选框。

配置网络爬虫性能设置

  1. 输入一个待解析的最大外部主机数值,或保持默认值 100 不变。

此选项系设置爬虫可能解析的独特主机的最大数值。由于包括频繁的交联检查,所以此功能会大量地增加爬取进程的用时,尤其是大型网站。可接受的主机范围是 1 到 500。

  1. 爬虫响应超时字段,以毫秒为单位输入一个等待目标网络服务器响应的时间。您可以输入 1 到 3600000 毫秒1 小时之间的值。默认值为 120000 毫秒2 分钟。网络爬虫将根据爬虫请求最大重试值字段中指定的值而重试请求。
  2. 在标记为爬虫最高目录级别的文本字段内输入一个数值,设置网络爬取的目录深度限制。

限制目录深度尤其对于大型网站来说会节省大量时间。对于无限制的目录遍历,在字段中输入 0。默认值为 6。

注意: 如果您在一个时间限制内运行循环预定的扫描,那么目标站点的一些部分可能在时间限制的最后阶段仍未被扫描。后续的扫描不会从网络爬虫丢下的部分开始,所以有可能目标网站从没有被完整地扫描过。

  1. 最大爬取时间分钟字段输入一个数值,设置扫描每个网站的最大分钟数值。

时间限制将阻止扫描花费比分配的扫描任务时间窗更久,尤其对于大型目标网站。如果您保持默认值 0,那么将没有适用的时间限制。可接受的范围是 1 到 500。

  1. 爬取最多页数字段中输入一个数值,限制爬虫请求的页面数值。

这是大型网站节省时间的一个方法。可接受的范围是 1 到 1,000,000 页。

注意:  如果您同时设置了一个时间限制和页数限制,那么网络爬虫将在达到首个限制时停止扫描目标网站。

  1. 爬虫请求最大重试数字段内输入失败后重试请求的次数。可输入值的范围为 0 至 100。输入值 0 表示不重试失败的请求。默认值为 2 次重试。

配置正则表达式相关的网络爬虫设置

  1. 输入敏感数据字段名称的一个正则表达式,或保持默认的字符串。

本应用程序会把被指定为敏感的字段名称报告为漏洞表单行动提交未加密的敏感数据。任何对正则表达式的匹配均将被视为敏感数据字段名称。

  1. 针对敏感内容输入一个正则表达式。本应用程序会把被指定为敏感的字符串报告为漏洞。如果您保持字段空白,那么它不会搜索敏感字符串。

配置目录路径相关的网络爬虫设置

  1. 选择复选框以指示爬虫遵守 robots.txt 协议设定的标准。

Robots.txt 是一种约定,阻止爬虫和其他网络机器人访问所有或部分在其他情况下对公众可视的网站。

注意: 任何已包括的引导路径的扫描覆盖均受您在网络爬虫配置中所设的时间和页数限制。如果在扫描引导路径前扫描达到了指定时间或页数限制,那么它将不会扫描这些路径。

  1. 如果您希望爬虫包括未从主网站 URL 链接的应用程序的 URL,则在引导路径字段输入这些应用程序的基准 URL 路径。

例如/myapp.以逗号分开多个输入词条。如果您保持此字段空白,则爬虫不会在扫描中加入引导路径。

  1. 已排除路径字段输入待排除的基准 URL 路径。以逗号分开多个输入词条。

如果您指定排除的路径,则本应用程序不会尝试爬取这些 URL 或发现与其相关的任何漏洞或文件。如果您保持此字段空白,则爬虫不会从扫描中排除任何路径。

按需要配置任何其他扫描模板设置。在完成配置扫描模板后,点击保存

微调网络爬取

网络爬虫爬取网络服务器以确认网站的完整布局。这是十分详尽的过程,对保护网站来说极具价值。大多数应用程序漏洞测试依靠网络爬取。

InsightVM 使用爬虫数据评估自定义网络应用程序的常见问题,如 SQL 注入、跨站点脚本编制 (CSS/XSS)、备份脚本文件、可读 CGI 脚本、不安全使用密码以及因定制软件缺陷或配置错误而产生的许多其他问题。

在默认情况下,网络爬虫使用三个线程和一个 20 毫秒的每次请求延迟爬取一个站点。它生成的通信量取决于已发现、链接站点的内容量。如果您正在多处理器的系统运行本应用程序,则针对每个处理器增加三个爬虫线程。

一次完整的网络爬虫对托管 500 页的响应服务器的扫描时间将略低于 90 秒,前提是目标资产可以每 150 毫秒平均处理一个页面。对托管 10,000 页面的同一服务器的扫描将花费大约 28 分钟。

当您为网络爬取配置扫描模板时,要输入最大目录或深度数值以及每个网站待爬取的最大页面数值。这些数值可以限制网络爬取花费的时间。在默认情况下,爬虫会忽视跨站点链接并只会停留在其扫描的端点上。

如果您的资产清单不包括网站,则务必关闭此功能。它会非常耗时。