[发明专利]一种基于函数调用的Android恶意代码检测方法有效
申请号: | 201310443172.1 | 申请日: | 2013-09-25 |
公开(公告)号: | CN103440459A | 公开(公告)日: | 2013-12-11 |
发明(设计)人: | 陶敬;胡文君;周文瑜;赵双;马小博 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙) 11350 | 代理人: | 汤东凤 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 函数 调用 android 恶意代码 检测 方法 | ||
1.一种基于函数调用的Android恶意代码检测方法,包括以下步骤:
第一步,采集Android恶意代码样本,进行手动分析,提取其中执行恶意行为的关键权限和API函数;
第二步,对采集的Android恶意代码的权限使用进行统计分析,提取使用率最高的前M个权限作为敏感高危权限;
第三步,Android系统中访问特定资源需要申请相应的权限,资源的访问体现在API中,根据Android Permission Map,提取第二步得到的M个权限相对应的API函数;
第四步,对待测的Android程序,提取其中的classes.dex文件,使用baksmali进行反编译生成smali文件;提取AndroidManifest.xml文件,使用AXMLPrinter2进行解码;
第五步,根据第四步得到解码后的AndroidManifest.xml提取该Android程序申请的权限信息,并根据第二步得到的M个权限进行过滤;
第六步,根据第五步得到的权限信息,以及第三步得到的权限与API的对应关系,得到该Android程序使用的敏感API;
第七步,根据第四步得到的smali文件和第六步得到的敏感API,以敏感API为入口,遍历该smali文件,根据smali文件的结构特征建立调用此API的函数调用树;
第八步,对上一步生成的API函数调用树,采用树的遍历算法,构建API函数调用链;
第九步,根据该待测Android程序使用的权限,基于第一步得到的已知恶意代码样本权限信息进行初步过滤,优选为,若该待测Android程序使用的权限包含已知恶意代码样本使用的权限,则将该恶意代码样本加入待匹配队列;
第十步,根据第九步得到的待匹配队列,采用NCD算法将该待测Android程序与待匹配队列中的恶意代码样本进行逐一的相似性匹配,若二者相似度超过一定阈值,则将该待测Android程序判定为恶意代码,进行标定和记录。
2.根据权利要求1所述的基于函数调用的Android恶意代码检测步骤,第二步中,所述M取值为20,提取的敏感高危权限如下:
1.INTERNET
2.READ_PHONE_STATE
3.SEND_SMS
4.WRITE_EXTERNAL_STORAGE
5.READ_SMS
6.ACCESS_NETWORK_STATE
7.READ_CONTACTS
8.CALL_PHONE
9.RECEIVE_SMS
10.WRITE_SMS
11.READ_HISTORY_BOOKMARKS
12.WRITE_HISTORY_BOOKMARKS
13.INSTALL_PACKAGES
14.ACCESS_FINE_LOCATION
15.ACCESS_COARSE_LOCATION
16.VIBRATE
17.MOUNT_UNMONT_FILESYSTEM
18.INSTALL_SHORTCUT
19.WRITE_CONTACTS
20.WRITE_APN_SETTINGS。
3.根据权利要求1所述的基于函数调用的Android恶意代码检测步骤,第十步中,所述阈值为0.8。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310443172.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种应用系统变更验证方法及验证系统
- 下一篇:电子合同的签订方法