CN116010947A - 一种基于异质网络的Android恶意软件检测方法 - Google Patents

一种基于异质网络的Android恶意软件检测方法 Download PDF

Info

Publication number
CN116010947A
CN116010947A CN202211074492.XA CN202211074492A CN116010947A CN 116010947 A CN116010947 A CN 116010947A CN 202211074492 A CN202211074492 A CN 202211074492A CN 116010947 A CN116010947 A CN 116010947A
Authority
CN
China
Prior art keywords
matrix
heterogeneous network
api
relationship
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211074492.XA
Other languages
English (en)
Inventor
崔艳鹏
胡建伟
于昆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Xidian Network Security Research Institute
Xi'an Humen Network Technology Co ltd
Original Assignee
Chengdu Xidian Network Security Research Institute
Xi'an Humen Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Xidian Network Security Research Institute, Xi'an Humen Network Technology Co ltd filed Critical Chengdu Xidian Network Security Research Institute
Publication of CN116010947A publication Critical patent/CN116010947A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于异质网络的Android恶意软件检测方法,通过编译模块使用Apktool反编译所有测试样本;结合异质网络中节点与边关系的特点,提取多种API调用信息作为矩阵构建元素;利用BM25方法对API调用信息降维,随后再进行矩阵构建;采样分类模块采用针对矩阵的随机游走方法,并将游走得到的节点序列作为Skip‑gram模型的特征进行嵌入表征,并使用SVM算法对恶意软件进行分类和检测。本发明通过预定义的元路径对矩阵进行随机游走,构建了包含丰富语义的节点序列;并使用Skip‑gram方法针对不同应用节点的多条游走序列生成了嵌入值,实现了对恶意软件进行检测和分类。

Description

一种基于异质网络的Android恶意软件检测方法
技术领域
本发明属于网络安全技术领域,涉及一种基于异质网络的Android恶意软件检测方法。
背景技术
Android是世界上使用最广的移动设备智能平台,它是一种基于Linux开发的开放性平台。自从2007年Google推出第一代Android操作系统至今,已有将近十几年时间,移动设备的市场份额在急剧增长,随着智能设备的普及率的提高,随之上线的各类应用(Application,APP)也越来越多,广泛的功能各异的APP可以满足人们日常的各种需要,但随之而来的安全隐患也逐渐升高。
2020年Android恶意软件的活跃度高于2019年末的预期,一些已知类型恶意软件的检测记录显著增长,其中就包括特洛伊木马病毒、虚假广告信息、银行类虚假软件等。这些软件首先会要求在其他应用程序上显示权限,还会要求允许从未知来源安装未知应用程序。一旦这些权限被用户接受,这些恶意软件就可以在其他应用程序上显示广告,并安装来自第三方应用商店的恶意软件。在获得许可的几分钟内,广告会以各种形式出现:打开默认的网络浏览器进入广告网站;在通知中弹出广告;甚至会伪造消息通知栏,用户在不知情的情况下点击时就会打开广告。
由于大多数工作将信息网络建模成同质信息网络(简称同质网络),即网络中仅包含相同类型的对象和链接,例如社交网络和朋友圈等。同质网络建模方法往往只抽取了实际交互系统中的部分信息,而且没有区分对象及其之间关系的异质性,从而造成不可逆的信息损失。传统Android行为建模方法中,仅关注到API调用之间的互联关系,而忽视了API调用之间的丰富语义,比如说,API的包名和API出现的代码块等。
近年来,更多的研究者将多类型且互连的网络化数据建模为异质信息网络(简称异质网络),实现对现实世界更完整自然的抽象;如果将这些信息与API调用序列相结合,使用异质图的方法建模的程序,语义也会更加丰富因此,使用异质图建模的Android恶意软件检测方法也成为了一个研究热点。Ye等人提出了HinDroid,首先提出构造一个异质图建模API和Android应用程序之间的复杂关系,该方法通过将APK与API设为节点,APK与API的多种关系设为边,利用异质网络建模方法,梳理了API调用间的结构信息,构建了三种关系,分别是包含关系(A),代码块关系(B)和包关系(P),存在四个APK节点与四个API节点,APK中使用到的API以椭圆表示,且API与API之间存在代码块关系和包关系,将APK与API定义为节点;将包含、代码块、包三种形式定义为边,即构建了关于Android软件的异质图。
基于所构建的Android异质图,使用Skip-gram模型最大化每个应用节点的条件概率,通过在每个应用ai的多条游走序列构成的邻域Nt(ai)上最大化网络似然条件概率,来学习Android异质网络中关于应用节点ai的表征。最后,使用SVM方法对Skip-gram模型生成的嵌入值进行分类,通过有监督的方法实现了不同类型恶意软件的检测与分类;但是由于没有区分混淆,带来了极大的开销。
发明内容
本发明解决的技术问题在于提供一种基于异质网络的Android恶意软件检测方法,降低检测的开销,并提高监测的准确率。
本发明是通过以下技术方案来实现:
一种基于异质网络的Android恶意软件检测方法,包括以下操作:
1)通过编译模块对待测试样本进行解码和反编译,以抽取所有测试样本的Samli代码;
2)通过特征构建模块识别并整理Samli代码中的特征,基于异质网络中节点与边关系的特点,从测试样本中提取多种API调用信息;
然后通过BM25方法对提取的API调用信息进行降维,对混淆语义进行过滤,并筛选出具有影响力的API调用信息,然后以其作为元素,生成特征矩阵;
3)由检测分类模块应用已定义好的能表达语义特征的元路径,对特征矩阵进行随机游走,并将随机游走得到的游走序列作为Skip-gram模型的特征进行嵌入表征,然后使用SVM方法检测出其中的恶意软件。
所述编译模块是通过Apktool工具解码和反编译所有测试样本,仅保留所有后缀名为.smali的文件,删除其余文件。
所述特征构建模块对Samli代码中的特征提取是从Smali代码提取API,以及APK与API之间存在的包含关系、代码块关系或包关系,并用元路径表征其在异质网络中的连接路径;
所述包含关系为:单个APK反编译后的Smali代码中以invoke起始的API调用;
所述代码块关系为:Smali代码中一对“.method”和“.end method”之间出现的一对API调用;
所述包关系为:Smali代码中以相同包名出现的一对API调用;
若将包含关系、代码块关系、包关系分别简记为A关系、B关系、P关系,则元路径P=(ABA)的具体路径为p=(APK1APIiAPIjAPK2);其表示APK1中存在APIi调用,APK2中存在APIj调用,且APIi与APIj之间存在P关系。
所述BM25方法对提取的API调用信息进行降维,筛选去除特征中的加密或混淆调用,是去除含有特殊字符或不完整字符的API调用信息;
所述筛选出具有影响力的API调用信息,包括以下操作:
101)提取所有APK反编译后的汇总API文档作为文档集D,将D中每一个APK提取出的API作为单独文档d,并将d中的单条API视作语素q;
102)针对语素进行切分,获得单词t,通过d与t计算逆文档频率,获得语素q权重;
103)计算语素q与文档d相关性得分,直到当前语素中的单词计算完毕;
104)重复102)、103),直到每个文档d中每条语素相关性的得分计算完毕,对所有单词进行加权求和;将求和结果较高的若干API作为该单独文档d中具有影响力的API调用信息。
所述特征矩阵的生成为:
针对特征中的Contain信息,生成了Contain矩阵,记做MA矩阵,其中每个元素:
Figure BDA0003831032970000041
值为1时表示APK中存在API调用,反之为0;
针对特征中CodeBlock信息,生成CodeBlock矩阵,记做MB矩阵,其中每个元素:
Figure BDA0003831032970000042
值为1时表示这对API调用属于同一个代码块;
针对特征中Package信息,生成Package矩阵,记做MP矩阵,其中每个元素:
Figure BDA0003831032970000043
值为1时表示这对API调用属于同一个包。
所述随机游走是采用Matrix2Vec随机游走采样方法进行的,通过输入应用程序序列与游走规则序列,完成针对应用序列中所有应用的按规则随机游走,最终输出每个应用程序的随机游走采样序列;
将最终生成的随机游走采样序列使用Skip-gram模型最大化每个应用节点的条件概率:通过在每个应用ai的多条游走序列构成的邻域Nt(ai)上最大化条件概率,学习Android异质网络中关于应用节点ai的表征。
所述的Matrix2Vec随机游走采样方法,包括以下操作:
1)将应用序列a1,a2…ai…at…an作为输入,并对每个应用设置游走次数m;
2)输入游走规则序列
Figure BDA0003831032970000051
针对特征矩阵MA中的应用ai随机游走一个对应行列值Mij;其中Mij的值代表应用ai在矩阵M中是否存在对应关系,值为1时代表存在,值为0代表没有;
3)当且仅当应用序列和游走规则序列皆为空时,输出了m·n条随机游走采样序列。
所述的最大化条件概率是在给定样本θ下,定义Softmax函数的回归预测属于类别c的条件概率为p(ct|v;θ),其中ct表示θ有c个类别,v表示当前顶点,即游走序列的起点;
则最大化条件概率计算公式如下:
Figure BDA0003831032970000052
使用SVM方法对恶意软件进行分类和检测为:
将Skip-gram模型表征的嵌入值投射到二维平面上,使用SVM方法对Skip-gram模型生成的嵌入值进行分类,基于软件特征区分出良性软件与恶意软件。
与现有技术相比,本发明具有以下有益的技术效果:
针对字符串形式的特征易被混淆技术所篡改的问题,为了提高特征的鲁棒性,本发明在基于异质网络中节点与边关系的特点提取特征之后;进一步通过分析特征中正常语义与混淆语义的出现频次,提出使用BM25的方法对混淆语义进行过滤,筛选出了准确率更高的一组特征;而针对高维特征的存储存在的开销大、耗时耗内存的问题,则根据不同矩阵的特点提出了不同的存储方法,并采用了新的矩阵的存储,使得模型效果有一定的提升。
针对游走模型存在无法识别语义,构建的语料库加重模型负担等问题;本发明采用了基于元路径的随机游走改进方法Matrix2Vec,通过预定义的元路径对矩阵进行随机游走,构建了包含丰富语义的节点序列;并使用Skip-gram方法针对不同应用节点的多条游走序列生成了嵌入值,实现了对恶意软件进行检测和分类。
附图说明
图1为基于APK与API的异质网络建模示意图;
图2为本发明的检测流程示意图;
图3为本发明的随机游走采样方法流程图;
图4为本发明的检测准确率;
图5为本发明与HinDroid方法的模型效率对比示意图。
具体实施方式
下面结合实施例对本发明做进一步详细描述,所述是对本发明的解释而不是限定。
参见图1、图2,一种基于异质网络的Android恶意软件检测方法,包括以下操作:
1)通过编译模块对待测试样本进行解码和反编译,以抽取所有测试样本的Samli代码;
2)通过特征构建模块识别并整理Samli代码中的特征,基于异质网络中节点与边关系的特点,从测试样本中提取多种API调用信息;
然后通过BM25方法对提取的API调用信息进行降维,对混淆语义进行过滤,并筛选出具有影响力的API调用信息,然后以其作为元素,生成特征矩阵;
3)由检测分类模块应用已定义好的能表达语义特征的元路径,对特征矩阵进行随机游走,并将随机游走得到的游走序列作为Skip-gram模型的特征进行嵌入表征,然后使用SVM方法检测出其中的恶意软件。
下面对各步骤具体说明。
1、解码和反编译
Android应用程序使用API调用来访问操作系统功能和系统资源,因此,它们可以作为Android应用程序行为的表示。为了提取API调用,Android应用程序被重新解压缩以提供DEX文件,然后使用逆向工程工具Apktool将DEX文件进一步反编译成Smali代码。
所述编译模块使用Apktool反编译所有测试样本为:
通过工具Apktool反编译所有测试样本,仅保留所有后缀名为.smali的文件,删除其他多余文件。
2、特征提取
以图1形式化的异质网络为例,存在四个APK节点与四个API节点(均以圆表示),APK中使用到的API以椭圆表示(包含关系),且API与API之间存在代码块关系和包关系,将APK与API定义为节点,即:将包含、代码块、包三种形式定义为关系,也可称作边。
Figure BDA0003831032970000071
异质网络中两个对象可以通过不同的元路径连接,元路径本质上抽取了异质网络的子结构,并且体现了路径所包含的丰富语义信息,因而成为异质网络分析中的基本语义捕捉方法。
所以,特征构建模块对Samli代码中的特征提取是从Smali代码提取API,以及APK与API之间存在的包含关系、代码块关系或包关系,并用元路径表征其在异质网络中的连接路径;
若将包含、代码块、包三种关系简记为A关系、B关系、P关系,元路径P=(ABA)的具体路径p=(APK1APIiAPIjAPK2)表示APK1中存在APIi调用,APK2中存在APIj调用,且APIi与APIj之间存在P关系。
3、特征筛选
转换的Smali代码可以被解析为API调用提取,由于是直接提取出现的API调用,不对API是否加密或混淆做判断,根据对提取表的观测:仅在10个经过反编译的APK上的Smali代码文件中就存在8万个API调用(存在重复),出现了形如“La/j;->i”这样的加密或混淆调用,对于后续矩阵构造、时间开销来说都不合理。
为了解决上述问题,采用BM25方法对特征进行降维,筛选去除去除特征中的加密或混淆调用:比如筛选去除形如La/j$a;-><init>、La/j;->i,有特殊字符或不完整字符的API调用。
基于BM25算法,筛选步骤如下:
1)提取所有APK反编译后的汇总API文档作为文档集D,将D中每一个APK提取出的API作为单独文档d,并将d中的单条API视作语素q。
2)针对语素进行切分,获得单词t,通过d与t计算逆文档频率,获得语素q权重。
3)计算语素q与文档d相关性得分,直到当前语素中的单词计算完毕。
4)重复步骤2、3,直到每个文档d中每条语素相关性的得分计算完毕,对所有单词进行加权求和;将求和结果较高的若干API作为该单独文档d中具有影响力的API调用信息。
4、矩阵生成
经过特征改进后,大幅降低了特征的维度,因此为了存储特征,给出了使用矩阵存储的相关定义。
针对Contain信息,生成了Contain矩阵,记做MA矩阵,其中每个元素:
Figure BDA0003831032970000091
值为1时表示APK中存在API调用,反之为0。
针对CodeBlock信息,生成CodeBlock矩阵,记做MB矩阵,其中每个元素:
Figure BDA0003831032970000092
值为1时表示这对API调用属于同一个代码块。
针对Package信息,生成Package矩阵,记做MP矩阵,其中每个元素:
Figure BDA0003831032970000093
值为1时表示这对API调用属于同一个包。
通过构建这些矩阵,构建了包含丰富信息的特征表示。
5、随机游走
随机游走是采用Matrix2Vec随机游走采样方法进行的,通过输入应用程序序列与游走规则序列,完成针对应用序列中所有应用的按规则随机游走,最终输出每个应用程序的随机游走采样序列;
Matrix2Vec随机游走采样方法,通过输入应用程序序列与游走规则序列,可以完成针对应用序列中所有应用的按规则随机游走,最终输出每个应用程序的游走序列。这样的随机游走采样方法将随机游走算法的游走值从一个随机值变为了一个可确定的范围,进而增强了随机游走算法的稳定性,同时还扩展了原方法的适用范围。方法流程图如图3所示,下面简述步骤如下:
1)将应用序列a1,a2…ai…at…an作为输入,并对每个应用设置游走次数m。
2)输入游走规则序列
Figure BDA0003831032970000101
针对矩阵MA中的应用ai随机游走一个对应行列值Mij。其中Mij的值代表应用ai在矩阵M中是否存在对应关系,即值为1时代表存在,值为0代表没有。
3)当且仅当应用序列和游走规则序列皆为空时,输出了m·n条随机游走采样序列。
将最终生成的m·n条随机游走采样序列使用Skip-gram模型最大化每个应用节点的条件概率,通过在每个应用ai的多条游走序列构成的邻域Nt(ai)上最大化网络似然条件概率,来学习Android异质网络中关于应用节点ai的表征。
SoftMax也可以称为多类的logistic回归,相当于Logistic回归在多分类问题上的推广。
利用上述Softmax函数,对于多分类模型,在给定样本θ下,定义Softmax回归预测属于类别c的条件概率为:p(ct|v;θ),其中ct表示θ有c个类别。
最大化条件概率公式如下:
Figure BDA0003831032970000102
6、检测与分类
使用SVM方法对Skip-gram模型生成的嵌入值进行分类,通过有监督的方法实现了不同类型恶意软件的检测与分类。
使用SVM方法对Skip-gram模型生成的嵌入值进行分类,通过SVM训练算法建立了一个模型,分配新的实例为一类或其他类,使其成为非概率二元线性分类,其泛化错误率低,计算开销不大,结果易解释。
SVM可以分析数据,识别模式,用于分类和回归分析。给定一组训练样本,每个标记为属于两类,由于使用方法Skip-gram后获得了嵌入值,将嵌入值投射到二维平面上时,由于不同软件特征不同,使用SVM方法能很好的区分出良性与恶意软件的区别。
下面给出具体的实施例。
实验运行在Intel Core i5-4210 U CPU@1.70GHz,8.00GB内存,操作系统为Windows 10家庭版。通过Apktool反编译模块提取样本中API调用序列信息。并通过Pandas库、NumPy库与Sklearn库相关函数实现相关特征提取、存储、嵌入与分类。
本实验使用的恶意应用软件集是CICMalDroid2020,其中收集了超过17,341个Android软件样本;并且它的样本涵盖五个不同的类别:广告软件(Adware)、银行恶意软件(Banking)、短信恶意软件(SMS)、风险软件(Riskware)和良性软件(Benign)。下面简要介绍不同类别恶意应用特点:
Adware是指通常隐藏在已被恶意软件感染(在第三方市场上)的合法应用程序内部的广告内容。由于恶意软件使用的广告库会重复执行一系列步骤以保持广告投放,即使受害者试图强行关闭应用程序,Adware也会不断弹出广告。广告软件可以感染设备并对其进行感染,从而迫使其下载特定的广告软件类型,并允许攻击者窃取个人信息。
Banking恶意软件是一种旨在模仿原始银行应用程序或银行Web界面来访问用户的在线银行账户。大多数移动银行恶意软件都是基于Trojan的,旨在渗透设备,窃取敏感详细信息(例如,银行登录名和密码)并将所窃取的信息发送到命令和控制(C&C)服务器。
SMS恶意软件利用SMS服务作为其操作媒介来拦截SMS有效载荷以进行攻击。攻击者首先将恶意软件上传到其托管站点,以与SMS链接。他们使用C&C服务器控制攻击指令,即发送恶意SMS,拦截SMS和窃取数据。
Riskware指的是合法程序,如果恶意用户利用它们,可能会造成破坏。因此,它可以变成任何其他形式的恶意软件,例如Adware或勒索病毒软件,它们可以通过安装新感染的应用程序来扩展功能。值得注意的是,此类别只有一个变体,通常由VirusTotal标记为“Riskware”。
不在上面类别中的所有其他应用程序都被认为是Benign,并且使用VirusTotal扫描了所有良性样本验证了安全性。与其他公开可用的数据集相比,它包含最完整的捕获的静态和动态特征。表1说明整合了数据集样本类型,类型总量以及选取的数量。
表1
样本类型 类型总量(个) 选取数量(个)
Benign 3,638 500
Adware 1,515 500
Banking 2,506 500
SMS 4,822 500
Riskware 2,546 0
为了充分验证基于随机游走嵌入的有效性以及实用性,本发明在每个测试单位上对提出的方法Matrix2Vec进行了100次随机游走采样(无重复采样),相当于为每个测试数据提供了100维的特征,因为每个测试数据也均为数据集内随机抽取,无特定关联,经过测试,100次采样是可以较好体现软件功能的特征数量。
为了测试本发明分类的准确率,为此首先进行了5组分类实验。分别测试了不同元路径"AA","ABA","APA","APBPA","ABPBA"下,Banking类恶意软件、Adware类恶意软件以及SMS类恶意软件在Matrix2Vec游走模型下的准确率,如图4所示。基于所有元路径整体来说,Banking类的恶意软件的检测准确率最高,而SMS类恶意软件的检测准确率效果最低;基于单条元路径来说,准确率最高可达92.7%;而且测试的准确率均随着元路径复杂度的提升而提高,由此可见越复杂的元路径越能刻画恶意软件的特征。图5所示为本发明与HinDroid方法的模型效率对比示意图,可以看出在测试相同软件数量时,本发明所使用的API数量、运行内存消耗、时间消耗均显著的降低。
此外,本发明一方面为验证Matrix2Vec方法能有效识别元路径的语义,与传统的随机游走方法Word2Vec以及Node2Vec进行对比;另一方面则是选择同样针对API等特征构建异质图的HinDroid模型进行对比,验证该方法的可行性。
为了与Word2Vec算法、Node2Vec算法进行对比,本发明使用相同的数据复现上述方法,并在五条元路径中测试了准确率,由于Node2Vec方法无法识别元路径,故在不同元路径的准确率恒定,如表2所示。
表2Matrix2Vec与Word2Vec、Node2Vec方法准确率对比
Figure BDA0003831032970000131
可以看出,仅利用网络结构信息的Word2Vec算法和Node2Vec算法的性能都较低;而Matrix2vec在捕获结构信息的同时利用元路径来获取异质图中的语义信息。相比Word2Vec算法和Node2vec算法,其在精确率上分别最高提升了19.9%与19.3%,这表明异质图中丰富的语义信息有助于提高节点向量在分类任务中的准确性。
在模型效率方面,本发明与HinDroid方法进行对比,如表3所示:
表3 Matrix2Vec与HinDroid模型效率对比
Figure BDA0003831032970000132
Figure BDA0003831032970000141
以上给出的实施例是实现本发明较优的例子,本发明不限于上述实施例。本领域的技术人员根据本发明技术方案的技术特征所做出的任何非本质的添加、替换,均属于本发明的保护范围。

Claims (9)

1.一种基于异质网络的Android恶意软件检测方法,其特征在于,包括以下操作:
1)通过编译模块对待测试样本进行解码和反编译,以抽取所有测试样本的Samli代码;
2)通过特征构建模块识别并整理Samli代码中的特征,基于异质网络中节点与边关系的特点,从测试样本中提取多种API调用信息;
然后通过BM25方法对提取的API调用信息进行降维,对混淆语义进行过滤,并筛选出具有影响力的API调用信息,然后以其作为元素,生成特征矩阵;
3)由检测分类模块应用已定义好的能表达语义特征的元路径,对特征矩阵进行随机游走,并将随机游走得到的游走序列作为Skip-gram模型的特征进行嵌入表征,然后使用SVM方法检测出其中的恶意软件。
2.如权利要求1所述的基于异质网络的Android恶意软件检测方法,其特征在于,所述编译模块是通过Apktool工具解码和反编译所有测试样本,仅保留所有后缀名为.smali的文件,删除其余文件。
3.如权利要求1所述的基于异质网络的Android恶意软件检测方法,其特征在于,所述特征构建模块对Samli代码中的特征提取是从Smali代码提取API,以及APK与API之间存在的包含关系、代码块关系或包关系,并用元路径表征其在异质网络中的连接路径;
所述包含关系为:单个APK反编译后的Smali代码中以invoke起始的API调用;
所述代码块关系为:Smali代码中一对“.method”和“.end method”之间出现的一对API调用;
所述包关系为:Smali代码中以相同包名出现的一对API调用;
若将包含关系、代码块关系、包关系分别简记为A关系、B关系、P关系,则元路径P=(ABA)的具体路径为p=(APK1APIiAPIjAPK2);其表示APK1中存在APIi调用,APK2中存在APIj调用,且APIi与APIj之间存在P关系。
4.如权利要求1所述的基于异质网络的Android恶意软件检测方法,其特征在于,所述BM25方法对提取的API调用信息进行降维,筛选去除特征中的加密或混淆调用,是去除含有特殊字符或不完整字符的API调用信息;
所述筛选出具有影响力的API调用信息,包括以下操作:
101)提取所有APK反编译后的汇总API文档作为文档集D,将D中每一个APK提取出的API作为单独文档d,并将d中的单条API视作语素q;
102)针对语素进行切分,获得单词t,通过d与t计算逆文档频率,获得语素q权重;
103)计算语素q与文档d相关性得分,直到当前语素中的单词计算完毕;
104)重复102)、103),直到每个文档d中每条语素相关性的得分计算完毕,对所有单词进行加权求和;将求和结果较高的若干API作为该单独文档d中具有影响力的API调用信息。
5.如权利要求1或3所述的基于异质网络的Android恶意软件检测方法,其特征在于,所述特征矩阵的生成为:
针对特征中的Contain信息,生成了Contain矩阵,记做MA矩阵,其中每个元素:
Figure FDA0003831032960000021
值为1时表示APK中存在API调用,反之为0;
针对特征中CodeBlock信息,生成CodeBlock矩阵,记做MB矩阵,其中每个元素:
Figure FDA0003831032960000022
值为1时表示这对API调用属于同一个代码块;
针对特征中Package信息,生成Package矩阵,记做MP矩阵,其中每个元素:
Figure FDA0003831032960000031
值为1时表示这对API调用属于同一个包。
6.如权利要求1所述的基于异质网络的Android恶意软件检测方法,其特征在于,所述随机游走是采用Matrix2Vec随机游走采样方法进行的,通过输入应用程序序列与游走规则序列,完成针对应用序列中所有应用的按规则随机游走,最终输出每个应用程序的随机游走采样序列;
将最终生成的随机游走采样序列使用Skip-gram模型最大化每个应用节点的条件概率:通过在每个应用ai的多条游走序列构成的邻域Nt(ai)上最大化条件概率,学习Android异质网络中关于应用节点ai的表征。
7.如权利要求6所述的基于异质网络的Android恶意软件检测方法,其特征在于,所述的Matrix2Vec随机游走采样方法,包括以下操作:
1)将应用序列a1,a2…ai…at…an作为输入,并对每个应用设置游走次数m;
2)输入游走规则序列R=R1°R2°…°Rl-1,针对特征矩阵MA中的应用ai随机游走一个对应行列值Mij;其中Mij的值代表应用ai在矩阵M中是否存在对应关系,值为1时代表存在,值为0代表没有;
3)当且仅当应用序列和游走规则序列皆为空时,输出了m·n条随机游走采样序列。
8.如权利要求6所述的基于异质网络的Android恶意软件检测方法,其特征在于,所述的最大化条件概率是在给定样本θ下,定义Softmax函数的回归预测属于类别c的条件概率为p(ct|v;θ),其中ct表示θ有c个类别,v表示当前顶点,即游走序列的起点;
则最大化条件概率计算公式如下:
Figure FDA0003831032960000041
9.如权利要求1或6所述的基于异质网络的Android恶意软件检测方法,其特征在于,使用SVM方法对恶意软件进行分类和检测为:
将Skip-gram模型表征的嵌入值投射到二维平面上,使用SVM方法对Skip-gram模型生成的嵌入值进行分类,基于软件特征区分出良性软件与恶意软件。
CN202211074492.XA 2021-09-03 2022-09-03 一种基于异质网络的Android恶意软件检测方法 Pending CN116010947A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111034077.7A CN113901465A (zh) 2021-09-03 2021-09-03 一种基于异质网络的Android恶意软件检测方法
CN2021110340777 2021-09-03

Publications (1)

Publication Number Publication Date
CN116010947A true CN116010947A (zh) 2023-04-25

Family

ID=79188600

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111034077.7A Withdrawn CN113901465A (zh) 2021-09-03 2021-09-03 一种基于异质网络的Android恶意软件检测方法
CN202211074492.XA Pending CN116010947A (zh) 2021-09-03 2022-09-03 一种基于异质网络的Android恶意软件检测方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202111034077.7A Withdrawn CN113901465A (zh) 2021-09-03 2021-09-03 一种基于异质网络的Android恶意软件检测方法

Country Status (1)

Country Link
CN (2) CN113901465A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117290238A (zh) * 2023-10-10 2023-12-26 湖北大学 基于异质类关系图神经网络的软件缺陷预测方法和系统
CN117708821A (zh) * 2024-02-06 2024-03-15 山东省计算中心(国家超级计算济南中心) 基于异构图嵌入的勒索软件检测方法、系统、设备及介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756860A (zh) * 2022-02-22 2022-07-15 广州大学 一种基于元路径的恶意软件检测方法
CN114662105B (zh) * 2022-03-17 2023-03-31 电子科技大学 基于图节点关系和图压缩识别Android恶意软件的方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117290238A (zh) * 2023-10-10 2023-12-26 湖北大学 基于异质类关系图神经网络的软件缺陷预测方法和系统
CN117290238B (zh) * 2023-10-10 2024-04-09 湖北大学 基于异质类关系图神经网络的软件缺陷预测方法和系统
CN117708821A (zh) * 2024-02-06 2024-03-15 山东省计算中心(国家超级计算济南中心) 基于异构图嵌入的勒索软件检测方法、系统、设备及介质
CN117708821B (zh) * 2024-02-06 2024-04-30 山东省计算中心(国家超级计算济南中心) 基于异构图嵌入的勒索软件检测方法、系统、设备及介质

Also Published As

Publication number Publication date
CN113901465A (zh) 2022-01-07

Similar Documents

Publication Publication Date Title
Rosenberg et al. Adversarial machine learning attacks and defense methods in the cyber security domain
Arshad et al. SAMADroid: a novel 3-level hybrid malware detection model for android operating system
David et al. Deepsign: Deep learning for automatic malware signature generation and classification
CN116010947A (zh) 一种基于异质网络的Android恶意软件检测方法
Komatwar et al. Retracted article: a survey on malware detection and classification
Liu et al. A novel approach for detecting browser-based silent miner
Buber et al. NLP based phishing attack detection from URLs
Nissim et al. Keeping pace with the creation of new malicious PDF files using an active-learning based detection framework
Wang et al. Machine learning based cross-site scripting detection in online social network
Qiu et al. Cyber code intelligence for android malware detection
Krishnaveni et al. Ensemble approach for network threat detection and classification on cloud computing
Liu et al. An efficient multistage phishing website detection model based on the CASE feature framework: Aiming at the real web environment
CN109858248A (zh) 恶意Word文档检测方法和装置
Pham et al. Machine learning techniques for web intrusion detection—A comparison
CN109614795A (zh) 一种事件感知的安卓恶意软件检测方法
Casolare et al. Dynamic Mobile Malware Detection through System Call-based Image representation.
Zhang et al. A multi-class detection system for android malicious apps based on color image features
Valiyaveedu et al. Survey and analysis on AI based phishing detection techniques
Wu et al. Detection of fake IoT app based on multidimensional similarity
Akram et al. A systematic literature review: usage of logistic regression for malware detection
Tsai et al. PowerDP: de-obfuscating and profiling malicious PowerShell commands with multi-label classifiers
Cybersecurity Machine learning for malware detection
CN114817925A (zh) 基于多模态图特征的安卓恶意软件检测方法及系统
Zhang et al. Survey on malicious code intelligent detection techniques
Hobert et al. Enhancing Cyber Attribution through Behavior Similarity Detection on Linux Shell Honeypots with ATT&CK Framework

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination