发明名称 基于敏感子图的安卓恶意重打包软件检测方法
摘要 本发明公开了一种基于敏感子图分析的安卓恶意重打包程序检测方法,包括敏感API权重计算,以及基于安卓程序静态函数调用网络的敏感子图构建,然后利用敏感子图在良性程序和恶意重打包程序中的敏感API调用结构的差异,构建了五种不同的结构特征,最后对于样本集构建特征空间并利用机器学方法进行分析与检测,从而实现对恶意重打包程序的检测。本发明基于文本词汇权重检测TF‑IDF提出了一种敏感系数计算方法TF‑IDF‑like,该方法使对敏感函数系数的计算不再仅仅局限于函数本身在恶意数据集中的使用分布,而是结合了该敏感函数在良性数据集中的使用分布,从而降低了部分敏感函数由于在恶意数据集和良性数据集中同时被大量调用而造成的敏感系数偏高引起的检测误报。
申请公布号 CN106203122A 申请公布日期 2016.12.07
申请号 CN201610590632.7 申请日期 2016.07.25
申请人 西安交通大学 发明人 刘均;刘烃;范铭;郑庆华;陈天一;刘恒;农春崯;田振洲;庄尔悦
分类号 G06F21/56(2013.01)I 主分类号 G06F21/56(2013.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 陆万寿
主权项 一种基于敏感子图的安卓恶意重打包程序检测方法,其特征在于,包括如下步骤:步骤S1):基于开源工具Pscout构建敏感函数集合SA={s<sub>i</sub>|1≤i≤680},其中s<sub>i</sub>表示一个敏感函数,然后获取待检测安卓程序的所属类别c,基于TF‑IDF‑like计算敏感函数s<sub>i</sub>相对于类别为c的良性数据集B<sub>c</sub>以及恶意数据集M的敏感系数scs(s<sub>i</sub>,c);步骤S2):利用反编译技术对待检测安卓程序的安装文件进行反编译生成相应的Smali代码,进一步对Smali代码进行分析并抽取函数调用关系,从而构建成函数调用图SFCG(V,E),其中V表示程序中所有的函数节点集合,而<img file="FDA0001058925140000011.GIF" wi="288" he="56" />表示程序中所有的函数调用的集合;步骤S3):基于步骤S2)构建的SFCG(V,E),根据程序调用的敏感函数集合SS={s<sub>k</sub>|1≤k≤n|n=|V|}中每一个节点元素s<sub>k</sub>在SFCG中的拓扑结构位置,将SFCG划分成为若干个包含敏感函数节点的子图,该子图集合表示为SGS={SG<sub>j</sub>|1≤j≤m},其中m为子图个数;然后基于步骤S1)中计算所得的敏感系数计算每一个子图的敏感系数scg(SG<sub>j</sub>,c),选择敏感系数最大的子图作为该目标程序的敏感子图SSG;步骤S4):基于步骤S3)得到的敏感子图SSG,抽取其三种结构特征:敏感系数特征scg(SSG,c)、敏感距离特征tsd(SSG,c)以及三种敏感Motif数量特征tnsm<sub>1</sub>(SSG,c),tnsm<sub>2</sub>(SSG,c),tnsm<sub>3</sub>(SSG,c);步骤S5):基于步骤S4)针对每一个样本构建一个五维特征向量,利用随机森林算法对训练样本的特征空间进行评估并构建分类器,从而对待检测的重打包恶意软件进行快速、有效的检测。
地址 710049 陕西省西安市碑林区咸宁西路28号