批量安卓恶意软件检测方法及装置的制造方法

文档序号:8512709阅读:242来源:国知局
批量安卓恶意软件检测方法及装置的制造方法
【技术领域】
[0001] 本发明涉及一种批量安卓恶意软件检测方法及装置,属于安卓平台应用安全分析
技术领域。 技术背景
[0002] 随着移动互联网的迅速发展,具有移动操作系统的智能手机得到了大范围应用。 不再局限于普通的通讯功能,智能手机拥有独立的操作系统,因而人们可以使用智能手机 随时随地进行收发邮件、购物、交易等,移动互联网市场已经显露出它巨大的价值。而在此 背景下的安全风险也随之而来:恶意软件、钓鱼网站越来越多,公共wifi之类的风险应用 场景也越来越多。相比于其他操作系统,随着基于Iinux内核的安卓智能手机操作系统的 市场份额越来越多,安卓手机已经成为当前恶意软件最重要的攻击目标。
[0003] 安卓系统是一种开源的操作系统,开发人员可以将应用程序直接上传到市场供用 户使用而无需经过任何审查。方便快捷的开发方式激发了各种功能的应用程序的涌现,也 进一步促进了安卓操作系统的发展和普及,但也使它面临着更大的风险。移动设备存储量 的增长,使其存储了大量的个人信息和商业数据;智能手机可以支持支付业务,供应商,销 售商,批发商,内容提供商,移动操作者以及银行都在创建新的移动支付业务。这些都使移 动设备等成为了攻击者们的众矢之的。越来越多的恶意程序利用移动设备来获取用户资 料,进行恶意扣费和系统破坏。恶意程序利用移动设备来恶意拨打电话,发送垃圾短信,泄 露用户证书,和破坏手机软硬件的事例已经屡见不鲜。
[0004] 对安卓设备上的恶意软件检测方法主要分为静态检测和动态检测两种方法。静态 分析的目标主要是如下几点,apk文件列表,Manifest文件,dex文件,二进制文件,资源文 件,权限,四大组件,敏感API,尤其是LoadLibrary,dexClassLoader,Reflection等。安卓 应用程序的文件签名也经常被用来作为检测特征。静态检测是在不运行应用程序的前提 下,通过分析反编译应用程序,获取程序的源代码,或者分析程序的外部特征如文件签名等 对恶意软件进行检测。而动态检测则是将应用程序运行在沙箱或者安卓系统中,在程序运 行的过程中,分析程序的运行轨迹,查看程序对系统敏感资源的通信情况和使用情况,检测 出程序对用户资料或者系统敏感资源的泄露来判定为恶意软件或者病毒。
[0005] 系统权限是安卓恶意软件检测的一个重要元素。在安卓系统中,应用程序需要申 请权限来访问重要资源。当应用程序申请比其所需更多的权限时将有可能引起特权提升攻 击。而由于一些开发人员的不良习惯,应用程序申请过多权限的情况也经常发生,因此单纯 使用权限不足以作为恶意软件检测的唯一检测特征。
[0006] 程序控制流程图显示了应用程序的所有执行路径,同一个病毒家族的恶意程序在 程序控制流程图的结构上具有极大的相似性,因此程序控制流程图也被经常用来作为检测 恶意软件变种的依据。
[0007] 系统调用反映了应用程序在实际运行过程中所进行的实际操作,追踪系统调用可 以实时反映恶意程序的恶意行为。而传统的污点标记方法需要在应用程序内部添加污点标 记,并定义污点的传播方法,修改android源码,复杂度过高,不能对大批量的恶意软件进 行检测。
[0008] 静态分析方便迅速,可以隔离使用环境进行分析,但是无法检测出其模型库以外 的恶意软件攻击。而动态分析可以实时抓取应用程序的恶意行为,但是无法覆盖程序的所 有执行路径,对于未执行恶意行为的恶意程序可能会误判为正常软件。因此,将静态特征 和动态特征相结合来对恶意软件进行检测的方法可以解决上述问题,提高恶意程序的检测 率。
[0009] 几个典型的现有技术:
[0010] 现有技术一的方案以及现有技术一的缺点:专利201310388742. 1所述方案,通过 解析apk文件样本中的可执行文件并提取出解析文本中的特征字符串,利用特征字符串构 建恶意程序特征码列表和非恶意程序特征码列表,将apk文件样本对应的特征字符串与恶 意程序特征码列表和非恶意程序特征码列表进行比对,得到该apk文件样本的字符串特征 向量,并根据字符串特征向量和该apk文件样本向系统申请的权限生成该apk文件的识别 特征向量,对多个apk文件样本的识别特征向量进行训练,生成用于识别恶意apk文件的分 类模型,利用该分类模型对未知类型的apk文件进行识别。然而,在该检测模型中,主要是 以应用程序中出现的字符串为基础模型创建特征去进行检测,对恶意程序的检测不够直接 和准确。
[0011] 现有技术二的方案以及现有技术二的缺点:专利201410250514. 2所述方案,对待 检测的apk应用程序,首先根据反编译后生成的smali文件,分析程序的基本块得到其流程 图,删除不含invoke指令的结点,并连接剩余的结点,得到新的只包含API调用关系的程序 流程图,将API全路径哈希编码值与其连接关系组成的图指纹作为恶意行为特征,然后利 用子图同构理论与恶意行为特征库中的每条恶意行为记录进行匹配,来进行恶意软件的行 为匹配。此检测方法对已出现的恶意病毒及其变种的检测简单有效,但对于新出现的恶意 病毒将会失去其检测作用。
[0012] 现有技术三的方案以及现有技术三的缺点:专利201310127940. 2所述方案,将 待检测软件在android系统模拟器中执行,在android系统模拟器中预先设有至少一个预 定函数或命令的插粧监控代码,所述插粧监控代码用于截获所述预定函数或命令被调用的 调用状态数据,其中,所述预定函数包括AndroidSDK中telephonymanager、SmsManager、 BroadcastReceiver、NotificationManager、PhoneStateListener 以及 PackageManager 中 的至少一个类的至少一个函数,所述预定命令包括su超级用户名利;监控数据分析器,用 于对截获的所述预定函数或者命令被调用的调用状态数据进行分析,以确定待检测软件是 否包含恶意代码。该检测方法对所述预定函数的监控可以及时的获取应用程序对敏感信息 的泄露行为,但是需要对安卓系统进行一定程度的改造,实现方式过于复杂。
[0013] 现有技术四的方案以及现有技术四的缺点:专利201310598132. 4所述方案,针对 软件中的入口函数进行代码分析,确定每个入口函数所调用的功能模块以及相应的调用顺 序,查找并确定每个系统调用中的敏感系统调用,生成敏感系统调用序列,根据预定义的恶 意软件特征库对所述敏感系统调用序列进行匹配,并得到恶意软件检测结果。此检测方法 缩减了对程序控制流程图的匹配过程而只是检测敏感系统调用的序列,但是所述特征不够 充分,不能够高效的对恶意软件进行检测。

【发明内容】

[0014] 本发明的目的在于提供一种批量安卓恶意软件检测方法及装置,克服现有的恶意 软件检测方法的不足。
[0015] 为此,本发明提出一种批量安卓恶意软件检测方法,包括如下步骤:A、分别提取并 计算应用程序的系统权限特征的第一频率向量、程序控制流程图特征的第二频率向量和系 统调用特征的第三频率向量,由所述第一频率向量、所述第二频率向量和所述第三频率向 量计算得到综合特征向量;B、使用数据挖掘中的分类算法对所述综合特征向量进行分类, 得到分类结果数值;C、计算电量记录对恶意软件检测的第一贡献值和intent记录对恶意 软件检测的第二贡献值;D、对所述分类结果数值、所述第一贡献值和所述第二贡献值进行 加权计算,若所述加权计算结果超过设定阈值,则将所述应用程序判定为恶意软件,否则将 所述应用程序判定为正常软件。
[0016] 本发明还提出一种批量安卓恶意软件检测装置,其特征是采用上述方法进行批量 安卓恶意软件检测。
[0017] 本发明具有以下优势:本发明将系统权限、系统调用、程序控制流程图等混合起来 组成一个新的特征向量,并使用分类算法对恶意软件进行检测,准确度高,遗漏少。
【附图说明】
[0018] 图1是本发明实施例的恶意软件检测流程图。
[0019] 图2是本发明实施例的特征提取模块流程示意图。
[0020] 图2a是本发明实施例的一个程序控制流程图的字符串生成实例图。
[0021] 图3是本发明实施例的分类器模块流程示意图。
[0022] 图4是是本发明实施例的综合评价模块流程示意图。
【具体实施方式】
[0023] 本发明实施例的恶意软件检测流程图如图1所示。该流程图主要分为三个模块: 特征提取模块、AROW(-种在线分类算法)分类器模块、综合评价模块。
[0024] 特征提取模块提取应用程序的系统权限特征、程序控制流程图特征和系统调用特 征,计算每个特征的频率向量(分别为第一频率向量、第二频率向量、第三频率向量),组合 拼接成综合特征向量,然后利用AROW算法进行分类,并将分类结果与电量记录对恶意软件 检测的第一贡献值和intent记录对恶意软件检测的第二贡献值进行加权计算,来对应用 程序进行判定。
[0025] 在特征提取模块首先提取每个应用程序
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1