CN104598824B - 一种恶意程序检测方法及其装置 - Google Patents

一种恶意程序检测方法及其装置 Download PDF

Info

Publication number
CN104598824B
CN104598824B CN201510044023.7A CN201510044023A CN104598824B CN 104598824 B CN104598824 B CN 104598824B CN 201510044023 A CN201510044023 A CN 201510044023A CN 104598824 B CN104598824 B CN 104598824B
Authority
CN
China
Prior art keywords
indication character
vestige
storehouse
application
malicious
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
CN201510044023.7A
Other languages
English (en)
Other versions
CN104598824A (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.)
Shield Information Technology (beijing) Co Ltd
National Computer Network and Information Security Management Center
Original Assignee
Shield Information Technology (beijing) Co Ltd
National Computer Network and Information Security Management Center
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 Shield Information Technology (beijing) Co Ltd, National Computer Network and Information Security Management Center filed Critical Shield Information Technology (beijing) Co Ltd
Priority to CN201510044023.7A priority Critical patent/CN104598824B/zh
Publication of CN104598824A publication Critical patent/CN104598824A/zh
Application granted granted Critical
Publication of CN104598824B publication Critical patent/CN104598824B/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
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及一种恶意程序检测方法及其装置,该方法包括:提取待检测终端的恶意行为痕迹特征,将提取的恶意行为痕迹特征与痕迹库中的痕迹特征进行比较,最终根据比较结果判断待检测终端是否感染过恶意程序。通过本申请,可在不获得恶意程序的可执行文件的前提下,判断终端是否感染过恶意程序,从而实现对已经消亡的恶意程序的较为有效的检测和识别。

Description

一种恶意程序检测方法及其装置
技术领域
本申请涉及网络信息安全技术领域,尤其涉及一种恶意程序检测方法及其装置。
背景技术
随着科技的进步,智能终端成为人们工作和生活不可或缺的一部分,随之而来的是针对其的恶意攻击,因此,对于针对这些终端的恶意程序检测成为人们关注的重要内容。
现有的恶意程序检测方法有两大类,即基于特征码和基于行为的检测方法。
基于特征码的检测方法是较为传统和成熟的检测方法。特征码是被恶意程序检测工具确定的某恶意程序的一串二进制字符串,恶意程序检测工具使用该字符串与目标文件作对比判断是否包含恶意功能。不同恶意代码检测工具使用的特征码不同,例如,有的采用整个恶意程序文件的MD5或SHA-256作为特征码,有的采用恶意程序的dex文件中的OpCode代码段作为特征码。特征码扫描是传统的恶意程序检测软件的主要利器,优点是误报率低,缺点是只能检测已知恶意应用程序库中已知类型的恶意应用,无法检测新的未知恶意应用。当攻击者采用免杀技术变换特征码或者恶意程序样本难以被捕获时,该检测方法就会失效。
由于基于特征码的方法无法检测未知恶意应用,多年来工业界已开展基于行为的恶意代码检测方法的研究。基于行为的恶意应用检测技术主要提取应用程序的各种行为特征来检测未知恶意应用。根据移动互联网恶意代码描述规范,恶意应用行为共分成8类:恶意扣费、隐私窃取、远程控制、恶意传播、资源消耗、系统破坏、诱骗诈取、流氓行为。
目前基于特征码的检测方法速度最快,也最为成熟,误报率较低,但是无法检测未知恶意程序,主要应用在客户端上的杀毒软件领域。基于行为的检测方法能有效应对未知恶意程序,但是速度较慢,误报率较高,主要用于针对APT(AdvancedPersistentThreat)检测的应用环境和安全公司内部对未知恶意代码的分析,并能指导对恶意代码特征码的提取。
但是,不论是基于特征码的还是基于行为的恶意程序检测方法,都需要在目标系统上获取恶意程序的可执行文件。当恶意程序处于传播期、潜伏期或者活跃期时,设置蜜罐捕获其本体后就可以应用现有检测手段。但是,如果恶意程序已处于消亡期,即恶意程序已经成功感染目标系统并执行完所需的恶意功能卸载自身后,此时无法捕获本体,则现有检测手段均会失效。
上述情况并不罕见,在恶意程序编写者水平不断专业化的大背景下,恶意程序已经能做到远程受控性死亡和自主编程性死亡,以便提高其隐秘性。本申请正是针对该情况而提出,以期对消亡期恶意程序能实现较为有效的检测和识别。
发明内容
有鉴于此,本申请提供一种恶意程序检测方法及其装置,其对在终端中运行的应用程序在运行过程中产生的痕迹进行检测,在无需获得恶意程序的可执行文件的前提下,判断终端是否感染过恶意程序。
本申请提供一种恶意程序检测方法,该方法包括:提取待检测终端的恶意行为痕迹特征;将提取的恶意行为痕迹特征与痕迹库中的痕迹特征进行比较;根据比较结果判断待检测终端是否感染过恶意程序。
其中使用的痕迹库使用如下步骤生成:搜集恶意代码样本;对搜集的恶意代码样本执行静态特征提取获取敏感高危权限、应用程序调用图指纹以及应用程序安装包痕迹信息作为痕迹特征;在对搜集的恶意代码样本执行静态特征提取的同时,对搜集的恶意代码样本执行动态特征提取,获取应用程序调用序列和隐私数据流向作为痕迹特征;使用获得的痕迹特征构建痕迹库。
提取待检测终端的恶意行为痕迹特征包括:获取应用程序运行数据以及应用程序对系统数据的修改痕迹;提取终端的系统日志痕迹信息。
将提取的恶意行为痕迹特征与痕迹库中的痕迹特征进行比较包括:采用Jaccard相似系数计算方法将恶意行为痕迹特征与痕迹库中的痕迹特征进行比较,该计算方法使用如下公式:
Jaccard ( X , Y ) = X ∩ Y X ∪ Y
其中X分表代表待检测终端的痕迹特征集合,Y代表痕迹库中的痕迹特征集合,X和Y都包含了n个维的特征,n为可以获取的痕迹特征样本量,即X=(x1,x2,x3,...xn),Y=(y1,y2,y3,...yn);其中每一维xi和yi代表一个痕迹特征。
本申请还提供一种创建恶意程序痕迹库的方法,该方法包括:收集恶意代码样本;对恶意代码样本执行静态特征提取和动态特征提取以获得痕迹特征;使用获得的痕迹特征构建痕迹库。
同时,本申请还涉及一种恶意程序检测装置,所述装置包括:提取设备,提取待检测终端的恶意行为痕迹特征;比对设备,将提取的恶意行为痕迹特征与痕迹库中的痕迹特征进行比较;判断设备,根据比较结果判断待检测终端是否感染过恶意程序。
其中使用的痕迹库由痕迹库生成装置生成,该痕迹库生成装置包括:搜集设备,搜集恶意代码样本;静态特征提取设备,对搜集的恶意代码样本执行静态特征提取获取敏感高危权限、应用程序调用图指纹以及应用程序安装包痕迹信息作为痕迹特征;动态特征提取设备,在对搜集的恶意代码样本执行静态特征提取的同时,对搜集的恶意代码样本执行动态特征提取,获取应用程序调用序列和隐私数据流向作为痕迹特征;构建设备,使用获得的痕迹特征构建痕迹库。
其中的提取设备包括:运行数据以及系统数据痕迹信息获取模块,获取应用程序运行数据以及应用程序对系统数据的修改痕迹;系统日志痕迹信息提取模块,提取终端的系统日志痕迹信息。
比对设备采用Jaccard相似系数计算方法将恶意行为痕迹特征与痕迹库中的痕迹特征进行比较,该计算方法使用如下公式:
Jaccard ( X , Y ) = X ∩ Y X ∪ Y
其中X分表代表待检测终端的痕迹特征集合,Y代表痕迹库中的痕迹特征集合,X和Y都包含了n个维的特征,n为可以获取的痕迹特征样本量,即X=(x1,x2,x3,...xn),Y=(y1,y2,y3,...yn);其中每一维xi和yi代表一个痕迹特征。
本申请同时还涉及一种创建恶意程序痕迹库的装置,该装置包括:搜集设备,收集恶意代码样本;痕迹特征提取设备,对恶意代码样本执行静态特征提取和动态特征提取以获得痕迹特征;构建设备,使用获得的痕迹特征构建痕迹库。
由以上技术方案可见,本申请首先构建痕迹库,在实际检测中,提取待检测终端的恶意行为痕迹特征,将提取的恶意行为痕迹特征与痕迹库中的痕迹特征进行比较,最终根据比较结果判断待检测终端是否感染过恶意程序。通过本申请,可在不获得恶意程序的可执行文件的前提下,判断终端是否感染过恶意程序,从而实现对已经消亡的恶意程序的较为有效的检测和识别。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请恶意程序检测方法及其装置所应用的终端或者服务器的结构图;
图2是本申请恶意程序检测方法的一实施例的流程图;
图3是本申请恶意程序检测方法中提取痕迹特征的方法流程图;
图4是本申请恶意程序检测方法中痕迹库的生成方法的流程图;
图5是本申请恶意程序检测装置的一实施例的结构图;
图6是本申请恶意程序检测装置中提取装置的结构图;
图7是本申请恶意程序检测方法中痕迹库的生成装置的结构图。
具体实施方式
本申请提取待检测终端的恶意行为痕迹特征,将提取的恶意行为痕迹特征与痕迹库中的痕迹特征进行比较,最终根据比较结果判断待检测终端是否感染过恶意程序。通过本申请,可在不获得恶意程序的可执行文件的前提下,判断终端是否感染过恶意程序,从而实现对已经消亡的恶意程序的较为有效的检测和识别。当然,实施本申请的任一技术方案必不一定需要同时达到以上的所有优点。
为了使本领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
下面结合本申请附图进一步说明本申请具体实现。
本申请提供一种恶意程序检测方法,应用于终端装置或者服务器,比如智能手机或者恶意程序检测服务器等。
参见图1,所述终端装置或者服务器在硬件上包括控制模块11,存储模块12、输入模块13以及输出模块14。其中,所述控制模块11用于对各功能模块进行控制。所述存储模块12用于存储程序以及中间数据。所述输入模块13用于接收用户的输入指令。所述输出模块14用于输出比较结果。
参见图2,本申请恶意程序检测方法包括:
S1、提取待检测终端的恶意行为痕迹特征。
具体地,参看图3,所述恶意行为痕迹特征提取包括:
P1、获取应用程序运行数据以及应用程序对系统数据的修改痕迹。
具体的,包括:
P11、在终端的文件系统中获得应用程序运行数据以及应用程序对系统数据的修改痕迹。
以Android系统为例,Android系统中的运行数据通常保存在/data/data目录之下,此目录下同样保存着系统运行缓存数据,包括通话记录、短信记录、终端设置记录、WIFI信息、用户字典数据信息、锁屏密码数据等。由于很多恶意应用程序运行过程中会获取root权限,进而修改系统数据文件,故同时对系统数据文件进行分析。另外,存储卡/Sdcard/data同样是缓存数据文件夹,与上述/data/data文件夹类似,故同样须要进行痕迹分析。
P12、通过数字取证和数据恢复等技术获得数据痕迹。
可通过本领域常用的各种数字取证、数据恢复技术或常用软件实现该步骤,例如包括复制文件、恢复被删除的数据、获取存储器内容等手段实现数据痕迹的获取。
P13、动态监控API调用获取应用程序运行痕迹。
以Android系统为例,Android系统中可利用APIHOOK技术动态监控API调用从而实现痕迹获取。APIHOOK技术是一种改变API执行结果的技术,HOOKAPI之后就可以使得程序对原有系统函数的调用改为对自己编写的函数的调用,从而实现对Android系统API调用的监控,通过动态监控文件操作类型的API,可以取得应用程序运行数据及系统数据修改痕迹。Android系统在java层对文件操作的API都集中在java.io包中。须要监控的API如表1所示:
表1JAVA层文件操作API监控列表
另外native层对文件的操作和linux文件操作命令同样需要监控,所要监控的API和命令如表2所示:
表2Native层文件操作API/Linux命令调用监控列表
P2、提取终端的系统日志痕迹信息。
终端网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录,其中的每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。通过对系统日志的提取和分析,可以有效检测恶意程序行为,通过一些高效的日志分析工具,更是可以提升日志分析效率。
以Android系统为例,该系统的日志包含main_log、events_log、kernel_log,Modem_log、用以记录Android系统上层应用程序以及framework相关活动的log,例如应用程序打印日志;eventslog主要是ActivityManager、powerManager等相关的日志;Kernel_log中主要是与驱动相关的日志。Modem_log中主要是与通话相关的日志,比如信号强弱、连接的网络等。还有网络相关的net_log,例如网络链接情况,抓取网络包情况等等。以上系统日志均须要进行监控以获得应用程序运行痕迹。
S2、将提取的恶意行为痕迹特征与痕迹库中的痕迹特征进行比较。
将获得的恶意行为痕迹特征与痕迹库中的痕迹特征进行相似度比较,可以使用各种已知的相似度比较算法,例如,向量空间模型的相似度计算,基于hash方法的相似度计算,基于主题的相似度计算等等。
优选的,可使用Jaccard相似系数(JaccardCoefficient)比较方法进行相似度比较,Jaccard相似系数(JaccardCoefficient)比较方法主要用于计算符号度量或布尔值度量的个体间的相似度,因为个体的特征属性都是由符号度量或者布尔值标识,因此不考虑差异具体值的大小,只考虑获得″是否相同″这个结果,所以Jaccard系数只关心个体间共同具有的特征是否一致这个问题。如果比较X与Y的Jaccard相似系数,只比较xi和yi中相同的个数,计算方法如公式(1)所示。
Jaccard ( X , Y ) = X ∩ Y X ∪ Y - - - ( 1 )
其中X和Y分表代表需要比较的获得的终端痕迹特征和痕迹库中的痕迹特征,它们都包含了n个维的特征,即X=(x1,x2,x3,...xn),Y=(y1,y2,y3,...yn)。其中每一维xi和yi代表一个痕迹特征,痕迹样本量越大,恶意程序的判定越精细和准确。痕迹特征项xi和yi的值为0和1,0代表该痕迹项不存在,1代表存在。痕迹样本的相似度系数用Jaccard(X,Y)表示,其中n为可以获取的特征痕迹样本量。Jaccard(X,Y)描述的是两个特征向量间线性相似强弱的程度。
S3、根据比较结果判断待检测终端是否感染过恶意程序。
根据相似度比较结果,从而判断待检测终端是否感染过恶意程序,例如通过将S2中获得的相似度计算结果与相关阈值进行比较,从而获得判断结果。
优选的,如果步骤S2中采用公式(1),计算恶意行为痕迹特征与痕迹库中的痕迹特征的相似程度,即判断Jaccard(X,Y),Jaccard(X,Y)的取值在0与1之间,Jaccard(X,Y)的值越大表明恶意程序个体间的相似度越大。在恶意程序相似度判定过程中,可以通过已有的恶意程序代码库进行学习和统计,分析出一个合理的判定阈值M(M值越大,意味着判定越严格),当Jaccard(X,Y)>=M时,我们就判定该Android终端曾感染过某类型恶意程序,最后输出感染程序列表信息。相反则判定该Android终端未感染过某类型恶意程序。
参看图4,本申请还提供一种恶意程序检测方法中痕迹库的生成方法,所述方法包括:
T1、搜集恶意代码样本。
可通过搜集现有的可知的恶意代码构建恶意代码样本。
T2、执行静态特征提取获取敏感高危权限、应用程序调用图指纹以及应用程序安装包痕迹信息作为痕迹特征。
对搜集的恶意代码样本执行静态特征提取,以获得痕迹特征,具体的,包括:
T21、对恶意代码样本执行分析,提取其中执行恶意行为的关键权限。
对于权限的提取,通常要先通过手动或者自动的做法提取各个恶意代码家族的敏感权限集合,用这些集合标识家族。
T22、对执行恶意行为的关键权限进行统计分析,获得敏感高危权限。
统计执行恶意行为的关键权限,选取其中使用率最高的前M个权限作为敏感高危权限。例如Android系统中的INTERNET、READ_PHONE_STATE、SEND_SMS等权限都属于敏感高危权限。
T23、获得与敏感高危权限相对应的应用程序函数从而构建应用程序调用图指纹。
智能终端中访问特定资源需要申请相应的权限,资源的访问体现在应用程序中,根据步骤T22中获得的敏感高危权限获得具有该权限的应用程序。基于获得的应用程序进一步处理,通过反汇编得到应用程序的控制流图和系统调用图,将敏感应用程序及可执行路径上的连通关系组成的图指纹作为恶意行为特征,然后利用子图同构理论进行恶意软件的行为匹配。
T24、获取应用程序安装包痕迹信息。
具体地,包括:
T241、获得应用程序安装包信息和组件信息。
首先,解压应用程序安装包,接着解析其中的包信息以及组件信息。
下面以Android系统中的安装包为例,详细描述如何获得应用程序安装包的包信息和组件信息。Android系统中的应用程序安装包为apk文件,解压apk文件,通常apk为ZIP文件格式,得到编码过的AndroidManifest.xml及其二进制文件classes.dex。然后利用axmlprinter2解码AndroidManifest.xml,解析其中的包信息和组件信息。
T242、获得应用程序安装包的签名信息。
仍然以Android系统中的安装包为例,可以使用Java自带的API例如JarFile、JarEntry、Certificate获取安装包的签名信息,还可以使用系统隐藏的API例如PackageParser,通过反射来使用对应的API从而获得应用程序安装包的签名信息。
T243、获得库文件信息
仍然以Android系统中的安装包为例,解压apk文件,进入apk里面的lib文件夹下,读取*.so文件信息即可获得库文件信息。
T244、获得安装包使用以及调用API的调用信息。
仍然以Android系统中的安装包为例,解压apk文件,得到classesdex文件;利用dexdeps.jar工具,进行dex文件外部依赖解析,与公共API列表结合,确定apk对关键包的使用和关键API的调用分析。
T3、执行动态特征提取获取应用程序调用序列和隐私数据流向作为痕迹特征。
在对搜集的恶意代码样本执行静态特征提取的同时,可同时对其执行动态特征提取,具体的包括:
运行恶意代码样本,利用沙盒技术进行函数插桩和污染传播,捕获应用程序运行时应用程序调用信息和敏感行为。函数插桩是指对系统敏感应用程序进行修改,插入监控代码,当恶意应用调用这些应用程序时就可以记录其行为。污染传播是指在内存中将个人隐私等敏感信息标记为污染源,不断追踪其数据流,并记录污染泄露点作为恶意行为。
T4、使用获得的痕迹特征构建痕迹库。
应用数据挖掘算法剔除步骤T2和T3中获得的无关和重复特征,数据挖掘算法例如是统计学方法,机器学习方法、面向数据库的方法以及混合方法等等,从而构建痕迹库。
参见图5,本申请恶意程序检测装置包括:
提取设备51:提取待检测终端的恶意行为痕迹特征。
具体地,参看图6,所述提取设备51包括:
运行数据以及系统数据痕迹信息获取模块61:获取应用程序运行数据以及应用程序对系统数据的修改痕迹。
具体的,包括:
P11、在终端的文件系统中获得应用程序运行数据以及应用程序对系统数据的修改痕迹。
以Android系统为例,Android系统中的运行数据通常保存在/data/data目录之下,此目录下同样保存着系统运行缓存数据,包括通话记录、短信记录、终端设置记录、WIFI信息、用户字典数据信息、锁屏密码数据等。由于很多恶意应用程序运行过程中会获取root权限,进而修改系统数据文件,故同时对系统数据文件进行分析。另外,存储卡/Sdcard/data同样是缓存数据文件夹,与上述/data/data文件夹类似,故同样须要进行痕迹分析。
P12、通过数字取证和数据恢复等技术获得数据痕迹。
可通过本领域常用的各种数字取证、数据恢复技术或常用软件实现该步骤,例如包括复制文件、恢复被删除的数据、获取存储器内容等手段实现数据痕迹的获取。
P13、动态监控API调用获取应用程序运行痕迹。
以Android系统为例,Android系统中可利用APIHOOK技术动态监控API调用从而实现痕迹获取。APIHOOK技术是一种改变API执行结果的技术,HOOKAPI之后就可以使得程序对原有系统函数的调用改为对自己编写的函数的调用,从而实现对Android系统API调用的监控,通过动态监控文件操作类型的API,可以取得应用程序运行数据及系统数据修改痕迹。Android系统在java层对文件操作的API都集中在java.io包中。须要监控的API如表1所示:
表1JAVA层文件操作API监控列表
另外native层对文件的操作和linux文件操作命令同样需要监控,所要监控的API和命令如表2所示:
表2Native层文件操作API/Linux命令调用监控列表
系统日志痕迹信息提取模块62:提取终端的系统日志痕迹信息。
终端网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录,其中的每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。通过对系统日志的提取和分析,可以有效检测恶意程序行为,通过一些高效的日志分析工具,更是可以提升日志分析效率。
以Android系统为例,该系统的日志包含main_log、events_log、kernel_log,Modem_log、用以记录Android系统上层应用程序以及framework相关活动的log,例如应用程序打印日志;eventslog主要是ActivityManager、powerManager等相关的日志;Kernel_log中主要是与驱动相关的日志。Modem_log中主要是与通话相关的日志,比如信号强弱、连接的网络等。还有网络相关的net_log,例如网络链接情况,抓取网络包情况等等。以上系统日志均须要进行监控以获得应用程序运行痕迹。
进一步的,见图5,该恶意程序检测装置还包括比对设备52,将提取的恶意行为痕迹特征与痕迹库中的痕迹特征进行比较。
将获得的恶意行为痕迹特征与痕迹库中的痕迹特征进行相似度比较,可以使用各种已知的相似度比较算法,例如,向量空间模型的相似度计算,基于hash方法的相似度计算,基于主题的相似度计算等等。
优选的,比对设备52采用Jaccard相似系数比较方法将恶意行为痕迹特征与痕迹库中的痕迹特征进行比较。
Jaccard相似系数(JaccardCoefficient)比较方法,主要用于计算符号度量或布尔值度量的个体间的相似度,因为个体的特征属性都是由符号度量或者布尔值标识,因此不考虑差异具体值的大小,只考虑获得″是否相同″这个结果,所以Jaccard系数只关心个体间共同具有的特征是否一致这个问题。如果比较X与Y的Jaccard相似系数,只比较xi和yi中相同的个数,计算方法如公式(1)所示。
Jaccard ( X , Y ) = X ∩ Y X ∪ Y - - - ( 1 )
其中X和Y分表代表需要比较的获得的终端痕迹特征和痕迹库中的痕迹特征,它们都包含了n个维的特征,即X=(x1,x2,x3,...xn),Y=(y1,y2,y3,...yn)。其中每一维xi和yi代表一个痕迹特征,痕迹样本量越大,恶意程序的判定越精细和准确。痕迹特征项xi和yi的值为0和1,0代表该痕迹项不存在,1代表存在。痕迹样本的相似度系数用Jaccard(X,Y)表示,其中n为可以获取的特征痕迹样本量。Jaccard(X,Y)描述的是两个特征向量间线性相似强弱的程度。
进一步的,见图5,该恶意程序检测装置还包括判断设备53,根据比较结果判断待检测终端是否感染过恶意程序。
根据相似度比较结果,从而判断待检测终端是否感染过恶意程序,例如通过将比对设备52中获得的相似度计算结果与相关阈值进行比较,从而获得判断结果。
优选的,如果比对设备52使用Jaccard相似系数计算方法计算计算恶意行为痕迹特征与痕迹库中的痕迹特征的相似程度,即判断Jaccard(X,Y),Jaccard(X,Y)的取值在0与1之间,Jaccard(X,Y)的值越大表明恶意程序个体间的相似度越大。在恶意程序相似度判定过程中,可以通过已有的恶意程序代码库进行学习和统计,分析出一个合理的判定阈值M(M值越大,意味着判定越严格),当Jaccard(X,Y)>=M时,我们就判定该Android终端曾感染过某类型恶意程序,最后输出感染程序列表信息。相反则判定该Android终端未感染过某类型恶意程序。
参看图7,本申请还提供一种恶意程序检测装置中痕迹库的生成装置,所述生成装置包括:
搜集设备71,搜集恶意代码样本。
可通过搜集现有的可知的恶意代码构建恶意代码样本。
图7中的生成装置还包括痕迹特征提取设备,对恶意代码样本执行静态特征提取和动态特征提取以获得痕迹特征。该痕迹特征提取设备包括两部分,即静态特征提取设备72和动态特征提取设备73,如图7所示。
静态特征提取设备72,执行静态特征提取获取敏感高危权限、应用程序调用图指纹以及应用程序安装包痕迹信息作为痕迹特征。
对搜集的恶意代码样本执行静态特征提取,以获得痕迹特征,具体的,包括:
T21、对恶意代码样本执行分析,提取其中执行恶意行为的关键权限。
对于权限的提取,通常要先通过手动或者自动的做法提取各个恶意代码家族的敏感权限集合,用这些集合标识家族。
T22、对执行恶意行为的关键权限进行统计分析,获得敏感高危权限。
统计执行恶意行为的关键权限,选取其中使用率最高的前M个权限作为敏感高危权限。例如Android系统中的INTERNET、READ_PHONE_STATE、SEND_SMS等权限都属于敏感高危权限。
T23、获得与敏感高危权限相对应的应用程序函数从而构建应用程序调用图指纹。
智能终端中访问特定资源需要申请相应的权限,资源的访问体现在应用程序中,根据步骤T22中获得的敏感高危权限获得具有该权限的应用程序。基于获得的应用程序进一步处理,通过反汇编得到应用程序的控制流图和系统调用图,将敏感应用程序及可执行路径上的连通关系组成的图指纹作为恶意行为特征,然后利用子图同构理论进行恶意软件的行为匹配。
T24、获取应用程序安装包痕迹信息。
具体地,包括:
T241、获得应用程序安装包信息和组件信息。
首先,解压应用程序安装包,接着解析其中的包信息以及组件信息。
下面以Android系统中的安装包为例,详细描述如何获得应用程序安装包的包信息和组件信息。Android系统中的应用程序安装包为apk文件,解压apk文件,通常apk为ZIP文件格式,得到编码过的AndroidManifest.xml及其二进制文件classes.dex。然后利用axmlprinter2解码AndroidManifest.xml,解析其中的包信息和组件信息。
T242、获得应用程序安装包的签名信息。
仍然以Android系统中的安装包为例,可以使用Java自带的API例如JarFile、JarEntry、Certificate获取安装包的签名信息,还可以使用系统隐藏的API例如PackageParser,通过反射来使用对应的API从而获得应用程序安装包的签名信息。
T243、获得库文件信息
仍然以Android系统中的安装包为例,解压apk文件,进入apk里面的lib文件夹下,读取*.so文件信息即可获得库文件信息。
T244、获得安装包使用以及调用API的调用信息。
仍然以Android系统中的安装包为例,解压apk文件,得到classesdex文件;利用dexdeps.jar工具,进行dex文件外部依赖解析,与公共API列表结合,确定apk对关键包的使用和关键API的调用分析。
图7中的生成装置的痕迹特征提取设备还包括动态特征提取设备73,执行动态特征提取获取应用程序调用序列和隐私数据流向作为痕迹特征。
在对搜集的恶意代码样本执行静态特征提取的同时,可同时对其执行动态特征提取,具体的包括:
运行恶意代码样本,利用沙盒技术进行函数插桩和污染传播,捕获应用程序运行时应用程序调用信息和敏感行为。函数插桩是指对系统敏感应用程序进行修改,插入监控代码,当恶意应用调用这些应用程序时就可以记录其行为。污染传播是指在内存中将个人隐私等敏感信息标记为污染源,不断追踪其数据流,并记录污染泄露点作为恶意行为。
图7中的生成装置还包括构建设备74,用于构建痕迹库。
应用数据挖掘算法剔除步骤静态特征提取设备72和动态特征提取设备73中获得的无关和重复特征,数据挖掘算法例如是统计学方法,机器学习方法、面向数据库的方法以及混合方法等等,从而构建痕迹库。
本领域技术人员可知,虽然本申请的实施例中使用Android系统作为实例,智能终端中使用的其他系统也可应用于本申请,而不存在技术障碍。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (2)

1.一种恶意程序检测方法,其特征在于,所述方法包括:
搜集恶意代码样本;
对搜集的恶意代码样本执行静态特征提取获取敏感高危权限、应用程序调用图指纹以及应用程序安装包痕迹信息作为痕迹特征;
在对搜集的恶意代码样本执行静态特征提取的同时,对搜集的恶意代码样本执行动态特征提取,获取应用程序调用序列和隐私数据流向作为痕迹特征;
使用获得的痕迹特征构建痕迹库;
获取应用程序运行数据以及应用程序对系统数据的修改痕迹信息;
提取终端的系统日志痕迹信息;
采用Jaccard相似系数计算方法将恶意行为痕迹特征与痕迹库中的痕迹特征进行比较,该计算方法为:
J a c c a r d ( X , Y ) = X ∩ Y X ∪ Y ,
其中X代表待检测终端的痕迹特征集合,Y代表痕迹库中的痕迹特征集合,X和Y都包含了n个维的特征,n为可以获取的痕迹特征样本量,即X=(x1,x2,x3,...xn),Y=(y1,y2,y3,...yn);其中每一维xi和yi代表一个痕迹特征;
根据比较结果判断待检测终端是否感染过恶意程序。
2.一种恶意程序检测装置,其特征在于,所述装置包括:
痕迹库生成装置,用于生成痕迹库;
提取设备,提取待检测终端的恶意行为痕迹特征;
比对设备,将提取的恶意行为痕迹特征与痕迹库中的痕迹特征进行比较;
判断设备,根据比较结果判断待检测终端是否感染过恶意程序;
其中:
所述痕迹库生成装置包括:
搜集设备,搜集恶意代码样本;
静态特征提取设备,对搜集的恶意代码样本执行静态特征提取获取敏感高危权限、应用程序调用图指纹以及应用程序安装包痕迹信息作为痕迹特征;
动态特征提取设备,在对搜集的恶意代码样本执行静态特征提取的同时,对搜集的恶意代码样本执
行动态特征提取,获取应用程序调用序列和隐私数据流向作为痕迹特征;
构建设备,使用获得的痕迹特征构建痕迹库;
所述提取设备包括:
运行数据以及系统数据痕迹信息获取模块,获取应用程序运行数据以及应用程序对系统数据的修改痕迹;
系统日志痕迹信息提取模块,提取终端的系统日志痕迹信息;
所述比对设备采用Jaccard相似系数计算方法将恶意行为痕迹特征与痕迹库中的痕迹特征进行比较,该计算方法为:
J a c c a r d ( X , Y ) = X ∩ Y X ∪ Y ,
其中X代表待检测终端的痕迹特征集合,Y代表痕迹库中的痕迹特征集合,X和Y都包含了n个维的特征,n为可以获取的痕迹特征样本量,即X=(x1,x2,x3,...xn),Y=(y1,y2,y3,...yn);其中每一维xi和yi代表一个痕迹特征。
CN201510044023.7A 2015-01-28 2015-01-28 一种恶意程序检测方法及其装置 Active CN104598824B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510044023.7A CN104598824B (zh) 2015-01-28 2015-01-28 一种恶意程序检测方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510044023.7A CN104598824B (zh) 2015-01-28 2015-01-28 一种恶意程序检测方法及其装置

Publications (2)

Publication Number Publication Date
CN104598824A CN104598824A (zh) 2015-05-06
CN104598824B true CN104598824B (zh) 2016-04-06

Family

ID=53124601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510044023.7A Active CN104598824B (zh) 2015-01-28 2015-01-28 一种恶意程序检测方法及其装置

Country Status (1)

Country Link
CN (1) CN104598824B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488412A (zh) * 2015-06-19 2016-04-13 哈尔滨安天科技股份有限公司 基于android终端日志的恶意代码检测方法及系统
CN106295336B (zh) * 2015-06-26 2020-05-22 阿里巴巴集团控股有限公司 恶意程序检测方法及装置
CN106709352B (zh) * 2015-11-12 2019-09-24 阿里巴巴集团控股有限公司 样本处理方法、装置及系统
CN105468977A (zh) * 2015-12-14 2016-04-06 厦门安胜网络科技有限公司 一种基于朴素贝叶斯的Android恶意软件分类方法和装置
CN106570394B (zh) * 2016-11-10 2021-04-16 厦门安胜网络科技有限公司 一种检测恶意程序的方法
CN106778266A (zh) * 2016-11-24 2017-05-31 天津大学 一种基于机器学习的安卓恶意软件动态检测方法
CN107742079B (zh) * 2017-10-18 2020-02-21 杭州安恒信息技术股份有限公司 恶意软件识别方法及系统
CN109711151B (zh) * 2017-10-25 2021-08-20 武汉安天信息技术有限责任公司 一种应用程序不良行为的预测方法、系统及装置
WO2019091028A1 (zh) * 2017-11-10 2019-05-16 华为技术有限公司 应用软件恶意行为的动态告警方法和终端
CN108040052A (zh) * 2017-12-13 2018-05-15 北京明朝万达科技股份有限公司 一种基于Netflow日志数据的网络安全威胁分析方法及系统
CN108200053B (zh) * 2017-12-30 2021-05-14 成都亚信网络安全产业技术研究院有限公司 记录apt攻击操作的方法及装置
CN110619211A (zh) * 2018-06-20 2019-12-27 深信服科技股份有限公司 一种基于动态特征的恶意软件识别方法、系统及相关装置
CN109271758B (zh) * 2018-08-24 2021-04-20 阿里巴巴(中国)有限公司 防止So文件被盗用的方法、设备、装置及服务器
CN109284610B (zh) * 2018-09-11 2023-02-28 腾讯科技(深圳)有限公司 一种病毒程序检测方法、装置及检测服务器
CN109753794A (zh) * 2018-11-30 2019-05-14 北京奇虎科技有限公司 一种恶意应用的识别方法、系统、训练方法、设备及介质
CN109450942B (zh) * 2018-12-25 2019-09-13 北京戴纳实验科技有限公司 一种实验室物联网管理系统的安全检测方法及其检测设备
CN110198300B (zh) * 2019-03-13 2022-01-14 腾讯科技(深圳)有限公司 一种蜜罐操作系统指纹隐蔽方法及装置
CN110162963B (zh) * 2019-04-26 2021-07-06 佛山市微风科技有限公司 一种识别过权应用程序的方法
CN111143843B (zh) * 2019-12-12 2022-04-12 绿盟科技集团股份有限公司 恶意应用程序的检测方法及装置
CN111597515A (zh) * 2020-04-24 2020-08-28 维沃移动通信有限公司 应用程序签名的获取方法和电子设备
CN112084497A (zh) * 2020-09-11 2020-12-15 国网山西省电力公司营销服务中心 嵌入式Linux系统恶意程序检测方法及装置
CN113722714A (zh) * 2021-11-03 2021-11-30 北京微步在线科技有限公司 一种网络威胁处理方法及装置
CN116506222B (zh) * 2023-06-26 2023-09-08 北京安天网络安全技术有限公司 一种安全防护系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761481A (zh) * 2014-01-23 2014-04-30 北京奇虎科技有限公司 一种恶意代码样本自动处理的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321941B2 (en) * 2006-04-06 2012-11-27 Juniper Networks, Inc. Malware modeling detection system and method for mobile platforms

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761481A (zh) * 2014-01-23 2014-04-30 北京奇虎科技有限公司 一种恶意代码样本自动处理的方法及装置

Also Published As

Publication number Publication date
CN104598824A (zh) 2015-05-06

Similar Documents

Publication Publication Date Title
CN104598824B (zh) 一种恶意程序检测方法及其装置
Arshad et al. SAMADroid: a novel 3-level hybrid malware detection model for android operating system
Aljawarneh et al. Anomaly-based intrusion detection system through feature selection analysis and building hybrid efficient model
Xiong et al. CONAN: A practical real-time APT detection system with high accuracy and efficiency
Lin et al. Identifying android malicious repackaged applications by thread-grained system call sequences
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
US8479276B1 (en) Malware detection using risk analysis based on file system and network activity
US11882134B2 (en) Stateful rule generation for behavior based threat detection
CN103927484B (zh) 基于Qemu模拟器的恶意程序行为捕获方法
CN104766011A (zh) 基于主机特征的沙箱检测告警方法和系统
CN114003903B (zh) 一种网络攻击追踪溯源方法及装置
WO2017071148A1 (zh) 基于云计算平台的智能防御系统
CN111400707A (zh) 一种文件宏病毒检测方法、装置、设备及存储介质
Bae et al. A collaborative approach on host and network level android malware detection
CN111049828B (zh) 网络攻击检测及响应方法及系统
CN116932381A (zh) 小程序安全风险自动化评估方法及相关设备
CN106845217A (zh) 一种安卓应用恶意行为的检测方法
Chandrasekaran et al. Spycon: Emulating user activities to detect evasive spyware
CN108959922A (zh) 一种基于贝叶斯网的恶意文档检测方法及装置
Yuan et al. Research of intrusion detection system on android
Miao et al. A Good Fishman Knows All the Angles: A Critical Evaluation of Google's Phishing Page Classifier
US12079285B2 (en) Training device, determination device, training method, determination method, training method, and determination program
Deepserish et al. PET-Droid: Android Malware Detection Using Static Analysis
Jawhar A Survey on Malware Attacks Analysis and Detected
Lee et al. Screening smartphone applications using behavioral signatures

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information

Inventor after: Li Ting

Inventor after: Xu Xiaoyan

Inventor after: Zhao Chen

Inventor after: Liu Jing

Inventor after: Chen Yang

Inventor after: Wang Ying

Inventor after: Zhao Hui

Inventor after: Li Zhihui

Inventor after: Zhang Teng

Inventor after: Zhu Yunqian

Inventor after: Zhang Shuai

Inventor after: Han Cheng

Inventor after: Jia Zixiao

Inventor after: Li Shicong

Inventor after: Xu Yuan

Inventor after: Gao Sheng

Inventor after: Hu Jun

Inventor after: He Shiping

Inventor after: Rao Yu

Inventor after: Dang Xianglei

Inventor before: Li Ting

Inventor before: Xu Xiaoyan

Inventor before: Zhao Chen

Inventor before: Liu Jing

Inventor before: Chen Yang

Inventor before: Wang Ying

Inventor before: Han Cheng

Inventor before: Li Shichong

Inventor before: Xu Yuan

Inventor before: Gao Sheng

Inventor before: Hu Jun

Inventor before: He Shiping

Inventor before: Rao Yu

Inventor before: Dang Xianglei

COR Change of bibliographic data