
文章简介
本文是我在SCI一区期刊IEEE IoT-J上发表的一篇论文,题目为《EavesDroid: Eavesdropping User Behaviors via OS Side-Channels on Smartphones》。本文的主要贡献是:
- 我们证明了系统调用的返回值可以用于推断细粒度的用户行为,并在全面分析后发现了两个以前未披露的新的易受攻击的返回值。
- 我们提出了一种名为EavesDroid的应用嵌入式操作系统侧信道攻击,允许未授权的攻击者调用系统调用并读取易受攻击的返回值以推断细粒度的用户行为。
- 我们引入了一个新的CNN-GRU网络来对细粒度用户行为进行分类。然后,我们对原始时间序列应用min-max归一化,并结合多个返回值的特征以提高推断准确性。
引用格式:
1 | @ARTICLE{wang2024eavesdroid, |
论文摘要
随着物联网(IoT)的不断发展,智能手机已成为物联网系统的必要组成部分。然而,随着存储在智能手机上的个人信息不断增加,用户的隐私面临着被恶意攻击者破坏的风险。尽管智能手机上通常安装了恶意软件检测引擎来防御这些攻击,但仍然可能出现可以规避这些防御的攻击。我们分析了Android智能手机的系统调用返回值,并发现了两个以前未公开的可泄露细粒度用户行为的脆弱返回值。基于这一观察,我们提出了EavesDroid,这是一个嵌入式应用程序的侧信道攻击,可以让未经特权的攻击者通过屏幕操作准确识别细粒度用户行为(例如,查看消息和播放视频)。我们的攻击依赖于用户行为与与硬件和系统资源相关的返回值之间的相关性。尽管这种攻击具有挑战性,因为这些返回值容易受到许多因素引起的波动和错位的影响,但我们表明攻击者可以使用采用min-max标准化和多个返回值融合的CNN-GRU分类模型窃听细粒度用户行为。我们在不同型号和版本的Android智能手机上的实验证明,EavesDroid可以在测试集和实际环境中实现17种用户行为的98%和86%的推断准确度,突显了我们的攻击对用户隐私的风险。最后,我们建议采用有效的恶意软件检测、精心设计的混淆方法或限制读取脆弱返回值来减轻这种攻击。
技术路线
系统调用返回值侧信道漏洞分析
我们的基于的基本原则是,如果用户在智能手机上执行相同的行为,易受攻击的返回值的变化应该是相似的。我们计算返回值时间序列之间的平均欧氏距离以解决它们的相似性。
根据上述原则和平均欧氏距离公式,我们分析了系统调用表中提供的系统调用的返回值,并在OPPO K10上重复启动Telegram应用100次。表中显示了我们分析过程中的6个最易受攻击的返回值。除了先前工作中发现的易受攻击的返回值之外,我们发现了两个新的易受攻击的返回值,可以用于推断细粒度的用户行为:(1)statvfs.f_ffree:返回文件系统中空闲inode的数量;(2)sysinfo.freeram:返回系统中可用内存的数量。同时,而在所有易受攻击的返回值中,statvfs.f_ffree的平均距离是最低的。
EavesDroid侧信道攻击框架
EavesDroid由三个阶段组成:调用与上传、收集与处理,以及训练与分类。在对受害者的智能手机发起攻击之前,攻击者会在不同设备型号和安卓版本的设备上模拟用户行为,以收集足够的训练数据。这些数据用于识别返回值与用户行为之间的关联,并利用深度学习技术建立分类模型。
CNN-GRU深度神经网络
我们使用卷积神经网络(CNN)和门控循环神经网络(GRU)来提取用户行为的特征并构建分类模型。根据与用户行为相关的时间序列的特征,我们还定制了CNN-GRU网络的结构和参数。下表总结了CNN-GRU网络的架构,其中包括卷积层、池化层、一个GRU层、一个全连接层和一个输出层。
min-max数据预处理与多返回值特征融合
智能手机收集的原始数据受到不同系统状态的影响,导致数据错位,这对准确分类构成了问题。为解决此问题,我们使用min-max归一化对数据进行归一化,这是最流行的数据归一化方法之一。对于数据的每个特征,我们找到该特征的最小值和最大值,然后将最小值设置为0,将最大值设置为1,而每个其他值都归一化为0到1之间的小数。因此,我们将min-max归一化应用于原始时间序列数据,以消除错位并使数据在[0,1]范围内线性化:
我们还注意到到存在一些不同的用户行为,使得一个返回值的线形相似,而另一个返回值的线形相当不同。因此,为了识别更加细粒度的用户行为并提高分类准确性,我们结合了n种不同的特征,因此输入尺寸为n*t,其中n是组合的系统调用数量,t是时间点的数量。
实验结果
在本研究中,我们使用以下安卓智能手机进行实验:
(1)OPPO K10,搭载天玑8000-MAX,安卓12。
(2)Redmi K50,搭载天玑8100,安卓12。
(3)小米9,搭载骁龙855,安卓11。
(4)小米9,搭载骁龙855,安卓12。
(5)一加7Pro,搭载骁龙855,安卓12。
我们已经分析了安卓智能手机上最易受攻击的返回值,并选择了其中5个用于推断细粒度的用户行为。前三个系统调用在之前的研究中已经披露,而后两个是在我们的研究中发现的:
(1)sysinfo.procs
:当前进程数。
(2)statvfs.f_bavail
:非特权用户可用的空闲块数。
(3)sysconf._SC_AVPHYS_PAGES
:当前可用的物理内存页数。
(4)statvfs.f_ffree
:空闲inode数。
(5)sysinfo.freeram
:可用内存大小。
默认情况下,所选系统调用的返回值每1毫秒读取一次,并持续收集5秒。我们的目标应用程序是几款广泛使用的应用程序:Telegram、YouTube、Gmail和OneNote。对于每个应用程序,我们选择一组从用户角度看更为敏感的用户行为(例如发送消息、发送电子邮件)进行识别。
结果显示,我们的攻击可以成功地以超过96%的准确率推断出各个应用程序上的用户行为。同时,我们可以以100%的准确率识别出两个智能手机上的Gmail的四种用户行为。其次,我们将所有用户行为合并为一个集合,然后评估这个集合的准确性。从整个测试集(17种不同行为)中识别用户行为的准确率平均仍能达到98%。
最后,我们进一步在实际环境中评估我们攻击的准确性,其中用户使用智能手机执行随机用户行为。在我们的实验中,6名用户使用OPPO K10、Redmi K50和小米9智能手机。然后,他们执行随机的细粒度用户行为(总共17种行为)持续2分钟。如图所示,当我们使用经过嘈杂数据训练的模型时,对所有四个应用程序推断用户行为的平均准确率为86%(对于未经嘈杂数据训练的模型为66%)。与先前评估中的结果相比,准确率略有降低,但仍足以确保根据用户行为的上下文进行合理的推断。