这是一款面向安全运营人员、网站管理员及开发者的技术检测工具, 它叫做网站指纹识别工具。这个工具的功能是自动识别目标网站所使用的服务器类型, 以及CMS系统, 还有后端框架, 还包括前端组件和第三方插件等全链路技术指纹。

然后它会输出一个结构化的识别报告, 这个报告能为安全评估、技术选型与竞品分析提供可量化、可追溯的数据支撑。

核心的识别层面会去覆盖这四个具体的部分。

首先是服务器这一个层, 这里是要去把Web服务器的具体类型给弄明白, 还有版本是多少, 比如说是Nginx、Apache或者是IIS这些情况, 同时还会去看清楚CDN节点到底是属于哪里的, 以及TLS的证书指纹是什么样子的, 当然HTTP响应头里的一些特征也要进行识别。

然后呢是应用这一层, 在这个层面上, 是要去识别出使用的是什么样的CMS系统, 例如WordPress、Drupal或者Joomla等等, 还有后端用的框架是什么, 像Laravel、Spring Boot、Django这些都包括在内, 主编程语言也要被确定下来。

再往下就是前端这层了, 这里是要认出前端用的是哪个框架, 比如React、Vue还是Angular, 构建工具方面要看看是不是Webpack或者Vite之类的, 除了这些还要看UI组件库的情况, 还有页面里面嵌入的第三方SDK有哪些, 这些SDK包括用来做统计的、支付的以及广告脚本等。

最后是网络这一层, 在这里就是要去识别DNS解析记录的具体情况, 看清楚IP到底归属于哪里, 并且要把ASN信息给找出来, 同时还要列出开放的那些端口都有哪些。

该工具选择将被动分析与主动探测这两个步骤结合在一起, 以此作为它本身要走的技术路线。

在被动分析这个阶段, 要采集目标页面的HTML源码, 还有HTTP响应头、Cookie属性、JavaScript资源指纹以及CSS文件特征, 在主动探测这个阶段的动作是向目标发送特定请求, 这其中包含试探性的404路径、差异化的User-Agent以及TLS Client Hello指纹比对的事情, 最后是根据响应差异来判定技术组件版本。

整个识别的过程是不注入所谓的恶意代码的, 也是不会去触发那个目标服务器的入侵检测告警行为的, 这种行为是符合非侵入式安全检测的所谓原则的。

网站指纹识别工具:一键识别网站技术栈与指纹信息(图1)

典型的实际使用办法是下面这样的。首先是安全运营团队, 他们可以去批量检查企业里面的IT设备资产。这些设备上正在使用的比较老的一套软件组件, 是不太安全的。他们会把这种检查和已知的漏洞清单联系起来。目的是找到那些存在危险的高风险版本。

接着, 技术审计人员可以做别的事情。他们对合作伙伴或者供应商那边的技术基础进行评估。评估的内容包含是不是符合规定要求,以及以后好不好维护。再有网站指纹识别工具, 是市场和产品团队的成员。他们可以快速确定竞争对手用的是什么样的内容管理系统。

这些人也会去看对方用了哪些插件, 还有什么前端性能优化的好办法。最后, 开发团队可以做一个参考。他们把那些行业里的标杆网站作为对象。他们会去看这些网站用的架构是什么样的, 还会看他们的工程化操作是怎么做的, 以此作为自己技术方面的参考例子。

使用要点包括一些内容, 具体来讲, 识别结果依赖于目标站点对外公开暴露的技术信息, 如果站点经过深度混淆处理, 又或者进行了自定义编译操作, 还或者受到WAF强防护的覆盖, 那么识别置信度就会大幅度下降, 这时候建议结合人工复核来加以确认。

在实施批量扫描的过程中, 必须对并发频率与请求间隔进行严格控制, 这样做是为了避免对目标站点产生异常访问压力。识别报告应当被视为安全决策参考依据中的一个组成部分, 绝对不能把它当作唯一的判定标准, 因为任何涉及重大的安全结论都必须通过多维度交叉验证才能得到最终确认。

关于大家比较关心的常见疑问, 能不能识别那些部署在私有环境之中的定制化系统? 其实是可以实现部分识别的。这个工具主要会去提取那些公开暴露出来的技术特征, 具体来说包括响应头信息、Cookie所在的域名范围, 还有JavaScript资源文件的路径结构等情况。

但是对于那些完全封闭在内部的私有协议, 它是没有办法进行有效识别的。最终出具的报告里面, 会非常明确地把每一项识别内容的置信度等级都标注出来。那么最后再问一下,这样出来的识别报告是不是具备法律效力?

这个报告是技术分析数据网站指纹识别工具, 它可以作为安全评估的支撑材料, 但是它并不构成在法律意义上被称为鉴定结论的东西。如果你要涉及到法律程序, 那么建议你委托那些具备司法鉴定资质的机构, 让他们来出具一个正式的报告。

阜新市自然资源事务服务中心

用户可以通过访问gname.xin这个网址来进入在线识别控制台, 该功能支持对单个站点进行快速扫描, 并且还能够实现批量资产指纹比对, 得到的识别结果可以导出成结构化JSON格式和PDF格式这两种形式, 这样方便团队用来归档资料, 同时也便于跨部门进行信息共享。