您正在使用IE低版浏览器,为了您的雷峰网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
此为临时链接,仅用于文章预览,将在时失效
人工智能 正文
发私信给杨晓凡
发送

0

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

本文作者:杨晓凡 编辑:郭奕欣 2017-09-05 14:25
导语:数据挖掘在安全领域也可以大有作为

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

雷锋网 AI 科技评论按:KDD 2017 的最佳应用论文是「HinDroid: An Intelligent Android Malware Detection System Based on Structured Heterogeneous Information Network」(HinDriod:基于异构信息网络的智能安卓恶意软件检测系统),这篇来自西弗吉尼亚大学计算机与电子工程学院华裔副教授 Yanfang Ye 和她的学生、同事的论文,介绍了一种基于软件行为和深度学习的新型恶意软件识别方法。

以下为 Yanfang Ye 老师在 KDD 2017现场对自己获奖论文的演讲。雷锋网 AI 科技评论听译。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

下面我给大家介绍一下我们的工作。很遗憾我的学生因为签证问题来不了现场。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

我的名字是 Yanfang Ye,大家可以叫我 Fanny。感谢主持人Jeniffer刚才的介绍,我是西维吉尼亚大学(WVU)计算机科学和电子工程学院副教授。在我加入WVU之前,我已经在业界工作了16年。用数据发掘和机器学习进行恶意软件的智能检测是我的主要研究领域之一。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

智能手机在人们的生活中得到了广泛应用,比如社交网络、在线购物和娱乐活动。随着手机的便携性越来越强、功能越来越多,全世界拥有智能手机的人也越来越多。安卓作为一种开源可定制的操作系统,目前在智能手机市场占据着重要地位,它不仅吸引了众多开发者开发正规的应用,同样吸引了许多攻击者设计恶意软件。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

安卓用户可以从谷歌应用商店或者Opera、豌豆荚这样的第三方应用商店下载应用。多数时候用户下载的应用都是正常的,但是也有时候会下载到恶意软件。根据信息安全公司 Symantics 近期的一份报告显示,每五个下载的应用中,就有一个是恶意的。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

如果手机被恶意软件感染了,它就有可能盗取你的电子账户中的资金,或者未经你的允许发送短信;甚至它还可以弹出广告,以及下载其它不需要的软件到你的手机里;如果你的手机很不幸被勒索软件感染了,你有可能要交一笔赎金才能解锁手机或者救回你已经泄露的个人隐私信息。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

为了保护正规用户不受恶意软件的攻击,各种防御方法里广泛使用的是基于签名的防御方式,但是攻击者也有很多工具,甚至使用重新封包的方法来逃过检测。那么我们就需要更强力、更有效的方法保护用户。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

HinDriod就是一种更有力的保护手机用户的方法。这是我们系统的架构。对于每一个封装过的应用,不管是正常的还是恶意的,它首先会被反编译为 Smali 代码,这是一种对.dex文件中程序代码的分解代码,它完全解析出了程序对系统API的调用行为,而且能够对这些调用行为之间的关系做完善的分析。

提取的特征中有两种实体和四种关系。为了解析其中的复杂关系、得到更高层次的语义信息,我们提出了这种异构信息网络 HIN 来展现其中的复杂关系,用一种基于元路径的方法找到应用之间的联系。它们之间联系的计算方式是基于对用户行为的相似性的。为了综合使用不同类型的相似性,我们用多重核学习的想法构建了一个分类网络,这样对未来遇到的任何应用也可以做出安全或者恶意的判断。

然后接下来我对我们方法的细节做进一步介绍。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

比如这个例子里是一个勒索软件。在解压缩和反编译之后,我们就从 Smali 代码中提取程序的API调用。图中展示的就是从反编译得到的 Smali 代码中提取 invoke 调用。在安卓应用程序用,API被广泛地用来提供系统功能和资源,所以就可以用 API 的调用情况来表征安卓应用程序行为的特点。在实验室中,我们对它们之间的关系做了完整的分析。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

我们分析出的第一种关系是,程序中的API调用是否是来自同一个包的。比如这个例子,如果程序的API调用来自同一个http的包,这就代表着它和网络连接有关系;如果另一个API调用是来自 io/文件系统包的,那么它就和文件的读写有关系。

为了能够表示这些关系,我们生成了一个 API 包矩阵P,其中的每个元素用来表示一组API调用是否来自同名的包。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

我们还详细分析了API调用是否来自同一个代码段。在这类,我们把一个代码段定义为“.method”和“.end method”之间的部分。这样就可以看到,对于之前提到的这个例子,这三个同在 Smali 代码的“loadlibs method”代码段中的API调用表明这个勒索软件意图向系统 kernel 中写入恶意代码。

类似地,为了表示这样的关系,我们生成了 API 代码段矩阵 B,其中的每个元素用来表示一组API调用是否来自同一个代码段。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

更进一步地,我们还详细分析了不同的API调用是否采用了相同的 invoke 方法。这就好比是看句子中的单词是否是相同的成分。如果API调用使用的是同一种 invoke 方法,也能过为恶意软件识别和检测提供重要的信息。为了表示这样的关系,我们生成了 API 调用方法矩阵 I,其中的每个元素用来表示一组API调用是否使用了同一种invoke方法。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

这样,我们就生成了四个矩阵,其中包含了两种实体和四种关系。为了解析这样复杂的关系,我们引入了异构信息网络HIN用于特征表征。由于它能够分解不同的实体和关系,它已经运用在了科学文献解析网络等多个领域中。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

这里是对 HIN 的一张示意图。以Facebook app为例,它使用了 API 1、API 3、API 5;Snapchat使用了 API 2、API 3、API 4。其实你可以看到,API 1和API 2存在于同一个代码段中,这样的代码段很多别的应用都有,比如Pokemon;我们也可以看到,API 3和API 4很可能是属于同一个包的;而API 6和API 7使用了同一种invoke方法。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

为了在HIN网络的框架内把应用程序关联起来,我们设计了一种基于元路径(meta-path)的方法来关联它们。比如这里的第二行表示Facebook app和Snapchat app分别使用了API 1和API 2,而API 1和API 2在同一个代码段中。在建立了这样的元路径之后,我们用交换矩阵来表示它们。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

这样,用交换矩阵表示的元路径可以被看作是一个个“核 kernel”。为了评价不同的核,我们还提出了一种多重核学习框架,它把p范数多重核学习的方法用在预测中,从而构建并泛化了我们的分类模型。这样,对于任意一个未来遇到的新应用程序,我们都可以判断出它是良性的还是恶意的。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

这就是我们的方法的主要过程。基于所提的方法,我们构建出了HIN系统,并基于两个数据集对系统进行了演示和有效性评估。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

第一个数据集是来自Comodo云安全中心的,包含了它每日收集的应用程序;其中一共有1834个训练程序和500个测试样本。这些测试样本中有198个是良性的,302个是恶意的。我们的实验一到实验三使用的就是这个数据集。

第二个数据集中包含的样本更多,其中包含了三万个安卓应用程序。实验四中使用的是这个数据集。在不同方法间对比时,我们使用了以下几个指标。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

在实验的第一部分中,我们测试了所提方法的表现。可以看到,不同的元路径方法在检测恶意应用时有不同的表现,比如倒数一二三三个方法的表现就很好;也有一些方法表现不好,我们认为这可能是因为那些元路径背后的语意没有体现出恶意安卓应用程序检测问题的复杂性。我们还尝试了两种拉普拉斯评分的核组合,一种选了分数最高的五种,对应的拉普拉斯评分将用作对应的元路径权重。可以看到,相比单一的元路径方式,核组合的方式表现有所提升。跟以上的无监督元路径选择方法相比,可以看到我们的多重核学习方法进一步提升了恶意软件检测表现。右上角的图是βk和F1之间的相关性;βk是多重核学习网络生成的核的权重,表现不好的核的权重会被降低,主要留下表现好的核的预测值。我们也测量了实验中的参数敏感度。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

在实验的第二部分中,我们把HinDriod与其它恶意软件检测方法做了对比,用到了两个特征集。第一个特征集“original”意思是仅仅使用了原始的API调用作为输入;第二个特征集“augmented”是说我们把所有HIN相关的实体和关系都作为特征,让其它算法学习。从实验结果可以看出,HinDroid 的检测效果相比其它的基准模型有明显提升,在 false positive 和 false positive 数目的减少上体现得最为明显。我们还做了一个 T 实验,进一步展示了我们方法的优势。HinDriod选用了表达能力更强的表征,所以降低了特征工程的工作量,而且也显著提高了恶意软件检测的表现。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

实验的第三部分,我们把HinDriod和一些流行的商业移动安全软件做了对比,比如 Lookout 和 Clean Master。HinDriod 仍然是表现最好的一个,我们认为这可能就是因为它新颖的高层次语意特征表征,以及特征工程方面基于多重核学习构建的HIN网络。而且,HinDriod 的检测效率也很高。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

在实验的最后一部分中,我们展示了HinDroid在更大的、真实数据集上的有效性;其中包含了Comodo云安全中心每日收集的三万个安卓应用程序。可以看到,HinDriod 在标注新收集的应用时取得了令人惊叹的高 true positive 率和低 false positive 率。我们还进一步研究了HinDriod的可拓展性,以及训练数据集大小变化时的表现。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

由于以上的种种魔力,HinDriod可以作为实际的方案真正在业界得到应用,而且已经集成进了Comodo移动安全产品的检测工具中。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?


最后,我再简单总结一下我们的工作。与现有方法相比,在提取API调用之后,我们想尽地分析了它们之间的关系,并设计了HIN网络来解析其中的复杂关系、运用了一种基于元路径的方式来关联不同的应用程序。HIN已经在多个不同的领域得到了成功应用,不过这还是第一次应用在安卓恶意软件检测中。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

总的来说,我们用了这样的特征表征来分析安卓应用程序,这让恶意应用更难逃过检测。HIN第一次用在恶意应用检测中,在这篇论文中我们提出了一种从数据进行多重核学习的方法来判断不同元学习路径的重要程度。对于处理基于HIN的相似性,这是一种很自然的方法,不过以我们所知这也是第一次有人尝试。由于它的各种优点,它也已经用于真实业界应用中。

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

最后我想感谢Comodo、NFS和WVU Research的支持,尤其要感谢我的团队和学生Shifu Hou和我的同事Yangqiu Song,以及Comodo CEO Melih。还要感谢KDD2017组委会、审稿人和主席认可我们的工作。我非常希望可以和数据科学和信息安全领域的研究员和业界伙伴一起合作,让世界变得更美好。

如果你对我们的研究感兴趣,我们还有一个博士生位置可供申请。如果还有什么问题欢迎联系我,谢谢各位!

(完)

论文地址:http://www.kdd.org/kdd2017/papers/view/hindroid-an-intelligent-android-malware-detection-system-based-on-structure

Yanfang Ye老师主页:http://community.wvu.edu/~yaye/ 

雷锋网 AI 科技评论听译。

相关文章:

KDD 2017奖项全公布,华人成最大赢家

雷峰网原创文章,未经授权禁止转载。详情见转载须知

KDD2017最佳应用论文演讲全文:如何用行为表征揪出恶意软件?

分享:
相关文章

读论文为生

日常笑点滴,学术死脑筋
当月热门文章
最新文章
请填写申请人资料
姓名
电话
邮箱
微信号
作品链接
个人简介
为了您的账户安全,请验证邮箱
您的邮箱还未验证,完成可获20积分哟!
请验证您的邮箱
立即验证
完善账号信息
您的账号已经绑定,现在您可以设置密码以方便用邮箱登录
立即设置 以后再说