网站指纹识别这个工具, 是用来做检测的, 它通过HTTP响应头、前端资源特征、Cookie结构还有TLS指纹这些多个维度, 能够自动识别出网站上面所使用的技术栈, 这个技术栈里面包含了服务器、CMS、框架以及插件, 它是一个专门的检测工具。
目前主流的解决方案包含了 Wappalyzer, 同时还有BuiltWith与WhatCMS, 以及 FingerprintJS跟 Netcraft, 我们接下来要从识别能力这个维度出发, 再从部署方式的角度切入, 最后再结合适用场景方面来进行比较, 这样做是为了帮助大家辅助做出选型的决策。
主流工具对比
1. Wappalyzer
这项技术的识别能力是能够覆盖到数量超过7000种的技术标识, 并且它也支持浏览器扩展与Node.js SDK。
它的部署方式是选择通过开源渠道在GitHub上面进行操作, 既可以把它自己部署起来, 也可以把它当成一款插件去使用。
在需要开发调试, 或者是在开源项目集成, 以及进行批量技术审计的情况里, 它都能够被适用。
它的优势在于, 它是完全开源且免费的, 其次, 它的识别规则是透明的, 最后, 它的识别规则还可以自定义。
2. BuiltWith
识别能力的方面, 除了技术栈之外, 还包括广告平台、营销工具以及SSL证书的信息。
它的部署方式是这样的, 既提供了SaaS在线查询的功能, 也提供了API接口, 而该API接口的使用是需要支付费用的, 这是付费的。
它适用的地方有做竞争对手的情况分析, 还有对供应商进行安全方面的评估工作, 以及针对客户进行的技术调研活动。
在优势这方面, 数据涉及的维度比较广泛, 而且报告表现得很直观, 还支持批量URL查询。
3. WhatCMS
在识别能力方面, 我们要做到对CMS进行专注性的识别工作, 这里所说的CMS指的是类似于WordPress、Drupal和Joomla这样的系统, 同时也会涉及到对部分开发框架的情况做一下辅助的判断。
这种部署方式是采用SaaS服务来进行线上查询操作的。
在适用的场景里, 可以快速地做出判断, 看看到底这个网站用的是哪个内容管理系统。
这个系统的优势在于, CMS识别准确率较高这一点是明显的, 同时操作门槛低也是其特点之一。
4. FingerprintJS
所谓的识别能力这一块, 在浏览器端, 主要是靠去采集指纹信息, 比如Canvas、WebGL、字体、时区这些要素, 其侧重点在于对客户端环境的一个分析与确认。
部署的方式是选择JavaScript SDK, 然后, 把该SDK嵌入到目标页面里面。
这个技术可以应用到那些需要进行反欺诈、设备身份识别, 还有把多个终端上的同一个用户关联起来的具体场景里面。
必须注意, 和那种针对服务器端的技术栈进行分析和定位的做法是完全不同的, 它主要是用来适用在客户端这种特定的场景里面的。
5. Netcraft
在识别能力这个方面, 我们拥有了全球范围内的 HTTP 服务器的普查数据, 并且支持使用者按照技术这个维度、地区这个维度或者是行业这个维度进行筛选操作。
在这一点方面, 我们所采取的部署方式是SaaS模式以及批量报告这样的组合方式。
适用的具体场景, 可以是对安全威胁情报的一些处理操作, 还可以是关于供应链技术暴露面评估的工作内容。
这其中的优势, 在于数据规模的庞大, 同时也体现在历史积累的深厚程度上面。
选型核心标准
在您打算去挑选那个工具之前呢, 你得先把下面的这些个参数给明确下来。
1. 识别维度: 如果是关于技术栈的情况, 那么就使用Wappalyzer这个工具;如果是涉及到商业信息的时候, 就会用到BuiltWith这种方案;至于说客户端指纹的获取方式的话, 则是指向了FingerprintJS这一手段。
2. 部署方式需要被搞清楚, 如果你选择的是离线运行或者是自己来安排部署这些程序的话, 就应当去选用那些开源类型的解决手段, 反之而言, 若是你期待能实现快速查询这一功能并且依赖于在线的服务模式, 那么就应该去采用SaaS这种形式。
3. 批量能力这个部分, 需要搞清楚的事情是, 它到底支不支持通过API来实施批量的调用操作, 以及在这种情况下的并发上限具体能够到达什么程度。
4. 在那些技术迭代速度相当快的应用场景里, 用户需要做出选择, 而这个选择应该是更新周期比较短的相关工具, 这主要是因为数据更新的频率在这里显得格外重要。
5. 合规约束这个概念大家需要特别注意, 当涉及到批量进行数据抓取的时候, 必须去确认目标网站当中的robots.txt文件的内容要求, 还要看清楚当地法律的相关规定和要求有哪些。
使用场景与注意事项
安全评估: 针对自身的网站执行指纹扫描, 把非必要的技术暴露问题排查干净, 比如说像是 X-Powered-By 版本头。
竞品调研这个事情, 是需要定期的去把竞争对手那边的技术迁移的情况给找出来并且认清楚, 然后来判断到底应该用什么样的一个节奏来进行升级。
关于供应链安全, 我们需要对供应商的网站进行技术暴露面的评估, 以此来定位目前已知的CVE漏洞所影响的具体范围。
关于这个需要留意的事项, 指纹识别出来的结果会受到CDN的影响, 也会受到缓存的影响, 还会受到中间件的影响, 所以建议大家针对同一网址在不同的时间点上去重复进行检测, 以此来排除可能存在的偏差。
在开始批量扫描之前, 必须遵守目标网站的服务条款以及速度限制,否则的话很容易就会触发反爬机制或者产生法律方面的风险。


