CN107590388B - 恶意代码检测方法和装置 - Google Patents
恶意代码检测方法和装置 Download PDFInfo
- Publication number
- CN107590388B CN107590388B CN201710818737.8A CN201710818737A CN107590388B CN 107590388 B CN107590388 B CN 107590388B CN 201710818737 A CN201710818737 A CN 201710818737A CN 107590388 B CN107590388 B CN 107590388B
- Authority
- CN
- China
- Prior art keywords
- malicious
- malicious code
- program
- behavior
- dynamic
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 98
- 239000013598 vector Substances 0.000 claims abstract description 88
- 230000003068 static effect Effects 0.000 claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims abstract description 34
- 230000000694 effects Effects 0.000 claims abstract description 24
- 238000012706 support-vector machine Methods 0.000 claims abstract description 19
- 238000012549 training Methods 0.000 claims abstract description 11
- 230000006399 behavior Effects 0.000 claims description 93
- 230000006870 function Effects 0.000 claims description 36
- 230000007246 mechanism Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008676 import Effects 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000000875 corresponding effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种恶意代码检测方法和装置。上述方法包括:分别采集程序代码在行为过程中的静态特征信息和动态特征信息;根据静态特征信息建立静态特征向量,根据动态特征信息建立动态特征向量;通过恶意代码检测模型对所述静态特征向量和动态特征向量进行检测;其中恶意代码检测模型为利用支持向量机训练用于存储恶意程序样本和白色样本的规则库所得的检测模型;若在静态特征向量和动态特征向量中检测到恶意程序样本,则将所述程序代码判定为恶意代码。其在检测过程中,将恶意代码的装置调用序列和相对应的函数参数结合起来进行相应的判别分析,可以克服恶意代码流行的反调试技术,能实现对恶意代码的进程进行监控,有效提高了相应的检测效果。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种恶意代码检测方法和装置。
背景技术
计算机技术的迅速发展,给人们的经济、文化、政治、教育、医疗等行业带来了巨大影响变革,使人类生活发生了巨大的变化。与此同时,计算机领域也遭受恶意代码的困扰和侵害。面对错综复杂的网络环境与层出不穷复杂多变的恶意代码,传统恶意代码检测方案在面对恶意代码的反检测,反调试等技术手段时,缺乏灵活性,容易影响恶意代码的检测效果。
发明内容
基于此,有必要针对传统方案容易影响恶意代码检测效果的技术问题,提供一种恶意代码检测方法和装置。
一种恶意代码检测方法,包括如下步骤:
分别采集程序代码在行为过程中的静态特征信息和动态特征信息;
根据所述静态特征信息建立静态特征向量,根据所述动态特征信息建立动态特征向量;
通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测;其中,所述恶意代码检测模型为利用支持向量机训练用于存储恶意程序样本和白色样本的规则库所得到的检测模型;
若在所述静态特征向量和动态特征向量中检测到恶意程序样本,则将所述程序代码判定为恶意代码。
一种恶意代码检测装置,包括:
采集模块,用于分别采集程序代码在行为过程中的静态特征信息和动态特征信息;
建立模块,用于根据所述静态特征信息建立静态特征向量,根据所述动态特征信息建立动态特征向量;
检测模块,用于通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测;其中,所述恶意代码检测模型为利用支持向量机训练用于存储恶意程序样本和白色样本的规则库所得到的检测模型;
判定模块,用于若在所述静态特征向量和动态特征向量中检测到恶意程序样本,则将所述程序代码判定为恶意代码。
上述恶意代码检测方法和装置,可以在程序代码的行为过程中采集静态特征信息和动态特征信息,以建立静态特征向量和动态特征向量,再通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测,以便进行恶意代码的检测,在上述检测过程中,可以利用恶意代码运行的动态行为特征,将恶意代码的装置调用序列和相对应的函数参数结合起来对程序行为特征进行相应的判别分析,可以克服恶意代码流行的反调试技术,能实现对恶意代码的进程进行监控,有效提高了相应的检测效果。
一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的恶意代码检测方法的步骤。
上述计算机可读存储介质上存储的计算机程序,被处理器执行时可以实现如上所述的恶意代码检测方法,具有较高的恶意代码检测效果。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的恶意代码检测方法的步骤。
上述计算机设备中,处理器执行所述程序时可以实现如上所述的恶意代码检测方法,有效提高了对进行程序代码进行恶意代码检测的效果。
附图说明
图1为一个实施例的恶意代码检测方法流程图;
图2为一个实施例的基于分派系统函数驱动层的实现流程图;
图3为一个实施例的恶意代码检测装置结构示意图;
图4为一个实施例的计算机设备结构示意图。
具体实施方式
下面结合附图对本发明的恶意代码检测方法和装置的具体实施方式作详细描述。
参考图1,图1所示为一个实施例的恶意代码检测方法流程图,包括如下步骤:
S10,分别采集程序代码在行为过程中的静态特征信息和动态特征信息;
进行恶意代码检测的检测系统可以包括行为采集层、行为分析层、行为决策判别层以及行为响应层等执行检测方法的多个层结构。行为采集层可以采用静态特征提取和动态分析结合方法收集程序的行为数据(包括静态特征信息和动态特征信息),静态特征信息可以通过直接获取程序PE头文件中的节区名、导入表、导出表、资源表和重定位表等信息,动态特征信息对应的动态分析基于Windows的中断设定程序系统调用事件为调试事件,在每次应用程序发生系统调用触发系统调试事件,可以记录捕获系统调用行为,包括进程/线程活动行为、注册表访问行为、系统服务访问行为、窗口/模块操作行为、网络访问行为、文件访问行为等。
S20,根据所述静态特征信息建立静态特征向量,根据所述动态特征信息建立动态特征向量;
行为分析层可以基于行为上述行为采集层搜集的不同类信息(如静态特征信息和动态特征信息)建立静态特征向量和动态特征向量,还可以将动态特征向量对应的动态行为特征抽象为系统调用函数的API(Application Programming Interface,应用程序编程接口)调用序列和系统调用参数特征特征向量实现对恶意代码用户行为的分析。
S30,通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测;其中,所述恶意代码检测模型为利用支持向量机训练用于存储恶意程序样本和白色样本的规则库所得到的检测模型;
行为决策层可以依据恶意代码检测模型的恶意代码样本(恶意程序样本)和白色样本文件建立好的样本特征形成的一个最优分类平面,判断未知代码特征向量与最优分类平面的距离判断决策样本文件是否为恶意代码样本。恶意代码行为检测模型(恶意代码检测模型)是利用分析算法与分析工具对大量恶意程序样本和白色样本文件抽象提取恶意行为的特征,以统一的规则结构存储而形成规则库,利用支持向量机对上述特征(以统一的规则结构存储而形成规则库)进行训练,建立恶意代码检测模型。恶意代码检测模型是程序行为判断的基准,驱动行为决策判别层的结果,其中的恶意行为库的准确性直接影响到整个系统的设计、实现以及效果。
S40,若在所述静态特征向量和动态特征向量中检测到恶意程序样本,则将所述程序代码判定为恶意代码。
在进行恶意代码的判定后,行为响应层可以根据行为决策层的决策(即恶意代码的检测结果)采取相应行动,是否让未知程序运行。比如,可以停止运行所述恶意代码,继续运行所述安全程序等等。
本实施例提供的恶意代码检测方法,可以在程序代码的行为过程中采集静态特征信息和动态特征信息,以建立静态特征向量和动态特征向量,再通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测,以便进行恶意代码的检测,在上述检测过程中,可以利用恶意代码运行的动态行为特征,将恶意代码的装置调用序列和相对应的函数参数结合起来对程序行为特征进行相应的判别分析,可以克服恶意代码流行的反调试技术,能实现对恶意代码的进程进行监控,有效提高了相应的检测效果。
在一个实施例中,上述恶意代码检测方法,还可以包括:
若在所述静态特征向量和动态特征向量中没有检测到恶意程序样本,则将所述程序代码判定为安全程序代码。
作为一个实施例,上述恶意代码检测方法,还可以包括:
停止运行所述恶意代码;或者继续运行所述安全程序。
本实施例可以对恶意代码以及安全程序进行全面、准确地检测,提高了所运行的程序代码的安全性。
在一个实施例中,上述分别采集程序代码在行为过程中的静态特征信息和动态特征信息的过程可以包括:
通过获取程序代码的导入表、导出表、资源表、重定位表以及PE头文件所包括的节区名采集静态特征信息;
在程序代码发生装置调用触发装置调试事件时,捕获装置调用行为,获取程序代码的动态特征信息。
本实施例可以利用行为采集层对程序代码在行为过程中的静态特征信息和动态特征信息进行全面采集,以保证所采集的行为数据的完整性。
作为一个实施例,静态特征信息还可以包括程序入口地址,程序编译时间,系统调用的API数量,DLL(动态链接库)数量,节数节名,动态特征信息主要为动态API调用序列以及相关参数信息。程序动态行为采集或监控可以采用断点处理机制,监视到关键系统调用行为,当程序代码运行到进行系统调用的位置触发断点,将控制权转移到断点处理机制,使目标程序暂停运行,获取用户态行为分析功能函数,确认文件活动行为分析、注册表活动行为分析、网络活动行为分析、服务活动行为分析、进程或线程活动行为分析、模块动态加载行为分析等行为活动类别,提取出系统调用函数地址序列,将返回的断点地址以及上下文信息作为断点处理机制的参数传入,再将控制权移交给用户态行为分析模块,用户态行为分析处理完毕后再交还控制权,如此循环分析直至结束。
获取系统调用序列可以利用虚拟内存技术和动态链接技术。进行恶意代码检测的检测系统可以为应用程序设置4GB的虚拟内存空间。对任何应用程序而言,它可以操作的进程地址空间都有4GB。也就是说,进程1和进程2访问同样的地址,将得到完全不同的内容。对于不同的进程来说,各自的进程地址空间是隔离的,不透明的。首先获取主进程的系统调用序列地址,然后在目标二进制可执行代码的进程地址空间中设置系统调用地址的序列。
恶意代码通常采用复杂的底层操作,容易绕过底层检测,本实施例的检测机制可以运行在内核驱动层,通过在内核态拦截Native API来监控注册表、进程、文件、网络、系统服务等活动程序行为,监控和收集恶意代码行为,充当事件收集的角色。
在Windows NT下,用户模式(User mode)的所有调用,如Kernel32.dll,User32.dll,Advapi32.dll等提供的API,可以封装在Ntdll.dll中,然后通过int2E或sysenter进入到内核模式,通过服务ID,在System Service Dispatcher Table中分派系统函数,利用系统调用编号进行索引定位函数的内存地址,基于分派系统函数驱动层的实现流程图可以参考图2所示,包括如下过程:
第一步:模块初始化,完成内核态驱动的加载,申请设备扩展结构空间,创建控制设备对象,并进行符号连接;
第二步:初始化驱动层和应用层的事件,并设置为非信任状态;
第三步:设置派遣函数,将原始的I/O请求处理函数进行替换,用自己的派遣函数来代替系统原来的派遣函数。
在一个实施例中,上述通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测的过程之前,还可以包括:
对海量恶意程序样本和白色样本文件抽象提取恶意行为的特征,以设定的规则结构存储成规则库,利用支持向量机对所述规则库进行训练,建立恶意代码检测模型。
本实施例可以通过对出现过的恶意程序样本和白色样本文件进行采集,以对海量恶意程序样本和白色样本文件进行确定。可以利用分析算法与分析工具对恶意程序样本和白色样本文件抽象提取恶意行为的特征,以统一的规则结构存储而形成规则库,利用支持向量机对上述特征进行训练,建立恶意代码检测模型,以保证所建立的恶意代码检测模型的完整性和准确性。
在一个实施例中,上述通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测的过程可以包括:
在所述静态特征向量和动态特征向量形成的特征空间通过非线性函数映射到一个高维线性空间;
通过支持向量机在所述高维线性空间查找符合恶意样本检测式的恶意程序样本,以及符合白色样本检测式的白色样本。
支持向量机是一种机器学习方法,该方法基于统计学习理论通过寻求结构化风险最小的来提高学习泛化能力,从而达到统计样本较少的情况下,也能获取良好的统计规律;其广义上来将其实是一种二类分类模型,在特征空间内求解两个不同类之间的最大间隔,通过学习将两个类别间的距离最大化。
本实施例通过支持向量机在所述高维线性空间查找符合恶意样本检测式的恶意程序样本,以及符合白色样本检测式的白色样本,可以保证所查找的恶意程序样本和白色样本这两个类别的准确性。
作为一个实施例,上述恶意样本检测式为:
w*φ(xi)+b≥+1,
所述白色样本检测式为:
w*φ(xi)+b≤-1,
式中,w表示代码样本的权重向量系数,φ(xi)表示样本输入向量在特征空间的非线性变换,b表示偏置常量,xi表示高维线性空间的代码样本。
作为一个实施例,上述支持向量机对应的非线性分类器的学习目的是在n维空间查找一个分类超平面,通过非线性函数映射到一个高维的线性空间,描述可以为:
w*φ(x)+b=0,
其中,w表示代码样本的权重向量系数,φ(xi)表示样本输入向量在特征空间的非线性变换,b表示偏置常量。
上述高维线性空间对应的决策函数描述可以为:
f(x)=sign[w*φ(x)+b]
其中,sign()为符号函数。
在检测试验中所有样本被分为两类,一类是黑色样本文件即恶意样本文件,一类是白色样本即正常程序文件,在支持向量机中定义n维样本空间中的每个样本点都对应着实验中的一个样本,而对应样本点的n维坐标分别对应每个样本的特征,这些特征都是布尔值1或者0。
依据支持向量机的定义找到分类超平面,必须符合如下两式:
w*φ(xt)+b≥+1,此时xi为恶意样本,
w*φ(x_i)+b≤-1,此时xi为白色样本,
通过将未知样本(程序代码)的特征向量输入恶意代码行为监控模型(恶意代码检测模型)中,通过计算样本点距离分类超平面的值判断是否是恶意代码样本。
恶意代码样本文件可以有很多的特征作为特征向量,通过行为采集监控层获取,样本文件静态信息包括API数量,DLL数量,节数节名,以及动态API调用序列,并形成一个特征提取文件。基于开源的libsvm向量机模块,对采集的特征向量进行归一化处理。在训练模式中,支持向量机模块通过对特征提取模块中文件进行训练,并生成一个检测模块文件,在检测模式对待检测的特征向量进行检测。
本实施例可以对程序代码进行基于行为分析恶意代码检测,利用中断处理机制和内核处理机制能够高效分析恶意代码对系统资源的访问行为,并能暴露恶意代码特有的隐藏行为。在中断机制实现上,克服了恶意代码流行的反调试技术,能成功对恶意代码的进程进行监控。通过采集恶意代码运行的动态行为特征,将恶意代码的系统调用序列和相对应的函数参数结合起来对程序行为特征判别分析。
参考图3所示,图3为一个实施例的恶意代码检测装置结构示意图,包括:
采集模块10,用于分别采集程序代码在行为过程中的静态特征信息和动态特征信息;
建立模块20,用于根据所述静态特征信息建立静态特征向量,根据所述动态特征信息建立动态特征向量;
检测模块30,用于通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测;其中,所述恶意代码检测模型为利用支持向量机训练用于存储恶意程序样本和白色样本的规则库所得到的检测模型;
判定模块40,用于若在所述静态特征向量和动态特征向量中检测到恶意程序样本,则将所述程序代码判定为恶意代码。
本发明提供的恶意代码检测装置与本发明提供的恶意代码检测方法一一对应,在所述恶意代码检测方法的实施例阐述的技术特征及其有益效果均适用于恶意代码检测装置的实施例中,特此声明。
基于如上所述的示例,一个实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的恶意代码检测方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机装置的存储介质中,并被该计算机装置中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
基于如上所述的示例,参考图4所示,本发明还提供一种计算机设备60,该计算机设备包括存储器61、处理器62及存储在存储器61上并可在处理器62上运行的计算机程序,所述处理器62执行所述程序时实现如上述各实施例中的任意一种恶意代码检测方法。
上述计算机设备60可以包括电脑等智能处理设备。本领域普通技术人员可以理解存储器61存储的计算机程序,与上述恶意代码检测方法实施例中的描述相对应,处理器62还可用于执行存储器61所存储的其他可执行指令。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种恶意代码检测方法,其特征在于,包括如下步骤:
分别采集程序代码在行为过程中的静态特征信息和动态特征信息;
根据所述静态特征信息建立静态特征向量,根据所述动态特征信息建立动态特征向量;其中,将所述动态特征向量对应的动态行为特征抽象为系统调用函数的API调用序列的特征向量和系统调用参数特征的特征向量;其中,所述程序代码在行为过程中的动态行为采集采用断点处理机制,监视到关键系统调用行为,当所述程序代码运行到进行系统调用的位置触发断点,将控制权转移到所述断点处理机制,使目标程序暂停运行,获取用户态行为分析功能函数,确认文件活动行为分析、注册表活动行为分析、网络活动行为分析、服务活动行为分析、进程或线程活动行为分析、模块动态加载行为分析,提取出系统调用函数地址序列,将返回的断点地址以及上下文信息作为断点处理机制的参数传入,再将控制权移交给用户态行为分析模块,用户态行为分析处理完毕后再交还控制权,如此循环分析直至结束;
通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测;其中,所述恶意代码检测模型为利用支持向量机训练用于存储恶意程序样本和白色样本的规则库所得到的检测模型;
若在所述静态特征向量和动态特征向量中检测到恶意程序样本,则将所述程序代码判定为恶意代码;恶意代码的检测机制运行在内核驱动层,通过在内核态监控活动程序行为和收集恶意代码行为;通过进入到内核模式,利用系统调用编号进行索引定位函数的内存地址,分派系统函数;其中,模块初始化,完成内核态驱动的加载,申请设备扩展结构空间,创建控制设备对象,并进行符号连接;初始化驱动层和应用层的事件,并设置为非信任状态;设置第一派遣函数,将原始的I/O请求处理函数进行替换,用所述第一派遣函数来代替系统原来的派遣函数。
2.根据权利要求1所述的恶意代码检测方法,其特征在于,还包括:
若在所述静态特征向量和动态特征向量中没有检测到恶意程序样本,则将所述程序代码判定为安全程序代码。
3.根据权利要求2所述的恶意代码检测方法,其特征在于,还包括:
停止运行所述恶意代码;或者继续运行所述安全程序代码。
4.根据权利要求1所述的恶意代码检测方法,其特征在于,所述分别采集程序代码在行为过程中的静态特征信息和动态特征信息的过程包括:
通过获取程序代码的导入表、导出表、资源表、重定位表以及PE头文件所包括的节区名采集静态特征信息;
在程序代码发生装置调用触发装置调试事件时,捕获装置调用行为,获取程序代码的动态特征信息。
5.根据权利要求1所述的恶意代码检测方法,其特征在于,所述通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测的过程之前,还包括:
对海量恶意程序样本和白色样本文件抽象提取恶意行为的特征,以设定的规则结构存储成规则库,利用支持向量机对所述规则库进行训练,建立恶意代码检测模型。
6.根据权利要求1所述的恶意代码检测方法,其特征在于,所述通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测的过程包括:
在所述静态特征向量和动态特征向量形成的特征空间通过非线性函数映射到一个高维线性空间;
通过支持向量机在所述高维线性空间查找符合恶意样本检测式的恶意程序样本,以及符合白色样本检测式的白色样本。
7.根据权利要求6所述的恶意代码检测方法,其特征在于,所述恶意样本检测式为:
w*φ(xi)+b≥1,
所述白色样本检测式为:
w*φ(xi)+b≤-1,
式中,w表示代码样本的权重向量系数,φ(xi)表示样本输入向量在特征空间的非线性变换,b表示偏置常量,xi表示高维线性空间的代码样本。
8.一种恶意代码检测装置,其特征在于,包括:
采集模块,用于分别采集程序代码在行为过程中的静态特征信息和动态特征信息;
建立模块,用于根据所述静态特征信息建立静态特征向量,根据所述动态特征信息建立动态特征向量;其中,将所述动态特征向量对应的动态行为特征抽象为系统调用函数的API调用序列的特征向量和系统调用参数特征的特征向量;其中,所述程序代码在行为过程中的动态行为采集采用断点处理机制,监视到关键系统调用行为,当所述程序代码运行到进行系统调用的位置触发断点,将控制权转移到所述断点处理机制,使目标程序暂停运行,获取用户态行为分析功能函数,确认文件活动行为分析、注册表活动行为分析、网络活动行为分析、服务活动行为分析、进程或线程活动行为分析、模块动态加载行为分析,提取出系统调用函数地址序列,将返回的断点地址以及上下文信息作为断点处理机制的参数传入,再将控制权移交给用户态行为分析模块,用户态行为分析处理完毕后再交还控制权,如此循环分析直至结束;
检测模块,用于通过预设的恶意代码检测模型对所述静态特征向量和动态特征向量进行检测;其中,所述恶意代码检测模型为利用支持向量机训练用于存储恶意程序样本和白色样本的规则库所得到的检测模型;
判定模块,用于若在所述静态特征向量和动态特征向量中检测到恶意程序样本,则将所述程序代码判定为恶意代码;恶意代码的检测机制运行在内核驱动层,通过在内核态监控活动程序行为和收集恶意代码行为;通过进入到内核模式,利用系统调用编号进行索引定位函数的内存地址,分派系统函数;其中,模块初始化,完成内核态驱动的加载,申请设备扩展结构空间,创建控制设备对象,并进行符号连接;初始化驱动层和应用层的事件,并设置为非信任状态;设置第一派遣函数,将原始的I/O请求处理函数进行替换,用所述第一派遣函数来代替系统原来的派遣函数。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任意一项所述的恶意代码检测方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的恶意代码检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710818737.8A CN107590388B (zh) | 2017-09-12 | 2017-09-12 | 恶意代码检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710818737.8A CN107590388B (zh) | 2017-09-12 | 2017-09-12 | 恶意代码检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107590388A CN107590388A (zh) | 2018-01-16 |
CN107590388B true CN107590388B (zh) | 2020-06-23 |
Family
ID=61050518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710818737.8A Active CN107590388B (zh) | 2017-09-12 | 2017-09-12 | 恶意代码检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590388B (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334781B (zh) * | 2018-03-07 | 2020-04-14 | 腾讯科技(深圳)有限公司 | 病毒检测方法、装置、计算机可读存储介质和计算机设备 |
CN108304721A (zh) * | 2018-03-21 | 2018-07-20 | 河北师范大学 | 一种恶意代码检测系统 |
CN108446561A (zh) * | 2018-03-21 | 2018-08-24 | 河北师范大学 | 一种恶意代码行为特征提取方法 |
CN108734012B (zh) * | 2018-05-21 | 2020-11-03 | 上海戎磐网络科技有限公司 | 恶意软件识别方法、装置及电子设备 |
CN108920958A (zh) * | 2018-07-13 | 2018-11-30 | 深圳市联软科技股份有限公司 | 检测pe文件异常行为的方法、装置、介质及设备 |
CN110737891A (zh) * | 2018-07-19 | 2020-01-31 | 北京京东金融科技控股有限公司 | 一种主机入侵检测方法和装置 |
CN112231198B (zh) * | 2019-07-15 | 2024-04-12 | 腾讯科技(深圳)有限公司 | 一种恶意进程调试方法、装置、电子设备及介质 |
CN110516445B (zh) * | 2019-08-07 | 2021-05-04 | 南方电网科学研究院有限责任公司 | 反检测恶意代码的识别方法、装置及存储介质 |
CN110610086B (zh) * | 2019-08-30 | 2021-06-18 | 北京卓识网安技术股份有限公司 | 非法代码识别方法、系统、装置及存储介质 |
CN112583773B (zh) * | 2019-09-30 | 2023-01-06 | 奇安信安全技术(珠海)有限公司 | 未知样本的检测方法及装置、存储介质、电子装置 |
CN110868405B (zh) * | 2019-11-05 | 2022-03-04 | 南方电网数字电网研究院有限公司 | 恶意代码检测方法、装置、计算机设备及存储介质 |
CN113392397A (zh) * | 2020-03-11 | 2021-09-14 | 四川大学 | 基于混合特征和emd的恶意代码半监督聚类方法 |
CN111639312B (zh) * | 2020-06-02 | 2023-04-14 | 腾讯科技(成都)有限公司 | 反调试方法、装置、存储介质及电子装置 |
CN111797393B (zh) * | 2020-06-23 | 2023-05-23 | 安天科技集团股份有限公司 | 基于gpu恶意挖矿行为的检测方法与装置 |
CN111967004B (zh) * | 2020-07-31 | 2021-06-04 | 深圳比特微电子科技有限公司 | 数字货币矿机的病毒扫描方法、装置和数字货币矿机 |
CN112560045A (zh) * | 2020-12-11 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 应用程序漏洞检测方法、装置、计算机设备和存储介质 |
CN112632537A (zh) * | 2020-12-23 | 2021-04-09 | 北京鸿腾智能科技有限公司 | 恶意代码检测方法、装置、设备及存储介质 |
CN112685739B (zh) * | 2020-12-31 | 2022-11-04 | 卓尔智联(武汉)研究院有限公司 | 恶意代码检测方法、数据交互方法及相关设备 |
CN113760770B (zh) * | 2021-09-14 | 2024-06-11 | 上海观安信息技术股份有限公司 | 基于自动静态资源检测的反调试方法和系统 |
CN114679331B (zh) * | 2022-04-11 | 2024-02-02 | 北京国联天成信息技术有限公司 | 一种基于ai技术的恶意代码被动检测方法及系统 |
CN115296895B (zh) * | 2022-08-02 | 2024-02-23 | 中国电信股份有限公司 | 请求响应方法、装置、存储介质及电子设备 |
CN115544504B (zh) * | 2022-09-23 | 2023-12-29 | 国网山西省电力公司 | 一种检测恶意代码的方法和装置 |
CN117521068A (zh) * | 2023-12-08 | 2024-02-06 | 北京云弈科技有限公司 | Linux主机恶意软件检测方法、系统、设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373501B (zh) * | 2008-05-12 | 2010-06-02 | 公安部第三研究所 | 针对计算机病毒的动态行为捕获方法 |
CN101373502B (zh) * | 2008-05-12 | 2012-06-20 | 公安部第三研究所 | 基于Win32平台下病毒行为的自动化分析系统 |
CN101984450B (zh) * | 2010-12-15 | 2012-10-24 | 北京安天电子设备有限公司 | 恶意代码检测方法和系统 |
CN102750484A (zh) * | 2012-06-28 | 2012-10-24 | 腾讯科技(深圳)有限公司 | 一种防止病毒样本自检的方法及装置 |
CN104331436B (zh) * | 2014-10-23 | 2017-06-06 | 西安交通大学 | 基于家族基因码的恶意代码快速归类方法 |
-
2017
- 2017-09-12 CN CN201710818737.8A patent/CN107590388B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107590388A (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590388B (zh) | 恶意代码检测方法和装置 | |
TWI553503B (zh) | 產生候選鈎點以偵測惡意程式之方法及其系統 | |
Massarelli et al. | Android malware family classification based on resource consumption over time | |
CN108469984B (zh) | 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法 | |
CN111259388A (zh) | 一种基于图卷积的恶意软件api调用序列检测方法 | |
Ferrante et al. | Spotting the malicious moment: Characterizing malware behavior using dynamic features | |
Saccente et al. | Project achilles: A prototype tool for static method-level vulnerability detection of Java source code using a recurrent neural network | |
Cabau et al. | Malware classification based on dynamic behavior | |
CN101515320A (zh) | 一种攻击时漏洞检测方法及其系统 | |
CN105740711B (zh) | 一种基于内核对象行为本体的恶意代码检测方法及系统 | |
Bahador et al. | HLMD: a signature-based approach to hardware-level behavioral malware detection and classification | |
CN109726601A (zh) | 违规行为的识别方法及装置、存储介质、计算机设备 | |
Zhao et al. | Predicting performance anomalies in software systems at run-time | |
Peddoju et al. | Natural language processing based anomalous system call sequences detection with virtual memory introspection | |
CN110457220A (zh) | 基于安卓系统的模拟器检测方法、智能终端及存储介质 | |
Blanc et al. | Identifying android malware families using android-oriented metrics | |
Bernardi et al. | A fuzzy-based process mining approach for dynamic malware detection | |
Hsiao et al. | Behavior grouping of android malware family | |
CN108804920B (zh) | 一种基于跨进程行为监控恶意代码同源性分析的方法 | |
Guerra-Manzanares et al. | Differences in android behavior between real device and emulator: a malware detection perspective | |
CN112632538A (zh) | 一种基于混合特征的安卓恶意软件检测方法及系统 | |
CN113468524A (zh) | 基于rasp的机器学习模型安全检测方法 | |
Satapathy et al. | Usage of machine learning in software testing | |
Pavlenko et al. | Application of clustering methods for analyzing the security of Android applications | |
Malik | Android system call analysis for malicious application detection |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |