间谍浏览器扩展程序的分析和检测

我用我的小眼睛窥探:间谍浏览器扩展程序的分析和检测

原文作者:Anupama Aggarwal, Saravana Kumar, Bimal Viswanath, Liang Zhang, Ayush Shah, Ponnurangam Kumaraguru

原文标题:Spy with My Little Eye: Analysis and Detection of Spying Browser Extensions.

原文会议:IEEE European Symposium on Security and Privacy 2018 (EuroS&P)

原文链接http://precog.iiitd.edu.in/pubs/spying-extensions-eurosandp.pdf

用户隐私信息泄露已成为如今网络安全的一大威胁,而每天都在使用的浏览器也会将我们的信息泄露,本文讨论的是如何检测浏览器中的扩展程序对用户的隐私进行获取、泄露这一重要的研究问题。以谷歌浏览器Chrome为研究对象(也适用于其他浏览器如Firefox),尽管官方也对这些扩展程序采取了一些措施以识别其中的恶意扩展程序,但谷歌网上应用商店中spying extension一直都存在。
本文提出使用深度学习来进行漏洞检测,免去繁重且复杂的人工特征工程任务。作者首先对其多种特征进行分析,根据表现能力确定合适的特征(API Calls),再与多种检测方法进行对比,最终作者提出了基于深度学习检测spying extension的方法,并进行评估与验证,经过测试,其检测模型的精确率为90.02%,召回率为93.31%。作者进一步将该模型应用到余下的Chrome扩展程序中并检测到了新的65个spying extension。

作者的工作:

首先引入浏览器泄露用户隐私话题,对spying extension定义,收集spying类的原始数据(收集到的扩展程序共为43521个,其中218个为spying extension)。论文从用户个人信息被盗取,Spying的五类行为以及其流行度(用户量、评分和评论等)和信誉(问题与建议)和开发者与正常程序作比较,发现其一些规律,确定着手点为从spying extension的动态行为去检测。训练与验证,总结前人的研究成果,包括特征工程(静态/动态),机器学习分类器(逻辑回归模型、决策树、随机森林、Adaboost、支持向量机、神经网络)检测结果。设计深度学习检测模型实现自动检测。最后讨论了边界部署和移动端的检测可行性。

一、数据收集

1.spying extension

作者给出的定义是,其行为中有获取用户信息(浏览记录、cookie、社交媒体口令和地理位置等),存储用户的这些隐私,再发送到远程的主机。满足以上行为且在其功能声明中没有提及或对其功能没有必要的就是spying extension。

2.数据收集过程

由于spying extension数据较少,采用1:5的比例进行训练(207:1035),五折交叉检验充分利用数据。

二、分析spying extension


以上三大类特征/行为作为检测点都不够靠谱,进一步地,作者对spying extension的行为从时间线进行分析,发现一定规律。且实验表明使用API Calls作为特征检测结果是最好的。

三、自动检测模型设计

训练阶段

1.选择特征

静态 动态
permission Chrome API Calls
javascript based client side storage
others network log

利用API Call序列的好处

  • 不用手工,深度学习
  • 主要特征,且有效,比起其他特征不易被开发者绕过
  • 能适应动态的行为,比如周期性的切换状态的扩展程序
  • 包括了大多数其他动态特征

2. 选择神经网络

循环神经网络在和处理自然语言和时序数据领域非常成功,作者在前文确定使用API call names序列作为判断的依据,需要依赖上下文环境。由于RNN自身的局限性(不适用于长期的依赖,作者选择了RNN的变种LSTM来进行检测。具体超参数与结构的设置原文有详细介绍。评估指标:召回率、精确率和两者的曲线。从FP、FN、鲁棒性和包括Web API调用的结果(更好)分析学习结果。

测试阶段

在实际环境测试,从余下42110中检测出90个,其中65个确定为spying extension,剩下25个中,20个是正常的(被标记为spying因为有一些spying的行为但是又是功能必须的),另外5个不确定。

四、边界部署与相关研究

1.边界部署

将检测模型作为一个扩展程序部署到浏览器,用于分析别的扩展程序调用API。

三点好处:

  • 基于用户生成的工作量启用检测。
  • 告知用户隐私泄露风险。
  • 早期检测,对于逃避集中检测的spying extension起到二次检测的保障。

作者还提到可以将轻量级的机器学习客户端检测用于移动端,并认为随着深度学习的优化,客户端的防御是很有价值的。

2.相关研究

  • 用户行为追踪,列举了两个人的研究并作比较,鲁棒性较差。
  • 检测范围更广的恶意扩展程序,列举了四个人的研究方法和成果,再一次表达自己的方法有多棒。
  • 信息流控制,已有大量研究涉及IFC技术,以检测基于JavaScript的应用程序中的安全漏洞和隐私泄漏。但作者表示其面临着一些实际挑战,还是用文章提出的深度学习方法更好。

五、讨论

文章主要提出了使用深度学习来检测谷歌浏览器的spying扩展程序,对spying extension进行多方面的分析,与多种方法比较。数据表明作者所使用的深度学习RNN表现更好。但在数据收集过程,第一步利用一种启发式(heuristics)方法缩减候选名单,是否可靠。其次三个步骤中重复2、3,依赖专家主观经验确定的数据收集方式有局限。数据集的优劣直接关系了漏报率和误报率,怎么样选好数据集是非常重要的一步,这是一个难点。文章对spying extension的筛选主要通过一定程度自动筛选后的再进行手工提取,并且文章的spying种类、数量都不多,这也是最后在实际环境中测试后作者表明可以通过增加新的训练集以提高模型的有效性。