[发明专利]基于抽象流图和图神经网络的安卓应用程序分类方法在审
申请号: | 202111566330.3 | 申请日: | 2021-12-20 |
公开(公告)号: | CN114491530A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 孙聪;史鉴;王培丞;伍亚飞;马建峰 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06K9/62;G06N3/04;G06N3/08 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 王品华 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 抽象 神经网络 应用程序 分类 方法 | ||
1.一种基于抽象流图和图神经网络的安卓应用程序分类方法,其特征在于,包括如下:
(1)从相关样本库和国内外主流应用市场下载恶意和良性的Android应用软件样本,其中良性样本和恶意样本所占比例为1:1,每种类型的样本数量均不少于A个,A为大于等于1的正整数;
(2)构建一个与Android应用程序恶意行为和漏洞有关的关键应用程序接口API列表;
(3)生成(1)中所有软件样本的调用跟踪图;
(3a)对Android应用程序包APK文件进行反编译处理,将反编译后的结果作为修改后的Intellidroid工具的输入,使其能输出以一个应用程序入口点为源的所有调用路径,作为调用跟踪图的一个子图;
(3b)通过ic3工具提取Android应用程序的组件间交互ICC信息,获取其中通过Intent进行组件间交互ICC的函数及与该函数进行交互的组件,据此将不同子图中通过Intent进行组件通信的节点连接起来,生成整个Android应用程序的调用跟踪图;
(4)生成所有软件样本的抽象流图;
(4a)对调用跟踪图的节点进行分割生成抽象流图的节点;
(4b)对调用跟踪图进行深度优先遍历得到调用路径,通过(2)中关键API列表对该调用路径进行过滤后得到关键边,从调用跟踪图中提取Intent发送边、邻边、ICC边、隐式邻边,并获取这5种边的反向边,将这10种边添加到抽象流图中,作为抽象流图的边集,并删去抽象流图中没有边连接的孤立节点;
(4c)对所有节点和边添加标签构成抽象流图;
(5)通过(3)-(4)生成(1)中软件样本的抽象流图,将其作为图神经网络GNN的输入,使用反向传播算法和梯度下降法对GNN进行训练,得到训练好的图神经网络GNN;
(6)对未知安全性的Android应用程序,采用与(3)-(4)的相同方法,生成待检测应用程序的抽象流图,并将其输入到训练好的图神经网络GNN中,输出待分类应用程序的良性和恶意概率,取概率较大的类别为最终的判别类型。
2.根据权利要求1所述的方法,其特征在于,(2)中构建与Android应用程序恶意行为和漏洞有关的关键应用程序接口API列表,实现如下:
(2a)使用网络爬虫技术,从漏洞存储库中爬取描述Android漏洞的语句,并从代码存储库中收集易受攻击的Android代码样本,建立用于描述Android漏洞和恶意行为的语句库,再对语句库进行文本挖掘,从中提取出M个关键词,M为大于等于1的正整数;
(2b)使用词频-逆文档频率TF-IDF方法对(2a)提取的关键词中除Java关键词、内置类型及变量名以外的其他关键词进行排序;
(2c)选取排名前N的关键词,1≤NM,通过这些排名靠前的关键词对官方在线文档和一些常用分析工具中的API列表进行过滤,最终得到与Android漏洞和恶意行为关联的关键API列表。
3.根据权利要求1所述的方法,其特征在于,(3b)中连接不同子图中通过Intent组件通信的节点,是将组件间交互ICC的函数作为ICC交互边的起点,将该组件在启动时执行的onCreate函数作为ICC交互边的终点,通过该ICC交互边将调用跟踪图的子图桥接起来,得到整个Android应用程序的调用跟踪图。
4.根据权利要求1所述的方法,其特征在于,(4a)中对调用跟踪图节点进行分割生成抽象流图节点,实现如下:
(4a1)借助Androguard库对应用程序包APK进行反编译,获得调用跟踪图节点对应的操作码opcode;
(4a2)在调用跟踪图的节点内部判断操作码opcode是否调用了用户自定义函数或发送Intent的应用程序接口API:
若是,则在调用处对该函数的opcode进行分割,将分割后得到的opcode序列作为抽象流图的节点;
若没有调用,则不进行分割。
5.根据权利要求1所述的方法,其特征在于,(4b)中通过关键API列表对调用路径过滤得到关键边,是在调用路径中寻找属于关键API列表的函数,若找到,则将这条调用路径入口点中的第一个节点和该函数中的最后一个节点抽象为关键边的起点和终点,并将该关键边添加到抽象流图的关键边集合中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111566330.3/1.html,转载请声明来源钻瓜专利网。