一种面向多个浏览器扩展的多层级指纹识别方法

文档序号:1904793 发布日期:2021-11-30 浏览:5次 >En<

阅读说明:本技术 一种面向多个浏览器扩展的多层级指纹识别方法 (Multi-level fingerprint identification method for multiple browser extensions ) 是由 刘亮 吕婷 祝方舟 于 2021-09-07 设计创作,主要内容包括:本发明涉及一种面向多个浏览器扩展的多层级指纹识别方法,属于计算机领域中网络信息安全领域。本发明对现有的浏览器扩展指纹进行了拓展,优化了现有的基于网页DOM(Document Object Model)修改的扩展指纹技术,并提出了一种新的基于JavaScript属性的扩展指纹技术,可提高扩展指纹的唯一性。在自定义的诱饵页面中,收集并构建了扩展指纹数据库,并以此为基础提出了一种多层级的浏览器扩展识别方法,可有效攻破现有的浏览器扩展指纹防御措施,同时提高扩展识别的准确率。(The invention relates to a multi-level fingerprint identification method for multiple browser extensions, and belongs to the field of network information security in the field of computers. The invention expands the existing browser extended fingerprint, optimizes the existing extended fingerprint technology modified based on webpage DOM (document Object model), and provides a new extended fingerprint technology based on JavaScript attribute, which can improve the uniqueness of the extended fingerprint. In a self-defined decoy page, an extended fingerprint database is collected and constructed, and a multi-level browser extended identification method is provided on the basis of the extended fingerprint database, so that the existing browser extended fingerprint defense measures can be effectively broken through, and the accuracy of extended identification is improved.)

一种面向多个浏览器扩展的多层级指纹识别方法

技术领域

本发明涉及一种面向多个浏览器扩展的多层级指纹识别方法,属于计算机领域中网络信息安全领域。

背景技术

浏览器扩展是可以定制浏览体验的第三方应用程序,其在提供便利的同时[1-3],也带来了许多安全隐私威胁[4,5]。一旦用户已安装扩展列表被获取,其身份和隐私将面临暴露风险。具体表现在:一方面,不同用户根据自身不同的需求或偏好安装不同的扩展,从而形成具有个人特征的扩展列表。攻击者可以根据该列表生成指纹标识用户,实现未登录用户的识别、匿名化追踪,广告个性化推送。另一方面,某些浏览器扩展会暴露用户的个人隐私,例如一个用户安装了Trump Filter扩展会影射该用户的政治倾向。

为了安全考虑,浏览器禁止加载的网页直接获取用户安装的浏览器扩展列表。尽管如此,最近的研究发现仍能通过浏览器扩展指纹技术间接获取浏览器的扩展列表[6,7]。攻击者首先创建一个诱饵网页(一个由HTML,CSS以及JavaScript组成的定制页面)。当用户通过浏览器访问诱饵页面时,浏览器加载该页面并执行其JavaScript代码,JavaScript代码通过比对分析诱饵页面经浏览器扩展的修改、扩展的WAR(web accessible resources)ID等,自动收集生成浏览器扩展指纹并发送至服务器。服务器端将指纹信息与预先收集的扩展指纹数据库进行匹配,从而推断出用户安装的扩展列表。

为了保护用户的隐私,近年来许多研究者开始研究浏览器扩展指纹的防御技术。Trickel等人[8]设计了CloakX系统,它对WAR ID以及DOM中标签class、id属性的值进行了随机化处理,使得基于WAR的扩展指纹失效,同时混淆了基于DOM修改的扩展指纹。这使得利用现有浏览器扩展指纹技术进行用户隐私推断和扩展识别攻击的有效力大幅度降低。本发明专利提出一种多层级的扩展识别技术,综合利用了改进的基于DOM修改的扩展指纹以及本发明中新提出的基于JavaScript属性的扩展指纹。在用户安装多个扩展时,扩展间不可避免地存在相互覆盖和影响的问题,如何有效对其进行识别,从而得到用户安装的扩展列表。

上文中提到的文献来源如下:

[1]Iqbal U,Shafiq Z,Qian Z.The ad wars:retrospective measurement andanalysis of anti-adblock filter lists[C]//Proceedings of the 2017 InternetMeasurement Conference.2017:171-183.

[2]Mathur A,Vitak J,Narayanan A,et al.Characterizing the use ofbrowser-based blocking extensions to prevent online tracking[C]//FourteenthSymposium on Usable Privacy and Security ({SOUPS}2018).2018:103-116.

[3]Snyder P,Taylor C,Kanich C.Most websites don′t need to vibrate:Acost-benefit approach to improving browser security[C]//Proceedings of the2017 ACM SIGSAC Conference on Computer and Communications Security.2017:179-194.

[4]Calzavara S,Bugliesi M,Crafa S,et al.Fine-grained detection ofprivilege escalation attacks on browser extensions[C]//European Symposium onProgramming Languages and Systems.Springer,Berlin,Heidelberg,2015:510-534.

[5]Onarlioglu K,Buyukkayhan A S,Robertson W,et al.Sentinel:Securinglegacy firefox extensions[J].Computers & Security,2015,49:147-161.

[6]A,Van Acker S,Sabelfeld A.Discovering browser extensions viaweb accessible resources[C]//Proceedings of the Seventh ACM on Conference onData and Application Security and Privacy.2017:329-336.

[7]A,Van Acker S,Picazo-Sanchez P,et al.Latex gloves:Protectingbrowser extensions from probing and revelation attacks[J].Power,2018,57.

[8]Trickel E,Starov O,Kapravelos A,et al.Everyone is different:Client-side diversification for defending against extension fingerprinting[C]//28th{USENIX}Security Symposium({USENIX}Security 19).2019:1679-1696.

发明内容

本发明为解决的技术问题:

本发明的目的是设计一种面向多个浏览器扩展的多层级的扩展指纹识别技术,以解决多个扩展同时加载时所产生的扩展指纹间相互影响的问题。在真实的环境中,用户往往安装多个扩展,不同的扩展对网页的修改等各不相同,所产生的指纹亦有所不同。因此,多个扩展间不可避免地存在指纹的互相影响与覆盖,从而破坏指纹的完整性与确定性。现有的浏览器扩展指纹研究只对单个扩展指纹进行分析,且由于各种防御措施的出现,当前的扩展指纹技术已不再适用或攻击效力骤降。本发明为进一步提高扩展的可指纹性以及扩展指纹的唯一性,设计了一种模糊匹配算法,其中综合利用了基于DOM的扩展指纹以及基于JavaScript属性的扩展指纹,即使用户同时安装多个扩展且应用了现有的防御措施,仍能准确识别用户安装的扩展列表。

本发明为解决其技术问题采用如下技术方案:

一种面向多个浏览器扩展的多层级指纹识别方法,包括以下步骤:

(1)诱饵页面的生成

在本方案中,首先利用HTML、CSS、JavaScript设计一个诱饵页面,尽可能多地囊括可触发扩展对网页DOM、JavaScript属性的修改的内容,从而捕获更多的扩展指纹信息。此诱饵页面将作为后续扩展数据库构建以及扩展识别中的访问页面。

(2)扩展指纹数据库的构建

本发明同时利用扩展对网页DOM的操作行为以及对JavaScript属性的修改,生成扩展指纹,构建扩展指纹数据库。两种信息共同构成的指纹,能够在一定程度上提高扩展的可指纹性以及扩展指纹的唯一性。该扩展指纹数据库将作为扩展识别的对比对象。

(3)扩展识别

模拟真实的用户,同时加载多个不同的扩展并访问诱饵页面,通过自动指纹收集程序获取指纹信息。采用模糊匹配算法将指纹信息与扩展指纹数据库进行比较,得到一个候选扩展列表。最后对候选列表进行过滤,得到最终的扩展列表,即用户安装的扩展集合。

本发明采用以上技术方案与现有技术相比,具有以下有益效果:

(1)基于多层级的扩展指纹识别技术综合利用了基于DOM修改的扩展指纹和基于JavaScript属性的扩展指纹。其中前者忽略了对扩展属性值的考虑,可攻破现有的基于DOM修改指纹的防御措施;后者提出了一种新的标识扩展的指纹特征,进一步扩大了可指纹扩展的数量。两者的共同作用提高了扩展指纹的唯一性。

(2)扩展识别采用模糊匹配算法,通过匹配阈值解决了不同扩展间的相互影响而导致的各自指纹的部分变化所带来的指纹匹配失败问题。同时提高了扩展的识别准确率。

附图说明

图1是诱饵页面的生成示意图。

图2是扩展数据库的构建示意图。

图3是扩展识别示意图。

图4是模糊匹配算法示意图。

具体实施方式

下面结合附图对本发明创造做进一步详细说明。

为了提高扩展指纹的唯一性以及扩展识别的准确率,本发明提出的浏览器扩展指纹识别方法分为三个部分:1.诱饵页面的生成。2.扩展指纹数据库的构建。3.扩展识别。

(1)诱饵页面的生成

如图1所示,诱饵页面主要由四部分内容组成:HTML全部标签及其基本属性、文本内容、特殊属性、JavaScript代码。诱饵页面的创建的基本思想是,页面包含足够丰富的内容,使得用户访问时尽可能多地触发不同扩展对网页DOM、JavaScript属性的修改行为。

现在对具体生成过程进行描述:

1、首先使用爬虫技术获取Chrome网上应用店中的所有扩展ID(用以唯一标识一个扩展),生成扩展ID列表。

2、根据步骤1中的扩展ID列表,利用无头浏览器自动获取每个扩展详细页面“概述”部分的首段文字描述内容。分别利用正则表达式以及自然语言处理过滤其中的标点符号以及重复词、终止词,以去除文本冗余。

3、创建一个基础网页,将HTML中的所有标签及其对应的基本属性添加至其中,得到最初的诱饵页面。

4、利用步骤2中的文本内容构建一个基础网页,通过扩展ID列表逐个加载扩展并访问该网页,抓取扩展加载前后的网页DOM并进行对比。若对比结果显示网页文本内容发生变化,则将该网页文本添加至文本内容数据库。所有被扩展修改的网页文本内容构成最终的文本内容数据库。将其添加至诱饵页面中。

5、获取所有具有固定可选项的属性(如autocomplete只可取on或off),生成侯选属性列表。在步骤2的文本中遍历候选列表中的每一个属性,若该属性在文本中出现,则将其所有可能属性值皆添加至诱饵页面中。

6、注入JavaScript代码,用于自动获取网页DOM以及JavaScript属性。

(2)扩展指纹数据库的构建

通过攻击页面捕获的扩展指纹信息发送至攻击服务器后,为了在攻击服务器上识别用户安装的扩展列表,需要预先在线下收集每类扩展的指纹,构建扩展指纹数据库,作为扩展识别的对比数据库。图2展示了扩展指纹数据库构建的示意图。

现在对具体构建过程进行描述:

1、访问原始的未安装任何扩展的诱饵页面。

2、诱饵页面的JavaScript代码在页面加载完成后自动收集网页DOM与JavaScript属性。

3、利用扩展ID列表逐个下载扩展。

4、使用无头浏览器获取一个Chrome浏览器并逐个加载扩展。

5、在安装扩展的浏览器中访问诱饵页面。

6、收集经扩展作用后的网页DOM以及JavaScript属性。

7、将步骤6获取的网页DOM以及JavaScript属性分别与步骤2中的进行对比。

8、对于网页DOM的比较结果,以标签为单位,保存标签名、标签中的属性名、标签间的文本内容,而过滤具体的属性值;对于JavaScript属性的比较结果,以属性为单位,保留属性名及其对应的属性值。

9、将结果存储至数据库中,每个扩展指纹由五部分组成:扩展ID、增加的标签集、删除的标签集合、增加的JavaScript属性集合、删除的JavaScript属性集合。

(3)扩展识别

如图3所示,四元组Q<add_dom,delete_dom,add_properties,delete_properties>为用户安装的多个扩展共同产生的指纹,item<war_id,add_dom,delete_dom,add_properties,delete_properties>为扩展指纹数据库中的一个扩展指纹。add_dom,delete_dom,add_properties,delete_properties分别为增加的DOM元素、删除的DOM元素、增加的JavaScript属性、删除的JavaScript属性。

现在对具体构建过程进行描述:

1、用户访问本发明中的诱饵页面。

2、页面自动化程序获取当前网页DOM以及JavaScript属性。

3、将网页DOM与JavaScript属性分别与原始页面的相应内容进行对比。

4、将对比结果中的DOM按标签进行处理、JavaScript属性列表按属性进行处理,得到一个四元组Q。

5、取扩展指纹数据库中的第一个item。

6、采用模糊匹配算法比较Q与item,返回比较结果result。

7、若result为False,则选取数据库中的下一个item,跳转至步骤6;若匹配结果为True,则将item存入候选列表中并选取下一个item并跳转至步骤6。若item为扩展指纹数据库的最后一个扩展指纹,则执行步骤8。

8、删除候选列表中扩展指纹为列表中其他任意扩展指纹的子集的扩展,最终得到用户安装的扩展列表。

(4)模糊匹配算法

如图4所示,Q为用户安装的多个扩展共同产生的指纹,item为扩展指纹数据库中的一个扩展指纹。Q[0]~Q[3]分别存储抓取的网页DOM增删节点以及增删的JS属性。item[0]存储扩展的ID,item[1]~item[4]与Q[0]~Q[3]一一对应。count(item[1])、count(item[2])分别表示扩展指纹中增加DOM与删除DOM中的标签计数。count+、count-分别用于表示item中DOM相关指纹包含于Q的DOM相关指纹的增删标签个数。T1、T2分别为基于DOM修改的指纹与基于JavaScript属性的指纹的匹配阈值。result、result1、result2为布尔类型。round()为四舍五入函数。

模糊匹配算法主要分为两个部分,基于DOM修改的指纹匹配和基于JavaScript属性的指纹匹配,该算法的输出结果是上述两个匹配结果的交集,两者的不同之处在于一个对标签进行计数,一个对属性进行计数。且其皆由两部分构成:增加的指纹与删除的指纹。所以只对增加DOM的标签计数进行详细阐述。

具体的模糊匹配算法步骤如下:

1、输入Q,item,T1,T2。

2、初始化count+、count-,赋0值。

3、选取item[1]中的第一个元素。

4、元素赋值给i。

5、判断i是否包含于Q[0],若是,执行步骤6;否则,执行步骤7。

6、count+加1。

7、判断i是否为item[1]中的最后一个元素,若是,执行下一步;否则,选取item[1]中的下一个元素并跳转至步骤4。

8、用item[2]、Q[1]替换item[1]、Q[0],重复步骤3至步骤7,得到更新的count-

9、result1=(count+≥round(count(item[1])*T1)∧(count-≥round(count(item[2])*T1)。

10、用item[3]、item[4]、Q[2]、Q[3]、T2分别替代item[1]、item[2]、Q[0]、Q[1]、T1,重复步骤2至步骤9,得到result2。

11、result=result1∧result2。

12、输出result。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:显示信息的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!