CN113971283A - 一种基于特征的恶意应用程序检测方法及设备 - Google Patents
一种基于特征的恶意应用程序检测方法及设备 Download PDFInfo
- Publication number
- CN113971283A CN113971283A CN202010722234.2A CN202010722234A CN113971283A CN 113971283 A CN113971283 A CN 113971283A CN 202010722234 A CN202010722234 A CN 202010722234A CN 113971283 A CN113971283 A CN 113971283A
- Authority
- CN
- China
- Prior art keywords
- data
- numerical
- malicious
- randomness
- application program
- 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
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Virology (AREA)
- Probability & Statistics with Applications (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种基于特征的恶意应用程序检测方法及设备。所述方法包括解析待检测应用程序安装包中的目标文件,提取所述目标文件中的关键特征,所述关键特征的形式为字符串;获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;将所述数字特征向量输入训练好的AI模型,获得对所述待检测应用程序的恶意性检测结果;所述AI模型是根据输入的数字特征向量进行训练,并输出所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。解决了传统恶意应用程序检测时存在的规则提取困难、覆盖度低、扩展性差、易被绕过等问题,具有更高的准确性和及时性。
Description
技术领域
本发明实施例涉及移动网络安全技术领域,尤其涉及一种基于特征的恶意应用程序检测方法及设备。
背景技术
在如火如荼的高科技时期,Android软件的开发呈现了爆发式增长。根据日前AppAnnie发布的《全球移动应用市场2019年回顾报告》显示数据表明,2018年全球APP下载量超过1940亿次,相比2016年全球应用下载量增长率为35%。可惜不幸的是,这样的受欢迎程度也会吸引恶意软件开发者,预置应用程序、捆绑下载、过度获取权限、山寨应用等防不胜防。恶意应用程序的盛行却让用户的个人隐私逐渐走向透明,在《2017Q1中国手机安全市场研究报告》中提到,89.6%的受访用户表示曾遭受过个人隐私信息泄露,诈骗电话等,如今信息安全成为很多用户的心腹大患。
目前,很多安全厂商也投入到移动安全领域,而这些软件进行杀毒基本原理是通过匹配已知的恶意木马特征来确认入侵行为,以防火墙、动态监控等方式进行主动防御,但缺点是依赖恶意特征库的更新,学习新型恶意检测的能力较弱。
然而,新的恶意应用程序层出不穷,它们的恶意性各不相同,依靠恶意特征库进行恶意检测,由于恶意特征库更新不及时将难以达到理想的安全防护效果。
发明内容
针对现有技术存在的问题,本发明实施例提供一种基于特征的恶意应用程序检测方法及设备,在对大量Android平台主流恶意软件分析的基础上,总结了Android平台恶意软件的攻击意图和手段,并通过深度学习算法实现了应用程序恶意的AI检测,为Android平台应用程序的恶意检测提供了新的方向。
第一方面,本发明实施例提供一种基于特征的恶意应用程序检测方法,包括:
解析待检测应用程序安装包中的目标文件,提取所述目标文件中的关键特征,所述关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;
获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;
将所述数字特征向量输入训练好的AI模型,获得对所述待检测应用程序的恶意性检测结果;所述AI模型是根据输入的数字特征向量进行训练,并输出所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。
进一步,所述获取所述部分关键特征的词语随机度,具体包括:
根据所述部分关键特征字符串的字母顺序,依次获取所述部分关键特征字符串的任意相邻两个字母的字母相邻频率;
基于所述任意相邻两个字母的字母相邻频率,获取所述关键特征的词语随机度;
其中,所述字母相邻频率是将字符串作为预设语言文字的单词,通过预设语言文字的词语随机度计算规则得到两个字母之间的相邻频率;所述词语随机度通过所述字母相邻频率得到。
进一步,所述AI模型的网络结构包括四部分:输入层、分解机层、隐藏层和输出层;所述AI模型通过如下方法训练得到:
获取应用程序安装包样本以及所述应用程序安装包样本的恶意标签;
解析所述应用程序安装包样本中的第二目标文件,提取所述第二目标文件中的第二关键特征,所述关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;
获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;
将所述第二数字特征向量以及所述应用程序安装包样本的恶意标签,输入搭建好的AI模型,对所述AI模型进行训练,从而获得符合预期要求的AI模型。
进一步,所述将所述第二数字特征向量以及所述应用程序安装包样本的恶意标签,输入搭建好的AI模型,对所述AI模型进行训练,具体包括:
将所述应用程序安装包样本的恶意标签转换为所述第二数字特征向量的恶意标签;
将所述第二数字特征向量以及所述第二数字特征向量的恶意标签,输入搭建好的AI模型,对所述AI模型进行训练。
第二方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行本发明实施例第一方面所述基于特征的恶意应用程序检测方法及其任一可选实施例所述的方法。
第三方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令执行本发明实施例第一方面所述基于特征的恶意应用程序检测方法及其任一可选实施例的方法。
本发明实施例提供的基于特征的恶意应用程序检测方法,提取待检测应用程序安装包中目标文件的关键特征,对部分关键特征获取词语随机度,对剩余部分关键特征获取数值数据,并将所得的全部随机度数据和数值数据拼接为数字特征向量;基于已经训练好的AI模型,通过AI模型对数字特征向量进行运算,即可得到所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。本发明实施例解决了传统基于人工提取规则进行恶意应用程序检测时所存在的规则提取困难、覆盖度低、扩展性差、易被绕过等问题,针对恶意程序检测具有更高的准确性和及时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所述基于特征的恶意应用程序检测方法流程示意图;
图2为本发明实施例数值分段示意图;
图3为本发明实施例所述AI模型的网络结构示意图;
图4位本发明实施例AI模型训练流程示意图;
图5为本发明实施例基于特征的恶意应用程序检测装置;
图6为本发明实施例电子设备的框架示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术问题,本发明实施例以深度学习方法中DeepFM算法为基础进行算法重新设计,获得人工智能(Artificial Intelligence,AI)模型;基于对海量的Android平台应用程序进行关键特征提取,通过提取的关键特征对AI模型进行训练,最终得到Android平台恶意应用程序检测的AI模型,其中训练过程包括:对样本数据(应用程序安装包样本)进行关键特征提取;对提取的关键特征进行特征变换,获得样本数据对应的数字特征向量;将样本数据对应的数字特征向量及样本数据对应的恶意标签作为AI模型的输入数据对所述AI模型进行训练,并通过模型评价策略对效果评价,获得符合预期要求的AI模型。
在对应用程序进行恶意检测时,对待检测应用程序安装包中的目标文件进行关键特征提取,对部分关键特征计算词语随机度,对剩余部分关键特征则获取数值数据(进一步进行特征变换),并拼接为待检测应用程序安装包对应的数字特征向量;将待检测应用程序安装包对应的数字特征向量作为AI模型的输入数据,AI模型经过运算后输出待检测应用程序安装包为恶意应用的概率和/或非恶意应用的概率。
本发明实施例中,AI模型训练阶段与恶意应用程序检测阶段,均包含对部分关键特征计算词语随机度,对剩余部分关键特征则获取数值数据(进一步进行特征变换),它们的处理方法是完全相同的;在本发明实施例的所有可选方案中,应用程序进行恶意检测阶段采用的方案与AI模型训练阶段采用的方案保持一致,以获得预期检测效果。
下面从恶意应用程序检测阶段角度,对本发明实施例所述基于特征的恶意应用程序检测方法进行详细描述。
图1为本发明实施例所述基于特征的恶意应用程序检测方法流程示意图。如图1所示的基于特征的恶意应用程序检测方法,包括:
101,解析待检测应用程序安装包中的目标文件,提取所述目标文件中的关键特征,所述关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;
102,获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;
103,将所述数字特征向量输入训练好的AI模型,获得对所述待检测应用程序的恶意性检测结果;所述AI模型是根据输入的数字特征向量进行训练,并输出所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。
本发明实施例对应用程序进行恶意检测时,首先获取待检测应用程序安装包,解析待检测应用程序安装包中的目标文件,提取目标文件中的关键特征,关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息,每一种维度信息中可以包含一种或多种不同的信息。例如,行为维度可以包含行为1、行为2、行为3等,权限维度可以包含权限1、权限2、权限3、权限4等,内容维度可以包含内容1、内容2、内容3等。所有获取到的关键特征的形式均为字符串。
具体的,本发明实施例所述行为维度包含应用程序运行时的行为信息;所述权限维度包含应用程序在进行特定行为时所需要的权限信息;所述内容维度包含下述至少一种信息:应用程序包名、程序名、开发者信息、语言信息、应用程序的总文件大小、应用程序所包含的文件数量、应用程序中特定文件大小、应用程序中特定组件的数量、元数据的数量、资源字符串数量、支持语言数量以及应用程序加固信息。
步骤102将提取的关键特征分为两部分,对部分关键特征计算词语随机度,对剩余部分关键特征则获取数值数据,下面分别描述。
一、对部分关键特征计算词语随机度:
本发明实施例实施所述词语随机度可以包括一种或多种语言文字的词语随机度,例如英文词语随机度、日语词语随机度、法文词语随机度、汉语拼音随机度等等。在应用时,可根据应用环境使用一种词语随机度,或同时使用多种词语随机度。
以英文词语随机度和汉语拼音随机度为例,对于部分关键特征中的一个或多个关键特征,可以计算每一个关键特征的英文词语随机度,将所有英文词语随机度拼接为一个数字特征向量;也可以计算每一个关键特征的汉语拼音随机度,将所有汉语拼音随机度拼接为一个数字特征向量;也可以同时计算每一个关键特征的英文词语随机度和汉语拼音随机度,将所有英文词语随机度和汉语拼音随机度拼接为一个数字特征向量。
在对大量应用程序样本的分析中发现,许多含有病毒的恶意样本是基于特殊工具自动生成的。由于这类样本是自动生成的,其包名、程序名、开发者信息等字符串形式的关键词往往具有很强的随机性。因此,分析应用程序关键词的随机度是一种很有效的病毒检测方法。随机度即一个词语是合理的单词还是一组随机字母组合的一种判定。一个词语越接近一个常见单词,其随机度越低,反之则随机度越高,随机度越高则恶意应用的可能性越大。
二、对剩余部分关键特征则获取数值数据:
优选的,本发明实施例的内容维度中的应用程序包名、程序名、开发者信息、语言信息,可以作为计算词语随机度的部分关键特征;
内容维度的其他特征,以及行为维度权限维度的特征,可以获取它们的数值,例如应用程序中特定组件的数量、应用程序中特定文件大小、元数据的数量等;行为维度,若获取到相应的行为,则可以将此关键特征转换为数字1,若未获取到相应的行为,则可以将此关键特征转换为数字0;同理,权限维度若获取到相应的权限,则可以将此关键特征转换为数字1,若未获取到相应的权限,则可以将此关键特征转换为数字0;由此,可以将剩余部分关键特征全部转为数值数据。
基于上述处理,获得随机度数据和数值数据,将所有随机度数据以及数值数据直接拼接为数字特征向量;本发明实施例不限制具体的拼接顺序,只需保持恶意应用程序检测阶段与AI模型训练阶段的拼接顺序一致即可。
本发明实施例将关键特征的随机度数据以及数值数据直接组成数字特征向量,作为AI模型输入数据,通过应用程序关键特征的随机度进行恶意应用判断。
步骤103将数字特征向量输入预先训练好的AI模型,通过计算即可获得待检测应用程序的恶意性检测结果;本发明实施例所述恶意性检测结果是指待检测应用程序为恶意应用的概率和/或非恶意应用的概率。本发明实施例的AI模型可以输出应用程序为恶意应用的概率,或者输出应用程序为非恶意应用的概率,或者同时输出应用程序为恶意应用的概率和非恶意应用的概率。
假设AI模型同时输出恶意应用的概率和非恶意应用的概率,若前者大于后者,则该应用程序是非恶意性,否则该应用程序是恶意性,例如输出“[0.98654,0.01346]”其中0.98654是非恶意应用的概率,0.01346是恶意应用的概率,表示表示此程序是非恶意性的,从而完成对应用程序恶意性的判断。
本发明实施例所述基于特征的恶意应用程序检测方法,提取待检测应用程序安装包中目标文件的关键特征,对部分关键特征获取词语随机度,对剩余部分关键特征获取数值数据,并将所得的全部随机度数据和数值数据拼接为数字特征向量;基于已经训练好的AI模型,通过AI模型对数字特征向量进行运算,即可得到所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。本发明实施例解决了传统基于人工提取规则进行恶意应用程序检测时所存在的规则提取困难、覆盖度低、扩展性差、易被绕过等问题,针对恶意程序检测具有更高的准确性和及时性。
基于上述实施例,步骤101所述解析待检测应用程序安装包中的目标文件,提取所述目标文件中的关键特征,具体包括:
101.1,解析待检测应用程序安装包中各子文件信息,获取目标文件;
101.2,在所述目标文件中,提取与特定关键词匹配的目标字符串,即是关键特征;所述目标字符串包含行为维度、权限维度和内容维度中的至少一种维度信息;
本发明实施例步骤101.1从待检测应用程序安装包的子文件中获取目标文件,其中目标文件可以是子文件中的AndroidManifest.xml、classes.dex等文件。
本发明实施例通过关键词匹配的方式提取目标文件中的关键特征,步骤101.2中所述特定关键词,是与行为、权限、内容相关的关键词,通过特定关键词匹配到的目标字符串即是与行为、权限、内容相关的字符串信息。通过本发明实施例设定的全部特定关键词进行匹配,可能匹配到行为维度、权限维度和内容维度的全部信息,也可能匹配到部分信息。
本发明实施例所述关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;具体的各维度信息提取方法包括但不限于以下描述,各维度信息至少包括描述中的一种:
行为维度中,应用程序的行为是指程序在运行是所进行的诸如访问本地文件、发送短信、联网等行为,具体表现为这些行为信息在classes.dex文件中以特定的类名、方法名、变量名的方式存在。应用程序的行为是病毒检测的重要依据,很多带病毒的应用程序都会存在若干高危行为。分析应用程序的高危行为列表,是应用程序是否携带病毒的重要判断依据。基于对现有大量应用程序的分析,可以找出上述关键符号与应用程序行为的联系,将关键符号的特定组合和应用程序行为对应,即可组成行为特征库。
例如:
(1)行为“SMS_Send”,表示是否有发送短信的行为,对应的行为规则是包含下述“类->方法”之一:
android/telephony/SmsManager->sendMultipartTextMessage;
android/telephony/SmsManager->sendTextMessage;
android/telephony/gsm/SmsManager->sendTextMessage;
android/telephony/gsm/SmsManager->sendMultipartTextMessage;
android/telephony/SmsManager->sendDataMessage;
android/telephony/gsm/SmsManager->sendDataMessage;
(2)行为”SMS_Scan”,表示短信搜索行为,对应的行为规则是包含“类->方法”组合:
android/database/Cursor->moveToFirst,且静态字符串中包含url:content://sms;
或者包含“类->方法”组合:
android/database/Cursor->moveToPosition,且静态字符串中包含url:content://sms;
权限维度中,应用程序的在进行读取文件行为时,需要先声明读取文件的权限,其中包含一些敏感权限,因此某些权限的声明与否对应用程序恶意性判断有一定的参考价值。优选的,本发明实施例从AndroidManifest.xml文件的“<uses-permission name=”xxx”>”字段获得关于权限声明的信息。
内容维度中,本发明实施例解析AndroidManifest.xml文件,该文件解密后是一个标准xml文件,查询其<manifest package=”xxx”>字段,xxx即为应用程序的包名;查询<application lable=”xxx”>字段,xxx代表应用程序名在resources.arsc文件中的索引,解析resources.arsc可以通过该索引获取应用程序名;证书文件位于META-INF目录下,格式为标准X509格式,调用openssl相关接口可以解析证书,获得应用的开发者信息。openssl是一个大型加解密库,针对的是常用的标准格式,证书属于X509标准格式,直接调用相关接口解析可获得开发者信息。
内容维度的其他特征还可以包括:安装包大小,通过解析安装包头部获得;classes.dex文件大小,通过提取classes.dex文件获得;安装包子文件个数,通过解析安装包头部获得;Activity组件个数,通过解析AndroidManifest.xml获得;Service组件个数,通过解析AndroidManifest.xml获得;Receiver组件个数,通过解析AndroidManifest.xml获得;Meta-data个数,通过解析AndroidManifest.xml获得;支持的语言数,通过解析resources.arsc获得;资源字符串个数,通过解析resources.arsc获得;等等。
本发明实施例基于对现有大量应用程序的分析,提取应用程序安装包中包含应用程序特定的行为、权限、敏感字符串、证书等维度信息,带有恶意的应用程序在这些维度上与正常应用程序有很强的区分度,是判断应用程序恶意性的重要依据。
基于上述任一可选实施例,步骤102所述获取所述部分关键特征的词语随机度,具体包括:
102.1,根据所述部分关键特征字符串的字母顺序,依次获取所述部分关键特征字符串的任意相邻两个字母的字母相邻频率;
102.2,基于所述任意相邻两个字母的字母相邻频率,获取所述关键特征的词语随机度;
其中,所述字母相邻频率是将字符串作为预设语言文字的单词,通过预设语言文字的词语随机度计算规则得到两个字母之间的相邻频率;所述词语随机度通过所述字母相邻频率得到。
例如,若预设语言为英语,则字母相邻频率是将字符串作为英文,通过英文词语随机度计算规则得到两个字母之间的相邻频率;
若预设语言为汉语,则字母相邻频率是将字符串作为汉语拼音,通过汉语拼音随机度计算规则得到两个字母之间的相邻频率;
相应的,英文词语随机度通过所述英文单词的字母相邻频率得到;汉语拼音随机度通过所述汉语拼音的字母相邻频率得到。
本发明实施例中,词语随机度计算规则是通过分析大量自然语言的字母顺序得到的。英文词语随机度计算规则是通过分析大量自然语言中英文词语的字母顺序得到的。汉语拼音随机度计算规则是通过分析大量自然语言中汉语拼音的字母顺序得到的。
对于应用程序来说,字符串随机度计算可以使用安装包中解析到的使用任意一组字符串。通过计算字符串的随机度,可以判断一个字符串是合理单词还是一组随机字母组合,从而判断对应的应用程序是恶意还是非恶意。
实际应用中,关于随机度计算规则有很多,不同应用领域的字符串规则也具有特定的意义,因此不同应用领域的随机度计算规则也有所不同,本发明实施例对此不作限定。本发明实施例所应用的要点是,不论采用何种规则对本领域字符串进行随机度计算,随机度越低,说明字符串是合理词语的可能性越大;随机度越高,说明字符串是随机字母组合的可能性越大,以此作为判断应用程序是恶意还是非恶意的依据。
通过分析字符串在不同语言文字中的字母顺序,可以得出任意两个字母的字母相邻频率,这些字母相邻频率可以预先组成频率库文件。本发明实施例根据待计算关键特征字符串的字母顺序,依次查询相邻字母出现的字母相邻频率,再综合所有相邻字母的出现频率,得到一个字符串的总体相邻频率的值,命名为“熵”。字符串的熵越低,字符串的随机度越高,表示该字符串越不像一个常规的词语。
本发明实施例中字符串的熵的计算方法是:
(1)以entropy代表熵,令初始entropy为0;
(2)遍历字符串,对于字符串的每两个相邻的字母,查询频率库文件中这两个字母组合的相邻频率,记为prob;
(3)按如下公式更新entropy:
entropy=entropy-prob*log2prob;
(4)重复步骤(2)(3)直到字符串遍历结束。
以下通过英文单词和汉语拼音举例说明随机度。
假设应用程序1的包名为:com.iizirgui.vcpnocuc;
开发者信息为:
CN=hmqmawavzg.oaa,OU=tdbkusvGGE,O=ppCIFivngI,
L=fRitORayrU,ST=DtTJWEpbqs,C=QL,
将包名com.iizirgui.vcpnocuc作为英文,按照英文词语随机度计算规则获得每两个字母之间的相邻频率,根据字符串的熵的计算的方法得到其包名的英文熵为0.160173;将包名com.iizirgui.vcpnocuc作为汉语拼音,按照汉语拼音随机度计算规则获得每两个字母之间的相邻频率,根据字符串的熵的计算的方法中文拼音熵为0.118652;
同理,开发者信息CN段的英文熵为0.117621,中文拼音熵为0.093654;开发者信息OU段的英文熵为0.130641,中文拼音熵为0.113263;开发者信息O段的英文熵为0.222635,中文拼音熵为0.099876。
以上举例同时获得了英文词语随机度和汉语拼音随机度,将所述英文词语随机度和汉语拼音随机度按预设顺序拼接为数字特征向量;如前所述,本发明实施例不限制拼接顺序,其中一种拼接如下:
[0.160173,0.118652,0.117621,0.093654,0.130641,0.113263,0.222635,0.099876]。
如前所述,所述部分关键特征主要包括本发明实施例的内容维度中的应用程序包名、程序名、开发者信息和语言信息中的至少一种。
优选的,本发明实施例获取部分关键特征的英文词语随机度和/或汉语拼音随机度,即:获取部分关键特征的英文词语随机度,获取部分关键特征的汉语拼音随机度,同时获取部分关键特征的英文词语随机度和汉语拼音随机度。
具体的,获取英文词语随机度时,将关键特征字符串作为英文单词,依次任意相邻两个字母的字母相邻频率,再根据所有字母的字母相邻频率以及熵的计算方法,获得关键特征字符串的英文词语随机度。
获取汉语拼音随机度时,将关键特征字符串作为汉语拼音,依次任意相邻两个字母的字母相邻频率,再根据所有字母的字母相邻频率以及熵的计算方法,获得关键特征字符串的汉语拼音随机度。
基于上述任一可选实施例,步骤102所述获取剩余部分关键特征的数值数据,具体包括:
102.3,基于所述剩余部分关键特征中内容维度的关键特征,将所提取的关键特征转换为第一数值数据,所述第一数值数据为关键特征所代表的数值;
102.4,基于所述剩余部分关键特征中行为维度和权限维度的关键特征,将所提取的关键特征转换为第二数值数据,所述第二数值数据为数字0或1。
如前所述,内容维度中应用程序包名、程序名、开发者信息、语言信息,可以作为计算词语随机度的部分关键特征;内容维度的其他特征,以及行为维度权限维度的特征,可以获取它们的数值,为第一数值数据,例如应用程序中特定组件的数量、应用程序中特定文件大小、元数据的数量等;行为维度,若获取到相应的行为,则可以将此关键特征转换为数字1,若未获取到相应的行为,则可以将此关键特征转换为数字0;同理,权限维度若获取到相应的权限,则可以将此关键特征转换为数字1,若未获取到相应的权限,则可以将此关键特征转换为数字0,行为维度权限维度的关键特征转换后获得第二数值数据;由此,可以将剩余部分关键特征全部转为数值数据。
需要说明的是,本发明实施例并不限制步骤102.1、102.2、102.3及102.4的先后实施顺序。
基于上述任一可选实施例,步骤102所述将所述词语随机度以及所述数值数据拼接为数字特征向量,具体包括:
102.5,基于所述词语随机度以及所述第一数值数据中的每一个数据,分别将每一个数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字;
102.6,将所有随机度数据和第一数值数据转换后的编码数字,以及第二数值数据,按预设顺序拼接为数字特征向量。
本发明实施例步骤102.5包括两部分:
第一部分、对第一数值数据进行特征变换,然后进行独热编码,获得每一个第一数值数据的编码数字。
第二部分、根据部分关键特征字符串的词语随机度,进行特征变换,然后进行独热编码,获得每一个随机度数据的编码数字。
优选的,本发明实施例获取部分关键特征的英文词语随机度和/或汉语拼音随机度,包括三种方式:
(1)基于所述英文词语随机度中每一个随机度数据,分别将每一个随机度数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字;
(2)基于所述汉语拼音随机度中每一个随机度数据,分别将每一个随机度数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字;
(3)基于所述英文词语随机度中每一个随机度数据,分别将每一个随机度数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字;基于所述汉语拼音随机度中每一个随机度数据,分别将每一个随机度数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字。
(1)和(2)分别针对英文词语随机度和汉语拼音随机度进行特征变换,(3)同时对英文词语随机度和汉语拼音随机度进行特征变换,每个随机度数据会得到一个特征变换数字,然后将特征变换数字进行独热编码,最后拼接为由0和1组成的数字特征向量。通过特征变换,可以在保留更多特征信息的同时,提高AI模型的泛化能力。
本发明实施例随机度数据和第一数值数据转换后的编码数字由0和1组成,第二数值数据是0或1,因此所拼接的数字特征向量全部由0和1组成。相应于上述三种方式,本发明实施例步骤102.6将所有编码数字以及第二数值数据,按预设顺序拼接为数字特征向量也包括三种:
(1)将英文词语随机度转换后的编码数字、第一数值数据转换后的编码数字及第二数值数据按预设顺序拼接为数字特征向量;
(2)将汉语拼音随机度转换后的编码数字、第一数值数据转换后的编码数字及第二数值数据按预设顺序拼接为数字特征向量;
(3)将英文词语随机度转换后的编码数字、汉语拼音随机度转换后的编码数字、第一数值数据转换后的编码数字及第二数值数据按预设顺序拼接为数字特征向量。
同样的,本发明实施例也不限制特征变换及独热编码之后,数字特征向量的拼接顺序,只需保持恶意应用程序检测阶段与AI模型训练阶段的拼接顺序一致即可。
独热编码又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。
例如对六个状态进行编码:
自然顺序码为:000,001,010,011,100,101;
独热编码则为:000001,000010,000100,001000,010000,10000。
本发明实施例对随机度数据进行特征变换方式是灵活多样的,基于提取的关键特征的具体数据和不同场景的运算需求,可以采取不同的特征变换方式。
基于上述任一可选实施例,所述分别将每一个数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字,具体包括:
基于所有数据,按第一预设规则获取N个数值分段,并将所述N个数值分段按数值大小排序,获得每个数值分段的排序位次,所述N为大于0的整数;
将每一个数据,按第二预设规则与所述N个数值分段进行匹配,使每一个数据匹配一个数值分段,并将所匹配的数值分段的排序位次作为所述每一个数据的特征变换数字;
对每一个数据的特征变换数字进行独热编码,从而获得由0和1组成的编码数字。
图2为本发明实施例数值分段示意图。假设本发明实施例进行特征变换的数据总共有1150个,即获得1150个数据,则按总共1150个数据进行分段,分段方法是第一预设规则;第一预设规则可以是,按照1150个数据的数值大小进行分段,也可以是按照1150个数据的数据个数进行分段,也可以是按照数值大小和数据个数混合进行分段,具体分段方法可以根据需求而定,本发明实施例对此不作限定。
如图2所示,假设本发明实施例通过第一预设规则,将举例中的1150个随机度数据分段后,获得N个数值分段,这N个数值分段按大小排序后,排序位次分别是1,2,…,N。
将数值分段排序好了后,本发明实施例按第二预设规则将所有的随机度数据“对号入座”,其中第二预设规则是与第一预设规则对应的匹配方法,即:若第一预设规则是按数值大小进行分段,则第二预设规则按数值大小进行匹配;若第一预设规则是按数据个数进行分段,则第二预设规则按数据个数排号进行匹配;若第一预设规则是按数值大小和数据个数混合进行分段,则第二预设规则按数值大小和数据个数混合进行匹配。
请参考图2,以第一预设规则按数值大小进行分段为例,对于上述举例中的1150个数据,将1150个数据分别与N个数值分段进行匹配,若其中50个数据的数值在分段1的数值范围内,则将排序位次1作为这50个数据的特征变换数字,即这50个数据中的每一个数据都获得特征变换数字1;若其中100个数据的数值在分段2的数值范围内,则将排序位次2作为这100个数据的特征变换数字,即这100个数据中的每一个数据都获得特征变换数字2;以此类推,每一数据都将获得一个特征变换数字,不再赘述。
对每一个数据进行分段匹配后,每一个数据都获得了一个特征变换数字,本发明实施例对每个特征变换数字进行独热编码,从而获得由0和1组成的编码数字;下述实施例的独热编码处理与此相同,此后不再赘述。
需要说明的是,由于本发明实施例词语随机度可以包括多种语言的词语随机度,例如英文词语随机度、汉语拼音随机度等,可以分别对英文词语随机度、汉语拼音随机度、及第一数值数据进行特征变换和独热编码,而英文词语随机度和汉语拼音随机度由包括不同关键特征字符串英文词语随机度和汉语拼音随机度,第一数值数值数据也包括不同的关键特征的数据,因此在实际实施时,可以分别按不同的关键特征进行处理,即一次特征变换和独热编码的数据属于一个关键特征,例如上述1150个数据全部是元数据的数量,或者1150个数据全部是应用程序包名计算的英文词语随机度,或者1150个数据全部是应用程序包名计算的汉语拼音随机度等等。按照同一关键特征进行特征变换和独热编码,可以对这一关键特征的数据进行泛化,进而提高AI模型的泛化能力。以下的特征变换都可以适用此策略,此后不再赘述。
本发明实施例对数据进行特征变换,可以将特性相近(例如数值有差异但很接近)的数据进行归类和数据离散化处理,在AI模型训练时可以提高AI模型的泛化能力。优选的,本发明实施例提供三种特征变换方式,分别是按数值、按数据个数和按数值和数据个数混合的特征变换方式,如下:
第一种特征变换方式:第一预设规则是按数值大小进行分段,第二预设规则按数值大小进行匹配;
第二种特征变换方式:第一预设规则是按数据个数进行分段,第二预设规则按数据个数排号进行匹配;
第三种特征变换方式:第一预设规则是按数值大小和数据个数混合进行分段,第二预设规则按数值大小和数据个数混合进行匹配。
下面分别对每一种特征变换方式进行详细描述。
基于上述任一可选实施例,所述分别将每一个数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字,具体包括:
以所有数据中的最大值和最小值为数值区间,将所述数值区间分为N份,获得N个数值分段,并将所述N个数值分段按数值大小排序,获得每个数值分段的排序位次,所述N为大于0的整数;对于每一个数据,若所述数据的值处于一个数值分段S的数值范围内,则将所述数值分段S的排序位次作为所述数据的特征变换数字;对每一个数据的特征变换数字进行独热编码,从而获得由0和1组成的编码数字。
本实施例为第一种特征变换方式,适合数据的值连续分布的场景,下面通过举例来说明。假设上述举例的1150个数据,它们的值连续分布,最大值为1,最小值为0;取N=10,数值区间为1000,将数值区间1000平均分为10段,每一段的数值范围分别是[0,0.1]、[0.1,0.2]、[0.2,0.3]、[0.3,0.4]、[0.4,0.5]、[0.5,0.6]、[0.6,0.7]、[0.7,0.8]、[0.8,0.9]、[0.9,1],按数值区间的数值范围大小排序,上述数值分段对应的排序位次分别为1、2、3、4、5、6、7、8、9、10。
分别将1150个数据与上述10个数值分段进行匹配,若一个数据a的值为0.23,处于[0.2,0.3]分段内,则将[0.2,0.3]]分段的排序位次3作为a的特征变换数字;以此类推,分别对所有数据进行分段匹配,则每一个数据都将获得一个1到10范围的特征变换数字,由此,1150个数据被分为10部分,一部分获得特征变换数字1,一部分获得特征变换数字2,以此类推,一部分获得特征变换数字10。
需要说明的是,N个数值分段的排序可以按升序排列,也可以将降序排列,在恶意应用检测时的排序方式与AI模型训练时的排序方式保持一致即可。
另外,对于处于数值分段边界点的值,按约定的规则将它匹配到较小的数值分段或较大的数值分段即可,本发明实施例对此不作限定。
另外,上述举例将数值区间1000平均分为10段,若使用特定规则进行非平均分段同样落入本发明实施例的保护范围。
对于已经取得特征变换数字的数据进行独热编码,例如数据a的特征变换数字为1,总的特征变换数字有10个,则独热编码为1000000000;若值型数据b的特征变换数字为2,则独热编码为0100000000;以此类推。
基于上述任一可选实施例,所述分别将每一个数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字,具体包括:
以所有数据的总个数进行分段,获得N个数值分段,并将所述N个数值分段按数值大小排序,获得每个数值分段的排序位次,所述N为大于0的整数;将每一个数据按大小排序,获得每一个数据的排序号;将所述每一个数据的排序号所对应的数值分段的排序位次,作为所述每一个数据的特征变换数字;对每一个数据的特征变换数字进行独热编码,从而获得由0和1组成的编码数字。
本实施例为第二种特征变换方式,适合数据的值离散分布的场景,下面通过举例来说明。假设上述举例的1150个数据,它们的值离散分布,如果按第一种特征变换方式,则可能有的数值分段上没有匹配的数据,有的数值分段匹配到非常多的数据,则对AI模型的数据运算产生不良影响。
为了避免上述情形,第二种特征变换方式采用数据个数进行分段和匹配。假设上述举例的1150个数据,取N=10,则获得10个数值分段,每个数值分段可以匹配115个数据;将1150个数据按数值大小排序,则排序的第1~115个数据匹配数值分段1,获得特征变换数字1,第116~230个数据匹配数值分段2,获得特征变换数字2,以此类推,第1036~1150个数据匹配数值分段10,获得特征变换数字10。对于已经取得特征变换数字的数据进行独热编码与上述实施例相同,此处不再赘述。
需要说明的是,上述举例将数据个数1150平均分为10段,若使用特定规则进行非平均分段同样落入本发明实施例的保护范围。
基于上述任一可选实施例,所述分别将每一个数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字,具体包括:
将所有数据的部分数据按数据个数进行分段,获得n个数值分段,其中n为大于0的整数;剔除所述数据中按数据个数进行分段的部分数据,以剩余数据中的最大值和最小值为数值区间,将所述数值区间分为N-n份,获得N-n个数值分段,所述N为大于n的整数;按照数值大小对N个数值分段进行排序,获得每个数值分段的排序位次;将每一个数据按大小排序,分别与N个数值分段进行匹配,将所匹配到的数值分段的排序位次作为所述数据的特征变换数字;对每一个数据的特征变换数字进行独热编码,从而获得由0和1组成的编码数字。
本实施例为第三种特征变换方式,适合数据的值既有离散分布又有连续分布的场景,下面通过举例来说明。需要说明的是,上述第三种特征变换方式的文本描述次序,并不用来限定实际实施的步骤次序;事实上,所有按数值大小和数据个数混合进行分段,并按数值大小和数据个数混合进行匹配的方法,全部落入本发明实施例的保护范围。
假设上述举例的1150个数据,将1150个数据按数值大小排序,其中第一段数据和最后一段数据比较离散,中间的数据比较连续;则将第一段数据即总数据个数的x%作为第一数值分段,排序位次为1,最后一段数据即总数据个数的y%作为第N数值分段,排序位次为N。取N=10,x=10,y=20,1150*10%=115,1150*20%=230,则第一数值分段可以匹配115个数据,第N数值分段可以匹配230个数据;将1150个数据按数值大小排序后的第1~115个数据匹配第一数值分段,获得特征变换数字1,第921~1150个数据匹配第N数值分段,获得特征变换数字10。
将1150个数据排序位中间第116~920个数据中的最大值和最小值作为数值区间,按平均或非平均的方法将数值区间分为10-2段即8个数值分段,排序位次分别是2,3,4,5,6,7,8,9;分别将第116~920个数据中每一个数据与数值分段2~9进行匹配,若数据的值处于一个数值分段S的数值范围内,则将数值分段S的排序位次作为它的特征变换数字。
对于已经取得特征变换数字的数据进行独热编码与上述实施例相同,此处不再赘述。
需要说明的是,上述举例将数据排序的首尾两段按照数据个数进行分段,将中间部分按照数值大小范围进行分段,也可以根据时间应用的需要,首尾两段按照数值大小范围进行分段,将中间部分按照数据个数进行分段,等等,凡是在数据分段时,既包含按照数值大小范围进行分段,又包含按照数据个数进行分段的,全部落入本发明实施例的保护范围。
本发明实施例对提取到的关键特征进行特征变换,后进行独热编码,是基于数据本身,在AI模型训练时,在保证数据中蕴含的信息可以最大化的抽取的同时,保证AI模型最终的效果;在恶意应用程序检测时,最大程度的保证检测的准确性。
基于上述任一可选实施例,本发明实施例的所述AI模型网络结构包括但不限于卷积神经网络、循环神经网络、深度学习网络、机器学习网络等,主要包括四部分:输入层、分解机层、隐藏层和输出层,图3为本发明实施例所述AI模型的网络结构示意图。如图3所示,所述AI模型的网络结构包括四部分:输入层(Input Layers)、分解机层(FactorizationMachines)、隐藏层(Hidden Layers)和输出层(Output Layers);
所述输入层,用于接收数字特征向量和应用程序恶意标签作为输入数据;所述分解机层,用于提取所述输入数据中的低阶特征,并根据所述低阶特征进行计算;所述隐藏层,用于提取所述输入数据中的高阶特征,根据所述高阶特征计算应用程序的恶意特征,并对不同恶意性的应用程序恶意特征从高维空间进行分割;所述输出层,用于将所述分解机层的计算结果和所述隐藏层的计算结果进行合并,输出所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。
图4位本发明实施例AI模型训练流程示意图。如图4所示,本发明实施例所述AI模型通过如下方法训练得到:
400,获取应用程序安装包样本以及所述应用程序安装包样本的恶意标签;
401,解析所述应用程序安装包样本中的第二目标文件,提取所述第二目标文件中的第二关键特征;所述第二关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;
402,获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;
403,将所述第二数字特征向量以及所述应用程序安装包样本的恶意标签,输入搭建好的AI模型,对所述AI模型进行训练,从而获得符合预期要求的AI模型。
需要说明的是,本发明实施例的第二关键特征和第二数字特征向量仅为了与上文中提到的关键特征和数字特征向量作名词上的区分,其中“第二”不具有实际意义;第二关键特征和关键特征的实际意义完全相同,第二数字特征向量和数字特征向量的实际意义完全相同。
本发明实施例中,步骤400所获得的应用程序安装包样本数据和恶意标签数据,可以是人工分析结果,通过人工进行样本收集和恶意性判断。本发明实施例收集大量完整的Android平台应用程序,通过人工分析应用程序恶意木马等特征,进而提取判断应用程序恶意性的规则,之后基于规则对搜集的Android平台应用程序进行恶意性判断,得到应用程序安装包样本对应的恶意标签。
如前所述,本发明实施例AI模型训练阶段和恶意应用程序检测阶段的处理过程完全相同,包括对部分关键特征计算词语随机度,对剩余部分关键特征则获取数值数据(进一步进行特征变换);若在AI模型训练时,将部分关键特征的随机度数据和数值数据直接拼接为数字特征向量作为AI模型训练时的输入数据,则在恶意应用程序检测阶段,也通过部分关键特征的随机度数据和数值数据直接拼接为数字特征向量作为AI模型训练时的输入数据;若在AI模型训练时,将部分关键特征的随机度数据和部分数值数据(第一数值数据),进行特征变换及独热编码后,再与剩余部分数值数据(第二数值数据)拼接为数字特征向量作为AI模型训练时的输入数据,则在恶意应用程序检测阶段,也将部分关键特征的随机度数据和部分数值数据(第一数值数据),进行特征变换及独热编码后,再与剩余部分数值数据(第二数值数据)拼接为数字特征向量作为AI模型训练时的输入数据;AI模型训练阶段和恶意应用程序检测阶段所有可选实施例的处理步骤完全相同,以此保证AI模型的检测效果。
本发明实施例AI模型训练方法步骤401与所述基于特征的恶意应用程序检测方法步骤101及步骤101的所有可选实施例的处理方法完全相同;若有多个不同的可选实施例,则保持步骤101和步骤401采用的可选实施例一致即可达到恶意应用检测的效果,此处不再赘述。
本发明实施例AI模型训练方法步骤402与所述基于特征的恶意应用程序检测方法步骤102及步骤102的所有可选实施例的处理方法完全相同;若有多个不同的可选实施例,则保持步骤102和步骤402采用的可选实施例一致即可达到恶意应用检测的效果,此处不再赘述。
本发明实施例AI模型训练方法步骤403,与所述基于特征的恶意应用程序检测方法步骤103,区别在于步骤403的输入数据除了关键特征的随机度拼接的数字特征向量,还包括应用程序安装包样本的恶意标签,通过数字特征向量和应用程序安装包样本的恶意标签对AI模型进行训练,从而使AI模型具有根据数字特征向量识别恶意应用的能力。
本发明实施例AI模型的分解机层(Factorization Machines)是用来对数据中的低阶特征进行提取。APP的恶意性往往是一系列的动作,只有同时在行为、权限、内容等方面进行相互配合,才能完成作恶行为,因此特征之间的组合往往很大程度上能反映APP的恶意性。而分解机主要是通过对于每一维特征的隐变量内积来提取特征组合,以确保模型可以将特征之间的组合信息保存下来。
优选的,本发明实施例AI模型的隐藏层(Hidden Layers)是一个前馈神经网络,包括隐藏单元(Hidden Unites)和Sigmoid函数(Sigmoid Function);所述隐藏层中包含6层隐藏层,每层的神经元节点数在32-256范围不等,具体的每层神经元节点数可以为64、128、256、128、64或32,用来提取数据中的高阶特征,并对不同恶意性的APP特征从高维空间进行分割。
本发明实施例AI模型的输出层(Output Layers)是将分解机层和隐藏层前向计算结果合并,最终输出的节点数为2或1:若为2,则分别是此样本为非恶意性应用的概率和恶意性应用的概率;若为1,则是此样本为非恶意性应用的概率或恶意性应用的概率。
优选的,通过设置了恶意性应用与非恶意性应用的概率阈值,可以满足低误报场景的检测要求。
最后通过反向传播的方式进行模型训练;以交叉验证为手段,以准确率、召回率、精准率、F值为标准,考虑到时间因素及业务背景的影响,对AI模型的参数、迭代次数、模型结构等进行调整,最终得到符合预期要求的AI模型。
基于上述任一可选实施例,步骤403所述将所述第二数字特征向量以及所述应用程序安装包样本的恶意标签,输入搭建好的AI模型,对所述AI模型进行训练,具体包括:
403.1,将所述应用程序安装包样本的恶意标签转换为所述第二数字特征向量的恶意标签;
403.2,将所述第二数字特征向量以及所述第二数字特征向量的恶意标签,输入搭建好的AI模型,对所述AI模型进行训练。
本发明实施例应用程序安装包样本的恶意标签是对大量Android平台主流恶意软件分析后,对APP进行恶意性打标签的结果,一个应用程序安装包样本对应一个数字特征向量,同时对应一个恶意标签,因此可以将应用程序安装包样本的数字特征向量与恶意标签对应起来,将应用程序安装包样本的恶意标签转换为数字特征向量的恶意标签,即一个数字特征向量对应一个恶意标签。
这样,本发明实施例AI模型的一个输入数据为数字特征向量,另一个输入数据为数字特征向量对应的恶意标签,对AI模型进行训练。
本发明实施例将数字特征向量与恶意标签对应起来,通过对数字特征向量打标签,可以提高AI模型的泛化能力。
基于上述任一可选实施例,步骤403.1所述将所述应用程序安装包样本的恶意标签转换为所述第二数字特征向量的恶意标签,具体包括:
基于全部应用程序安装包样本的恶意标签,将任一个应用程序安装包样本的恶意标签,作为所述任一个应用程序安装包样本对应的第二数字特征向量的恶意标签;
基于全部第二数字特征向量及其对应的恶意标签,对其中第二数字特征向量及其对应的恶意标签完全相同的数据进行去重,获得去重后的第二数字特征向量以及第二数字特征向量的恶意标签。
本发明实施例将应用程序安装包样本的恶意标签转换为数字特征向量的恶意标签,难免存在数字特征向量与恶意标签完全相同的数据。例如,应用程序A通过分析后为恶意,应用程序B通过分析后为恶意,应用程序C通过分析后为恶意;假设应用程序A、B和C提取关键特征进行特征变换后,得到的数字特征向量完全相同,假设为0010000000,而A、B和C的恶意标签均为恶意,假设为1,则将出现三条完全相同的数据(0010000000,1)。本发明实施例对数字特征向量及其对应的恶意标签完全相同的数据去重,可以大幅降低数据量,减轻AI模型的数据处理压力。经过实验室场景测试,数据去重后,数据量大约降低1个数量级以上。
进一步,若多个相同的数字特征向量,对应的应恶意标签包括恶意和非恶意,若其中恶意的数量大于非恶意的数量,则将此数字特征向量打标为恶意,否则打标为非恶意。
例如,应用程序A、B、C、D和E,提取关键特征进行特征变换后,得到的数字特征向量完全相同,假设为0010000000,而A、B和C的恶意标签均为恶意,假设为1,D和E的恶意标签均为非恶意,假设为0,则数字特征向量0010000000对应恶意标签为1的数量大于对应恶意标签为0的数量,则将数字特征向量0010000000打标为1。
本实施例根据数字特征向量对应的恶意标签为恶意和非恶意的数量多少,对数字特征向量进行去重和重打标,进一步降低了数据量,减轻AI模型的数据处理压力,同时进一步提高了AI模型的泛化能力。
综上所述,本发明实施例首先基于对Android平台应用程序的分析,从行为、权限和内容三个维度提取了诸如应用程序包名、程序名、开发者信息、语言信息、行为和权限等若干关键特征;其次对部分关键特征进行随机度计算,对部分关键特征获取数值,并进一步对随机度数据和部分数值数据进行特征变换等数据预处理;再次,利用基于深度学中方法中的DeepFM算法所重新设计的模型进行多轮模型训练,通过模型效果的评价策略使得模型的效果达到预期目标;最后,将恶意性未知的应用程序提取特征,并通过模型进预测,进而完成对应用程序的恶意性判定。
其中,关键特征是AI模型训练的基石,也是恶意应用检测的依据。关键特征中包含应用程序特定的行为、权限、敏感字符串、证书等信息,带有恶意的应用程序在这些特定的维度上与正常应用程序有很强的区分度,是应用程序恶意性的判断的重要依据。通过校验、解析应用程序安装包获取大量关键词,对大量的关键词应用随机度算法,得到关键词的随机度数据,拼接所有随机度数据得到向量,该向量是应用程序是否疑似通过恶意工具批量生成,以及这些批量生成应用程序是否携带病毒的重要判断依据。
进一步,本发明实施例通过对随机度数据和部分数值数据进行特征变换,从模型角度出发,在保证数据中蕴含的信息可以最大化的抽取的同时,保证AI模型最终的效果。
模型设计是AI模型成功的关键点。设计恰当的模型可以最大限度的将数据中的信息转化为知识,进而将知识固化下来,用于对应用程序恶意性的判断。
综上所述,本发明实施例对基于对海量的Android平台应用程序进行静态特征提取及数据统计特征,以深度学习方法中DeepFM算法为基础进行算法重新设计,进而对提取特征后的数据进行模型训练,最终得到Android平台恶意应用程序检测的AI模型,通过AI模型对应用程序进行恶意检测,不依赖于恶意特征库的更新,学习能力强,为Android平台应用程序的恶意检测提供了新的方向。本发明解决了传统基于人工提取规则进行恶意应用程序检测所存在的规则提取困难、覆盖度低、扩展性差、易被绕过等问题,且本发明实施例具有更高的准确性和及时性。
图5为本发明实施例基于特征的恶意应用程序检测装置,包括关键特征提取模块501、随机度获取模块502和恶意应用检测模块503:
所述关键特征提取模块501,解析待检测应用程序安装包中的目标文件,提取所述目标文件中的关键特征,所述关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;
所述随机度获取模块502,获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;
所述恶意应用检测模块503,将所述数字特征向量输入训练好的AI模型,获得对所述待检测应用程序的恶意性检测结果;所述AI模型是根据输入的数字特征向量进行训练,并输出所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。
本发明实施例基于特征的恶意应用程序检测装置用于执行图1所示的基于特征的恶意应用程序检测方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明实施例电子设备框架示意图。请参考图6,本发明实施例提供一种电子设备,包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和总线640,其中,处理器610,通信接口620,存储器630通过总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行如下方法,包括:解析待检测应用程序安装包中的目标文件,提取所述目标文件中的关键特征,所述关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;将所述数字特征向量输入训练好的AI模型,获得对所述待检测应用程序的恶意性检测结果;所述AI模型是根据输入的数字特征向量进行训练,并输出所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:解析待检测应用程序安装包中的目标文件,提取所述目标文件中的关键特征,所述关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;将所述数字特征向量输入训练好的AI模型,获得对所述待检测应用程序的恶意性检测结果;所述AI模型是根据输入的数字特征向量进行训练,并输出所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:解析待检测应用程序安装包中的目标文件,提取所述目标文件中的关键特征,所述关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;将所述数字特征向量输入训练好的AI模型,获得对所述待检测应用程序的恶意性检测结果;所述AI模型是根据输入的数字特征向量进行训练,并输出所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。
本领域普通技术人员可以理解:实现上述设备实施例或方法实施例仅仅是示意性的,其中所述处理器和所述存储器可以是物理上分离的部件也可以不是物理上分离的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种基于特征的恶意应用程序检测方法,其特征在于,包括:
解析待检测应用程序安装包中的目标文件,提取所述目标文件中的关键特征,所述关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;
获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;
将所述数字特征向量输入训练好的AI模型,获得对所述待检测应用程序的恶意性检测结果;所述AI模型是根据输入的数字特征向量进行训练,并输出所述数字特征向量对应的应用程序为恶意应用的概率和/或非恶意应用的概率。
2.根据权利要求1所述的方法,其特征在于,所述行为维度包含应用程序运行时的行为信息;
所述权限维度包含应用程序在进行特定行为时所需要的权限信息;
所述内容维度包含下述至少一种信息:应用程序包名、程序名、开发者信息、语言信息、应用程序的总文件大小、应用程序所包含的文件数量、应用程序中特定文件大小、应用程序中特定组件的数量、元数据的数量、资源字符串数量、支持语言数量以及应用程序加固信息。
3.根据权利要求1所述的方法,其特征在于,所述获取所述部分关键特征的词语随机度,具体包括:
根据所述部分关键特征字符串的字母顺序,依次获取所述部分关键特征字符串的任意相邻两个字母的字母相邻频率;
基于所述任意相邻两个字母的字母相邻频率,获取所述关键特征的词语随机度;
其中,所述字母相邻频率是将字符串作为预设语言文字的单词,通过预设语言文字的词语随机度计算规则得到两个字母之间的相邻频率;
所述词语随机度通过所述字母相邻频率得到。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述获取剩余部分关键特征的数值数据,具体包括:
基于所述剩余部分关键特征中内容维度的关键特征,将所提取的关键特征转换为第一数值数据,所述第一数值数据为关键特征所代表的数值;
基于所述剩余部分关键特征中行为维度和权限维度的关键特征,将所提取的关键特征转换为第二数值数据,所述第二数值数据为数字0或1。
5.根据权利要求4任一项所述的方法,其特征在于,所述将所述词语随机度以及所述数值数据拼接为数字特征向量,具体包括:
基于所述词语随机度以及所述第一数值数据中的每一个数据,分别将每一个数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字;
将所有随机度数据和第一数值数据转换后的编码数字,以及第二数值数据,按预设顺序拼接为数字特征向量。
6.根据权利要求5所述的方法,其特征在于,所述分别将每一个数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字,具体包括:
基于所有数据,按第一预设规则获取N个数值分段,并将所述N个数值分段按数值大小排序,获得每个数值分段的排序位次,所述N为大于0的整数;
将每一个数据,按第二预设规则与所述N个数值分段进行匹配,使每一个数据匹配一个数值分段,并将所匹配的数值分段的排序位次作为所述每一个数据的特征变换数字;
对每一个数据的特征变换数字进行独热编码,从而获得由0和1组成的编码数字。
7.根据权利要求5或6任一项所述的方法,其特征在于,所述分别将每一个数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字,具体包括:
以所有数据中的最大值和最小值为数值区间,将所述数值区间分为N份,获得N个数值分段,并将所述N个数值分段按数值大小排序,获得每个数值分段的排序位次,所述N为大于0的整数;
对于每一个数据,若所述数据的值处于一个数值分段S的数值范围内,则将所述数值分段S的排序位次作为所述数据的特征变换数字;
对每一个数据的特征变换数字进行独热编码,从而获得由0和1组成的编码数字。
8.根据权利要求5或6任一项所述的方法,其特征在于,所述分别将每一个数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字,具体包括:
以所有数据的总个数进行分段,获得N个数值分段,并将所述N个数值分段按数值大小排序,获得每个数值分段的排序位次,所述N为大于0的整数;
将每一个数据按大小排序,获得每一个数据的排序号;
将所述每一个数据的排序号所对应的数值分段的排序位次,作为所述每一个数据的特征变换数字;
对每一个数据的特征变换数字进行独热编码,从而获得由0和1组成的编码数字。
9.根据权利要求5或6任一项所述的方法,其特征在于,所述分别将每一个数据进行特征变换后,通过独热编码,转换成由0和1组成的编码数字,具体包括:
将所有数据的部分数据按数据个数进行分段,获得n个数值分段,其中n为大于0的整数;
剔除所述数据中按数据个数进行分段的部分数据,以剩余数据中的最大值和最小值为数值区间,将所述数值区间分为N-n份,获得N-n个数值分段,所述N为大于n的整数;
按照数值大小对N个数值分段进行排序,获得每个数值分段的排序位次;
将每一个数据按大小排序,分别与N个数值分段进行匹配,将所匹配到的数值分段的排序位次作为所述数据的特征变换数字;
对每一个数据的特征变换数字进行独热编码,从而获得由0和1组成的编码数字。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述AI模型的网络结构包括四部分:输入层、分解机层、隐藏层和输出层;所述AI模型通过如下方法训练得到:
获取应用程序安装包样本以及所述应用程序安装包样本的恶意标签;
解析所述应用程序安装包样本中的第二目标文件,提取所述第二目标文件中的第二关键特征,所述关键特征包含行为维度、权限维度和内容维度中的至少一种维度信息;
获取部分关键特征的词语随机度,获取剩余部分关键特征的数值数据,并将所述词语随机度以及所述数值数据拼接为数字特征向量;
将所述第二数字特征向量以及所述应用程序安装包样本的恶意标签,输入搭建好的AI模型,对所述AI模型进行训练,从而获得符合预期要求的AI模型。
11.根据权利要求10所述的方法,其特征在于,所述将所述第二数字特征向量以及所述应用程序安装包样本的恶意标签,输入搭建好的AI模型,对所述AI模型进行训练,具体包括:
将所述应用程序安装包样本的恶意标签转换为所述第二数字特征向量的恶意标签;
将所述第二数字特征向量以及所述第二数字特征向量的恶意标签,输入搭建好的AI模型,对所述AI模型进行训练。
12.根据权利要求11所述的方法,其特征在于,所述将所述应用程序安装包样本的恶意标签转换为所述第二数字特征向量的恶意标签,具体包括:
基于全部应用程序安装包样本的恶意标签,将任一个应用程序安装包样本的恶意标签,作为所述任一个应用程序安装包样本对应的第二数字特征向量的恶意标签;
基于全部第二数字特征向量及其对应的恶意标签,对其中第二数字特征向量及其对应的恶意标签完全相同的数据进行去重,获得去重后的第二数字特征向量以及第二数字特征向量的恶意标签。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至12任一所述的方法。
14.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至12任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010722234.2A CN113971283A (zh) | 2020-07-24 | 2020-07-24 | 一种基于特征的恶意应用程序检测方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010722234.2A CN113971283A (zh) | 2020-07-24 | 2020-07-24 | 一种基于特征的恶意应用程序检测方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113971283A true CN113971283A (zh) | 2022-01-25 |
Family
ID=79585649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010722234.2A Pending CN113971283A (zh) | 2020-07-24 | 2020-07-24 | 一种基于特征的恶意应用程序检测方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113971283A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115758368A (zh) * | 2023-01-10 | 2023-03-07 | 北京亿赛通科技发展有限责任公司 | 恶意破解软件的预测方法、装置、电子设备和存储介质 |
CN115906170A (zh) * | 2022-12-02 | 2023-04-04 | 杨磊 | 应用于存储集群的安全防护方法及ai系统 |
-
2020
- 2020-07-24 CN CN202010722234.2A patent/CN113971283A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115906170A (zh) * | 2022-12-02 | 2023-04-04 | 杨磊 | 应用于存储集群的安全防护方法及ai系统 |
CN115906170B (zh) * | 2022-12-02 | 2023-12-15 | 北京金安道大数据科技有限公司 | 应用于存储集群的安全防护方法及ai系统 |
CN115758368A (zh) * | 2023-01-10 | 2023-03-07 | 北京亿赛通科技发展有限责任公司 | 恶意破解软件的预测方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Caliskan et al. | When coding style survives compilation: De-anonymizing programmers from executable binaries | |
CN109784056B (zh) | 一种基于深度学习的恶意软件检测方法 | |
CN107516041A (zh) | 基于深度神经网络的WebShell检测方法及其系统 | |
CN109391706A (zh) | 基于深度学习的域名检测方法、装置、设备和存储介质 | |
US11580222B2 (en) | Automated malware analysis that automatically clusters sandbox reports of similar malware samples | |
CN112528284A (zh) | 恶意程序的检测方法及装置、存储介质、电子设备 | |
CN109543410B (zh) | 一种基于语义映射关联的恶意代码检测方法 | |
CN112052451A (zh) | 一种webshell检测方法和装置 | |
CN116149669B (zh) | 一种基于二进制文件的软件成分分析方法、装置以及介质 | |
CN111866004A (zh) | 安全评估方法、装置、计算机系统和介质 | |
CN113971283A (zh) | 一种基于特征的恶意应用程序检测方法及设备 | |
CN115730313A (zh) | 一种恶意文档检测方法、装置、存储介质及设备 | |
CN114357443A (zh) | 基于深度学习的恶意代码检测方法、设备与存储介质 | |
Ravi et al. | Analysing corpus of office documents for macro-based attacks using machine learning | |
CN111988327B (zh) | 威胁行为检测和模型建立方法、装置、电子设备及存储介质 | |
Čeponis et al. | Evaluation of deep learning methods efficiency for malicious and benign system calls classification on the AWSCTD | |
CN113971284B (zh) | 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 | |
CN113971282A (zh) | 一种基于ai模型的恶意应用程序检测方法及设备 | |
CN116821903A (zh) | 检测规则确定及恶意二进制文件检测方法、设备及介质 | |
CN113378156B (zh) | 一种基于api的恶意文件检测方法和系统 | |
Wang et al. | Malware detection using cnn via word embedding in cloud computing infrastructure | |
CN113688240B (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
CN113971281A (zh) | 一种基于随机度的恶意应用程序检测方法及设备 | |
Pu et al. | BERT‐Embedding‐Based JSP Webshell Detection on Bytecode Level Using XGBoost | |
CN112163217B (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 |