精读 HinDroid:基于异构信息网络的安卓恶意软件检测
阅读笔记 | 来源:2017年KDD最佳应用数据科学论文
论文标题:HinDroid: An Intelligent Android Malware Detection System Based on Structured Heterogeneous Information Network
一、论文背景与问题
2017年KDD最佳应用数据科学论文关注的是如何有效监测安卓手机系统下的恶意软件。据预测,到2019年全球手机市场中77.7%将是智能手机,其中安卓系统市场占有率至少80%。由于安卓的开放性和分散的应用市场生态,恶意软件层出不穷------赛门铁克的《互联网安全威胁报告》甚至认为五分之一的安卓软件是恶意软件。
传统的恶意软件检测依赖「指纹签字」技术,但这种扊段容易被恶意开发者绕过,因此寻找更复杂有效的检测方式成为信息安全领域的核心目标。
二、作者信息
| 作者 | 单位 | 背景 |
|---|---|---|
| Shifu Hou(第一作者) | 西弗吉尼亚大学 | 博士生,多次发表相关领域论文 |
| 叶艳芳(第二作者) | 西弗吉尼亚大学 | 助理教授,2010年厦门大学博士毕业,曾在金山、科摩多从事信息安全研发 |
| 宋阳秋(第三作者) | 香港科技大学 | 助理教授,曾任职微软亚洲研究院、IBM研究院、华为诺亚方舟实验室,2009年清华大学博士毕业 |
| Melih Abdulhayoğlu | 科摩多(Comodo) | CEO,1998年创立公司,提供了论文所用数据集 |
该论文因第一作者为在读学生,同时也获得了最佳学生论文。
三、论文主要贡献
核心贡献 :根据安卓API调用,提出了一种基于结构性异构信息网络 的方法,对安卓程序的API模式进行复杂建模,从而理解整个程序的语义。在此基础上,采用多核学习(Multi-Kernel Learning)对程序语义模式进行分类。
该方法在科摩多的真实数据上达到了极高的准确度,远超当时主流方法,且已在科摩多产品中部署。
四、核心方法剖析
4.1 反汇编提取API调用
安卓软件被打包为Dex格式的Dalvik执行文件,无法直接分析。通过Smali反汇编器将Dex解析为Smali代码后,提取所有API调用,作为程序行为建模的基础。
4.2 构造四类基础矩阵
从API调用中构建四类矩阵,表达API与App之间的基本特征:
- App-API包含矩阵:某个App是否包含某个API
- API共现矩阵(代码段级):某两个API是否同时出现在某段代码中
- API共现矩阵(App级):某两个API是否出现在同一个App中
- API调用方式矩阵:某两个API是否使用了相同的调用方法
4.3 异构信息网络与元路径
引入异构信息网络(Heterogeneous Information Network)建模工具,将传统图模型扩展为能够表达多种实体类型和多种关系类型的统一框架。
在本文中:
- 实体类型:App、API调用
- 关系类型:四类(对应上述矩阵,即图的邻接矩阵)
进一步使用元路径 (Meta-Path)定义高阶关系。例如,定义一条「App → API → App」路径,描述两个App可能共享相同的API调用。基于安全领域的领域知识,作者共定义了16种元路径,全面捕捉App与API之间的复杂语义关系。
4.4 多核学习分类
将每种元路径产生的新矩阵视为一个「核」,采用多核学习同时完成两个任务:
- 学习一个线性分类器,判断程序是否为恶意软件
- 学习每个App到各核的非线性转换
五、实验效果
| 指标 | 结果 |
|---|---|
| 数据集 | 科摩多2017年两个月内1,834个App(正负例各半)+ 30,000 App扩展集 |
| F1值 | 98% |
| 准确率 | 98% |
对比方法(F1值在85%~95%之间):神经网络、朴素贝叶斯、决策树、支持向量机
对比商业软件(准确率约92%):Norton、Lookout、CM
本文方法在所有对比中均显著领先。
六、小结
这篇文章解决的核心问题是安卓恶意软件的智能检测。主要贡献在于:
- 提出基于结构性异构信息网络的方法来建模安卓程序的API语义
- 使用16种元路径定义App与API之间的高阶复杂关系
- 采用多核学习完成恶意软件判别
- 在真实数据集上达到98%的F1值和准确率,超越当时主流方法和商业软件