CN112084497A - 嵌入式Linux***恶意程序检测方法及装置 - Google Patents
嵌入式Linux***恶意程序检测方法及装置 Download PDFInfo
- Publication number
- CN112084497A CN112084497A CN202010952166.9A CN202010952166A CN112084497A CN 112084497 A CN112084497 A CN 112084497A CN 202010952166 A CN202010952166 A CN 202010952166A CN 112084497 A CN112084497 A CN 112084497A
- Authority
- CN
- China
- Prior art keywords
- program
- malicious
- malicious program
- application
- detected
- 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
- 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种嵌入式Linux***恶意程序检测方法及装置,所述方法包括使用动静态结合的方式提取待检测应用程序的第一特征集与第二特征集;将所述第一特征集中包含的特征与恶意程序特征库中的恶意程序特征进行匹配,判断待检测应用程序是否为已知恶意程序,所述恶意程序特征库中包含已知恶意程序及其特征的对应关系;若否,将所述第二特征集中的特征输入预设的恶意程序预测模型中,判断待检测应用程序是否为未知恶意程序。该方法使用动静态检测技术,结合特征值匹配和机器学习方法,可以实现快速、高效、精准的检测效果。
Description
技术领域
本发明涉及发电设备控制领域,具体涉及一种基于特征库与机器学习的嵌入式Linux***恶意程序检测方法。
背景技术
嵌入式Linux***因其适用性强、可塑性强,近年来已成为当今主流的移动***,随着互联网、物联网等技术在各行各业的渗透和普及,对嵌入式Linux***的应用动态升级更新要求越来越高,在嵌入式Linux之上基于嵌入式JVM构建的应用程序框架体系已经成为业界主流选择。然而,由于嵌入式Linux和JVM的开放性,以及安全监测和审核机制的延后,恶意应用程序可能渗透到智能终端,威胁用户信息安全。
因此,面向嵌入式Linux***应用的恶意程序检测***亟待出现。检测***应基于已有的恶意程序样本对未知应用进行分析,自动、高效地检测目标应用是否为恶意软件或存在恶意行为,并生成可解释的检测结果。既可以帮助终端安全监测机构快速完成发布智能终端软件更新升级的安全审核,同时可以在终端用户动态加载应用前给出安全建议,减轻甚至避免恶意程序造成的危害。
现有的恶意应用程序检测方法主要依赖于特征提取技术和分类模型的结合使用,其中根据特征提取技术的不同可以分为基于静态特征的检测方法、基于动态特征的检测方法和基于混合特征的检测方法:1)基于静态特征的检测方法通过反编译工具提取应用程序的代码和配置文件,具有速度快、成本低的优势。但是部分恶意应用会使用混淆、加密、加固等方式逃避静态检测工具的分析。2)基于动态特征的检测方法获取应用运行时的特征,通过读取***相关文件、root***等方式监测应用的API调用、网络流量、***组件状态等信息,进一步分析应用的恶意性。其缺点是需要真实运行目标应用,速度较慢、成本更高。3)基于混合特征的检测方法结合静态特征和动态特征对应用程序进行综合判断,虽然可以取得较高的恶意应用识别率,但是考虑到在动静态特征基础上如何建立更加高效的恶意程序检测方法,从而快速有效提取应用特征并及时得出用户易理解的检测结果,依旧有较大的改进空间。
发明内容
(一)发明目的
本发明的目的在于提供一种嵌入式Linux***恶意程序检测方法及装置,该方法使用动静态检测技术,恶意应用特征库构建与匹配和机器学习方法,可以实现快速、高效、精准的检测效果。
(二)技术方案
为解决上述问题,本发明的第一方面提供了一种嵌入式Linux***恶意程序检测方法,包括:
基于静态分析和动态分析结合的方式,提取待检测应用程序的第一特征集与第二特征集,其中,所述第一特征集中可包含多个可扩展特征,将被用于与特征库中所记载特征进行匹配,第二特征集将被用于送入恶意程序预测模型以进一步排查;
将所述第一特征集中包含的特征与恶意程序特征库中的恶意程序特征进行匹配,判断待检测应用程序是否为已知恶意程序。对于一个未知的应用,如果其行为特征与特征库内数据相匹配,则可被认为是恶意程序。该恶意程序特征库是上一步中所提的提取方法对已知恶意程序的恶意特征进行积累而建立。
若匹配成功,则可依据匹配结果生成检测报告,以警示该应用中的存在恶意威胁;
若否,将所述第二特征集中的特征输入预设的恶意程序预测模型中,判断待检测应用程序是否为未知恶意程序。
本申请中,预设的恶意程序预测模型可以为现有嵌入式Linux***恶意程序预测模型,例如支持向量机模型。具体地,所述基于静态特征和动态特征结合的方式,提取待检测应用程序的第一特征集与第二特征集,包括:
通过反编译工具获取待检测应用程序的目标静态特征;
在真实设备上运行待检测应用,使用自动化工具发送用户事件流模拟用户操作,触发待检测应用真实行为,通过嵌入式Linux底层驱动监控与所述待检测应用相关的***调用信息并记录待检测应用运行时的相关数据,得到待检测应用程序的目标动态特征;
根据所述目标动态特征和目标静态特征,生成所述第一特征集和第二特征集。
在一可选实施例中,所述静态特征可以包括程序类名、程序包名、JVM执行文件的MD5值、程序的方法名称、敏感信息特征、硬件组件,所述动态特征可以包括请求的权限、申请的组件、意图过滤器、受限API调用、使用的权限、可疑的API调用。需要强调的是,上述部分特征既可以通过静态分析工具获取也可以通过动态分析工具获取,例如应用的可疑的API调用列表可以通过分析代码文件获得也可以通过拦截相关***调用获取。如果待检测应用未使用代码加密等保护手段,则优先使用静态分析技术提取,否则需要结合动态分析工具提取。
在一可选实施例中,所述第一特征集中包括代码特征和敏感信息特征共8类特征,所述代码特征包括程序类名、程序包名、JVM执行文件的MD5值、程序的方法名称,所述敏感信息特征包括邮箱地址、手机号、密码、URL地址。经过大量实验验证该8类特征可有效地涵盖已知恶意程序特征,避免漏检。在其他实施例中第一特征集中的特征可根据实际需求额外扩展。
相应地,将所述第一特征集中包含的特征与恶意程序特征库中的恶意程序特征进行匹配,包括:
将第一特征集中包含的代码特征与恶意程序特征库中的恶意程序代码特征一一进行比对,若待检测应用有一个代码特征与恶意程序代码特征一致,则待检测应用程序为恶意程序;将第一特征集中包含的敏感信息特征与恶意程序特征库中的恶意程序敏感信息特征一一进行比对,若待检测应用有一个敏感信息特征与恶意程序敏感信息特征一致,则待检测应用程序为恶意程序。
具体地,所述第二特征集中包含以下特征:
硬件组件、请求的权限、申请的组件、意图过滤器、受限API调用、使用的权限、可疑的API调用、网络地址、邮箱地址,共9项字符型特征。
进一步地,所述的嵌入式Linux***恶意程序检测方法,还包括:
若待检测应用程序为已知恶意程序,则根据对应的已知恶意程序特征集生成恶意程序检测报告;
若待检测应用程序为未知恶意程序,则根据对判断结果的影响权重选择对应的未知恶意程序特征集,根据选择的未知恶意程序特征集生成恶意程序检测报告。
优选地,所述恶意程序检测报告中包含:
恶意程序名称;
恶意程序类型;
恶意程序主要行为;以及
恶意程序匹配到的邮箱地址、手机号、密码和/或URL地址。
通过生成两类不同的恶意程序检测报告,分别针对已知恶意程序和未知恶意程序,列举出最关键的一些特征并给出解释。提高用户对于检测报告的可理解性,帮助用户快速理解应用存在的恶意行为。
具体地,所述恶意程序特征库的建立方法,包括:
基于开源威胁情报平台提供的数据,获取已知的恶意程序应用的特征信息;
根据获取的特征信息,建立恶意程序及其特征的对应关系,形成所述恶意程序特征库。
具体地,所述恶意程序预测模型的建立方法,包括:
以训练样本的特征集作为输入,训练样本的属性作为输出,对基于支持向量机的初始预测模型进行训练,得到初始恶意程序预测模型,所述训练样本的属性包括恶意样本和非恶意样本;
以测试样本的特征集作为输入,测试样本的属性作为输出,对初始恶意程序预测模型进行校正,得到所述恶意程序预测模型。
本申请的第二方面,提供了一种嵌入式Linux***恶意程序检测装置,包括:
特征提取模块,用于基于静态分析和动态分析结合的方式,提取待检测应用程序的第一特征集与第二特征集;
第一判断模块,用于将所述第一特征集中包含的特征与恶意程序特征库中的恶意程序特征进行匹配,判断待检测应用程序是否为已知恶意程序,所述恶意程序特征库中包含已知恶意程序及其特征的对应关系;
第二判断模块,若否,则用于将所述第二特征集中的特征输入预设的恶意程序预测模型中,判断待检测应用程序是否为未知恶意程序。
该装置用于执行上述任一项所述的嵌入式Linux***恶意程序检测方法,具体描述及效果参见方法实施例,在此不再赘述。
(三)有益效果
本发明的上述技术方案具有如下有益的技术效果:
实现了基于特征库和机器学习的恶意程序检测方法,前者可以实现高效、轻量的恶意程序检测,而后者可以支持检测未知的恶意程序,两者综合的检测方法可以实现快速、高效、精准的检测效果。
附图说明
图1是本发明实施例提供的一种嵌入式Linux***恶意程序检测方法流程图;
图2是本发明一具体实施例的嵌入式Linux***恶意程序检测***架构流程示意图;
图3是本发明一具体实施例的嵌入式Linux***应用的静态特征提取流程图;
图4是本发明一具体实施例的嵌入式Linux***应用的动态特征提取流程图;
图5是本发明一具体实施例的支持向量机示意图;
图6是本发明一具体实施例的不同类型特征的解释模板;
图7是本发明一具体实施例的恶意程序报告示例图;
图8是本发明一具体实施例向量空间示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
如图1所示,本发明提供了一种嵌入式Linux***恶意程序检测方法,包括:
步骤101:基于静态分析和动态分析结合的方式,提取待检测应用程序的第一特征集与第二特征集;
步骤102:将所述第一特征集中包含的特征与恶意程序特征库中的恶意程序特征进行匹配,判断待检测应用程序是否为已知恶意程序,所述恶意程序特征库中包含已知恶意程序及其特征的对应关系;
步骤103:若否,将所述第二特征集中的特征输入预设的恶意程序预测模型中,判断待检测应用程序是否为未知恶意程序。
具体地,本发明所述匹配是指将第一特征集中只要有一个特征存在于特征库中,即认为匹配,以待检测程序特征“程序类名”为例,class_data-&-&lrdkfxuxdwv/ndsyfmxnntm/hzgrtqoa/db/a;表示该恶意程序存在类lrdkfxuxdwv/ndsyfmxnntm/hzgrtqoa/db/a为可以快速判别的签名,如果待检测应用中存在一个类限定名和内容一致的类,则表示该应用中存在相应的恶意负载。
本申请中,预设的恶意程序预测模型可以为现有嵌入式Linux***恶意程序预测模型。
本申请中,静态特征是指不运行应用,通过反编译工具解压缩JVM二进制安装文件即可获取到的应用程序的代码和资源信息,动态特征是指在配置好的真实环境下执行程序,利用分析工具得到应用运行过程中的组件状态、API调用序列等信息;本申请主要关注嵌入式Linux***应用的三类特征:代码特征、配置特征和字符串特征。当某特征可以同时通过静态分析工具和动态分析工具获取的情况下,优先使用成本低、速度快的静态分析技术。
可选地,所述第一特征集中包括代码特征和敏感信息特征,所述代码特征包括程序类名、程序包名、JVM执行文件的MD5值、程序的方法名称,所述敏感信息特征包括邮箱地址、手机号、密码、URL地址。以URL码为例,url_data-&-&http://50.117.69.126/submit.jsp表示该恶意程序中存在恶意的URL地址http://50.117.69.126/submit.js,如果待检测应用中也检测到一样的URL地址,则说明该应用中存在相应的恶意负载。
相应地,将所述第一特征集中包含的特征与恶意程序特征库中的恶意程序特征进行匹配,包括:
将第一特征集中包含的代码特征与恶意程序特征库中的恶意程序代码特征一一进行比对,若待检测应用有一个代码特征与恶意程序代码特征一致,则待检测应用程序为恶意程序;将第一特征集中包含的敏感信息特征与恶意程序特征库中的恶意程序敏感信息特征一一进行比对,若待检测应用有一个敏感信息特征与恶意程序敏感信息特征一致,则待检测应用程序为恶意程序。
具体地,所述第二特征集中包含以下特征:
硬件组件、请求的权限、申请的组件、意图过滤器、受限API调用、使用的权限、可疑的API调用、网络地址、邮箱地址。以上各特征示意如图6所示。
具体的,以安卓平台为例,9组特征详细描述如下:
1)F1,硬件组件。该特征是应用在AndroidManifest.xml配置文件中申请的硬件组件,通过uses-feature标签声明应用程序运行时需要的硬件功能,包括相机、触屏、电话、GPS等硬件功能。例如,如果应用申明了“android.hardware.telephony”功能,表示应用运行需要设备提供电话功能。应用要求特定的硬件的时候实际上可以明显反应出应用存在的一定安全隐患,隐含了应用可能发生的有害行为。例如,应用申请了GPS和Wi-Fi硬件组件的时候,表明应用可以收集设备的位置信息并通过网络发送给攻击者的C&C服务器。
2)F2,请求的权限。Android***中引入的最重要的安全机制是permission机制,即开发者需要在AndroidManifest.xml配置文件中申请应用运行时需要的权限,在应用安装时需要用户显示的授权。恶意应用通常会申请比普通的非恶意应用更多的权限,例如很大比例的恶意程序会申请发送短信的权限来发送一些恶意扣费或者资费消耗的短信。
3)F3,申请的组件。Android应用的开发者通过实现包括activity、service、content provider和broadcast receiver在内的四大组件来完成应用的前端展示后台处理等逻辑。
4)F4,意图过滤器(Intent Filters)。Android应用主要通过意图(Intent)来进行进程间和进程内不同组件的通信和消息传递,开发者通过给***组件配置意图过滤器的方式设定组件可以响应的请求。具体地,意图过滤器可以指定动作信息(action)、类别信息(category)和数据信息(data),当发生响应的***事件会接收到相应请求时就会触发匹配的意图过滤器,***则会启动相应的组件。例如,前文我们提到的一些恶意软件会监听设备启动的事件(BOOT COMPLETED)的方式来启动相关的恶意负载,这就是通过配置意图过滤器来实现的。
5)F5,受限API调用。Android的权限机制会限制一些关键API的调用,应用对这些API的调用可以反映应用可能发生的敏感行为。例如,如果应用没有申请相应的权限(F2)但是却调用了相关的API,反映出恶意程序可能是利用***的Root漏洞逃避了安卓***的权限机制限制。
6)F6,使用的权限。F6表示应用在AndroidManifest.xml配置文件中申明的权限中实际调用了的那些权限,可以认为F6是F2和F5的一个交集。
7)F7,可疑的API调用。恶意应用通常会调用一些API来获取设备上的敏感信息,导致隐私泄露等恶意行为发生,本发明实施例主要关注几类可疑API:a)获取敏感数据的API,例如用来获取设备手机号的getLine1Number接口;b)网络通信相关的一些API,例如openConnection接口;c)短信相关的一些API,例如sendMultipartTextMessage接口;d)执行一些外部命令的API,例如Runtime.exec接口,一些获取root权限的恶意应用通过该命令执行一些***级的命令;e)一些用来加密解密的接口,例如Cipher.getInstance。
8)F8,网络地址。恶意应用通常通过和C&C服务器通信接收命令并传输窃取的隐私数据,因此应用中提取的IP地址、URL地址、域名信息等都可以作为判断恶意应用的根据。很多应用中被植入相同的恶意代码,包含相同的恶意网址,还可以通过一些安全研究机构收集的恶意网址库进行判断。
9)F9,邮箱地址。有些恶意应用会将窃取的隐私信息通过邮箱的方式发送出去,属于同一个恶意程序族的应用可能会包含相同的恶意邮箱地址。
上述提取的9组应用特征的特定模式和组合可以反映恶意程序潜在的恶意行为。例如恶意扣费的恶意程序会包含所需硬件组件中的android.hardware.telephony硬件组件声明和请求的权限中的SNED_SMS权限声明。
进一步地,所述的嵌入式Linux***恶意程序检测方法,还包括:
若待检测应用程序为已知恶意程序,则根据对应的已知恶意程序特征集生成恶意程序检测报告;
若待检测应用程序为未知恶意程序,则根据对判断结果影响权重选择对应的未知恶意程序特征集,根据选择的未知恶意程序特征集生成恶意程序检测报告。
具体地,已知恶意程序特征集可以是预先设定的已知恶意程序的典型特征的集合;未知恶意程序特征集是对待测应用为恶意应用这一判断结果影响最大的若干个特征的集合。
在一可选实施例中,所述恶意程序检测报告中包含:
恶意程序名称;
恶意程序类型;
恶意程序主要行为;以及
恶意程序匹配到的邮箱地址、手机号、密码和/或URL地址。
通过生成两类不同的恶意程序检测报告,分别针对已知恶意程序和未知恶意程序,列举出最关键的一些特征并给出解释。提高用户对于检测报告的可理解性,帮助用户快速理解应用存在的恶意行为。
具体地,所述恶意程序特征库的建立方法,包括:
基于开源威胁情报平台提供的数据,获取已知的恶意程序应用的特征信息;
根据获取的特征信息,建立恶意程序及其特征的对应关系,形成所述恶意程序特征库。
具体地,所述恶意程序预测模型的建立方法,包括:
以训练样本的特征集作为输入,训练样本的属性作为输出,对基于支持向量机的初始预测模型进行训练,得到初始恶意程序预测模型,所述训练样本的属性包括恶意样本和非恶意样本;
以测试样本的特征集作为输入,测试样本的属性作为输出,对初始恶意程序预测模型进行校正,得到所述恶意程序预测模型。
具体地,所述基于静态特征和动态特征结合的方式,提取待检测应用程序的第一特征集与第二特征集,包括:
通过反编译工具获取待检测应用程序的目标静态特征;
在真实设备上运行待检测应用,使用自动化工具发送用户事件流模拟用户操作,触发待检测应用真实行为,通过嵌入式Linux底层驱动监控与所述待检测应用相关的***调用信息并记录待检测应用运行时的相关数据,得到待检测应用程序的目标动态特征;
根据所述目标动态特征和目标静态特征,生成所述第一特征集和第二特征集。
例如邮箱地址、手机号、密码、URL地址、网络地址是静态特征,指的是“解析dex文件以及资源文件的同时,获取这些内容中包含的字符串信息,通过正则匹配的方式找到程序中包含的邮箱地址、手机号、URL等反应恶意程序可能泄露用户隐私信息的内容”。
以下为本申请提供的嵌入式Linux***恶意程序检测方法的一具体实施例:
本发明所采用的实施例为面向嵌入式Linux***的应用程序。所提的基于特征库和机器学习的恶意应用程序综合检测方法的详细流程步骤如图2所示。整体上来看,本发明所提的恶意应用程序综合检测方法包括应用程序的动静态特征提取、构建用以待检测应用特征查询匹配的特征库、学习训练基于SVM的恶意程序识别模型及嵌入式Linux***恶意应用程序的识别四个步骤,集合具体事例,阐述说明如下:
步骤1、使用动态特征和静态特征相结合的应用程序特征提取技术提取恶意应用动静态特征,实现流程图如图3、图4所示。具体包括以下处理步骤:
1.1由于不能获取已知恶意应用和待检测应用的源码,利用反编译工具对目标应用的执行文件进行反编译,获取应用程序的代码和资源中关键特征信息,包括签名信息,特征字符串,应用代码指纹,函数信息等。
1.2通过对反编译后得到的xml文件、可执行文件等文件进行解析,结合预设的规则提取应用的特征,包括应用签名信息、特殊字符串(如URL日志、邮箱地址等)、应用代码指纹(例如可执行文件的md5值)等。
1.3应用运行在一个支持嵌入式Linux、嵌入式JVM及应用体系的真实设备上,该设备增加了两个JVM扩展插件,一个是用来检测应用运行时的行为(例如API调用情况),一个是辅助模拟不同的***和设备状态。前者用来记录应用运行时的相关数据,后者用来触发应用的真实行为。控制器Monkey工具支持待检测应用的自动化运行,尽可能触发应用的更多行为。
1.4实验设备和原应用服务器之间通过Charles代理进行通信,Charles代理用于拦截待检测应用和原应用服务器之间的HTTP/HTTPS类型的网络请求和响应数据。控制器通过curl命令模拟RESTful API的调用实现对Charles的自动化控制,包括在启动待测试应用前启动拦截服务,以及在测试结束后关闭拦截服务并保存拦截的所有网络请求和响应数据。
步骤2、构建用以待检测应用特征查询匹配的特征库,基于开源威胁情报平台Freebuf提供的数据获取已知的恶意程序应用的特征信息,提取JVM字节文件中典型的未经混淆的、非java标准API、非审计SDK的类信息,包括包名、类名、方法名等作为恶意程序特征。解析JVM字节文件以及资源文件中包含的字符串信息,通过正则匹配的方式找到程序中包含的邮箱地址、手机号、URL等反应恶意程序可能泄露用户隐私信息的内容。同时计算恶意程序样本中JVM字节文件的md5值作为恶意程序的签名。
步骤3、构建基于机器学习的恶意程序检测模型。该过程包括恶意应用程序数据集样本标签的获取、恶意应用样本特征向量的获取,SVM模型参数学习两个部分。
3.1获取恶意应用程序数据集样本标签。本发明使用的恶意应用程序样本来源于德国哥廷哈根大学DREBIN项目中公开的数据集,使用到的数据集中共包括5560个恶意应用程序样本,123453个非恶意应用程序样本,涵盖了179个恶意代码家族。DREBIN将数据集样本送到VirusTotal服务进行检测,分析10个常见的反病毒扫描程序的输出结果,如果超过两个检测结果显示为恶意应用程序,则样本标签为恶意应用样本,反之为非恶意应用样本。
3.2获取恶意应用样本的特征向量。在VirusTotal服务中,检测扫描结果还会展示恶意样本的检测历史、权限问题、组件名称等信息。在本发明的方法中,主要关注应用程序的9组可以提取得到字符串类型的特征:硬件组件(F1),请求的权限(F2),申请的组件(F3),意图过滤器(F4),受限API调用(F5),使用的权限(F6),可疑的API调用(F7),网络地址(F8),邮箱地址(F9)。为使用基于机器学习的方式捕获应用程序的特性,将字符串类型的特征嵌入到向量空间中。应用程序样本特征集合F可用下式(I)表示。
F=F1∪F2∪F3∪…F9 (I)
为保证不同类型的特征之间不会冲突,每类特征的字符串前加入了不同前缀(F1-F9)。如图8所示,通过集合F,我们可以定义一个|F|维的向量空间,向量的每个元素值为0或者1,0表示应用提取的特征中不包含对应的字符串,1则表示应用提取的特征中包含对应的字符串。通过这种方式,从Android应用x中提取的每个字符串特征对应的向量元素则可以根据指示函数I(x,f)转换为1或0。指示函数I(x,f)可以用来表示应用x中是否包含特征f,包含则取值为1,反之则为0。所以如下式(Ⅱ)所示,每个应用x都可以通过一个映射φ来构建|F|维的向量:
理论上应用程序越大,提取的特征数量越多,实际上是一个稀疏向量,为减少存储空间,采用哈希表或布隆过滤器的形式存储。以发送扣费短信的安卓恶意应用为例,该应用需要申请某些权限(SEND_SMS)和硬件要求(android.hardware.telephony),该应用对应的向量φ(x)示例如图8所示。
3.3SVM模型的参数学***面(hyperplane)的线性分类器,最终转化为一个凸二次规划问题来求解。模型示意图如图5所示。超平面的数学表达式为y=w*x+b,w可以理解为应用程序的特征对检测结果贡献的比重。检测函数f定义如下式(Ⅲ):
其中,I(x,f)指示函数,wf表示经由学习得到的比重参数。
检测函数结果表示待检测应用程序的特征向量到超平面的距离,若大于一定阈值则表示为恶意应用。
在参数学***均值作为最终的模型参数。
步骤4、在构建完成恶意应用程序的特征库和训练完成基于SVM的恶意程序识别模型后,可得到基于特征库和机器学习的恶意应用程序综合检测***。检测时,待监测应用程序通过动静态分析工具提取得到应用程序的动态特征和静态特征,将应用程序的特征通过特征库进行特征查询匹配,如果查询匹配到恶意应用程序的相关特征,则认为该应用程序为恶意应用程序。由于本***针对每个恶意程序样本都提供了详细描述信息,在查询匹配成功后,可以根据匹配信息,快速给出用户可理解的检测报告。
如果经过特征库查询匹配未得到相关匹配到的特征,则送入基于SVM的恶意应用程序预测模型,如果模型识别待检测应用为恶意程序,考虑到应用的特征向量为稀疏二值(0或者1)向量,SVM模型的检测函数可以优化为下式(Ⅳ):
那么根据模型最大的k个权重wf可以得到对结果的影响比重比较大也就是最关键的一些特征,根据预设的一些模板自动生成易于理解的检测报告,帮助用户更好地理解应用潜在的恶意行为。不同类型特征的解释模板如图6所示。
步骤5、生成恶意程序检测报告,报告示例如图7。若程序在步骤2中被识别为恶意程序,则根据待检测应用的特征匹配信息,给出用户可理解的检测报告。若程序在步骤4中被识别为恶意程序,则根据对判断结果的影响比重列举出最关键的一些特征,并根据预设的一些模板自动生成易于理解的检测报告,帮助用户更好地理解应用潜在的恶意行为。
本申请的第二方面,提供了一种嵌入式Linux***恶意程序检测装置,包括:
特征提取模块,用于基于静态分析和动态分析结合的方式,提取待检测应用程序的第一特征集与第二特征集;
第一判断模块,用于将所述第一特征集中包含的特征与恶意程序特征库中的恶意程序特征进行匹配,判断待检测应用程序是否为已知恶意程序,所述恶意程序特征库中包含已知恶意程序及其特征的对应关系;
第二判断模块,若否,则用于将所述第二特征集中的特征输入预设的恶意程序预测模型中,判断待检测应用程序是否为未知恶意程序。
该装置用于执行上述任一项所述的嵌入式Linux***恶意程序检测方法,具体描述及效果参见方法实施例,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种嵌入式Linux***恶意程序检测方法,其特征在于,包括:
基于静态分析和动态分析结合的方式,提取待检测应用程序的第一特征集与第二特征集;
将所述第一特征集中包含的特征与恶意程序特征库中的恶意程序特征进行匹配,判断待检测应用程序是否为已知恶意程序,所述恶意程序特征库中包含已知恶意程序及其特征的对应关系;
若否,将所述第二特征集中的特征输入预设的恶意程序预测模型中,判断待检测应用程序是否为未知恶意程序。
2.根据权利要求1所述的嵌入式Linux***恶意程序检测方法,其特征在于,所述第一特征集中包括代码特征和敏感信息特征,所述代码特征包括程序类名、程序包名、JVM执行文件的MD5值、程序的方法名称,所述敏感信息特征包括邮箱地址、手机号、密码、URL地址。
3.根据权利要求1所述的嵌入式Linux***恶意程序检测方法,其特征在于,所述第二特征集中包含以下特征:
硬件组件、请求的权限、申请的组件、意图过滤器、受限API调用、使用的权限、可疑的API调用、网络地址、邮箱地址。
4.根据权利要求1所述的嵌入式Linux***恶意程序检测方法,其特征在于,还包括:
若待检测应用程序为已知恶意程序,则根据对应的已知恶意程序特征集生成恶意程序检测报告;
若待检测应用程序为未知恶意程序,则根据对判断结果的影响权重选择对应的未知恶意程序特征集,根据选择的未知恶意程序特征集生成恶意程序检测报告。
5.根据权利要求4所述的嵌入式Linux***恶意程序检测方法,其特征在于,所述恶意程序检测报告中包含:
恶意程序名称;
恶意程序类型;
恶意程序主要行为;以及
恶意程序匹配到的邮箱地址、手机号、密码和/或URL地址。
6.根据权利要求1所述的嵌入式Linux***恶意程序检测方法,其特征在于,所述恶意程序特征库的建立方法,包括:
基于开源威胁情报平台提供的数据,获取已知的恶意程序应用的特征信息;
根据获取的特征信息,建立恶意程序及其特征的对应关系,形成所述恶意程序特征库。
7.根据权利要求1所述的嵌入式Linux***恶意程序检测方法,其特征在于,所述恶意程序预测模型的建立方法,包括:
以训练样本的特征集作为输入,训练样本的属性作为输出,对基于支持向量机的初始预测模型进行训练,得到初始恶意程序预测模型,所述训练样本的属性包括恶意样本和非恶意样本;
以测试样本的特征集作为输入,测试样本的属性作为输出,对初始恶意程序预测模型进行校正,得到所述恶意程序预测模型。
8.根据权利要求1所述的嵌入式Linux***恶意程序检测方法,其特征在于,所述基于静态特征和动态特征结合的方式,提取待检测应用程序的第一特征集与第二特征集,包括:
通过反编译工具获取待检测应用程序的目标静态特征;
在真实设备上运行待检测应用,使用自动化工具发送用户事件流模拟用户操作,触发待检测应用真实行为,通过嵌入式Linux底层驱动监控与所述待检测应用相关的***调用信息并记录待检测应用运行时的相关数据,得到待检测应用程序的目标动态特征;
根据所述目标动态特征和目标静态特征,生成所述第一特征集和第二特征集。
9.一种嵌入式Linux***恶意程序检测装置,其特征在于,包括:
特征提取模块,用于基于静态分析和动态分析结合的方式,提取待检测应用程序的第一特征集与第二特征集;
第一判断模块,用于将所述第一特征集中包含的特征与恶意程序特征库中的恶意程序特征进行匹配,判断待检测应用程序是否为已知恶意程序,所述恶意程序特征库中包含已知恶意程序及其特征的对应关系;
第二判断模块,用于若否,则将所述第二特征集中的特征输入预设的恶意程序预测模型中,判断待检测应用程序是否为未知恶意程序。
10.根据权利要求9所述的嵌入式Linux***恶意程序检测装置,其特征在于,所述第一特征集中包括代码特征和敏感信息特征,所述代码特征包括程序类名、程序包名、JVM执行文件的MD5值、程序的方法名称,所述敏感信息特征包括邮箱地址、手机号、密码、URL地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010952166.9A CN112084497A (zh) | 2020-09-11 | 2020-09-11 | 嵌入式Linux***恶意程序检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010952166.9A CN112084497A (zh) | 2020-09-11 | 2020-09-11 | 嵌入式Linux***恶意程序检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112084497A true CN112084497A (zh) | 2020-12-15 |
Family
ID=73738074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010952166.9A Pending CN112084497A (zh) | 2020-09-11 | 2020-09-11 | 嵌入式Linux***恶意程序检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084497A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112926054A (zh) * | 2021-02-22 | 2021-06-08 | 亚信科技(成都)有限公司 | 一种恶意文件的检测方法、装置、设备及存储介质 |
CN112966270A (zh) * | 2021-03-16 | 2021-06-15 | 武汉小安科技有限公司 | 应用程序的安全检测方法、装置、电子设备和存储介质 |
CN113691562A (zh) * | 2021-09-15 | 2021-11-23 | 神州网云(北京)信息技术有限公司 | 一种精确识别恶意网络通讯的规则引擎实现方法 |
CN113742730A (zh) * | 2021-11-04 | 2021-12-03 | 北京生泰尔科技股份有限公司 | 恶意代码检测方法、***及计算机可读存储介质 |
CN113742727A (zh) * | 2021-08-27 | 2021-12-03 | 恒安嘉新(北京)科技股份公司 | 程序识别模型训练和程序识别方法、装置、设备及介质 |
CN114679331A (zh) * | 2022-04-11 | 2022-06-28 | 北京国联天成信息技术有限公司 | 一种基于ai技术的恶意代码被动检测方法及*** |
CN114860673A (zh) * | 2022-07-06 | 2022-08-05 | 南京聚铭网络科技有限公司 | 基于动静结合的日志特征识别方法及装置 |
CN115146258A (zh) * | 2022-07-27 | 2022-10-04 | 中国电信股份有限公司 | 请求处理方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761481A (zh) * | 2014-01-23 | 2014-04-30 | 北京奇虎科技有限公司 | 一种恶意代码样本自动处理的方法及装置 |
CN104598824A (zh) * | 2015-01-28 | 2015-05-06 | 国家计算机网络与信息安全管理中心 | 一种恶意程序检测方法及其装置 |
CN106874761A (zh) * | 2016-12-30 | 2017-06-20 | 北京邮电大学 | 一种安卓***恶意应用检测方法及*** |
CN107247902A (zh) * | 2017-05-10 | 2017-10-13 | 深信服科技股份有限公司 | 恶意软件分类***及方法 |
-
2020
- 2020-09-11 CN CN202010952166.9A patent/CN112084497A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761481A (zh) * | 2014-01-23 | 2014-04-30 | 北京奇虎科技有限公司 | 一种恶意代码样本自动处理的方法及装置 |
CN104598824A (zh) * | 2015-01-28 | 2015-05-06 | 国家计算机网络与信息安全管理中心 | 一种恶意程序检测方法及其装置 |
CN106874761A (zh) * | 2016-12-30 | 2017-06-20 | 北京邮电大学 | 一种安卓***恶意应用检测方法及*** |
CN107247902A (zh) * | 2017-05-10 | 2017-10-13 | 深信服科技股份有限公司 | 恶意软件分类***及方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112926054B (zh) * | 2021-02-22 | 2023-10-03 | 亚信科技(成都)有限公司 | 一种恶意文件的检测方法、装置、设备及存储介质 |
CN112926054A (zh) * | 2021-02-22 | 2021-06-08 | 亚信科技(成都)有限公司 | 一种恶意文件的检测方法、装置、设备及存储介质 |
CN112966270A (zh) * | 2021-03-16 | 2021-06-15 | 武汉小安科技有限公司 | 应用程序的安全检测方法、装置、电子设备和存储介质 |
CN113742727A (zh) * | 2021-08-27 | 2021-12-03 | 恒安嘉新(北京)科技股份公司 | 程序识别模型训练和程序识别方法、装置、设备及介质 |
CN113691562A (zh) * | 2021-09-15 | 2021-11-23 | 神州网云(北京)信息技术有限公司 | 一种精确识别恶意网络通讯的规则引擎实现方法 |
CN113691562B (zh) * | 2021-09-15 | 2024-04-23 | 神州网云(北京)信息技术有限公司 | 一种精确识别恶意网络通讯的规则引擎实现方法 |
CN113742730A (zh) * | 2021-11-04 | 2021-12-03 | 北京生泰尔科技股份有限公司 | 恶意代码检测方法、***及计算机可读存储介质 |
CN113742730B (zh) * | 2021-11-04 | 2022-02-22 | 北京生泰尔科技股份有限公司 | 恶意代码检测方法、***及计算机可读存储介质 |
CN114679331A (zh) * | 2022-04-11 | 2022-06-28 | 北京国联天成信息技术有限公司 | 一种基于ai技术的恶意代码被动检测方法及*** |
CN114679331B (zh) * | 2022-04-11 | 2024-02-02 | 北京国联天成信息技术有限公司 | 一种基于ai技术的恶意代码被动检测方法及*** |
CN114860673B (zh) * | 2022-07-06 | 2022-09-30 | 南京聚铭网络科技有限公司 | 基于动静结合的日志特征识别方法及装置 |
CN114860673A (zh) * | 2022-07-06 | 2022-08-05 | 南京聚铭网络科技有限公司 | 基于动静结合的日志特征识别方法及装置 |
CN115146258A (zh) * | 2022-07-27 | 2022-10-04 | 中国电信股份有限公司 | 请求处理方法、装置、存储介质及电子设备 |
CN115146258B (zh) * | 2022-07-27 | 2023-10-31 | 中国电信股份有限公司 | 请求处理方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112084497A (zh) | 嵌入式Linux***恶意程序检测方法及装置 | |
US10581879B1 (en) | Enhanced malware detection for generated objects | |
Arshad et al. | SAMADroid: a novel 3-level hybrid malware detection model for android operating system | |
CN108133139B (zh) | 一种基于多运行环境行为比对的安卓恶意应用检测*** | |
US11570211B1 (en) | Detection of phishing attacks using similarity analysis | |
Aslan et al. | Investigation of possibilities to detect malware using existing tools | |
JP6916818B2 (ja) | 脆弱なアプリケーションの検出 | |
Kapratwar et al. | Static and dynamic analysis of android malware | |
US9525706B2 (en) | Apparatus and method for diagnosing malicious applications | |
CN109862003B (zh) | 本地威胁情报库的生成方法、装置、***及存储介质 | |
CN107688743B (zh) | 一种恶意程序的检测分析方法及*** | |
Hu et al. | Migdroid: Detecting app-repackaging android malware via method invocation graph | |
KR20150044490A (ko) | 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법 | |
CN104392176A (zh) | 移动终端及其设备管理器权限的拦截方法 | |
US10237285B2 (en) | Method and apparatus for detecting macro viruses | |
CN110071924B (zh) | 基于终端的大数据分析方法及*** | |
CN106599688A (zh) | 一种基于应用类别的安卓恶意软件检测方法 | |
JP2017142744A (ja) | 情報処理装置、ウィルス検出方法及びプログラム | |
Faruki et al. | Droidanalyst: Synergic app framework for static and dynamic app analysis | |
Kapratwar | Static and dynamic analysis for android malware detection | |
CN113190838A (zh) | 一种基于表达式的web攻击行为检测方法及*** | |
Aslan | Performance comparison of static malware analysis tools versus antivirus scanners to detect malware | |
CN112688966A (zh) | webshell检测方法、装置、介质和设备 | |
Kandukuru et al. | Android malicious application detection using permission vector and network traffic analysis | |
US10275596B1 (en) | Activating malicious actions within electronic documents |
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 |