恶意软件检测方法技术

技术编号:37441749 阅读:19 留言:0更新日期:2023-05-06 09:13
本发明专利技术公开了一种恶意软件检测方法,其属于软件技术领域。一种恶意软件检测方法,包括步骤:基于用户级代码设计监视器;设置敏感API接口库;加载目标程序,监视器监视目标程序调用API接口;目标程序在调用敏感API接口库中记载的API接口时,监视器暂停目标程序,并将目标程序调用敏感API接口库中记载的API接口的情况由工程人员判断目标程序是否被允许调用该API接口,如果工程人员允许调用API接口则目标程序继续运行,如果工程人员不允许调用API接口则终止目标程序。本发明专利技术提供了一种基于用户级代码设置了监视器,避免了在内核级代码进行设计所带来的操作系统运行不稳定、监视器设计复杂的情况。复杂的情况。复杂的情况。

【技术实现步骤摘要】
恶意软件检测方法


[0001]本专利技术涉及软件检测
,具体而言,涉及一种恶意软件检测方法。

技术介绍

[0002]到目前为止,关于恶意软件的检测方式,几乎所有提出的方法都集中在用户级和内核级的混合代码上。内核级代码,使用内核级代码进行完全的操作系统控制,而用户级代码用于导入地址表(IAT)过滤。但是在内核级的代码上设置恶意软件的检测系统,容易导致操作系统在执行过程中崩溃,对于操作系统的友好性很差。

技术实现思路

[0003]本专利技术的内容部分用于以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。本专利技术的内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
[0004]为了解决以上
技术介绍
部分提到的技术问题,本专利技术的一些实施例提供了一种恶意软件检测方法,包括步骤:设置敏感API接口库;基于用户级代码设计监视器;监视器加载目标程序,监视器监视目标程序执行时调用的API接口;监视器对目标程序调用API接口进行监控,目标程序在调用敏感API接口库中记载的API接口时,监视器暂停目标程序,并将目标程序调用敏感API接口库中记载的API接口的情况由工程人员判断目标程序是否被允许调用该API接口,如果工程人员允许调用API接口,则目标程序继续运行,如果工程人员不允许调用API接口,则终止目标程序。
[0005]进一步的,监视器加载目标程序时,目标程序被设置CREATE_SUSPENDED 标志。
[0006]进一步的,目标程序执行时,需要调用ResumeThread()函数,监视器在目标程序调用ResumeThread()函数之前,监视器对目标程序注入监视代码。
[0007]进一步的,目标程序具有多个进程,每个进程依次执行,监视器监视目标程序所有进程中对于API接口的调用情况。
[0008]进一步的,监视器向目标程序注入监视代码,并且在目标程序需要依次执行新的进程时,监视器复制监视代码并将监视代码注入至目标程序新的进程内,直至目标程序的所有进程终止。
[0009]进一步的,在设置敏感API接口库之前,还设置了API接口白名单,监视器还能够在目标程序调用敏感API接口库中未记载且处于API白名单中的API接口时,在不经过工程人员判断的情况下,直接允许目标程序调用API接口。
[0010]进一步的,监视器在进程创建和内存处理上使用标准的hook方法和进程链。
[0011]进一步的,敏感API接口库至少包括系统时间函数、过程监督和控制/ALC函数、Windows ACL函数、注册表函数、进程通信函数和对LoadLibrary()和 LoadLibraryEx()控
制的函数。
[0012]进一步的,API白名单还包括设备驱动程序的访问和控制功能、处理内存访问和修改函数以及创建和控制新线程的功能。
[0013]本专利技术提供了一种基于用户级代码设置了监视器,避免了在内核级代码进行设计所带来的操作系统运行不稳定、监视器设计复杂的情况。同时,在针对用户级代码在监视恶意软件的缺陷上,创新性的对目标程序调用API接口的情况进行监控,借助恶意软件在执行恶意行为时,需要调用敏感API接口的方式,对恶意软件进行识别,如此能够保证对于恶意软件的识别效果。
附图说明
[0014]构成本专利技术的一部分的附图用来提供对本专利技术的进一步理解,使得本专利技术的其它特征、目的和优点变得更明显。本专利技术的示意性实施例附图及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。
[0015]在附图中:图1是根据本专利技术实施例的步骤示意图;图2是根据微软视窗操作系统层中的系统位置示意图;图3是过程虚拟机的调用和寻址的示意图。
[0016]图4是本实施例中监视器在调用和寻址中的位置示意图;图5是进程链的示意图。
具体实施方式
[0017]下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现, 而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0018]另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
[0019]下面将参考附图并结合实施例来详细说明本公开。
[0020]本申请基于用户级代码设计了一种恶意软件的检测方法,抛弃了传统的恶意软件设计中采用内核级代码的方式,仅仅使用了用户级代码完成对恶意软件的检测。
[0021]参照图1,恶意软件的检测方法,包括步骤:步骤1:设置敏感API接口库;操作系统中能够被程序调用的API接口有很多,恶意软件在执行其有害的部分时也需要调用API接口,所以将将恶意软件在执行其有害的部分(非法行为)时,容易调用的API接口设置为敏感API接口,将这些敏感API接口汇总以形成敏感API接口库。
[0022]敏感API接口库至少包括如下:系统时间函数、过程监督和控制/ALC函数、Windows ACL函数、以及注册表函数。
[0023]例如:系统时间函数:getTickCount(),GetTickCount64(), GetSystemTime(),
GetSystemTimeAsFileTime()和 GetSystemTimes()。
[0024]过程监督和控制/ACL函数:createToolhelp32Snapshot(), Process32First()和 Process32Next()。
[0025]Windows ACL 函数:OpenProcessToken()、OpenThreadToken()和AdjustTokenPrivilages()。
[0026]注册表访问函数:RegOpenKey(), RegOpenKeyEx(),RegSetKeyValue()和 RegQueryValue()。
[0027]敏感API接口库还包括进程通信函数和对LoadLibrary()和 LoadLibraryEx()控制的函数。进程通信函数包括:ws_32.dll 和 wsock32.dll。
[0028]步骤1还包括设置API接口白名单,恶意软件在调用部分API接口时,通常不会运行恶意软件中有害的部分,进而将这些API接口汇总起来形成API接口白名单;其中,API白名单包括:设备驱动程序的访问和控制功能、处理内存访问和修改函数以及创建和控制新线程的功能。
[0029]其中,设备驱动程序的访问和控制功能包括:deviceIoControl()。
[0030]处理内存访问和修改函数包括:ReadProcessMemory(),WriteProcessMemory(),Virtu本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种恶意软件检测方法,其特征在于:包括步骤:设置敏感API接口库;基于用户级代码设计监视器;监视器加载目标程序,监视器监视目标程序执行时调用的API接口;监视器对目标程序调用API接口进行监控,目标程序在调用敏感API接口库中记载的API接口时,监视器暂停目标程序,并将目标程序调用敏感API接口库中记载的API接口的情况由工程人员判断目标程序是否被允许调用该API接口,如果工程人员允许调用API接口,则目标程序继续运行,如果工程人员不允许调用API接口,则终止目标程序。2.根据权利要求1所述的恶意软件检测方法,其特征在于:监视器加载目标程序时,目标程序被设置CREATE_SUSPENDED 标志。3.根据权利要求1所述的恶意软件检测方法,其特征在于:目标程序执行时,需要调用ResumeThread()函数,监视器在目标程序调用ResumeThread()函数之前,监视器对目标程序注入监视代码。4.根据权利要求1所述的恶意软件检测方法,其特征在于:目标程序具有多个进程,每个进程依次执行,监视器监视目标程序所有进程中对于API接口的调用情况。5.根据权利要求...

【专利技术属性】
技术研发人员:张佩琦张路金乔晓冬
申请(专利权)人:中科九度北京空间信息技术有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1