[发明专利]一种基于扩展API改写的Chrome扩展敏感数据跟踪方法有效
申请号: | 201810160508.6 | 申请日: | 2018-02-27 |
公开(公告)号: | CN108256338B | 公开(公告)日: | 2021-04-27 |
发明(设计)人: | 王伟平;刘小玄;张雨清;宋虹;王建新 | 申请(专利权)人: | 中南大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/62 |
代理公司: | 长沙市融智专利事务所(普通合伙) 43114 | 代理人: | 杨萍 |
地址: | 410083 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 扩展 api 改写 chrome 敏感数据 跟踪 方法 | ||
1.一种基于扩展API改写的Chrome扩展敏感数据跟踪方法,其特征在于,包括以下步骤:
步骤1:定义扩展中的Source和Sink;
将扩展Source和扩展Sink分别定义为扩展中可能获取敏感数据的输入点和可能将敏感数据外传的输出点;
步骤2:将扩展API分成获取数据API、输出相关API、通信函数API和其他功能API四类;定义四类扩展API的改写规则,使得改写后的API只包含原生JavaScript函数,同时保持改写前API的输入输出数据流关系;依据改写规则对待测扩展中的扩展API进行改写;
步骤3:依据待测扩展生成动态测试页面,用于触发待测扩展与页面的交互行为;
步骤4:利用现有JavaScript动态污点跟踪工具对改写后的待测扩展添加污点传输标记,在生成的动态测试页面中引入并运行改写后的待测扩展的JavaScript代码,动态污点跟踪工具将根据污点传输标记记录敏感数据的输入和输出路径,从而检测出从Source到Sink是否存在敏感数据通路;
其中步骤2中定义四类扩展API的改写规则包括:
步骤2.1:获取数据API改写
获取数据API如chrome.*.*(a,b),其中,*表示通配符,参数a表示对象,参数b表示回调函数,改写规则如下:
(i)用function chrome_*_*(a,b)替换chrome.*.*(a,b);
(ii)根据chrome官方文档说明,设定a对象的相关属性值;
(iii)在function chrome_*_*(a,b)中调用b(a);
步骤2.2:输出相关API改写
输出相关API的改写就是将chrome.*.*(data)改写为function chrome_*_*(data),其中,*表示通配符;运行时将通过判断data是否携带污点标记来确定敏感数据是否输出;
步骤2.3:通信函数API改写
改写规则如下:
(i)提取通信接收函数chrome.*.*.addListener中的回调函数,*表示通配符,生成新的原生JavaScript通信接收函数onMessage();
(ii)用function chrome_*_*替换A中chrome.*.*,在function chrome_*_*内调用onMessage(a);
步骤2.4:其他功能API改写
其他功能API的改写就是将原有的chrome.*.*()替换成chrome_*_*()。
2.根据权利要求1所述的基于扩展API改写的Chrome扩展敏感数据跟踪方法,其特征在于,所述步骤1中,通过分析扩展API的输入输出数据关系,扩展Source包括获取当前页面DOM状态的DOM API以及获取浏览器中敏感数据的扩展API;扩展Sink包括发送敏感数据给第三方服务器、存储和下载的扩展API。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中南大学,未经中南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810160508.6/1.html,转载请声明来源钻瓜专利网。