指纹识别器
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
2.5代指纹追踪技术—跨浏览器指纹识别 默安科技认证厂商2017-07-17共556612人围观 ,发现 30 个不明物体 WEB安全
前言
作者简介
程进,默安科技影武者实验室安全工程师。主要参与一些安全产品的安全能力推进,包括幻盾的蜜网、黑客溯源技术,SDL雳鉴的漏洞扫描、代码审计等。
01.研究背景
在如今,做安全防御已经不仅仅是被动的等着攻击者攻击,作为防御方,有越来越多的方法去反击攻击者,甚至给攻击者一些威胁。
设备指纹技术是一种长久有效的追踪技术,即使攻击者挂再多vpn,也能够准确识别攻击者身份。
本文借助理海大学发布的(Cross-)Browser Fingerprinting via OS and Hardware Level Features文章,写一些个人理解,与paper原文,一并服用,效果更佳。
02.设备指纹技术介绍
1).第一代
第一代指纹追踪是cookie这类的服务端在客户端设置标志的追踪技术,evercookie 是 cookie 的加强版。
2) . 第二代
第二代指纹追踪是设备指纹技术,发现 IP 背后的设备。通过 js 获取操作系统、分辨率、像素比等等一系列信息,传到后台计算,然后归并设备。
唯一性可以保证,但准确率很难完全保证。主要原因就是在跨浏览器指纹识别上面。跨浏览器之后,第二代技术中很重要的 canvas 指纹、浏览器插件指纹都变了,所以很难把跨浏览器指纹归并到同一设备上。
因为设备指纹相同,很大概率上是同一台设备;但是,设备指纹不同时,不一定不是同一台设备。
3) . 第三代
第三代指纹追踪技术,则是发现设备后面的人。通过人的习惯、人的行为等等来对人进行归并,此项技术比较复杂。
4) . 总结
第一代、第二代的指纹追踪技术是可以直接通过js收集信息的,第三代指纹追踪技术目前可看到的案例是2017年RSA创新沙盒的冠军unifyid技术。但是在RSA的答辩现场我们可以看到,unifyid在移动端安装软件、收集信息,不仅仅是通过js。至于利用于web上,还任重而道远。
那么,2.5代指纹识别技术即跨浏览器指纹识别技术。
03.跨浏览器指纹识别特征
这篇paper中的创新点很多,最主要的是深入研究了显卡的渲染方法,图片的哪些部分用到硬件渲染,哪些部分只用到软件渲染,或者跟浏览器有关,paper中都有深入研究
着重讲一些比较有意思的特征,文章中用到的所有特征如下:
文章中用到的所有指纹识别特征
其中很多特征都是在其他设备指纹的paper中出现过的,并且目前被广泛用于设备指纹项目。比如canvas指纹在单浏览器识别中是比较有区分度的特征。
对比一下已经开源的fp2的指纹列表:
已经开源的fp2的指纹列表
fp2中的都是一些常规的追踪项目,并且如果用过就知道,其中很多项目是没有什么区分度的,比如:
Has session storage or not
Has local storage or not
Has indexed DB
Has IE specific ‘AddBehavior’
Has open DB
Is AdBlock installed or not
Has the user tampered with its languages 1
Has the user tampered with its screen resolution 1
Has the user tampered with its OS 1
Has the user tampered with its browser
这些项只能进行一些大致的区分,并没有什么实际的参考价值。
但是这篇paper中去掉了这些区分度低的特征,用到了另一类特征,显卡渲染图片,就是特征表中的task(a)-task(r),可以看到这些task的跨浏览器稳定性都非常高,也就是说受浏览器的影响不是很大。这里,我们抽一些任务介绍一下。
1).首先,paper中对图片渲染进行了简单的介绍:
paper中对图片渲染的简介
在此之前,首先介绍下面的基本画布设置。画布的大小为256×256。画布的轴定义如下:[0,0,0]是画布的中心,其中x轴是向右延伸的水平线,y轴是向下延伸的垂直线,z轴朝远离屏幕方向延伸。存在功率为[R:0.3,G:0.3,B:0.3]的环境光,相机位于[0,0,-7]的位置。这两个组件必需,否则模型完全是黑色的。在本文的其余部分,除非指定,例如具有2D特征的任务(d)和其他带有附加灯的任务,所有任务均使用相同的基本设置。
2).这里列举几个典型的task
(1) task(a):纹理
测试片段着色器中的常规纹理特征
图(a)中的任务是测试片段着色器中的常规纹理特征。
具体来说,Suzanne模型在随机生成纹理的画布上呈现。纹理大小为256×256的正方形,通过随机选择每个像素的颜色来创建。也就是说,我们在一个像素的三个基色(红色,绿色和蓝色)之间产生0~255的三个随机值,将三个基色混合在一起,并将其用作像素的颜色。
之所以选择这个随机生成的纹理,是因为这个纹理比常规纹理具有更多的指纹特征。原因如下,当片段着色器将纹理映射到模型时,片段着色器需要在纹理中插入点,以便将纹理映射到模型上的每个点。插入值算法在不同的显卡中是不同的,当纹理变化很大时,差异就被放大。因此,我们需要生成在每对相邻像素之间颜色变化很大的这种纹理。
(2) task(d):线和曲线
测试线和曲线
图(d)中的任务是测试线和曲线。 在画布上绘制一条曲线和三条不同角度的直线。具体来说,曲线遵循以下功能:y = 256-100cos(2.0πx/ 100.0)+ 30cos(4.0πx/ 100.0)+ 6cos(6.0πx/ 100.0),其中[0,0]为画布的左上角,x轴向右增加,y轴增加到底部。 三行的起点和终点是{[38.4,115.2],[89.6,204.8]},{[89.6,89.6],[153.6,204.8]}和{[166.4,89.6],[217.6,204.8]}。 选择这些特定的线条和曲线,以便测试不同的渐变和形状。
(3) task(f):光
测试漫射点光和Suzanne模型的相互作用
图(f)中的任务是测试漫射点光和Suzanne模型的相互作用。 漫射点光在照亮物体时会引起漫反射。 具体地说,该光是在RGB上具有相同值的白色,对于每种原色,光的功率为2,光源位于[3.0,-4.0,-2.0]。
在这个任务中选择一个白光源,因为纹理是各种颜色的,单色光可能会减少纹理上的一些微妙差异。 光线的强度需要精心设计。非常弱的光线不会照亮Suzanne模型,模型就会不可见;非常强的光会使一切变白,减少指纹特征。 在6台机器的小规模实验中,功率从0增加到255,我们发现当光功率为2时,这些机器之间的像素差异最大。光照位置可随机选择,不会影响特征指纹识别结果。
可以看到这些任务深入研究了图片渲染引擎的特征,js没办法直接获取到显卡的设置和驱动,但是通过这种方法,当不同的显卡渲染同一张图片时,因设置不同,渲染出来的图片hash也不同。用这种图片hash作为特征,其实是从侧面得到机器显卡的特征,同一台机器在不同的浏览器上用到同一个显卡,所以可以看到这些task的跨浏览器稳定性都很高,总共10余种 task。
3). Paper中除了这些task,还有一些其他新颖的东西
(1) CPU内核数量
这个在之前的设备指纹方案中都是没有使用到的,现代浏览器可以用navigator .hardware Concurrency来获取。如果不支持这个方法,则可以利用另一种方式获取,具体来说是,当增加Web Worker的数量时,可以监视payload的完成时间。当计算量达到一定的程度,Web Woker完成payload的时间显著增加,达到硬件并发的限制,从而判断核心的数量。一些浏览器(如Safari)会将Web Workers的可用内核数量减少一半,所以在获取跨浏览器指纹时,我们需要将获取到的核心数量加倍。
此处内容,有兴趣的同学可以看看这篇文章https://eligrey.com/blog/cpu-core-estimation-with-javascript/
(2) writing script(language)
这个其实可以理解为语言,但不是当前浏览器所使用的语言,而是系统支持的所有语言,比如中文简体、中文繁体、英语,js中并没有接口直接获取这种语言,但是这里作者想到了另一种方法,就是在页面中用所有的语言写两个字,如果系统支持该语言,那么就能正常写出来;如果不支持,显示出来的就是方框。通过这种方法获取系统支持的语言。
writing script 语言
(3)AudioContext
可能熟悉设备指纹的同学都知道,AudioContext在很多设备指纹项目上都用到了。具体来说,现有的指纹识别工作使用OscillatorNode产生一个三角波,然后将波传Dynamics Compressor Node,一个调节声音的信号处理模块,产生压缩效果。 然后,经处理的音频信号通过Analyser Node转换为频率域。该paper指出,频域在不同的浏览器中是不同的,这个特征受浏览器的影响,不能完全反应出声卡的特征。也就是说,现有的方案只能识别单浏览器。但是他们发现,频率和峰值的比,在浏览器之间是相对稳定的。因此,在频率和值的坐标系上创建一个间距很小的列表,并将峰值频率和峰值映射到相应的格子。 如果一个格子包含一个频率或值,我们将格子标记为1,否则为0,这样的格子列表用作跨浏览器特征。
除了波形处理外,还能从音频设备上获取以下信息:采样率、最大通道数、输入数、输出数、通道数、通道数模式和通道解释。这是现有的设备指纹工作没有用到的又一个跨浏览特征.。
4). 在demo站中,从我电脑上收集到的信息如下
在demo站搜集的信息
我跨浏览器测试的结果,的确能够跨浏览器识别,看到这里,由衷的佩服该项目。
04.查看代码
在我看来,十多个task,AudioContext,CPU core number,writing script,跨浏览器稳定性都如此之高,做一些机器学习的分析工作,算一算相似性,真的非常容易达到跨浏览器识别的目的。
但我们来看看后端分析代码,如下:.
后端分析代码
这是代码中获取到的从前端传来的特征,然后就该通过这些特征计算跨浏览器指纹了。
但是,他只是简单的把这些项目加到一起hash了一下,就作为跨浏览器指纹。
将项目叠加并hash
虽然demo站说明了跨浏览器指纹还在开发中,并没有什么复杂的计算,跟paper中提到的分析方式完全不同,跟我预期的什么机器学习的方式也不同。
但是,跨浏览器的特征倒是选用了一些稳定性极高的特征,所以直接hash也能进行跨浏览器识别。
Paper中的思路真的很好,所以沿着这个思路,我们还有很多工作要做。
05.最后说一句
该paper中一直提到的IP不可信的问题,既然是黑客溯源,对面是黑客,提出这个观点也无可厚非,毕竟大家都会挂VPN或者用肉鸡。但是IP作为一个重要信息,在设备指纹项目中,还是有用武之地的。
我个人的观点:IP虽然不可信,但是短时间的IP是可信的。
各位可以自己去试试 IP+设备指纹的区分度还是很好的,而且很大程度上能解决一部分跨浏览器识别的问题。
本文仅是自己的一些心得分享,欢迎大家在评论区留言,也可关注我的个人微博@chengable。浅知拙见,抛砖引玉,期待与大家的交流。
*本文来源:默安科技 (企业账号),转载请注明来自 FreeBuf.COM
默安科技
默安科技
3 篇文章
等级: 3级
||
上一篇:看我如何破解OpenNMS哈希密码?下一篇:“双枪”狙击:首例连环感染MBR和VBR的顽固木马分析
这些评论亮了
坏牙崩克 回复
这个方案我们在大规模数据中试过,区别度很低,会造成大量设备指纹重叠。显卡渲染、字体、CPU的区分度远远不够,如果你样本量大,这个问题会很严重。倒是音频算是一个有特色的东西,但同理,举例都是iPhone7,音频基本上没有什么区分度。IP+设备指纹,能够在短时间内(1-2小时)做出相对正确指纹判定,但隔日基本上就变成两个指纹了。而且这还只是跨浏览器,浏览器还要区分手机和PC,最终还要解决H5和APP设备指纹统一。这个paper,在小样本下做做测试可以的,千万级业务规模的商业用,还差得远呐
)26(亮了
aftest 回复
对于爬虫+扫描器+自动化批量利用没什么用处啊。。。
而且,真要搞站,谁不会开两个虚拟机,弄个浏览器的隐私模式,开个noscript的插件。。。
这玩意说到底,还是应对小白做广告投放使的
)8(亮了
戒了 (3级)回复
我想问一下,网上流传着一个打包好的VM下的kali,流传面也挺广的。问怎样通过所谓指纹识别确定你就是你呢
)6(亮了
发表评论已有 30 条评论
浊公子 (1级) 2017-07-17回复 1楼
可以
亮了(2)
wowo22 2017-07-17回复 2楼
可以的,胖子。
亮了(4)
aftest 2017-07-17回复 3楼
对于爬虫+扫描器+自动化批量利用没什么用处啊。。。
而且,真要搞站,谁不会开两个虚拟机,弄个浏览器的隐私模式,开个noscript的插件。。。
这玩意说到底,还是应对小白做广告投放使的
亮了(8)
tsetfa 2017-07-17回复
@ aftest 浏览器的隐私模式是对本地的,不是对服务器的。这IQ还混安全圈?
亮了(4)
linger118927 (2级) 2017-07-17回复
@ aftest 哈哈 这波装失败了
亮了(1)
chengable 2017-07-21回复
@ aftest noscript有用,隐私模式没用,亲自实验过
亮了(0)
小仙女001 (1级) 2018-08-31回复
@ chengable 可不是!窃以为用隐身模式还不如不用隐私模式,隐生模式早就有如皇帝的新装,不如想想大隐隐于市的道理。。。
亮了(0)
戒了 (3级) 2017-07-17回复 4楼
我想问一下,网上流传着一个打包好的VM下的kali,流传面也挺广的。问怎样通过所谓指纹识别确定你就是你呢
亮了(6)
qiqi 2017-07-17回复
@ 戒了 为什么需要判断你就是你?判断你是有恶意就行了啊
亮了(1)
chengable 2017-07-21回复
@ 戒了 说的也有道理,因为本来就是设备指纹,用同一个vm肯定是不好区分的谁是谁的,虽然我不知道你是谁,但是我知道是这个vm做了恶意操作,可以采取防御措施了,当然如果你搞一会儿,换一个vm,再搞,那这个方法也无能为力,只要不觉得累
亮了(0)
chengable 2017-07-17回复 5楼
害羞害羞
亮了(1)
安全_云舒 2017-07-17回复 6楼
good
亮了(1)
腾云数据 2017-07-17回复 7楼
转发微博
亮了(1)
光PS夜 2017-07-17回复 8楼
虚拟机呢?
亮了(1)
LeShamahSeL 2017-07-17回复 9楼
[并不简单]
亮了(1)
羊大仙- (1级) 2017-07-17回复 10楼
突然期待这篇文章热闹起来….
亮了(1)
123 2017-07-17回复 11楼
这东西是做风控用的 跟你们搞不搞站没关系吧
亮了(1)
freebug_n (4级) Nigger! 2017-07-17回复 12楼
然并卵!
亮了(1)
坏牙崩克 2017-07-17回复 13楼
这个方案我们在大规模数据中试过,区别度很低,会造成大量设备指纹重叠。显卡渲染、字体、CPU的区分度远远不够,如果你样本量大,这个问题会很严重。倒是音频算是一个有特色的东西,但同理,举例都是iPhone7,音频基本上没有什么区分度。IP+设备指纹,能够在短时间内(1-2小时)做出相对正确指纹判定,但隔日基本上就变成两个指纹了。而且这还只是跨浏览器,浏览器还要区分手机和PC,最终还要解决H5和APP设备指纹统一。这个paper,在小样本下做做测试可以的,千万级业务规模的商业用,还差得远呐
亮了(26)
chengable 2017-07-21回复
@ 坏牙崩克 千万级别还真没试过,我们有十万级的数据,目前看来区分不同的人准确度很高,区分度%99以上,对同一个人的归并在正常访问的情况下,也有98%,当然,我们只考虑pc端,毕竟少有用手机搞站的,并且这篇文章也只是我们溯源技术中的一部分,还有很多其他特征综合分析,考虑手机端的话我觉得的确很难
亮了(1)
Wokm 2017-07-21回复
@ chengable 可以留一下你的联系方式吗,有问题想咨询一下
亮了(0)
小仙女001 (1级) 2018-08-31回复
@ 坏牙崩克 好奇是什么”大规模数据”~
亮了(0)
幕刃 2017-07-18回复 14楼
求demo站网址
亮了(1)
noname 2017-07-18回复 15楼
对MacBook这种东西好用么,分辨不出来吧。
除了波形处理外,还能从音频设备上获取以下信息:采样率、最大通道数、输入数、输出数、通道数、通道数模式和通道解释。这是现有的设备指纹工作没有用到的又一个跨浏览特征.。
在6台机器的小规模实验中,功率从0增加到255,我们发现当光功率为2时,这些机器之间的像素差异最大。光照位置可随机选择,不会影响特征指纹识别结果。
亮了(2)
chengable 2017-07-21回复
@ noname mac亲自实验过,可以的,只要能加载js,就可以
亮了(0)
胖子的室友 2017-07-19回复 16楼
胖子厉害了
亮了(1)
花无涯 2017-07-20回复 17楼
强势,来留言互动
亮了(0)
ziqew 2017-08-01回复 18楼
转发微博
亮了(0)
阿姆斯坦森 2017-08-02回复 19楼
刚刚试了,每次刷新算出来的值都不一样,逗我玩呢?
亮了(2)
老实人 2018-03-14回复 20楼
请问能提供Demo的地址吗?
亮了(1)
昵称
请输入昵称
必须您当前尚未登录。登陆?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
默安科技
默安科技认证厂商
杭州默安科技有限公司
3
文章数
2
评论数
最近文章
作为企业的安全运营人员,如何保障“隐藏暴露面”不被偷袭?
2018.05.10
默安科技安全招聘 | 如何让我遇见你,在这美好的四月天?
2018.03.29
默安科技招聘安全专家
2017.08.12
浏览更多
相关阅读
Google Hacking:教你找女神“同形异义字”钓鱼攻击,钉钉中招前端安全饕餮《Web前端黑客技术解密》即将上市2.5代指纹追踪技术—跨浏览器指纹识别[更新]Web应用程序扫描器评估工具-wavsep V1.2
特别推荐
关注我们 分享每日精选文章
活动预告
11月
FreeBuf精品公开课·双11学习狂欢节 | 给努力的你打打气
已结束
10月
【16课时-连载中】挖掘CVE不是梦(系列课程2)
已结束
10月
【首节课仅需1元】挖掘CVE不是梦
已结束
9月
【已结束】自炼神兵之自动化批量刷SRC
已结束
FREEBUF免责声明协议条款关于我们加入我们广告及服务寻求报道广告合作联系我们友情链接关注我们
官方微信
新浪微博腾讯微博Twitter赞助商
Copyright © 2018 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号
css.php 正在加载中...0daybank
文章评论