渗透测试技术之识别图标指纹分析

现代浏览器提供了各种功能来改善和简化用户体验。其中一个特点是所谓的favicon:favicon是一个小标志(通常是16×16或32×32像素),由web浏览器使用,以可识别的方式标记网站。大多数浏览器通常在地址栏和书签列表中的页面名称旁边显示favicon。为了在他们的网站上提供favicon,开发者必须在网页的标题中包含一个属性。如果这个标记确实存在,浏览器将从预定源请求图标,如果服务器响应包含可以正确呈现的有效图标文件,浏览器将显示这个图标。在任何其他情况下,都会显示一个空白的favicon。


favicon文件必须易于浏览器访问。因此,它们被缓存在系统上的单独本地数据库中,称为favicon缓存。F-Cache数据项目包括访问URL(子域、域、路由、URL参数)、faviconID和生存时间。虽然这为网络开发者提供了使用各种图标来描述网站各个部分的能力,但也导致了可能的跟踪场景。当用户访问某个网站时,浏览器通过查找要求网页的快捷图标链接引用源来检查是否需要favicon。浏览器首先检查本地F-Cache中是否有包含活动网站URL的项目。如果有favicon项目,图标会从缓存中加载,然后显示出来。但是,如果没有项目,比如在这个特定的域下从来没有加载过favicon,或者缓存中的数据已经过期,浏览器会向服务器发出GET请求来加载网站的favicon。


威胁模型。这篇文章将介绍一个可能的威胁模型,它允许每个浏览器分配一个唯一的标识符,以便得出有关用户的结论,即使应用了反指纹措施,也能识别用户,比如使用VPN,删除Cookie,删除浏览器缓存,或者操作客户端标题信息等等。Web服务器可以判断是否加载了favicon,所以当浏览器要求网页时,如果favicon不在本地F-cache中,它会对favicon提出另一个要求。若图标已经存在于F-Cache中,则不会发送进一步的请求。结合浏览器特定URL路径的已传输状态和未传输状态,可将唯一的模式(标识号)分配给客户端。站点重新加载时,Web服务器可根据客户端发送的favicon丢失请求重建识别浏览器。


以下浏览器支持攻击场景(包括移动浏览器):关于Supercookie。Supercookie可以使用favicon为网站访问者分配唯一的识别符。与传统的用户跟踪技术不同,该识别符几乎可以永久存储,用户不能轻易删除或修改。值得注意的是,即使浏览器处于匿名模式,该跟踪技术也能正常工作,并且不能通过更新缓存、关闭浏览器、重启系统、使用VPN或安装AdBlockers来清除。

分享: