JavaScript模板攻击暴露了新的浏览器指纹向量
学者们已经提出了一种新的技术,可以泄露用户浏览器的数据;足以克服反指纹系统和保护隐私的浏览器扩展,提供通过浏览器和底层平台识别用户的方法,这是以前从未做到过的。
这种名为“JavaScript模板攻击”的新技术围绕JavaScript属性的概念和浏览器引擎返回的用于查找某个属性值的基本JavaScript查询的默认值。
这三位来自奥地利格拉茨科技大学的研究人员创建了一个系统,可以从用户的环境中自动查询和收集数千个JavaScript属性及其默认值。
其基本思想是自动化这些查询,然后旋转浏览器、操作系统、硬件平台和浏览器扩展,为每个环境/安装收集所有已知JavaScript属性的默认值。
然后,研究人员为每个环境的缺省属性值构建了一个矩阵,为每个可能的检测场景创建了一个模板--也就是JavaScript模板攻击的名称--列出了所有与环境相关的属性值。
研究小组说,这些模板可以在稍后的时间点用于扫描访问用户,并基于用户浏览器的返回的默认属性值来检测特定的环境细节。
这些数据可用于创建用户配置文件(用于流量/用户指纹),以打破用户的匿名性,或用于欺诈手段,如细化零日攻击的目标。
研究小组说,测试表明,他们的方法能够区分所有40种测试环境;将浏览器向下区分为精确版本;根据它们如何修改本机属性值来确定已安装的扩展;甚至确定单个扩展设置;确定极为技术性的细节,如CPU供应商、实际操作系统(而不是用户代理可以伪造的操作系统);确定是否存在浏览器私有模式;以及即使浏览器是从虚拟机中运行的。
这些信息可能有助于跟踪,也可能更有助于改进漏洞。这一切都取决于威胁行为者试图做什么,但结论是,该方法足够可靠,可以工作,甚至可以绕过隐私强化的环境,比如android上的tor。
总之,JavaScript模板攻击非常强大,因为研究人员还发现了大量尚未正式记录的JavaScript属性,从而提高了其方法的准确性。
此外,由于浏览器制造商倾向于使用新的Web API来改进他们的软件--所有这些都可以通过JavaScript进行控制--JavaScript属性的数量在过去几年里一直在增长,预计还会增长,并且会进一步提高JavaScript模板攻击的准确性。
研究团队表示,他们希望浏览器制造商和隐私扩展开发人员利用他们的工作来揭示JavaScript属性值之间的依赖环境的差异,以改进他们的产品,并为用户指纹识别提供任何机会。