Press "Enter" to skip to content

设备指纹技术介绍与综述(二)

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

繁荣的物联网生态构建于物联网设备的发展之上,然而广泛部署的海量设备却给设备识别与监管带来了挑战。本文对基于行为的设备指纹技术依照用途、目标设备、信息来源、评估技术进行介绍。

 

一、前文摘要

 

《设备指纹技术介绍与综述(一)》 一文中,我们了解了设备指纹的用途、覆盖设备范围,以及部分外部行为数据的采集方式。在设备种类与应用环境极为丰富的当下,设备指纹技术不论在用途、研究范围、采集方式,抑或评估手段下都取得了长足的进展。本文将继续介绍目前设备指纹技术研究主要关注的一些内部行为数据与相关采集方式,并介绍几种主流的设备指纹评估方式。

 

二、内部行为数据来源

 

内部行为数据指需要在设备内部采集的,涉及设备底层功能的行为数据。由于这些行为数据的采集需要在设备内部进行,因此当设备无法正常工作时,内部行为数据的采集可能也会受到影响。

硬件事件

硬件性能计数器(Hardware Performance Counter, HPC)是现代微处理器中普遍存在的一个内置计数器,用以存储硬件相关的事件信息。通过硬件事件这一行为数据,我们获得精确的底层行为数据来构建设备指纹。一些研究使用HPC收集的行为数据来评估设备上软件的运行状态或监测设备异常[1],如图1所示,在一个检测窗口期内,同时监测N个事件,对于事件x,统计其发生次数C(x);异常执行路径P3的指纹向量与正常执行路径P1、P2的向量不同;一些研究使用HPC收集的行为数据来对设备进行身份认证。

 

图1 通过硬件事件计数器构建指纹向量,引用自[1]

 

基于硬件事件技术器的指纹方案能够获取到准确的底层行为数据,且这些数据不受软件层影响,这似乎为设计通用的设备指纹方案提供了思路。然而,在设备种类众多的场景中,由于硬件事件的种类与具体  数据采集接口/命令在不同设备上存在差异,为设计基于硬件事件的指纹方案带来了难度。不过在设备种类相对较少的情况下,该方法仍然能脱离软件层面,实现比较准确的识别效果。如接入设备只考虑智能手机一种设备的场景下,就可以基于陀螺仪、麦克风等硬件组件相关的行为事件,来实现模拟器/真机检测。

资源占用

在设备内部,我们可以通过设备对资源的使用来为设备构建指纹。一般来说,这类指纹采集的数据主要包含:CPU、内存、磁盘、网络的使用量。我们可以基于这些行为数据构建指纹,以达到识别设备或检测设备异常的目的。如图2所示,在Sakil等人基于CPU使用率进行设备异常检测的研究中,他们发现使用CPU使用率单位时间(1min)内的均值能够比使用标准差或熵更好地分类正常CPU使用率、峰值时CPU使用率与异常时CPU使用率。随后,他们基于单位时间内CPU使用率的均值来训练机器学习模型作为分类器,用以检测设备的异常。

 

 

图2 单位事件内CPU使用率与分类效果,样本颜色红色表示异常、蓝色表示正常、绿色表示峰值,引用自[2]

 

基于资源占用的指纹方案一般具备较高的通用性,无论设备属于什幺种类,都会有类似的资源开销。然而,持续的资源使用检测对于设备性能会造成较大负荷,在一些本身能耗比较重要的设备上,使用该方案时应做好性能维度的权衡。

软件行为

基于设备上运行软件的行为设计设备指纹,可以精确地反映设备的运行状态。其中,常被用来设计设备指纹的软件行为数据有:系统调用和日志、进程信息以及软件签名。基于软件的设备指纹方案能够准确地反映设备的运行状态,但由于软件会较频繁地被升级或修改,因此基于软件行为的设备指纹方案需要更多的维护成本,以确保指纹能与软件更新同步。

 

软件在设备中运行时需要通过调用操作系统实现文件操作、通信等功能,且特定的软件对于系统的交互、调用和通讯一般有固定的模式与频率,而这些操作都会被日志记录。因此我们可以通过软件的系统调用行为与日志来构建设备指纹。Attia等[3]通过将设备运行时一些特定命令之间(如读文件到关闭文件)的系统调用命令构成一个N元的有限状态自动机,来对软件当是否正常运行进行判断。

 

 

图3 基于软件正常运行时执行的命令构建N元有限状态自动机,引用自[3]

 

此外,设备中运行软件的进程信息,如进程名称、进程状态、线程数等也可以作为设备指纹来区别设备的种类与型号[4]。一些研究也会对设备中软件的配置文件进行哈希算法进行签名作为设备指纹[5]。实际的方案中,基于软件的设备指纹方案收集的数据还是以系统调用和日志为主,进程信息与软件签名往往作为补充。

 

到这里,我们已经基本介绍了设备指纹使用到的各类数据源。面向不同的应用场景,如图4所示[6],不同的设备指纹方案依照设备种类来采集各类行为数据。总体上看,学术研究中使用最多的行为数据还是网络通信数据、硬件事件、资源使用与软件行为这四种行为数据。

 

 

图4 不同设备与应用场景的设备指纹,与其对应的设备行为数据,引用自[6]

 

三、设备指纹的评估方法

 

当我们确定了设备指纹的使用场景与采集数据,就需要明确使用什幺方法来评估我们生成的指纹,以达到识别设备种类、型号,或检测异常的目的。大体上我们可以将评估方法分为基于规则、基于统计、基于知识、基于机器学习这四种方式。此外,有些研究会使用区块链[7]或联邦学习[8]来对指纹进行评估,由于案例较少,本文暂不介绍。

基于规则

基于规则的设备指纹评估方法是最直观的评估方式。在基于规则的评估方法里,我们会先设定每种设备运行时的规则。在获取到由设备行为数据构建的设备指纹时,我们将获取到的指纹与规则比对。根据匹配的规则,我们可以将设备划分到不同的种类、型号,并判断设备的运行状态。

 

虽然基于规则的评估方法简便直观且高效,然而该方法也存在明显的缺点。不仅构建正确的规则需要设计者拥有关于特定设备的大量知识,而且在复杂多变的环境中,设计者也很难保证既有指纹评估规则的更新速度能跟上设备的升级和变化速度。

基于统计

基于统计的设备指纹评估方法指使用诸如极值、均值、期望、方差、正态分布、四分位数、欧氏距离等较简单直观的统计学特性来评估设备指纹的方法。根据指纹的这些统计学特性,我们可以对指纹作出分类与判断,从而达到分辨设备或检测设备的目的。

 

与基于规则的指纹评估方法类似,该方法具有简明高效的优点。然而,当指纹采集的行为数据较多,即指纹数据的维度较高时,该方法很难准确地对各个维度的行为数据进行评估。

基于知识

基于知识的方法指从已有的数据中提取出一个具有推理能力的模型,并使用该模型来推理当前状态下,模型接收到的下一个输入。这类方法主要通过N元组模型、马尔可夫模型等有限状态机算法实现基于已知数据预测下一个数据的任务。由于这类算法主要是基于已有知识预测指纹评估系统接收到的下一个输入,并不能直接实现分类或识别的效果,因此基该类设备指纹评估方法主要应用于设备异常的检测。

 

该类方法具有极强的可解释性,且对于未知场景仍具备一定的兼容能力。然而在构建指纹的行为数据种类较多或行为数据本身较为复杂时,基于知识的方法也会随数据的复杂程度变得更加复杂甚至部分失效。这时该方法一方面不再具备其原本的优势,另一方面也会对系统性能造成巨大压力。

基于机器学习

从设备指纹的应用场景来看,不论是对设备种类、型号的区分,抑或设备运行状态的判断,实质上都是分类问题。由于近年来机器学习技术在复杂的分类问题上展现出了较其他方法更为可靠灵活的表现,因此许多研究都使用机器学习方法来对设备指纹进行评估。根据指纹行为数据的种类与既有样本的标签情况,我们可以使用监督学习与非监督学习来对指纹进行评估。

 

使用监督学习分类算法的场景,我们需要给已有的指纹打标签,标明每个指纹属于哪一类设备、哪种型号的设备、处于什幺样的工作状态。基于这些数据,我们构建诸如贝叶斯分类器、支持向量机、深度神经网络等模型,来对下一个指纹对应的标签进行预测。监督学习评估方法准确率较高,且能够适应高纬度指纹数据的复杂场景。然而该方法不光需要占用相对较多的系统性能,更需要使用大量已有标签的数据,而许多时候我们很难在付出较小代价的前提下为数据打上标签。

 

使用非监督学习算法的场景,我们不为数据打标签,转而关注发掘数据自身特点并加以利用。目前的非监督设备指纹评估方法大致可分为维度下降、聚类这两种。其中维度下降法,通过使用主成分分析、t分布随机近邻嵌入等方式,来将原先的高维特征转化为低维特征,再结合基于统计的方案来对指纹进行评估;聚类法通过K均值、谱聚类等聚类算法将已有的指纹数据归为一定数量的类,并根据聚类结果中的少量样本给这些类赋予实际意义,再以这些类为模型,依据新输入的指纹数据更接近归属出的哪一类,来决定新指纹对应的设备类型、设备型号与运行状态。非监督学习虽然无需给指纹数据样本打标签,但总体上说,其准确性很大程度上依赖降维、聚类算法中依赖经验设定的一些超参数,不如监督学习稳定。

 

到这里,我们完成了对设备指纹评估方案的基本介绍。如图5[6]所示,基于机器学习的设备指纹评估方法在上述几种评估方法中占据了数量上的绝对优势。图中黄色的部分表示时序分析法,由于时序分析法和基于统计、机器学习的方法法均存在较大重叠[6],故本文不单独介绍。

 

 

图5 设备指纹研究中各类评估方法逐年占比,引用自[6]

 

四、小结

 

网络环境越发复杂、设备种类越发多样、软硬件边界日渐模糊的当下,如何通过一个通用的轻量级指纹去识别一个设备,或者说一个资产,并判断其工作状态,是网络安全,乃至风控、安防领域,都亟需解决的一个重要问题。

 

如何设计一个好的设备指纹方案,从数据采集的角度看,具有一定复杂性,能够准确标识设备及其运行状态,同时易收集且具有普适性的数据源有助于构建准确、普适的设备指纹。因此设备的网络通信、系统资源使用,以及特定场景下的部分软件行为(系统接口调用等)值得优先考虑。

 

指纹评估的方法选择则与指纹数据源有密切联系。应当根据不同的指纹数据源选用适合的评估方法,如对低维数据采用基于统计或规则的评估方法,对高维数据采用基于机器学习的评估方法。虽然实际中高维的指纹往往有助于更准确地识别和检测设备,但由于高维指纹在数据采集和评估方法上往往方法复杂,且存在巨大的系统开销,因此设计巧妙的低维设备指纹方案仍具备一席之地。

 

参考文献

Wang, Xueyang & Konstantinou, Charalambos & Maniatakos, Michail & Karri, Ramesh. (2015). ConFirm: Detecting firmware modifications in embedded systems using Hardware Performance Counters. 544-551. 10.1109/ICCAD.2015.7372617.
Barbhuiya, Sakil & Papazachos, Zafeirios & Kilpatrick, Peter & Nikolopoulos, Dimitrios. (2018). RADS: Real-time Anomaly Detection System for Cloud Data Centres.
B. Attia, C. Talhi, A. Hamou-Lhadj, B. Khosravifar, V. Turpaud, and M. Couture. On-device anomaly detection for resource-limited systems. In 30th Annual ACM Symposium on Applied Computing, page 548–554, Apr. 2015.
Haider, J. Hu, J. Slay, B. P. Turnbull, and Y. Xie. Generating realistic intrusion detection system dataset based on fuzzy qualitative modeling. Journal of Network and Computer Applications, 87:185–192, 2017.
He, W. Ren, T. Zhu, and K. R. Choo. Bosmos: A blockchain-based status monitoring system for defending against unauthorized software updating in industrial internet of things. IEEE Internet of Things Journal, 7(2):948–959, 2020.
Sánchez, Pedro Miguel & Jorquera Valero, José María & Huertas, Alberto & Bovet, Gérôme & Pérez, Manuel & Martinez Perez, Gregorio. (2020). A Survey on Device Behavior Fingerprinting: Data Sources, Techniques, Application Scenarios, and Datasets.
Verbraeken, M. Wolting, J. Katzy, J. Kloppenburg, T. Verbelen, and J. S. Rellermeyer. A survey on distributed machine learning, 2019. Available: arXiv:1912.09789
Yang, Y. Liu, T. Chen, and Y. Tong. Federated machine learning: Concept and applications. ACM Transactions on Intelligent Systems and Technology, 10(2):1–19, 2019.

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。