CN111400708A - 用于恶意代码检测的方法及装置 - Google Patents
用于恶意代码检测的方法及装置 Download PDFInfo
- Publication number
- CN111400708A CN111400708A CN202010167127.8A CN202010167127A CN111400708A CN 111400708 A CN111400708 A CN 111400708A CN 202010167127 A CN202010167127 A CN 202010167127A CN 111400708 A CN111400708 A CN 111400708A
- Authority
- CN
- China
- Prior art keywords
- malicious
- android
- application
- request permission
- obtaining
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000001514 detection method Methods 0.000 title claims abstract description 36
- 230000000295 complement effect Effects 0.000 claims abstract description 36
- 239000013598 vector Substances 0.000 claims abstract description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000012549 training Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000007637 random forest analysis Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000003068 static effect Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
本申请涉及信息安全技术领域,公开一种用于恶意代码检测的方法。该方法包括:获取安卓样本的系统特征;系统特征包括API调用信息和请求权限补集;根据API调用信息和请求权限补集获得安卓样本的关键系统特征集;根据关键系统特征集获得特征向量;根据特征向量构建分类器以进行恶意代码检测。该方法能够基于安卓样本的API调用信息和请求权限补集获得关键系统特征集,并根据关键系统特征集获得特征向量,从而构建分类器以实现对恶意代码的检测,能够快速、准确的检测出恶意代码,提高了检测恶意代码的准确率。本申请还公开一种用于恶意代码检测的装置。
Description
技术领域
本申请涉及信息安全技术领域,例如涉及一种用于恶意代码检测的方法及装置。
背景技术
目前,随着通信技术的发展,智能手机的使用率大大提高,根据国际数据公司(IDC)的最新数据,2019年全球智能手机出货量为13.823亿部,安卓(Android)的市场份额达到86.6%。该报告还预测,2023年市场份额将达到87.1%,毫无疑问,Android智能手机将持续占据着主导地位,Android智能手机的流行同时也激发了网络犯罪分子的兴趣,他们上传可窃取敏感信息并危害移动系统的恶意应用程序。最近的一份报告显示,Google Play商店中几乎所有类别的应用程序都存在漏洞。2016年,Android设备总共阻止了7193927个Android恶意软件,平均每天有19709个。2017年,这一数字达到8,849,993,平均每天23,795。此外,网络犯罪分子已开始使用一些新技术来保护恶意应用程序免遭检测,例如,动态加载Android体系结构为开发人员提供了一种机制,可让他们在设备上完成安装后更新其应用程序;代码加载机制使攻击者可以在运行时加载恶意负载或完全更改应用程序;利用动态加载技术和反射调用机制隐藏恶意行为逐渐成为恶意应用程序的新趋势。因此,检测恶意代码是研究人员需要面对的最大挑战之一。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:现有技术可以检测出签名库中存在的恶意代码,但是不能有效的检测出未知的恶意代码;对于恶意行为隐藏在外部可执行文件的应用程序没有很好的检测效果,并检测速度较慢。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于恶意代码检测的方法及装置,以解决如何提高针对外部可执行文件的应用程序中隐藏的恶意代码进行检测的准确率的技术问题。
在一些实施例中,所述方法包括:获取安卓样本的系统特征;所述系统特征包括API调用信息和请求权限补集;
根据所述API调用信息和请求权限补集获得所述安卓样本的关键系统特征集;
根据所述关键系统特征集获得特征向量;
根据所述特征向量构建分类器以进行恶意代码检测。
在一些实施例中,所述装置包括:处理器和存储有程序指令的存储器,所述处理器被配置为在执行所述程序指令时,执行如上述的用于恶意代码检测的方法。
本公开实施例提供的用于恶意代码检测的方法及装置,可以实现以下技术效果:能够基于安卓样本的API调用信息和请求权限补集获得关键系统特征集,并根据关键系统特征集获得特征向量,从而构建分类器以实现对恶意代码的检测,能够快速、准确的检测出恶意代码,提高了检测恶意代码的准确率,又因为请求权限补集是反映外部可执行文件行为的重要因素,进而提高了针对外部可执行文件的应用程序中隐藏的恶意代码检测的准确率。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于恶意代码检测的方法的示意图;
图2是本公开实施例提供的一个用于恶意代码检测的装置的示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
结合图1所示,本公开实施例提供一种用于恶意代码检测的方法,包括:
S101,获取安卓样本的系统特征;系统特征包括API调用信息和请求权限补集;
S102,根据API调用信息和请求权限补集获得安卓样本的关键系统特征集;
S103,根据关键系统特征集获得特征向量;
S104,根据特征向量构建分类器以进行恶意代码检测。
采用本公开实施例提供的用于恶意代码检测的方法,能够基于安卓样本的API(Application Programming Interface,应用程序接口)调用信息和请求权限补集获得关键系统特征集,并根据关键系统特征集获得特征向量,从而构建分类器以实现对恶意代码的检测,能够快速、准确的检测出恶意代码,提高了检测恶意代码的准确率,同时因为请求权限补集是反映外部可执行文件行为的重要因素,因此,能够提高针对外部可执行文件的应用程序中隐藏的恶意代码检测的准确率。
可选地,安卓样本可以为APK(AndroidPackage,安卓系统的应用软件安装包)文件。
可选地,获取安卓样本的API调用信息和请求权限补集之前,还包括:对安卓样本进行预处理。具体地,对相同的APK文件只保留一个,将多余的进行移除;将分类错误的APK文件进行移除。
可选地,获取安卓样本的API调用信息和请求权限补集,包括:对安卓样本进行静态反编译处理,获得安卓样本的API调用信息和安卓样本的请求权限信息;根据安卓样本的API调用信息获得API调用信息对应的请求权限信息;根据API调用信息对应的请求权限信息和安卓样本的请求权限信息得到请求权限补集。
可选地,API调用信息可以为API classes级别,例如java.lang.String。
在一些实施例中,对在API25版本中的安卓样本进行静态反编译处理;分别从Dex文件、AndroidManifest.xml(应用清单)配置文件中提取安卓样本的API classes和安卓样本的请求权限信息;根据安卓样本的API classes与权限之间的映射关系得到Dex文件中安卓样本的API classes对应的请求权限信息;在安卓样本的请求权限信息中去除APIclasses对应的请求权限信息得到请求权限补集。请求权限补集为安卓样本的请求权限信息的子集,与外部可执行文件对应,由于请求权限补集代表了外部可执行文件的系统行为,有利于更加准确的获取隐藏在外部可执行文件中的恶意行为,从而提高检测恶意代码的准确率。
可选地,使用静态分析工具APKTool反编译APK文件,获取AndroidManifest.xml配置文件中的安卓样本的请求权限信息和Dex文件中的安卓样本的API调用信息。
可选地,关键系统特征集包括:根据API调用信息和请求权限补集分别在良性应用程序集中的权重排名获得的第一关键系统特征;根据API调用信息和请求权限补集分别在恶意应用程序集中的权重排名获得的第二关键系统特征。
可选地,第一关键系统特征和第二关键系统特征按以下方式得到:
通过计算WB(fi)=-D(fi)×SB(fi)获得系统特征fi在良性应用程序集中的权重;
通过计算WM(fi)=D(fi)×SM(fi)获得系统特征fi在恶意应用程序集中的权重;
将各请求权限补集和各API调用信息根据在良性应用程序集中的权重分别从大到小进行排序,分别取前m个请求权限补集和前n个API调用信息作为第一关键系统特征;
将各请求权限补集和各API调用信息根据在恶意应用程序集中的权重分别从大到小进行排序,分别取前m个请求权限补集和前n个API调用信息作为第二关键系统特征;
其中,fi为第i个系统特征,i为正整数,WM(fi)为系统特征fi在恶意应用程序集中的权重,D(fi)为系统特征fi在恶意应用程序集和良性应用程序集中出现次数的差异频率,SM(fi)为系统特征fi在恶意应用程序集中的使用频率,WB(fi)系统特征fi在良性应用程序集中的权重,SB(fi)为系统特征fi在良性应用程序集中的使用频率,m≥2,n≥2,m、n均为正整数。
可选地,根据系统特征fi在良性应用程序集和恶意应用程序集中的权重值构建两个排序列表,第一排序列表是基于WB(fi)的值以降序生成的,第一排序列表是基于WM(fi)的值以降序生成的,根据第一排序列表和第二排序列表的值选择关键系统特征集,关键系统特征集包括第一关键系统特征和第二关键系统特征。例如,API调用信息特征每次选择第一排序列表的前50个特征和请求权限补集特征每次选择第一排序列表的前2个特征作为第一关键系统特征;API调用信息特征每次选择第二排序列表的前50个特征和请求权限补集特征每次选择第二排序列表的前2个特征作为第二关键系统特征。
可选地,在对恶意代码检测的准确度不再增加的情况下,对第一排序列表和第二排序列表都选取的前m个请求权限补集,和,对第一排序列表和第二排序列表都选取的前n个API调用信息作为关键系统特征集。
通过在对恶意代码检测的准确度不再增加的情况下,选择的关键系统特征集构建的分类器,即恶意代码检测系统,并且在第一排序列表和第二排序列表都选取相同数量的请求权限补集特征和相同数量的API调用信息特征,能够快速的对恶意代码进行检测,并提高了检测的准确度。
其中,为在恶意应用程序集出现系统特征fi的安卓样本数量,表示在良性应用程序集出现系统特征fi的安卓样本数量,M为恶意应用程序集合,j为第j个恶意应用程序,B为良性应用程序集合,k为第k个恶意应用程序,Occ(fi)≥0,j≥1,k≥1,|M|≥1,|B|≥1。
其中,为在恶意应用程序集出现系统特征fi的安卓样本数量,表示在良性应用程序集出现系统特征fi的安卓样本数量,M为恶意应用程序集合,j为第j个恶意应用程序,B为良性应用程序集合,k为第k个恶意应用程序,Occ(fi)≥0,j≥1,k≥1,|M|≥1,|B|≥1。
其中,为在恶意应用程序集出现系统特征fi的安卓样本数量,表示在良性应用程序集出现系统特征fi的安卓样本数量,M为恶意应用程序集合,j为第j个恶意应用程序,B为良性应用程序集合,k为第k个恶意应用程序,Occ(fi)≥0,j≥1,k≥1,|M|≥1,|B|≥1。
可选地,将关键系统特征集,即根据在良性应用程序集和恶意应用程序集中的权重排名选取的API调用信息和请求权限补集,通过word2vec模型获得特征向量。此为现有技术,在此不再赘述。
可选地,特征向量包括请求权限补集矩阵和API调用信息矩阵。
可选地,根据特征向量构建分类器,包括:通过随机森林(Random Forest,RF)算法对特征向量进行学习和训练得到分类器。此为现有技术,在此不再赘述。这样,将机器学习应用于恶意代码分析与检测,实现了比传统机器学习算法更好的性能,达到更高的自动化程度和准确率。
可选地,将待测安卓样本的特征向量输入到训练好的分类器中,得到输出结果;根据输出结果判断待测安卓样本是否为恶意代码。
在一些实施例中,使用的四个机器学习算法进行对比实验,选择表现最好最稳定的机器学习算法得到的分类器用于进行检测。可选地,训练好的基于机器学习的分类器,即检测器的输出结果是根据训练数据来决定的。例如,训练数据规定恶意样本的标签为“1”,正常样本的标签为“0”。将待测安卓样本的特征向量输入到分类器中,当输出结果为“1”,则可以判断该待测安卓样本为恶意代码。根据分类器的输出结果,得到恶意代码的检测结果。这样,能够快速、准确的得到恶意代码检测结果。
结合图2所示,本公开实施例提供一种用于恶意代码检测的装置,包括处理器(processor)100和存储有程序指令的存储器(memory)101。可选地,该装置还可以包括通信接口(Communication Interface)102和总线103。其中,处理器100、通信接口102、存储器101可以通过总线103完成相互间的通信。通信接口102可以用于信息传输。处理器100可以调用存储器101中的程序指令,以执行上述实施例的用于恶意代码检测的方法。
此外,上述的存储器101中的程序指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器101作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器100通过运行存储在存储器101中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于恶意代码检测的方法。
存储器101可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器101可以包括高速随机存取存储器,还可以包括非易失性存储器。
采用本公开实施例提供的用于恶意代码检测的装置,通过获取的API调用信息和请求权限补集,得到关键系统特征集,从而得到有效的特征向量,并利用机器学习模型对特征向量进行学习和训练得到分类器,利用该分类器对恶意代码进行检测,实现了对恶意代码的有效检测,同时解决了安卓动态加载、代码混淆的问题,并且提高了恶意代码检测准确率,更进一步提高了检测的精度、召回率和F1度量。
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令设置为执行上述用于恶意代码检测的方法。
本公开实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述用于恶意代码检测的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (9)
1.一种用于恶意代码检测的方法,其特征在于,包括:
获取安卓样本的系统特征;所述系统特征包括API调用信息和请求权限补集;
根据所述API调用信息和请求权限补集获得所述安卓样本的关键系统特征集;
根据所述关键系统特征集获得特征向量;
根据所述特征向量构建分类器以进行恶意代码检测。
2.根据权利要求1所述的方法,其特征在于,所述获取安卓样本的API调用信息和请求权限补集,包括:
对所述安卓样本进行静态反编译处理,获得所述安卓样本的API调用信息和所述安卓样本的请求权限信息;
根据所述安卓样本的API调用信息获得所述API调用信息对应的请求权限信息;
根据所述API调用信息对应的请求权限信息和所述安卓样本的请求权限信息得到所述请求权限补集。
3.根据权利要求1所述的方法,其特征在于,所述关键系统特征集包括:
根据所述API调用信息和请求权限补集分别在良性应用程序集中的权重排名获得的第一关键系统特征;
根据所述API调用信息和请求权限补集分别在恶意应用程序集中的权重排名获得的第二关键系统特征。
4.根据权利要求3所述的方法,其特征在于,所述第一关键系统特征和第二关键系统特征按以下方式得到:
通过计算WB(fi)=-D(fi)×SB(fi)获得所述系统特征fi在良性应用程序集中的权重;
通过计算WM(fi)=D(fi)×SM(fi)获得所述系统特征fi在恶意应用程序集中的权重;
将各所述请求权限补集和各所述API调用信息根据在良性应用程序集中的权重分别从大到小进行排序,分别取前m个请求权限补集和前n个API调用信息作为第一关键系统特征;
将各所述请求权限补集和各所述API调用信息根据在恶意应用程序集中的权重分别从大到小进行排序,分别取前m个请求权限补集和前n个API调用信息作为第二关键系统特征;
其中,fi为第i个系统特征,i为正整数,WM(fi)为系统特征fi在恶意应用程序集中的权重,D(fi)为系统特征fi在恶意应用程序集和良性应用程序集中出现次数的差异频率,SM(fi)为系统特征fi在恶意应用程序集中的使用频率,WB(fi)系统特征fi在良性应用程序集中的权重,SB(fi)为系统特征fi在良性应用程序集中的使用频率,m≥2,n≥2,m、n均为正整数。
8.根据权利要求1至7任一项所述的方法,其特征在于,根据所述特征向量构建分类器,包括:
通过随机森林RandomForest算法对所述特征向量进行学习和训练得到所述分类器。
9.一种用于恶意代码检测的装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在执行所述程序指令时,执行如权利要求1至8任一项所述的用于恶意代码检测的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010167127.8A CN111400708B (zh) | 2020-03-11 | 2020-03-11 | 用于恶意代码检测的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010167127.8A CN111400708B (zh) | 2020-03-11 | 2020-03-11 | 用于恶意代码检测的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400708A true CN111400708A (zh) | 2020-07-10 |
CN111400708B CN111400708B (zh) | 2023-05-05 |
Family
ID=71436183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010167127.8A Active CN111400708B (zh) | 2020-03-11 | 2020-03-11 | 用于恶意代码检测的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400708B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112651024A (zh) * | 2020-12-29 | 2021-04-13 | 重庆大学 | 用于恶意代码检测的方法及装置、设备 |
CN113378171A (zh) * | 2021-07-12 | 2021-09-10 | 东北大学秦皇岛分校 | 一种基于卷积神经网络的Android勒索软件检测方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140181973A1 (en) * | 2012-12-26 | 2014-06-26 | National Taiwan University Of Science And Technology | Method and system for detecting malicious application |
KR20170036465A (ko) * | 2015-09-24 | 2017-04-03 | 아주대학교산학협력단 | 악성 코드 탐지 시스템 및 방법 |
CN106845223A (zh) * | 2016-12-13 | 2017-06-13 | 北京三快在线科技有限公司 | 用于检测恶意代码的方法和装置 |
US9959407B1 (en) * | 2016-03-15 | 2018-05-01 | Symantec Corporation | Systems and methods for identifying potentially malicious singleton files |
US20180144132A1 (en) * | 2016-11-18 | 2018-05-24 | Sichuan University | Kind of android malicious code detection method on the base of community structure analysis |
CN110263538A (zh) * | 2019-05-13 | 2019-09-20 | 重庆大学 | 一种基于系统行为序列的恶意代码检测方法 |
-
2020
- 2020-03-11 CN CN202010167127.8A patent/CN111400708B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140181973A1 (en) * | 2012-12-26 | 2014-06-26 | National Taiwan University Of Science And Technology | Method and system for detecting malicious application |
KR20170036465A (ko) * | 2015-09-24 | 2017-04-03 | 아주대학교산학협력단 | 악성 코드 탐지 시스템 및 방법 |
US9959407B1 (en) * | 2016-03-15 | 2018-05-01 | Symantec Corporation | Systems and methods for identifying potentially malicious singleton files |
US20180144132A1 (en) * | 2016-11-18 | 2018-05-24 | Sichuan University | Kind of android malicious code detection method on the base of community structure analysis |
CN106845223A (zh) * | 2016-12-13 | 2017-06-13 | 北京三快在线科技有限公司 | 用于检测恶意代码的方法和装置 |
CN110263538A (zh) * | 2019-05-13 | 2019-09-20 | 重庆大学 | 一种基于系统行为序列的恶意代码检测方法 |
Non-Patent Citations (3)
Title |
---|
SAJAD HOMAYOUN等: "A Blockchain-based Framework for Detecting Malicious Mobile Applications in App Stores", 《2019 IEEE CANADIAN CONFERENCE OF ELECTRICAL AND COMPUTER ENGINEERING (CCECE)》 * |
张茜等: "一种基于最小距离分类器的恶意代码检测方法", 《广西师范大学学报(自然科学版)》 * |
胡文君等: "一种针对Android平台恶意代码的检测方法及系统实现", 《西安交通大学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112651024A (zh) * | 2020-12-29 | 2021-04-13 | 重庆大学 | 用于恶意代码检测的方法及装置、设备 |
CN113378171A (zh) * | 2021-07-12 | 2021-09-10 | 东北大学秦皇岛分校 | 一种基于卷积神经网络的Android勒索软件检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111400708B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9553889B1 (en) | System and method of detecting malicious files on mobile devices | |
US11693962B2 (en) | Malware clustering based on function call graph similarity | |
US8806641B1 (en) | Systems and methods for detecting malware variants | |
Zakeri et al. | A static heuristic approach to detecting malware targets | |
US11586735B2 (en) | Malware clustering based on analysis of execution-behavior reports | |
Wang et al. | LSCDroid: Malware detection based on local sensitive API invocation sequences | |
Dhaya et al. | Detecting software vulnerabilities in android using static analysis | |
KR20200039912A (ko) | Ai 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법 | |
CN111400708B (zh) | 用于恶意代码检测的方法及装置 | |
Suarez-Tangil et al. | Thwarting obfuscated malware via differential fault analysis | |
CN109997138A (zh) | 用于检测计算设备上的恶意进程的系统和方法 | |
Motiur Rahman et al. | StackDroid: Evaluation of a multi-level approach for detecting the malware on android using stacked generalization | |
Peynirci et al. | Feature selection for malware detection on the android platform based on differences of IDF values | |
Surendran et al. | Detection of malware applications from centrality measures of syscall graph | |
US20200084632A1 (en) | System and method for determining dangerousness of devices for a banking service | |
EP3113065B1 (en) | System and method of detecting malicious files on mobile devices | |
CN112651024A (zh) | 用于恶意代码检测的方法及装置、设备 | |
Saleem et al. | Android malware detection using feature ranking of permissions | |
US10846405B1 (en) | Systems and methods for detecting and protecting against malicious software | |
Congyi et al. | Method for detecting Android malware based on ensemble learning | |
Sharma et al. | Survey for detection and analysis of android malware (s) through artificial intelligence techniques | |
Muhammad et al. | A systematic evaluation of android anti-malware tools for detection of contemporary malware | |
CN112367336B (zh) | webshell拦截检测方法、装置、设备及可读存储介质 | |
Lee et al. | An android malware detection system using a knowledge-based permission counting method | |
CN112989347B (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Yang Jiyun Inventor after: Zhou Jie Inventor after: Tang Jiang Inventor after: Liu Xingbin Inventor before: Yang Jiyun Inventor before: Tang Jiang Inventor before: Liu Xingbin Inventor before: Zhou Jie |
|
GR01 | Patent grant | ||
GR01 | Patent grant |