(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202111628481.7
(22)申请日 2021.12.28
(71)申请人 杭州电子科技大 学
地址 310018 浙江省杭州市钱塘新区白杨
街道2号大街1 158号
(72)发明人 陈信 殷嘉铖 俞东进 俞海华
(51)Int.Cl.
G06K 9/62(2022.01)
G06F 21/56(2013.01)
(54)发明名称
基于多特征的安卓 恶意软件家族聚类方法
(57)摘要
本发明提出了一种基于多特征的安卓恶意
软件家族聚类方法。 该方法首先抽取权 限特征、
API特征和操作码特征, 用于表示样本不同方面
的信息; 其次在预处理阶段过滤API特征和操作
码特征中冗余特征, 以减少后续计算时间并提高
聚类效果; 然后使用Jaccard系数计算样本之间
的权限特征、 API特征和操作 码特征的相似度, 同
时利用API序列信息计算API的序列相似度, 集成
所有相似度得到恶意软件之间的相似度; 最后,
通过设置相似度阈值构建恶意软件网络, 使用社
区发现中的InfoMap算法实现聚类。 通过本发明
方法能有效实现恶意软件的家族聚类, 对恶意软
件检测和原因分析有着非常重要的意 义。
权利要求书3页 说明书6页 附图1页
CN 114492586 A
2022.05.13
CN 114492586 A
1.一种基于多特 征的安卓 恶意软件家族聚类方法, 其特 征在于: 包括 一下步骤
步骤一: 给定m个Android应用恶意软件安装包集合A=(A1, A2,…Am), 对于每个恶意软
件安装包Ai(i=1 , 2,..., m) , 借助安卓分析工具Androguard获取其中的
AndroidManifest.xml文件和clas ses.dex文件;
步骤二: 从AndroidManifest.xml文件中抽取权限信息, 从classes.dex文件中抽取API
序列信息以及操作码序列信息; 每个恶意软件可以表示为Ai=(apkId, permission,
APISequence, opcode), 其中apkId表示恶意软件安装包的编号, permission表示权限集合
信息, APISequence表示API序列信息, opcode表示操作码序列信息;
步骤三: 对permission和APISequence进行过滤: 根据官方文档定义 的权限列表, 过滤
permission中第三方或自定义的权限; 通过识别API中的packageName, 过滤sequence中非
官方的API;
步骤四: 对opcode信息进行特征抽取: 利用模型抽取opcode中字节片段特征gram; 经过
步骤三和四的预处理后, 每个恶意软件包表示为Ai=<apkId, prePermission,
preAPISequence, preOpcode>, i =1, 2…m;
步骤五: 将所有软件包中的prePermission表示成字袋形式, 创建集合
其中li表示第i软件包中的权限个数; 对于任意软件包Aa和Ab中
prePermis sion, 利用Jac card系数计算prePermis sion的相似度Simper(Aa, Ab), 公式为:
其中||表示集合中包含的权限的个数;
步骤六: 将所有软件包中的preOpcode也表示成字袋形式, 创建集合
其中di表示第i软件包中的操作码个数; 对于任意软件包Aa和Ab中
preOpcode, 利用Jac card系数计算软件 包中preOpcode的相似度Simop(Aa, Ab), 公式为:
步骤七: 对于软件包中的preAPISequence , 将所有的API组成序列集合
其中ti表示第i软件包中的操作码个数; 利用Jaccard系数计算
其语义相似度, 以及API的序列位置信息计算其序列相似度; 最 终综合这两种相似度得到任
意软件包Aa和Ab的preAPISequence相似度Simapi(Aa, Ab);
步骤八: 将三种不同类型的相似度进行集成, 计算软件包之间的最终相似度; 给定任意
两个软件 包Aa和Ab, 最终相似度Sim(Aa, Ab)定义为:
步骤九: 软件包聚类: 利用InfoMap 方法对软件包进行聚类; 通过InfoMap 方法将所有恶
意软件划分为c类。
2.根据权利要求1所述的一种基于多特征的安卓恶意软件家族聚类方法, 其特征在于:
所述步骤四包括以下步骤:权 利 要 求 书 1/3 页
2
CN 114492586 A
2子步骤4‑1、 在给定恶意安卓软件样本集A=(A1, A2,…Am), 抽取所有软件包的操作码的
n‑gram(n=5)特征, 构建集 合Ω={o1, o2, ..., os}, s为所有5 ‑gram操作码的数量;
子步骤4‑2、 计算Ω中每个ok(k=1, 2, ...s)在安卓恶意软件样本集A中出现的频率, 记
作P(M)={p(o1, A), p(o2, A), ..., p(os, A)}, 计算公式如下:
其中count(ok, A)表示在样本集A中包 含ok的样本数量;
子步骤4‑3、 对所有的ok按照概率从大到小进行排序, 选 择其前K%(K=1)个5 ‑gram操作
码作为关键操作码特 征列表。
3.根据权利要求1所述的一种基于多特征的安卓恶意软件家族聚类方法, 其特征在于:
所述步骤七包括以下步骤:
子步骤7‑1、 对于任意两个软件包Aa和Ab, 其包含的preAPISequence序列的语义Simsem
(Aa, Ab)为:
子步骤7‑2、 假设One(Apia, Apib)表示Apia和Apib中都出现且仅出现一 次的API的集合,
Pf(Apia, Apib)表示One(Apia, Apib)的单词在Apia中的位置序号构成的向量, Ps(Apia, Apib)
表示Pf(Apia, Apib)中各分量对 应单词在Apib中的序列排序生成的向量, Re(Apia, Apib)表示
Ps(Aa, Ab)各个相邻分量的逆序数; 则序列相似度Simord(APISa, APISb)为:
子步骤7‑3、 最终得到Aa和Ab中preAPISequenc相似度Simapi(Aa, Ab)= λ1×Simsem(Aa, Ab)+
λ2×Simord(Aa, Ab), 其中λ1=0.7, λ2=0.3。
4.根据权利要求1所述的一种基于多特征的安卓恶意软件家族聚类方法, 其特征在于:
所述步骤九包括以下步骤:
子步骤9‑1、 初始化, 将每 个软件包Ai当作独立的社区;
子步骤9‑2、 将节点之 间的相似度Sim(Ai, Aj)作为转移 概率, 记为
同时, 为了避免
随机游走进入孤立区域, 引入了穿越概率τ( τ是一个超参数, 且0<τ<1); 于是Aj的下一步
转移概率为
其中c为类的个数;
子步骤9 ‑3、 将
定义为优化目标, 其中
是是随机游走 过程中“离开类Gk”事件发生的概 率, 且
H(Q)表示社区之间运动熵, 且
权 利 要 求 书 2/3 页
3
CN 114492586 A
3
专利 基于多特征的安卓恶意软件家族聚类方法
文档预览
中文文档
11 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共11页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-19 00:19:45上传分享