CN113761529B - 一种基于异构图学习的安卓恶意软件检测系统和方法 - Google Patents

一种基于异构图学习的安卓恶意软件检测系统和方法 Download PDF

Info

Publication number
CN113761529B
CN113761529B CN202011385414.2A CN202011385414A CN113761529B CN 113761529 B CN113761529 B CN 113761529B CN 202011385414 A CN202011385414 A CN 202011385414A CN 113761529 B CN113761529 B CN 113761529B
Authority
CN
China
Prior art keywords
software
function call
malicious software
function
detection
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.)
Active
Application number
CN202011385414.2A
Other languages
English (en)
Other versions
CN113761529A (zh
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.)
Beijing Weida Information Technology Co ltd
Original Assignee
Beijing Weida Information 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 Beijing Weida Information Technology Co ltd filed Critical Beijing Weida Information Technology Co ltd
Priority to CN202011385414.2A priority Critical patent/CN113761529B/zh
Publication of CN113761529A publication Critical patent/CN113761529A/zh
Application granted granted Critical
Publication of CN113761529B publication Critical patent/CN113761529B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种基于异构图学习的安卓恶意软件检测系统及方法,打破传统基于签名机制和静态特征的恶意软件检测方法,其基本思想是:恶意软件内部的函数调用序列和连接结构有别于正常软件的函数调用与连接结构,本发明将每个待检测安卓软件的内部函数调用关系构建成一个异构图,然后通过引入不同的元路径来探究不同函数调用之间的高阶语义关系,利用标准的多核学习算法来衡量不同元路径对于恶意软件检测的重要性,并将学习到的加权函数调用交互矩阵输入到支持向量机来训练一个自动化模型实现检测。本发明可以有效探究恶意软件内部的函数调用关系,通过学习恶意软件的函数调用模式来极大地提高恶意软件检测的准确率,可以满足高效实时的检测需求。

Description

一种基于异构图学习的安卓恶意软件检测系统和方法
技术领域
本发明涉及网络安全领域,尤其涉及一种基于异构图学习的安卓恶意软件检测系统和方法。
背景技术
恶意软件是旨在损害计算机,服务器或计算机网络的软件。恶意软件在植入或以某种方式侵入目标计算机后会对其造成不同程度的破坏。恶意软件是未明确提示用户或未经用户许可的情况下,在计算机上安装运行,表现为强制安装、浏览器劫持、数据窃取、恶意搜集用户敏感信息、恶意捆绑软件等恶意行为。近年来,随着移动通信及智能终端的快速发展,以安卓终端为攻击目标的恶意软件层出不穷,安卓恶意软件甚至广泛分布于一些知名的应用市场。它对安卓手机用户造成严重影响,表现在恶意扣费、窃取隐私信息、消耗网络流量等,严重侵犯用户合法权益,甚至对社会和国家造成重大经济和安全损失,因此高效地检测恶意软件对于保护网络安全、人民财产及国家稳定具有重要意义。
为了降低恶意软件对网络环境及用户影响,众多的恶意软件检测方法及专利已经被提出。
申请号为CN201610996935.9的发明专利公开了一种用于恶意软件检测的样本类别判定方法,该发明公开了一种样本类别判定方法,包括下列步骤:1)收集样本程序集,分别组成样本库;将所述样本库中的程序集提交至虚拟沙箱环境运行,后生成相应的样本分析报告;2)解析所述样本分析报告,提取特有特征组合信息,生成特征向量集;将所述特征向量集输入分类器进行训练,得到最佳模型;3)将待测程序输入所述最佳模型,得到所述待测程序是恶意程序或正常程序的判别结果。该发明提高了恶意软件检测的效率和准确率,避免了动态检测技术中繁杂的操作和较大的能耗,在保证准确率的基础上大幅提高了检测的速度。该发明只能检测常规的恶意软件样本,并不能有效检测精心伪装的恶意软件。
申请号为CN201810299726.8的发明专利公开了一种恶意软件检测方法及系统,该方法包括:1)基于待测软件的安装包确定待测软件申请的权限对应功能;2)基于所述待测软件的安装包在测试环境中安装并运行所述待测软件,实时监测所述待测软件在运行过程中实现的动作及具有的特征;3)如果监测到所述待测软件实现对应功能时获取了预设隐私信息、且具有可达到始终运行目的和/或被迫终止后自动恢复运行目的的非功能特征,则初步确定所述待测软件为恶意软件。由此,在判断待测软件是否获取预设隐私信息的同时,还监测待测软件是否具有可达到始终运行目的和/或被迫终止后自动恢复运行目的的非功能特征,从而通过上述两项判断,大大增加了恶意软件检测的准确性。该发明不能动态检测恶意软件的内部函数调用关系,致使仅仅依赖静态特征很难检测利用动态攻击策略的恶意软件。
目前,典型的安卓恶意软件检测方法大致分为两种:一种是基于签名机制检测,另一种是基于行为检测。其中,基于签名的检测方法,检测系统从软件样本中提取二进制模式或者随机片段来创建恶意软件签名,通过签名与收集到的数据库相匹配来检测恶意软件将产生的恶意软件签名加入到创建的恶意代码库中,之后使用相同签名的任何应用程序都将被视为该恶意软件的一个样本,但是这类方法无法检测未知的恶意软件。为了解决基于签名的检测方法的弊端引出了基于行为的检测方法,基于行为的检测方法又分为静态分析和动态分析。静态分析方法是在不运行应用程序的情况下,通过逆向工程反编译APK文件提取相关特征,通常是分析dex文件反编译后的中间形式的代码,例如api调用等,其次是manifest清单文件中的权限、意图过滤器、但是此类方法无法检测加密和动态加载的恶意程序。动态分析是在沙箱或虚拟机环境中模拟运行应用程序,在此过程中监控应用程序的运行时特征,分析记录日志发现其中的恶意行为,此类方法的检测效果更好,但是检测时需要在沙箱中模拟程序的真实运行状态,其检测速率不能保证流式快速响应。本发明综合考虑了众多恶意软件检测算法的优点与不足,提出了基于异构图学习的安卓恶意软件检测系统和方法。
发明内容
本发明的目的在于克服上述已有技术的缺点,打破传统基于签名机制和静态特征的恶意软件检测算法,提出一种基于异构图学习的安卓恶意软件检测系统及方法,其基本思想是:恶意软件内部的函数调用序列和连接结构有别于正常软件的函数调用与连接结构,本发明将每个待检测安卓软件的内部函数调用关系构建成一个异构图,然后通过引入不同的元路径来探究不同函数调用之间的高阶语义关系,利用标准的多核学习算法来衡量不同元路径对于恶意软件检测的重要性,并将学习到的加权函数调用交互矩阵输入到支持向量机来训练一个自动化模型实现恶意软件检测。本发明可以有效探究恶意软件内部的函数调用关系,通过学习恶意软件的函数调用模式来极大地提高恶意软件检测的准确率,同时该发明可以实现流式的恶意软件检测,可以满足高效实时的检测需求。
为实现上述发明目的,本发明所提供的技术方案是:
一种基于异构图学习的安卓恶意软件检测系统,其特征在于,包括:安卓软件解压及反编译单元、特征提取单元、异构图构建单元、多核学习单元及恶意软件检测单元。所述安卓软件解压及反编译单元,用于实时对待检测的安卓应用软件进行解码和反编译,所述反编译后的Smali代码包含该安卓软件的函数调用关系;所述特征提取单元,负责自动化地从反编译后的Smali代码中提取函数的调用关系;所述异构图构建单元,负责从特征提取单元提取的关系构建成异构图;所述多核学习单元,负责学习不同元路径对于检测恶意软件的重要性权重;所述恶意软件检测单元,利用训练好的恶意软件检测模型实现恶意软件检测。
进一步地根据所述的基于异构图学习的安卓恶意软件检测系统,所述安卓软件解码及反编译单元,利用当前公开、常见的解码及反编译技术对待检测的安卓软件进行解码和反编译。具体地,首先将待检测软件解码为APKs文件,然后将解码后的所述APKs文件利用反编译工具反编译为Smali代码,所述反编译后的Smali代码包含该安卓软件内部的函数调用关系及连接结构关系。
进一步地根据所述的基于异构图学习的安卓恶意软件检测系统,所述特征提取单元提取待检测软件的内部函数调用关系,根据所述的反编译后的Smali代码,对其代码内部的函数进行整型编码,每个函数对应一个唯一的函数编码,然后利用数组存储每个代码块的函数调用序列。基于所述的函数调用序列,进一步依据函数是否属于相同的Smali代码块、是否在相同的包名下以及是否使用了相同的激活方式来深入分析它们的调用关系即连接结构,所述的函数调用关系和连接结构可用进一步地构建函数调用异构图。
进一步地根据所述的基于异构图学习的安卓恶意软件检测系统,所述异构图构建单元构建函数调用异构图,根据所述的全局函数调用及连接关系,构建不同函数之间的局部交互邻接矩阵,当两个函数发生调用关系时它们的对应矩阵元素为1,否则为0。然后依据是否属于相同的Smali代码块、是否在相同的包名下以及是否使用了相同的激活方式来引入不同的元路径,然后基于构建的函数之间的全局邻接矩阵利用元路径信息构建不同元路径下的局部函数调用邻接矩阵,所述的基于不同元路径的局部函数调用邻接矩阵是全局函数调用矩阵的子矩阵。所述基于元路径的局部函数调用邻接矩阵是多核学习单元的输入。
进一步地根据所述的基于异构图学习的安卓恶意软件检测系统,所述多核学习单元用于自动化学习不同元路径对于检测恶意软件的重要程度。依据所述的元路径及对应生成的局部函数调用邻接矩阵,多核学习单元负责学习不同元路径对于检测恶意软件的重要性权重,增大对检测性能有效的元路径的权重,降低检测能力弱的元路径的权重。组合加权后的局部交互矩阵,然后将所述交互矩阵输入到支持向量机算法,训练自动化的恶意软件检测模型。
进一步地根据所述的基于异构图学习的安卓恶意软件检测系统,所述恶意软件检测单元实现对新来的未知软件进行检测。具体地,对于一个未知的待检测安卓软件,首先经过所述的安卓软件解压及反编译单元将待检测软件解码和反编译为Smali代码,Smali代码被输入到所述的特征提取单元,提取其函数的调用关系,然后所述的异构图构建单元依据所述的函数调用关系构建函数调用交互矩阵,然后所述的多核学习器来学习不同的元路径权重,基于学习到的权重值来组合函数交互矩阵,最后所述组合后的函数交互矩阵输入到训练好的支持向量机模型中实现恶意软件检测。
一种基于异构图学习的安卓恶意软件检测方法,其特征在于,包括以下步骤;
步骤(1)、搜集待检测的安卓软件,使用公开、已有工具将其解码成APKs文件,并将所述对应的APKs反编译为Smali代码;
步骤(2)、从反编译后的Smali代码中自动化抽取软件特征,包括内部函数调用关系,以及函数的结构关系,包括两个函数是否属于相同的Smali代码块、是否属于同一包名以及是否具有相同的激活方式;
步骤(3)、异构图构建,基于步骤(2)所述的函数调用关系及函数连接关系,首先构建不同函数之间的交互矩阵,如前所述,当两个函数具有调用关系时,二者对应的矩阵元素为1,否则为0.在构建的整体函数交互矩阵基础之上,引入不同的元路径来构建特定语义的函数交互子矩阵;
步骤(4)、多核学习,探究不同元路径对恶意软件检测性能的影响,学习不同元路径的权重,通过组合不同权重下的函数交互矩阵提高恶意软件检测性能;
步骤(5)、恶意软件检测,基于步骤(4)所述的具有权重的函数交互矩阵,将其输入到支持向量机算法,训练自动化的恶意软件检测模型,实现对未知安卓软件的检测。
本发明的有益效果:
1)、本发明打破传统基于签名机制和静态特征的安卓恶意软件检测方法,设计并实现了基于异构图学习的安卓恶意软件检测方法。通过分析软件内部的函数调用关系来挖掘恶意软件的函数调用模式和函数连接方式,本发明提出的基于异构图的恶意软件检测方法能够探究高阶的函数调用语义,能够挖掘更加隐蔽的恶意访问序列,实现高效率的恶意软件检测性能。
2)、本发明提出的方法可以有效解决基于签名机制和静态特征检测方法不能检测恶意动态加载难题,尽管本发明提出的方法属于静态检测方法,但是它通过构建函数之间的调用关系而间接地考虑了软件的动态运行过程,基于不同的元路径在构建的函数调用异构图上执行随机游走,能够绝大程度覆盖实际的程序运行分支。所以本发明实现的静态检测方法比传统的静态检测方法更加高效。
3)、本发明的检测性能高于动态检测算法,且检测速率更快。如前所述,本发明提出的基于图学习恶意软件检测方法通过构建函数调用异构图来学习恶意软件的函数调用模式,通过在该图上的随机游走几乎可以遍历所有可能的函数调用,比真实的沙箱运行效果路径覆盖率更高,速率更快。
4)、经原型系统使用实践证明,本发明能有效检测出恶意软件,特别是精心伪装的隐蔽性恶意软件,且本发明所述方案实现在现有网络中容易布置、操作简单、安全可靠,具有显著的经济社会效益和广阔的市场推广应用前景。
附图说明
图1是本发明所述一种基于异构图学习的安卓恶意软件检测系统和方法的总体结构框图;
具体实施方式
以下结合附图对本发明的技术方案进行详细的描述,以使本领域技术人员能够更加清楚的理解本发明的方案,但并不因此限制本发明的保护范围。
随着移动互联网和智能终端的飞速发展,智能手机已经被广泛应用于人们的日常生活中,例如在线支付、智能家居控制和智能出行等。安卓作为开源手机操作系统,其安卓手机已经占领了智能手机市场的82.8%。然而安卓市场的开源化和广泛应用化,安卓手机正逐步成为黑客的攻击目标。目前越来越多的恶意安卓软件充斥在网络中,它们对广大安卓手机用户造成巨大困扰,甚至影响网络经济的正常运转,因此自动化检测恶意软件具有重大的现实意义。
目前,典型的安卓恶意软件检测方法大致分为两种:一种是基于签名机制检测,另一种是基于行为检测。典型的安卓恶意软件检测方法分两种:一种是基于签名的检测,另一种是基于行为的检测。其中,基于签名的检测方法,检测系统从软件样本中提取二进制模式或者随机片段来创建恶意软件签名,通过签名与收集到的数据库相匹配来检测恶意软件将产生的恶意软件签名加入到创建的恶意代码库中,之后使用相同签名的任何应用程序都将被视为该恶意软件的一个样本,但是这类方法无法检测未知的恶意软件。为了解决基于签名的检测方法的弊端引出了基于行为的检测方法,基于行为的检测方法又分为静态分析和动态分析。静态分析方法是在不运行应用程序的情况下,通过逆向工程反编译APK文件提取相关特征,通常是分析dex文件反编译后的中间形式的代码,例如api调用等,其次是manifest清单文件中的权限、意图过滤器、但是此类方法无法检测加密和动态加载的恶意程序。动态分析是在沙箱或虚拟机环境中模拟运行应用程序,在此过程中监控应用程序的运行时特征,分析记录日志发现其中的恶意行为。本发明综合考虑了众多恶意软件检测算法的优点与不足,提出了基于异构图学习的安卓恶意软件检测系统和方法。
首先说明本发明的技术创新原理,其基本思想如下:恶意软件内部的函数调用序列和连接结构有别于正常软件的函数调用与连接结构,本发明将每个待检测安卓软件的内部函数调用关系构建成一个异构图,然后通过引入不同的元路径来探究不同函数调用之间的高阶语义关系,利用标准的多核学习算法来衡量不同元路径对于恶意软件检测的重要性,并将学习到的加权函数调用交互矩阵输入到支持向量机来训练一个自动化模型实现恶意软件检测。本发明可以有效探究恶意软件内部的函数调用关系,通过学习恶意软件的函数调用模式来极大地提高恶意软件检测的准确率,同时该发明可以实现流式的恶意软件检测,可以满足高效实时的检测需求。
本发明所述的基于异构图学习的安卓恶意软件检测系统,如图1所示,用户只需将待检测安卓软件放入软件池中。1)软件解码器和反编译单元会将待检测的APP软件解码成APKs文件,反编译工具自动化地将解码后的APKs文件反编译为Smali代码,反编译后的Smali代码携带着函数之间的调用关系和结构关系;2)特征提取单元分析反编译后的Smali代码,提取函数之间的调用关系和连接关系,包括两个函数是否属于同一个Smali代码块、两个函数是否属于同一个包下,两个函数使用利用了同种方式。3)异构图构建单元依据特征提取单元抽取的函数调用特征来构建函数调用异构图,构建函数之间的交互邻接矩阵,当两个函数发生调用关系时它们的对应矩阵元素为1,否则为0,然后依据是否属于相同的Smali代码块、是否在相同的包名下以及是否使用了相同的函数唤醒方式来引入不同的元路径,并利用元路径信息构建不同路径下的函数调用邻接矩阵,所述的基于不同元路径的函数调用邻接矩阵是全局函数调用矩阵的子矩阵;4)不同的元路径代表不同的语义信息,对恶意软件检测性能也是不同的,多核学习器主要负责评估不同的元路径对于恶意软件检测的重要程度,如果一条元路径可以提高恶意软件的检测性能,就增大该条元路径的权重系数,相反,如果一个元路径不能提高恶意软件的检测性能,就适当惩罚该路径并减小其权重系数,学习到的具有不同权重的函数调用子矩阵可以被组合起来,并将组合后的加权交互矩阵输入到支持向量机算法中,使用反向传播算法训练一个自动化化的恶意软件检测系统;5)恶意软件检测单元负责检测新型未知的恶意软件,将待检测软件输入解码和反编译单元,将其解码并转化为Smali代码,然后进入特征提取单元,自动化提取Smali代码中函数的调用关系和连接关系,基于这些提取的关系来构建函数交互矩阵,并利用多核学习方法来学习不同元路径对于恶意软件检测的重要程度,然后组合这些具有不同权重基于不同元路径的函数交互子矩阵,最后把这个组合后的函数交互矩阵输入到训练好的基于支持向量机模型的恶意软件检测单元中来判断待检测软件是否具有恶意行为。
本发明通过分析软件内部的函数调用关系来挖掘恶意软件的函数调用模式和函数连接方式,提出的基于异构图学习的恶意软件检测方法能够探究高阶的函数调用语义,能够挖掘更加隐蔽的恶意访问序列,实现高效率的恶意软件检测性能。同时,本发明提出的方法可以有效解决基于签名机制和静态特征检测方法不能检测恶意动态加载难题,尽管本发明提出的方法属于静态检测方法,但是它通过构建函数之间的调用关系而间接地考虑了软件的动态运行过程,基于不同的元路径在构建的函数调用异构图上执行随机游走,能够绝大程度覆盖实际的程序运行分支,所以本发明实现的静态检测方法比传统的静态检测方法更加高效。相比于动态检测方法,本发明的检测性能高于动态检测算法,且检测速率更快。如前所述,本发明提出的基于异构图学习恶意软件检测方法通过构建函数调用异构图来学习恶意软件的函数调用模式,通过在该图上的随机游走几乎可以遍历所有可能的函数调用,比真实的沙箱运行效果路径覆盖率更高,速率更快。此外,经原型系统使用实践证明,本发明能有效检测出恶意软件,特别是精心伪装的隐蔽性恶意软件,且本发明所述方案实现在现有网络中容易布置、操作简单、安全可靠,具有显著的经济社会效益和广阔的市场推广应用前景。
下面结合附图具体描述本发明所述基于异构图学习的安卓恶意软件检测系统及方法的结构原理和工作过程,优选的包括如下实施方式。
优选实施方式
如图1所示,作为一种优选实施方式,本发明所述的基于异构图学习的安卓恶意软件检测系统包括安卓软件解压及反编译单元、特征提取单元、异构图构建单元、多核学习单元及恶意软件检测单元。
所述安卓软件解码及反编译单元,利用当前公开、常见的解码及反编译技术对待检测的安卓软件进行解码和反编译。具体地,首先将待检测软件解码为APKs文件,然后将解码后的所述APKs文件利用反编译工具反编译为Smali代码,所述反编译后的Smali代码包含该安卓软件内部的函数调用关系及连接结构关系。
所述特征提取单元提取待检测软件的内部函数调用关系,根据所述的反编译后的Smali代码,对其代码内部的函数进行整型编码,每个函数对应一个唯一的函数编码,然后利用数组存储每个代码块的函数调用序列。基于所述的函数调用序列,进一步依据函数是否属于相同的Smali代码块、是否在相同的包名下以及是否使用了相同的激活方式来深入分析它们的调用关系即连接结构,所述的函数调用关系和连接结构可用进一步地构建函数调用异构图。
所述异构图构建单元构建函数调用异构图,根据所述的函数调用及连接关系,构建不同函数之间的交互邻接矩阵,当两个函数发生调用关系时它们的对应矩阵元素为1,否则为0。然后依据是否属于相同的Smali代码块、是否在相同的包名下以及是否使用了相同的激活方式来引入不同的元路径,然后基于构建的函数之间的邻接矩阵利用元路径信息构建不同路径下的函数调用邻接矩阵,所述的基于不同元路径的函数调用邻接矩阵是函数调用矩阵的子矩阵。所述基于元路径的函数调用邻接矩阵是多核学习器的输入。
所述多核学习单元用于自动化学习不同元路径对于检测恶意软件的重要程度。依据所述的元路径及对应生成的函数调用邻接矩阵,多核学习单元负责学习不同元路径对于检测恶意软件的重要性权重,增大对检测性能有效的元路径的权重,降低检测能力弱的元路径的权重。组合加权后的交互矩阵,然后将所述交互矩阵输入到支持向量机模型,训练自动化的恶意软件检测模型。
所述恶意软件检测单元实现对新来的未知软件进行检测。具体地,对于一个未知的待检测安卓软件,首先经过所述的安卓软件解压及反编译单元将待检测软件解码和反编译为Smali代码,Smali代码被输入到所述的特征提取单元,提取其函数的调用关系,然后所述的异构图构建单元依据所述的函数调用关系构建函数调用交互矩阵,然后所述的多核学习器来学习不同的元路径权重,基于学习到的权重值来组合函数交互矩阵,最后所述组合后的函数交互矩阵输入到训练好的支持向量机模型中实现恶意软件检测。
本发明进一步的提出基于上述基于异构图学习的安卓恶意软件检测方法,包括以下步骤:
步骤(1)、搜集待检测的安卓软件,使用公开、已有工具将其解码成APKs文件,并将所述对应的APKs反编译为Smali代码;
步骤(2)、从反编译后的Smali代码中自动化抽取软件特征,包括内部函数调用关系,以及函数的结构关系,包括两个函数是否属于相同的Smali代码块、是否属于同一包名以及是否具有相同的激活方式;
步骤(3)、异构图构建,基于步骤(2)所述的函数调用关系及函数连接关系,首先构建不同函数之间的交互矩阵,如前所述,当两个函数具有调用关系时,二者对应的矩阵元素为1,否则为0.在构建的整体函数交互矩阵基础之上,引入不同的元路径来构建特定语义的函数交互子矩阵;
步骤(4)、多核学习,探究不同元路径对恶意软件检测性能的影响,学习不同元路径的权重,通过组合不同权重下的函数交互矩阵提高恶意软件检测性能;
步骤(5)、恶意软件检测,基于步骤(4)所述的具有权重的函数交互矩阵,将其输入到支持向量机算法,训练自动化的恶意软件检测模型,实现对未知安卓软件的检测。
以上仅是对本发明的优选实施方式进行了描述,并不将本发明的技术方案限制于此,本领域技术人员在本发明的主要技术构思的基础上所作的任何公知变形都属于本发明所要保护的技术范畴,本发明具体的保护范围以权利要求书的记载为准。

Claims (2)

1.一种基于异构图学习的安卓恶意软件检测系统,其特征在于,包括:安卓软件解码及反编译单元、特征提取单元、异构图构建单元、多核学习单元及恶意软件检测单元;
所述安卓软件解码及反编译单元,对待检测的安卓软件进行解码和反编译,具体地,首先将待检测软件解码为APKs文件,然后将解码后的所述APKs文件利用反编译工具反编译为Smali代码,反编译后的Smali代码包含该安卓软件内部的函数调用关系及函数连接结构关系;
所述特征提取单元提取待检测软件的内部函数调用关系,根据反编译后的Smali代码,对其代码内部的函数进行整型编码,每个函数对应一个唯一的函数编码,然后利用数组存储每个代码块的函数调用序列;基于所述函数调用序列,进一步依据函数是否属于相同的Smali代码块、是否在相同的包名下以及是否使用了相同的函数唤醒方法来分析它们的调用关系以及连接结构,所述的函数调用关系和连接结构可用于进一步地构建函数调用异构图;
所述异构图构建单元构建函数调用异构图,根据函数调用及连接关系,构建不同函数之间的全局交互邻接矩阵,当两个函数发生调用关系时它们的对应矩阵元素为1,否则为0;然后依据是否属于相同的Smali代码块、是否在相同的包名下以及是否使用了相同的函数唤醒方式来引入不同的元路径,然后基于构建的函数之间的全局邻接矩阵利用元路径信息构建不同路径下的局部函数调用邻接矩阵,基于不同元路径的局部函数调用邻接矩阵是全局函数调用矩阵的子矩阵,基于元路径的局部函数调用邻接矩阵是多核学习单元的输入;
所述多核学习单元用于自动化学习不同元路径对于检测恶意软件的重要程度;依据元路径及对应生成的函数调用邻接矩阵,多核学习单元负责学习不同元路径对于检测恶意软件的重要性权重,增大对检测性能有效的元路径的权重,降低检测能力弱的元路径的权重;组合加权后的函数交互矩阵,然后将所述函数交互矩阵输入到支持向量机算法,使用反向传播算法训练自动化的恶意软件检测模型;
所述恶意软件检测单元实现对新来的未知软件进行检测;具体地,对于一个未知的待检测安卓软件,首先经过所述安卓软件解码及反编译单元将待检测软件解码和反编译为Smali代码,Smali代码被输入到所述特征提取单元,提取其函数的调用关系,然后所述异构图构建单元依据所述函数调用关系构建全局函数调用交互矩阵,然后利用所述多核学习单元来学习不同的元路径对恶意软件检测的权重,基于学习到的权重值来组合局部函数交互矩阵,最后所述组合后的局部函数交互矩阵输入到训练好的支持向量机模型中实现恶意软件检测。
2.一种基于异构图学习的安卓恶意软件检测方法,其特征在于,应用于如权要求1所述的一种基于异构图学习的安卓恶意软件检测系统,所述方法包括以下步骤:
步骤(1)、搜集待检测的安卓软件,将其解码成APKs文件,并将所述APKs反编译为Smali代码;
步骤(2)、从反编译后的Smali代码中自动化抽取软件特征,包括内部函数调用关系,以及函数的结构关系,包括两个函数是否属于相同的Smali代码块、是否属于同一包名以及是否具有相同的函数唤醒方式;
步骤(3)、异构图构建,基于步骤(2)所述的函数调用关系及函数连接关系,首先构建不同函数之间的交互矩阵,如前所述,当两个函数具有调用关系时,二者对应的矩阵元素为1,否则为0 ,在构建的全局函数交互矩阵基础之上,引入不同的元路径来构建特定语义下的局部函数交互子矩阵;
步骤(4)、多核学习,探究不同元路径对恶意软件检测性能的影响,学习不同元路径在恶意软件检测发挥作用的权重,通过组合不同权重下的局部函数交互矩阵提高恶意软件检测性能,所述学习的权重等价于深度学习中的注意力机制;
步骤(5)、恶意软件检测,基于步骤(4)具有权重的函数交互矩阵,将其输入到支持向量机算法,训练自动化的恶意软件检测模型,实现对未知安卓软件的检测。
CN202011385414.2A 2020-12-01 2020-12-01 一种基于异构图学习的安卓恶意软件检测系统和方法 Active CN113761529B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011385414.2A CN113761529B (zh) 2020-12-01 2020-12-01 一种基于异构图学习的安卓恶意软件检测系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011385414.2A CN113761529B (zh) 2020-12-01 2020-12-01 一种基于异构图学习的安卓恶意软件检测系统和方法

Publications (2)

Publication Number Publication Date
CN113761529A CN113761529A (zh) 2021-12-07
CN113761529B true CN113761529B (zh) 2024-04-26

Family

ID=78786125

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011385414.2A Active CN113761529B (zh) 2020-12-01 2020-12-01 一种基于异构图学习的安卓恶意软件检测系统和方法

Country Status (1)

Country Link
CN (1) CN113761529B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114722391B (zh) * 2022-04-07 2023-03-28 电子科技大学 一种对安卓恶意程序进行检测的方法
CN114826735B (zh) * 2022-04-25 2023-11-03 国家计算机网络与信息安全管理中心 一种基于异构神经网络技术的VoIP恶意行为检测方法及系统
CN115268282A (zh) * 2022-06-29 2022-11-01 青岛海尔科技有限公司 家电设备的控制方法、装置、存储介质及电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9953158B1 (en) * 2015-04-21 2018-04-24 Symantec Corporation Systems and methods for enforcing secure software execution
CN108595955A (zh) * 2018-04-25 2018-09-28 东北大学 一种安卓手机恶意应用检测系统及方法
KR20200076426A (ko) * 2018-12-19 2020-06-29 건국대학교 산학협력단 이종 정보 네트워크 기반 악성 코드 탐지 방법 및 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021589B2 (en) * 2012-06-05 2015-04-28 Los Alamos National Security, Llc Integrating multiple data sources for malware classification
US20170111245A1 (en) * 2015-10-14 2017-04-20 International Business Machines Corporation Process traces clustering: a heterogeneous information network approach
US10656979B2 (en) * 2016-03-31 2020-05-19 International Business Machines Corporation Structural and temporal semantics heterogeneous information network (HIN) for process trace clustering
US11463472B2 (en) * 2018-10-24 2022-10-04 Nec Corporation Unknown malicious program behavior detection using a graph neural network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9953158B1 (en) * 2015-04-21 2018-04-24 Symantec Corporation Systems and methods for enforcing secure software execution
CN108595955A (zh) * 2018-04-25 2018-09-28 东北大学 一种安卓手机恶意应用检测系统及方法
KR20200076426A (ko) * 2018-12-19 2020-06-29 건국대학교 산학협력단 이종 정보 네트워크 기반 악성 코드 탐지 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
移动僵尸网络安全分析关键技术研究;耿贵宁;《信息科技》(第1期);40-60 *

Also Published As

Publication number Publication date
CN113761529A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
CN113761529B (zh) 一种基于异构图学习的安卓恶意软件检测系统和方法
Hou et al. Deep4maldroid: A deep learning framework for android malware detection based on linux kernel system call graphs
CN105989283B (zh) 一种识别病毒变种的方法及装置
Saad et al. End-to-end analysis of in-browser cryptojacking
CN106611122A (zh) 基于虚拟执行的未知恶意程序离线检测系统
CN104766011A (zh) 基于主机特征的沙箱检测告警方法和系统
CN108399336B (zh) 一种安卓应用恶意行为的检测方法及装置
CN104834859A (zh) 一种Android应用中恶意行为的动态检测方法
CN104809397A (zh) 一种基于动态监控的Android恶意软件的检测方法及系统
CN104376262A (zh) 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法
Li et al. CNN-based malware variants detection method for internet of things
CN107092830A (zh) 基于流量分析的ios恶意软件预警和检测系统及其方法
CN103617393A (zh) 一种基于支持向量机的移动互联网恶意应用软件检测方法
CN106599688A (zh) 一种基于应用类别的安卓恶意软件检测方法
CN111859394A (zh) 基于tee的软件行为主动度量方法及系统
CN109255241A (zh) 基于机器学习的Android权限提升漏洞检测方法及系统
Zhang et al. A php and jsp web shell detection system with text processing based on machine learning
Chen et al. Detection, traceability, and propagation of mobile malware threats
Ni et al. Real-time detection of malicious behavior in android apps
CN108932199A (zh) 一种基于用户界面分析的自动化污点分析系统
Zhang et al. Automatic detection of Android malware via hybrid graph neural network
CN108427882B (zh) 基于行为特征抽取的安卓软件动态分析检测法
Sheng Research on SQL injection attack and defense technology of power dispatching data network: Based on data mining
CN114880665B (zh) 一种针对面向返回编程攻击的智能化检测方法及装置
CN115801366A (zh) 攻击检测的方法、装置、电子设备及计算机可读存储介质

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
CB03 Change of inventor or designer information

Inventor after: Zhang Changhe

Inventor before: Zhang Changhe

Inventor before: Geng Tongtong

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant