CN109583202B - 用于检测进程的地址空间中的恶意代码的系统和方法 - Google Patents
用于检测进程的地址空间中的恶意代码的系统和方法 Download PDFInfo
- Publication number
- CN109583202B CN109583202B CN201811056401.3A CN201811056401A CN109583202B CN 109583202 B CN109583202 B CN 109583202B CN 201811056401 A CN201811056401 A CN 201811056401A CN 109583202 B CN109583202 B CN 109583202B
- Authority
- CN
- China
- Prior art keywords
- trusted
- address space
- executable
- address
- malicious code
- 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
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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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/52—Monitoring 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
-
- 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/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
-
- 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)
- 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)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了用于检测进程的地址空间中的恶意代码的系统和方法。所描述的方法检测来自在计算机上执行的可执行文件的进程的启动;检测对受信任进程的地址空间中的存储区域内的地址的访问,其中,该存储区域是位于表示所述可执行文件的受信任可执行镜像的边界之外的存储区域并且是可执行存储区域;分析所述地址空间的附近内的存储区域以确定另一可执行镜像是否位于所述存储区域中;分析所述另一可执行镜像以确定所述另一可执行镜像是否包含恶意代码;当所述另一可执行镜像包含恶意代码时,确定在所述受信任进程的所述地址空间中包含恶意代码;以及执行从所述地址空间中移除、停止或隔离所述恶意代码。
Description
技术领域
本发明总体涉及计算机安全领域,并且更具体地涉及用于检测进程的地址空间中的恶意代码的系统和方法。
背景技术
用于检测恶意代码和恶意文件的软件(诸如防病毒应用程序)正在不断改进。通常,此类软件与应用程序控制的模块一起(或此类软件包括此类模块)工作以通过例如阻止不受信任应用程序的运行来提高提供给计算机系统的安全质量。应用程序控制模块通常使用应用程序的白名单和黑名单来识别哪些应用程序是被允许的以及哪些应用程序是被禁止的。来自黑名单的文件或应用程序被防病毒应用程序识别为恶意的,而来自白名单的文件被认为对计算机系统是安全的(“受信任的”)并且不会被防病毒应用程序进一步检查。这种名单的使用显著减少了计算机系统在通过防病毒应用程序提供安全性时的负载,因为防病毒应用程序不需要通过所有可用的方法(包括借助签名分析(signature analysis)、启发式分析、行为分析等的方法)来检查每个文件。
然而,并不是所有由包含在白名单中的受信任文件启动的动作或进程对计算机系统都是无害的。现代的恶意程序可以将自身嵌入至受信任进程的地址空间中并且通过受信任进程的地址空间执行它们的恶意代码。这种恶意代码的执行不能被防病毒应用程序检测到(并因此不会被阻止),因为防病毒应用程序对于来自受信任进程的地址空间的代码不执行分析(例如,签名分析或启发式分析)。
然而,检测进程的地址空间中对应于恶意代码的存储区域的方法需要相当大的计算资源,因为这种方法涉及扫描计算机系统的内存。本发明提供了多个方面,该多个方面更有效地解决了检测进程的地址空间中的恶意代码的问题。
发明内容
因此,本文公开了用于提高计算机安全性的系统和方法,更具体地,公开了用于检测进程的地址空间中的恶意代码的系统和方法。
根据一方面,本发明提供了用于检测进程的地址空间中的恶意代码的方法,所述方法包括:检测来自在计算机系统上执行的受信任可执行文件的受信任进程的启动;检测对所述受信任进程的地址空间中的可疑存储区域内的可疑地址的访问,其中,所述可疑存储区域是位于表示所述受信任可执行文件的受信任可执行镜像的边界之外的存储区域并且是可执行存储区域;分析所述计算机系统中可疑地址空间的附近(vicinity)内的一个或多个存储区域,以确定表示另一可执行文件的另一可执行镜像是否位于所述一个或多个存储区域中;分析所述另一可执行镜像以确定所述另一可执行镜像是否包含恶意代码;当所述另一可执行镜像包含恶意代码时,确定在所述受信任进程的所述地址空间中包含恶意代码;以及执行从所述受信任进程的所述地址空间中移除、停止或隔离所述恶意代码。
根据另一示例性方面,所述方法包括,其中,检测所述启动包括:拦截启动所述进程的函数;确定所述进程的识别信息;以及基于所述识别信息确定和访问与可疑活动相关的地址空间。
根据另一示例性方面,所述方法包括:当所述一个或多个存储区域不包含受信任区域时,将所述一个或多个区域确定为可疑的。
根据另一示例性方面,所述方法包括,其中,所述受信任区域包括以下中的一者或多者:所述地址空间中的所述可执行镜像的附近;已知可执行文件的镜像的附近;以及所述地址空间中的已知地址的附近。
根据另一示例性方面,所述方法包括,其中,所述附近为距所述可执行镜像的起始地址第一预定数量的字节之内以及距所述可执行镜像的结束地址第二预定数量的字节之内。
根据另一示例性方面,所述方法包括:通过查询关于所述存储区域的页表信息来确定所述可执行镜像的所述附近的边界。
根据另一示例性方面,所述方法包括:检测所述地址空间中的存储地址是否存在于为所述受信任进程的堆栈保留的存储区域中。
根据另一示例性方面,所述方法包括使用函数调用在所述堆栈上搜索地址以访问关于在其上正在执行所述进程的线程的信息。
根据另一示例性方面,所述方法包括建立用于调用一个或多个函数中的每一个函数的回调程序。
根据另一示例性方面,提供了一种用于检测恶意代码的系统,该系统包括包含恶意代码签名的恶意代码签名数据库、以及计算机系统。所述计算机系统包括拦截模块以及安全模块。所述拦截模块被配置为:检测来自在计算机系统上执行的受信任可执行文件的受信任进程的启动;检测对所述受信任进程的地址空间中的可疑存储区域内的可疑地址的访问,其中,所述可疑存储区域是位于表示所述受信任可执行文件的受信任可执行镜像的边界之外的存储区域并且是可执行存储区域;分析所述计算机系统中可疑地址空间的附近内的一个或多个存储区域,以确定表示另一可执行文件的另一可执行镜像是否位于所述一个或多个存储区域中;所述安全模块被配置为:当所述另一可执行镜像包含恶意代码时,确定在所述受信任进程的所述地址空间中包含恶意代码;以及执行从所述受信任进程的所述地址空间中移除、停止或隔离所述恶意代码。
根据另一示例性方面,提供了一种计算机可读介质,该计算机可读介质包括用于执行本文公开的任一方法的计算机可执行指令。
以上对示例性方面的简要概述用于提供对本发明的基本理解。本概述不是对所有预期方面的广泛综述,并且既不旨在标识所有方面的关键的或重要的要素,也不旨在描绘本发明的任何方面或所有方面的范围。该概述的唯一目的是以简化的形式呈现一个或多个方面,作为随后的对本发明的更详细的描述的前奏。为了实现前述内容,本发明的一个或更多个方面包括在权利要求中所描述和示例性指出的特征。
附图说明
并入本说明书并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,并且与具体实施方式一起用于阐述这些示例性方面的原理和实现方式。
图1为根据本发明的示例性方面的检测进程的地址空间中的恶意代码的系统的框图。
图2为根据本发明的示例性方面的检测进程的地址空间中的恶意代码的方法的流程图。
图3示出了根据本发明的示例性方面的通用计算机系统的示例。
具体实施方式
本文在用于检测进程的地址空间中的恶意代码的系统和方法以及该系统和方法的计算机程序产品的背景下对示例性方面进行了描述。本领域的普通技术人员将认识到,以下描述仅是说明性的,并不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细参考如附图中所示的示例性方面的实现。在整个附图和以下描述中将尽可能使用相同的附图标记来指代相同或相似的项目。
将贯穿说明书、附图和权利要求来使用以下术语。
恶意应用程序(malicious application)是能够对计算机或对计算机上存储的数据造成损害的应用程序。恶意应用程序的示例包括因特网蠕虫、键盘跟踪器、计算机病毒等。造成的损害可以是以盗取为目的的对计算机资源(包括保存在计算机上的数据)的非法访问,以及对资源的非法使用(包括对数据的未经授权的存储、执行未经授权的动作和计算等)。
受信任的应用程序(trusted application)是不会对计算机或计算机的用户造成损害的应用程序。受信任的应用程序可以被认为是已经由受信任的软件制造商开发的应用程序、从受信任的源(诸如受信任网站的数据库中列出的网站)上下载的应用程序、或者其标识符(例如,应用程序文件的MD5)被保存在受信任应用程序的数据库中的应用程序。制造商的标识符(诸如数字证书)也可以保存在受信任应用程序的数据库中。
不受信任的应用程序(untrusted application)是不受信任但也没有(例如借助于防病毒应用程序)被识别为有害的应用程序。之后,不受信任的应用程序(例如借助于防病毒扫描)可以被识别为有害的。
恶意文件是为恶意应用程序的组件并包含程序代码(可执行代码或可解释代码)的文件。
不受信任的文件是为不受信任的应用程序的组件并包含程序代码(可执行代码或可解释代码)的文件。
受信任的文件是作为受信任的应用程序的组件的文件。
签名分析是以检测恶意程序为目的从恶意程序的签名数据库中查找程序的特定代码段与已知代码(签名)之间的对应关系的技术。应当注意的是,该技术既可以用于检测恶意程序的文件,也可以用于检测计算设备(可选地称为计算机系统)的随机存取存储器(RAM)中的恶意代码。
防病毒记录是防病毒应用程序检测恶意代码、特别是检测恶意文件所需要的信息。防病毒记录可以是,例如签名、启发式规则(其例如可以通过启发式分析和主动分析而被使用)、校验和、或文件的散列(包括灵活的散列或局部敏感的散列——对于小的文件更改是不可仿效的文件散列)的形式。
脚本是通常以高级编程语言或脚本语言编写的、可以由计算机系统借助于脚本解释器来执行的一系列命令(指令)。
根据一个方面,用于检测进程的地址空间中的恶意代码的系统可以实现为使用诸如集成微电路(专用集成电路,ASIC)或现场可编程门阵列(FPGA)的硬件实现的、或例如以软件和硬件(诸如微处理器系统和程序指令集)组合的形式实现的、以及还在神经突触芯片上实现的现实设备、系统、组件以及组件组。这些系统模块的功能可以仅由硬件实现,也可以以组合的形式实现,其中系统模块的一些功能由软件实现而一些功能由硬件实现。在特定方面中,一些模块或所有模块可以在通用计算机(诸如图3中示出的计算机)的处理器上执行。系统组件可以在单个计算设备内实现,或者也可以分散在几个互连的计算设备之间。
图1为根据本发明的示例性方面的检测进程的地址空间中的恶意代码的系统的框图。该系统包括以下组件:拦截模块110、安全模块120以及恶意代码签名数据库130。系统的各元件之间的连接同样在图1中被指出。在本发明的一个示例性方面中,拦截模块110和安全模块120被实现为执行拦截模块110和安全模块120两者的功能的单个装置。
根据一个方面,可执行文件111正在控制计算机系统的操作系统(OS)上执行,特别是通过可执行文件111实现系统的组件。拦截模块110可以检测来自可执行文件111的进程的启动。当来自可执行文件111的进程启动时,操作系统(OS)形成该进程的虚拟地址空间112(以下简称“地址空间”),在该虚拟地址空间中找到可执行文件111的镜像。本领域普通技术人员将认识到,术语“地址空间的存储区域”和“地址空间中的存储区域”是相同的并且在本发明中可互换地使用。
可执行文件111的镜像(镜像,或者被称为可执行镜像)是进程的地址空间中的可执行文件111的表示。与可执行文件111的仅复制的字节表示不同,可执行镜像足以执行可执行文件111的代码。在一些方面中,例如,在启动来自可执行文件的进程时,可执行文件的镜像可以由OS的加载器来形成。可执行镜像通常与可执行文件本身不同,例如,可执行镜像的代码中使用的地址(例如,被调用的程序和跳转的地址)已经发生了变化。为了执行检测进程的启动的过程,拦截模块110可以包含拦截启动该进程的函数的驱动程序。在本发明的一个示例性方面中,Windows操作系统(OS)创建进程(CreateProcess)函数启动进程。作为检测进程的启动的结果,模块110确定该进程的唯一标识符。在本发明的一个示例性方面中,这种标识符是结构体“PROCESS_INFORMATION”,其字段特别是在调用CreateProcess函数时被赋值。在本发明的又一示例性方面中,该标识符可以是进程描述(进程句柄)或进程标识符(PID)。在本发明的一个示例性方面中,然后系统的资源可以使用进程标识符来访问启动的来自文件111进程。在一个方面中,系统通过访问地址空间112来访问该进程。
拦截模块110还可以检测在执行进程期间执行的对虚拟地址空间112中的可疑存储地址的访问。在本发明的一个方面中,如果存储地址属于所述进程的地址空间中的可疑存储区域,则该存储地址被认为是可疑的。根据一个方面,可疑存储区域是位于该地址空间中可执行文件的镜像的边界之外且同时是可执行存储区域的存储区域。当存储区域包含可执行代码,而在该存储区域未发现正常的可执行代码、或来自这些存储区域的代码不被执行时,这些存储区域被认为是可疑的。可以将多个可执行文件的镜像加载到地址空间112中。在一些特定示例中,所述多个镜像包括可执行文件111的镜像以及可执行文件的其它镜像(诸如动态库的镜像(其通常位于地址空间112的为动态库保留的动态加载库(DLL)区域中)或其它可执行文件的其它镜像。例如,可以借助于“VirtualQueryEx”函数的调用来确定可疑存储区域,该函数返回指向数据结构“MEMORY_BASIC_INFORMATION.”的指针。“MEMORY_BASIC_INFORMATION”的其中一个字段为“类型(Type)”,对于上述存储区域,其具有值MEM_IMAGE。因此,在一些方面中,VirtualQueryEx函数调用还可以用于确定特定存储地址属于可执行存储区域但不属于从可执行文件加载的存储区域。在一个示例性方面中,可疑存储区域是地址空间112中的不包括受信任存储区域的存储区域。反过来,受信任存储区域可以是:地址空间中的可执行文件111的镜像的附近;已知可执行文件的镜像的附近(这种镜像的散列或任何其它标识符可以存储在远程服务器上的数据库中),已知可执行文件例如动态库;地址空间112中的已知地址的附近。
可执行文件的镜像的附近是其边界远离可执行文件的镜像的边界一定的预定距离的存储区域,所述距离例如,在递减地址的方向上距可执行文件的镜像的起始地址512字节以及在递增地址的方向上距可执行文件的镜像的结束地址512字节。可以如下所述地执行地址的附近的确定。在一个示例性方面中,可执行文件的镜像的附近是与找到所述可执行文件的镜像的存储区域相对应的存储区域。为了确定区域的边界并因此确定特定的可执行文件镜像的附近的存储区域的边界,可以使用VirtualQueryEx函数。VirtualQueryEx返回包含确定存储区域边界所需信息的指向数据结构MEMORY_BASIC_INFORMATION的指针。在一个示例性方面中,存储区域是由页表组成的并且例如借助于VirtualAllocEx函数调用被分配在进程的地址空间112中的存储区域。已知地址是在数据库(诸如恶意代码签名数据库130)中找到其记录的地址。还可以将已知可执行文件的起始地址和结束地址存储在数据库中(诸如存储在恶意代码签名数据库130中)。地址信息可以由计算机技术领域的专家保存在数据库130中并且由拦截模块110使用以确定地址空间112中哪些存储区域是可疑的。
在一个示例性方面中,通过将存储地址写入堆栈来执行访问存储地址。在这种情况下,拦截模块110通过检查堆栈(在地址空间112中的为堆栈保留的存储区域中)上是否存在存储地址来检测该存储地址是否已经被访问。如果堆栈上存在该存储地址,则在执行进程期间访问了堆栈。特别地,存储地址被写入了堆栈。在本发明的一个示例性方面中,拦截模块110通过CaptureStackBackTrace函数调用执行对堆栈上地址的搜索,所述函数调用返回位于堆栈上的作为BackTrace数组(更确切地,数组指针)的输出参数的值(指针,换句话说地址)。因此,认为由所述函数调用获得的存储地址已经被访问。
在又一方面中,拦截模块110通过援引NtQueryInformationThread函数调用来执行对堆栈上的地址的搜索,利用该函数调用可以获得对线程环境块(TEB)上的信息的访问。调用“NtQueryInformationThread”将值写入结构体“ThreadInformation”的字段,该结构体的格式由ThreadInformationClass调用的参数表征。ThreadInformationClass包含堆栈位于其边界内的内存中的地址(用于调用该函数的线程)。具有线程信息以及关于处理器寄存器(至少扩展栈指针寄存器(esp)和扩展基址指针寄存器(ebp))的值的信息,拦截模块110可以检测堆栈上的存储地址(在一个示例中,具体地,类似于可以通过使用CaptureStackBackTrace获得的调用链)。
在一个示例性方面中,堆栈上的地址被认为是位于堆栈上的数字并且其值位于0x00000000到0x8FFFFFFF的范围内。在又一示例性方面中,位于堆栈上的与固定量(诸如2个字节)对齐的地址处的任何值都被认为是地址。
在本发明的一个示例性方面中,拦截模块110能够以给定的周期性执行对堆栈上的地址的搜索,例如,在启动进程之后每5秒执行一次搜索。在本发明的又一示例性方面中,拦截模块110能够在特定的给定事件期间执行对堆栈上的地址的搜索。
在本发明的另一示例性方面中,访问地址由创建线程(CreateThread)函数调用来执行,该函数调用将所述地址作为引数。在又一示例性方面中,访问地址由CreateProcess函数调用来执行。在本发明的又一示例性方面中,访问地址由写入文件(WriteFile)函数调用来执行。通过调用上述函数中的其中一个函数,可以由拦截模块110借助于现有技术中任何已知的方法(诸如,使用驱动程序或通过为相应函数(诸如CreateThread或CreateProcess)的调用建立回调程序(或钩子函数(hook))检测到访问。
在本发明的一个示例性方面中,可执行文件111是受信任文件,并且在这种情况下系统的组件被设计为检测受信任进程的地址空间112中的恶意代码。在本发明的一个示例性方面中,受信任文件111是脚本解释器(诸如PowerShell)的文件。检测PowerShell的地址空间112中的恶意代码是必要的,因为PowerShell脚本通过使用解释器提供的能力能够下载可执行文件(其可能是恶意的),将这些文件保存在专门为此预留的地址空间112的存储区域中(而不将这些文件保存在计算机系统的例如硬盘的存储设备上),并执行操作系统(OS)加载器(有时也称为“可执行文件加载器”,其为操作系统的一部分)的所有功能。因此,在PowerShell中,可以将加载到内存中的可执行文件转换为可用于执行的可执行文件镜像,并且可以将控制从下载的文件转移到可执行代码。因此,在恶意可执行文件被下载到受信任进程的地址空间112中的RAM中而不是被保存在计算机系统的数据存储设备上的情况下,可以使用“无文件(fileless)”恶意软件对计算机系统实施攻击,使得难以使用现有技术中已知的方法来检测恶意代码。
将安全模块120连接到拦截模块110和恶意代码签名数据库130。安全模块120被设计为分析进程的地址空间112中的存储区域。该分析的目的是在地址空间112中、特别是在所述存储区域中检测可执行文件的镜像。在本发明的一个示例性方面中,安全模块120能够检测在特定存储地址的附近的可执行文件的镜像,在本发明的一个特定方面中,该存储地址为可疑存储地址。存储地址的附近是其边界远离所述存储地址特定的距离的存储区域,特定的距离例如在递减地址的方向距该地址64千字节以及在递增地址的方向上距该地址64千字节。因此,地址0x00600000的附近的示例将是位于进程的地址空间112中的、在进程的地址空间112中的地址0x005FFE00和地址0x00610000之间的存储区域。在另一方面中,存储地址的附近是与找到所述存储地址的存储区域(为该区域)相对应的存储区域。为了确定区域的边界并因此确定为特定存储地址的附近的存储区域的边界,可以使用VirtualQueryEx函数,该函数VirtualQueryEx返回包含确定存储区域边界所需信息的指向数据结构MEMORY_BASIC_INFORMATION的指针。在本发明的一个示例性方面中,如果满足以下条件,则安全模块120检测存储区域(例如,在特定地址的附近的存储区域)中的可执行文件镜像:存储区域包含可执行文件、特别是例如Windows操作系统的可执行文件的文件头(header),在可执行文件包含看起来像“MZ”的符号形式的字节系列时存储区域包含可执行文件的文件头,其中,在距该字符串的起点0x3C的距离处,在内存中找到四字节的序列(DWORD),将其值添加到字符串“MZ”的起始地址而在内存中产生地址,在该地址找到以“PE”符号形式出现的该字节序列。
应当注意的是,可以使用现有技术的任何其它已知的方法(特别是使用基于检测存储区域PE中的header或header的一部分的那些方法)以及任何其它方法来检测地址空间112中的可执行文件的镜像。
在一个示例性方面中,一旦在存储区域中或在地址空间112中检测到作为整体的可执行文件的镜像,安全模块120还确定所检测到的可执行文件的镜像的起始地址。
安全模块120还能够检测进程的地址空间112中的恶意代码。由安全模块120对恶意代码的检测发生在地址空间112中,特别是所检测到的存在于地址空间112中的可执行文件的镜像中。在一个示例性方面中,安全模块120不仅检测地址空间112中恶意代码存在的事实,而且还精确地检测可执行文件的镜像如何包含恶意代码(即,安全模块120检测恶意可执行文件的镜像)。一旦检测到地址空间112中的恶意可执行文件的镜像,安全模块120就能够从内存中移除与该恶意文件的镜像有关的数据,特别是移除位于下述存储区域中的数据,该存储区域的起始先前被确定为所检测到恶意文件的镜像的起始地址。因此,通过从进程的地址空间112中移除恶意代码,尤其是恶意可执行文件的镜像(具体地,镜像的数据),可以确保计算机系统的安全性。
在检测恶意代码的进程的过程中,可以使用例如签名分析、启发式分析或任何其它类型的分析。为了检测恶意代码,安全模块120使用保存在恶意代码签名数据库130中的防病毒记录。
恶意代码签名数据库130保存由安全模块120使用的防病毒记录以用于检测恶意代码。在本发明的一个示例性方面中,这些记录是签名。
图2是示出根据本发明的示例性方面的用于检测进程的地址空间中的恶意代码的方法的流程图。示例性地,在步骤201中,拦截模块110用于检测来自可执行文件111的进程的启动,其中,在计算机系统的RAM中创建(通常由OS组件,例如OS加载器创建)进程时形成地址空间112。在本发明的一个示例性方面中,可执行文件111是受信任可执行文件。在本发明的一个示例性方面中,受信任可执行文件111是脚本解释器(诸如PowerShell)的可执行文件。在检测到来自可执行文件111的进程的启动之后,在步骤202中,拦截模块110通过上述方法之一在执行来自可执行文件111的进程的启动期间检测对地址空间112内的可疑地址的访问。已经检测到对可疑地址的访问,拦截模块110向安全模块120发送关于检测到对可疑地址的访问的通知,以及内存中哪些地址是可疑的的指示。在此之后,在步骤203中,安全模块120对地址空间112中的在至少一个可疑地址的附近中的存储区域执行分析,先前在执行从可执行文件111启动的进程期间检测到了对该可疑地址的访问。该分析的目的是检测地址空间112中、特别是可疑地址的附近的存储区域中的可执行文件的镜像,这些可执行文件的镜像是从其它可执行文件下载的(不一定存在于计算机系统的数据存储设备上,但存在于RAM中)。换句话说,安全模块120执行分析以确定除了文件111之外的文件是否具有存在于地址空间112中的镜像。在执行进程期间,可以将其它文件的这种镜像加载到地址空间112中,例如,如果从脚本解释器PowerShell的可执行文件启动进程,则处理转移到该进程中的脚本(有时称为“脚本文件”),例如将转移到该进程的脚本作为命令行的参数进行处理或以其它方式处理。为了与该脚本保持一致(通过解释该脚本的指令),脚本解释器的进程从网络加载文件(上面提到的“其它”文件)并在地址空间112中形成该文件的镜像。如果没有检测到从其它可执行文件加载的可执行文件的镜像,则在步骤206中,检测进程的地址空间中的恶意代码的方法终止。但是如果检测到至少一个可执行文件的镜像,则在步骤207中,安全模块120分析所检测到的可执行文件的镜像以便检测地址空间112中、特别是下载所述可执行文件的镜像的存储区域中的恶意代码。如果没有检测到恶意代码,则在步骤209中,所述方法的操作结束,否则,在步骤210中,安全模块120检测从文件111启动的进程的地址空间112中的恶意代码。
应当注意的是,上述方法使得能够减少用于提供安全性的计算机系统的资源消耗,因为现有技术中已知的技术原型特别需要借助于签名来搜索存储区域中的恶意代码,而不管正在被分析的存储区域的位置如何。在所提出的方法中,检测恶意代码的步骤之前是检测对属于以下这样的存储区域的可疑地址的访问的步骤:可能潜在地包含恶意代码的可执行文件的镜像可能位于该存储区域中。只有在检测到这种访问之后,才执行检测存储区域中的恶意代码(特别是恶意可执行文件的镜像)的步骤。因此,当执行进程时,仅在特定情况下,对进程的地址空间112进行分析以便检测恶意代码,这减少了其上运行有检测进程的地址空间中的恶意代码的系统的装置的计算机系统的资源消耗。
在本发明的一个示例性方面中,在检测到从可执行文件111启动的进程的地址空间112中的恶意代码之后,安全模块120能够停止在其地址空间112发现了恶意代码的进程的执行。因此,安全模块120阻止恶意代码的执行并因此为其中正在运行本发明的组件或系统以及其中正在执行从可执行文件111启动的进程的计算机系统提供安全性。
在又一示例性方面中,安全模块120保存关于URI(统一资源标识符(UniversalResource Identifier),特别是URL或网络地址)的信息,借助于作为安全模块120的一部分的网络驱动器,至少一个检测到的另一可执行文件的镜像从该URI(我们将此URI称为“危险URI”)被下载;并且安全模块120将该关于危险URI的信息、特别是将URI的符号表示或从该URI的符号表示计算出的散列发送到远程安全服务器(图中未示出)。之后,位于计算机系统上的安全模块120、以及部署在其它计算机设备(该其它计算机设备可以从远程安全服务器获取关于所述URI的信息)上的类似安全模块120可以使用关于危险URI(从该危险URI下载其它可执行文件)的所述信息,以用于阻止由具有这些危险URI的特定进程所建立的连接。因此,确保了其上运行安全模块120的计算机系统是安全性,其不允许正在该计算机系统上执行的进程与危险URI(特别是可执行文件)建立连接或者从该危险URI下载数据。
在又一示例性方面中,安全模块120在进程的地址空间112中检测到恶意代码之后将由脚本解释器(诸如PowerShell)下载的脚本识别为恶意的,因为解释器命令的执行导致从受信任文件启动的进程的地址空间中出现了恶意代码。
在本发明的上下文中处理(解释或执行)脚本是指借助于脚本解释器(例如PowerShell)执行脚本命令(指令)。可以通过拦截模块110获取关于精确执行哪个脚本导致检测到恶意代码的信息,例如,从启动来自可执行文件111的进程的命令行的引数中获取该信息。在本发明的又一示例性方面中,可以通过使用拖放(Drag-and-Drop)技术拦截与脚本的打开对应的系统消息(消息WM_DROPFILES)、或者关于数据WM_COPYDATA转移的系统消息来获取此信息。
在又一示例性方面中,可以通过拦截创建文件(CreateFile)函数调用(该CreateFile函数调用在执行从可执行文件111启动的进程期间执行)来获取关于精确执行哪个脚本导致检测到恶意代码的信息。在又一方面中,可以使用现有技术的任何已知的方法来确定在其执行时在其地址空间112中检测到恶意代码的脚本。上述将脚本识别为恶意的方案对于在将执行的脚本识别为恶意的之后所下载的脚本也是有效的。因此,当在执行从脚本解释器的文件启动的进程期间,脚本解释器执行的指令出现在检测到该进程的地址空间112中的恶意代码的时刻之前时,安全模块120检测到脚本是恶意的(换句话说,将该脚本识别为恶意的)。
在本发明的一个示例性方面中,安全模块120移除被识别为恶意的脚本或者将其放置于隔离区中,从而为计算机系统(安全模块120在该计算机系统内操作)提供安全性。在本发明的又一示例性方面中,安全模块120将被识别为恶意的脚本的标识符(例如,校验和、特别是MD5或一些其它种类的散列)发送至远程安全服务器。被识别为恶意的脚本的这种标识符可以由位于计算机系统上的安全模块120使用,并且还可以由部署在其它计算机设备上的类似装置120使用,以检测的计算机设备(安全模块120存在于该计算机设备上)上的恶意脚本。
本发明的上述示例性方面可以解释如下。在计算机系统A上,已经根据上述检测进程的地址空间112中的恶意代码的方法检测到恶意脚本X。该脚本的标识符由位于计算机系统A上的安全模块120发送至远程安全服务器。在本发明的一个示例性方面中,将这种恶意脚本的标识符保存在为此目的提供并位于远程安全服务器上的恶意脚本的标识符的数据库中。在计算机系统B上也有安全模块120,安全模块120可以检查脚本,例如,检查从网络下载的那些脚本,既可以从网络下载完成时检查,也可以在使用脚本解释器启动下载的脚本时检查。如果以某种方式脚本X出现在计算机系统B上,则启动脚本X时,位于计算机系统B上的安全模块120将通过使用由远程安全服务器提供的关于恶意脚本的信息检测到恶意脚本X。保存在远程安全服务器上的恶意脚本的标识符可以由位于计算机系统B上的安全模块12下载至本地存储器中以进一步使用,特别是用于检测恶意脚本。因此,位于计算机系统B上的安全模块120将检测到位于计算机系统B上的恶意脚本。在该检测之后,脚本X可以由安全模块120移除或被放置于隔离区中,从而确保计算机系统B的安全性。
图3示出了根据示例性方面的在其上可以实现用于检测进程的地址空间中的恶意代码的系统和方法的各方面的通用计算机系统20的示例。应当注意的是,计算机系统20可以对应于系统100或如前所述的系统100中的模块。
如图所示,该计算机系统20(其可以是个人计算机或服务器)包括中央处理单元21、系统存储器22和连接各个系统部件的系统总线23,所述系统部件包括与中央处理单元21相关联的存储器。如本领域的普通技术人员将理解的,系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它总线架构交互的本地总线。系统存储器可以包括永久存储器(ROM)24和随机存取存储器(Random-Access Memory,RAM)25。基本输入/输出系统(Basic Input/Output System,BIOS)26可以存储用于在计算机系统20的各元件之间传输信息的基本程序,诸如在使用ROM 24加载操作系统时的那些基本程序。
计算机系统20还可以包括用于读取和写入数据的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28、以及用于读取和写入可移动光盘31(诸如CD-ROM、DVD-ROM和其它光学媒介)的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34连接到系统总线23。驱动器和相应的计算机信息介质是用于存储计算机系统20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。
示例性方面包括使用硬盘27、可移动磁盘29和可移动光盘31通过控制器55连接到系统总线23的系统。本领域普通技术人员将会理解,也可以使用能够以计算机可读形式存储数据的任何类型的介质56(固态驱动器、闪存卡、数字盘、随机存取存储器(RAM)等)。
计算机系统20具有可存储操作系统35的文件系统36、以及附加的程序应用37、其它程序模块38和程序数据39。计算机系统20的用户可以使用键盘40、鼠标42、或本领域普通技术人员已知的任何其它输入设备(诸如但不限于麦克风、操纵杆、游戏控制器、扫描仪等)来输入命令和信息。这种输入设备通常通过串行端口46插入计算机系统20,串行端口46又连接到系统总线,但是本领域的普通技术人员将理解,输入设备也可以以其它方式连接,例如但不限于通过并行端口、游戏端口或通用串行总线(Universal Serial Bus,USB)连接。监控器47或其它类型的显示设备也可以通过诸如视频适配器48的接口连接到系统总线23。除了监控器47之外,个人计算机还可以配备有其它的外围输出设备(未示出),例如扬声器、打印机等。
计算机系统20可以使用与一个或多个远程计算机49的网络连接而在网络环境中操作。一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括在描述计算机系统20的性质时描述的上述元件中的大多数元件或全部元件。计算机网络中还可以存在其它设备,诸如但不限于路由器、网站、对等设备或其它的网络节点。
网络连接可以形成局域计算机网络(Local-Area computer Network,LAN)50和广域计算机网络(Wide-Area computer Network,WAN)。这种网络用在公司计算机网络和公司内部网络中,并且这些网络通常有权访问互联网。在LAN或WAN网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机20系统可以使用调制解调器54或本领域普通技术人员熟知的、实现与广域计算机网络(诸如因特网)的通信的其它模块。可以是内部设备或外部设备的调制解调器54,可以通过串行端口46连接到系统总线23。本领域普通技术人员将理解,所述网络连接是使用通信模块建立一台计算机与另一台计算机的连接的许多熟知方式的非限制性示例。
在各个方面中,本文中所描述的系统和方法可以以硬件、软件、固件或它们的任何组合来实现。如果以软件实现,则上述方法可以作为一个或多个指令或代码而被存储在非暂时性计算机可读介质上。计算机可读介质包括数据存储器。作为示例而非限,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、闪存或其它类型的电存储介质、磁存储介质或光存储介质、或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。
在各个方面中,本发明中所描述的系统和方法可以按照模块来描述。本文中所使用的术语“模块”指的是例如使用硬件(例如通过专用集成电路(Application SpecificIntegrated Circuit,ASIC)或现场可编程门阵列(Field-Programmable Gate Array,FPGA))实现的实际的设备、部件、或部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中仅通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,可以在通用计算机(例如上文在图3中更详细描述的通用计算机)的处理器上实现模块的至少一部分(以及在一些情况下,模块的全部)。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。
为了清楚起见,本文中没有公开各个方面的所有常规特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的常规任务。
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。
Claims (21)
1.一种用于检测进程的地址空间中的恶意代码的方法,包括:
检测来自在计算机系统上执行的受信任可执行文件的受信任进程的启动;
检测对所述受信任进程的地址空间中的可疑存储区域内的可疑地址的访问,其中,所述可疑存储区域是位于表示所述受信任可执行文件的受信任可执行镜像的边界之外的存储区域并且是可执行存储区域;
分析在所述计算机系统中的可疑地址空间的附近内的一个或多个存储区域,以确定表示另一可执行文件的另一可执行镜像是否位于所述一个或多个存储区域中;
分析所述另一可执行镜像以确定所述另一可执行镜像是否包含恶意代码;
当所述另一可执行镜像包含恶意代码时,确定在所述受信任进程的所述地址空间中包含恶意代码;以及
执行从所述受信任进程的所述地址空间中移除、停止或隔离所述恶意代码。
2.根据权利要求1所述的方法,其中,检测所述启动包括:
拦截启动所述进程的函数;
确定所述进程的识别信息;以及
基于所述识别信息确定和访问与可疑活动相关的地址空间。
3.根据权利要求1所述的方法,还包括:
当所述一个或多个存储区域不包含受信任区域时,将所述一个或多个存储区域确定为可疑的。
4.根据权利要求3所述的方法,其中,所述受信任区域包括以下中的一者或多者:
所述受信任进程的所述地址空间中的所述受信任可执行镜像的附近;
已知可执行文件的镜像的附近;以及
所述受信任进程的所述地址空间中的已知地址的附近。
5.根据权利要求4所述的方法,其中,所述附近为距所述受信任可执行镜像的起始地址第一预定数量的字节之内以及距所述受信任可执行镜像的结束地址第二预定数量的字节之内。
6.根据权利要求4所述的方法,还包括:
通过查询关于所述存储区域的页表信息确定所述受信任可执行镜像的附近的边界。
7.根据权利要求1所述的方法,其中,检测对所述受信任进程的所述地址空间的访问包括:
检测所述受信任进程的所述地址空间中的存储地址是否存在于为所述受信任进程的堆栈保留的存储区域中。
8.根据权利要求7所述的方法,还包括:
使用函数调用搜索在所述堆栈上的地址以访问关于在其上正在执行所述进程的线程的信息。
9.根据权利要求1所述的方法,其中,对所述受信任进程的所述地址空间的访问包括:
调用以下函数中的一个或多个函数:“创建线程CreateThread”、“创建进程CreateProcess”以及“写入文件WriteFile”。
10.根据权利要求9所述的方法,其中,检测所述访问包括:
建立用于调用所述一个或多个函数中的每一个函数的回调程序。
11.一种用于检测恶意代码的系统,包括:
恶意代码签名数据库,所述恶意代码签名数据库包含恶意代码的签名;以及
计算机系统,所述计算机系统包括:
拦截模块,所述拦截模块被配置为:
检测来自在计算机系统上执行的受信任可执行文件的受信任进程的启动;
检测对所述受信任进程的地址空间中的可疑存储区域内的可疑地址的访问,其中,所述可疑存储区域是位于表示所述受信任可执行文件的受信任可执行镜像的边界之外的存储区域并且是可执行存储区域;以及
分析所述计算机系统中的可疑地址空间的附近内的一个或多个存储区域,以确定表示另一可执行文件的另一可执行镜像是否位于所述一个或多个存储区域中;以及
安全模块,所述安全模块被配置为:
当所述另一可执行镜像包含恶意代码时,确定在所述受信任进程的所述地址空间中包含恶意代码;以及
执行从所述受信任进程的所述地址空间中移除、停止或隔离所述恶意代码。
12.根据权利要求11所述的系统,其中,所述拦截模块被配置为通过以下方式检测所述启动:
拦截启动所述进程的函数;
确定所述进程的识别信息;以及
基于所述识别信息确定和访问与可疑活动相关的地址空间。
13.根据权利要求11所述的系统,其中,所述安全模块还被配置为:
当所述一个或多个存储区域不包含受信任区域时,将所述一个或多个存储区域确定为可疑的。
14.根据权利要求13所述的系统,其中,所述受信任区域包括以下中的一者或多者:
所述受信任进程的所述地址空间中的所述受信任可执行镜像的附近;
已知可执行文件的镜像的附近;以及
所述受信任进程的所述地址空间中的已知地址的附近。
15.根据权利要求14所述的系统,其中,所述附近为距所述受信任可执行镜像的起始地址第一预定数量的字节之内以及距所述受信任可执行镜像的结束地址第二预定数量的字节之内。
16.根据权利要求14所述的系统,其中,所述拦截模块还被配置为:
通过查询关于所述存储区域的页表信息确定所述受信任可执行镜像的附近的边界。
17.根据权利要求11所述的系统,其中,所述拦截模块被配置为通过以下方式检测对所述受信任进程的所述地址空间的访问:
检测所述受信任进程的所述地址空间中的存储地址是否存在于为所述受信任进程的堆栈保留的存储区域中。
18.根据权利要求17所述的系统,其中,所述拦截模块还被配置为:
使用函数调用搜索在所述堆栈上的地址以访问关于在其上正在执行所述进程的线程的信息。
19.根据权利要求11所述的系统,其中,对所述受信任进程的所述地址空间的访问包括:
调用以下函数中的一个或多个函数:“创建线程CreateThread”、“创建进程CreateProcess”以及“写入文件WriteFile”。
20.根据权利要求19所述的系统,还包括:
通过以下中的一者或两者检测对所述受信任进程的所述地址空间的访问:使用驱动程序;以及建立用于调用所述一个或多个函数中的每一个函数的回调程序。
21.一种计算机可读介质,其上存储有指令,当通过处理器执行所述指令时,所述指令执行用于检测恶意代码的方法,所述方法包括:
检测来自在计算机系统上执行的受信任可执行文件的受信任进程的启动;
检测对所述受信任进程的地址空间中的可疑存储区域内的可疑地址的访问,其中,所述可疑存储区域是位于表示所述受信任可执行文件的受信任可执行镜像的边界之外的存储区域并且是可执行存储区域;
分析所述计算机系统中的可疑地址空间的附近内的一个或多个存储区域,以确定表示另一可执行文件的另一可执行镜像是否位于所述一个或多个存储区域中;
分析所述另一可执行镜像以确定所述另一可执行镜像是否包含恶意代码;
当所述另一可执行镜像包含恶意代码时,确定在所述受信任进程的所述地址空间中包含恶意代码;以及
执行从所述受信任进程的所述地址空间中移除、停止或隔离所述恶意代码。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2017133837A RU2665910C1 (ru) | 2017-09-29 | 2017-09-29 | Система и способ обнаружения вредоносного кода в адресном пространстве процессов |
RU2017133837 | 2017-09-29 | ||
US201762574239P | 2017-10-19 | 2017-10-19 | |
US62/574,239 | 2017-10-19 | ||
US15/925,920 | 2018-03-20 | ||
US15/925,920 US10691800B2 (en) | 2017-09-29 | 2018-03-20 | System and method for detection of malicious code in the address space of processes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109583202A CN109583202A (zh) | 2019-04-05 |
CN109583202B true CN109583202B (zh) | 2023-08-15 |
Family
ID=63449329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811056401.3A Active CN109583202B (zh) | 2017-09-29 | 2018-09-11 | 用于检测进程的地址空间中的恶意代码的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10691800B2 (zh) |
EP (1) | EP3462358B1 (zh) |
JP (1) | JP6700351B2 (zh) |
CN (1) | CN109583202B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11204788B2 (en) * | 2017-12-11 | 2021-12-21 | Comodo Security Solutions, Inc. | Method to protect against fileless infection from command line interpreters or documents |
US11451561B2 (en) * | 2018-09-14 | 2022-09-20 | Cisco Technology, Inc. | Automated creation of lightweight behavioral indicators of compromise (IOCS) |
CN111191227B (zh) * | 2019-07-22 | 2023-12-12 | 腾讯科技(深圳)有限公司 | 阻止恶意代码执行的方法和装置 |
CN112487414B (zh) * | 2019-09-12 | 2024-04-12 | 腾讯科技(深圳)有限公司 | 一种进程命令行的获取方法、装置、设备以及存储介质 |
JP7039632B2 (ja) * | 2020-01-24 | 2022-03-22 | 株式会社Kokusai Electric | 基板処理装置、基板処理方法およびプログラム |
KR20210145935A (ko) * | 2020-05-26 | 2021-12-03 | 라인플러스 주식회사 | Api 정보 군집화를 통한 후킹 판단 방법 및 그 시스템 |
TWI755278B (zh) * | 2021-02-09 | 2022-02-11 | 國立中央大學 | 偵測無檔案惡意軟體的系統及方法 |
US20230185915A1 (en) * | 2021-12-14 | 2023-06-15 | Palo Alto Networks, Inc. | Detecting microsoft windows installer malware using text classification models |
CN114707149B (zh) * | 2022-03-18 | 2023-04-25 | 安芯网盾(北京)科技有限公司 | 一种傀儡进程检测方法、装置、电子设备和存储介质 |
CN115600204A (zh) * | 2022-10-26 | 2023-01-13 | 安芯网盾(北京)科技有限公司(Cn) | 一种检测shellcode恶意代码的方法和系统及计算机设备 |
CN116305291B (zh) * | 2023-05-16 | 2023-07-21 | 北京安天网络安全技术有限公司 | 一种office文档安全存储方法及装置、设备及介质 |
CN117725577A (zh) * | 2023-12-01 | 2024-03-19 | 中金金融认证中心有限公司 | 一种通过内存管理单元突破恶意软件防护的方法、装置 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7603704B2 (en) * | 2002-12-19 | 2009-10-13 | Massachusetts Institute Of Technology | Secure execution of a computer program using a code cache |
US8528087B2 (en) * | 2006-04-27 | 2013-09-03 | Robot Genius, Inc. | Methods for combating malicious software |
WO2009018232A1 (en) * | 2007-07-27 | 2009-02-05 | Redshift Internetworking, Inc | A system and method for unified communications threat management (uctm) for converged voice, video and multi-media over ip flows |
US8387139B2 (en) * | 2008-02-04 | 2013-02-26 | Microsoft Corporation | Thread scanning and patching to disable injected malware threats |
US8612995B1 (en) * | 2009-03-31 | 2013-12-17 | Symantec Corporation | Method and apparatus for monitoring code injection into a process executing on a computer |
US8205257B1 (en) * | 2009-07-28 | 2012-06-19 | Symantec Corporation | Systems and methods for preventing threats originating from a non-process based component hosted by a trusted process |
US9116733B2 (en) * | 2010-05-28 | 2015-08-25 | Bromium, Inc. | Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity |
US20130152200A1 (en) | 2011-12-09 | 2013-06-13 | Christoph Alme | Predictive Heap Overflow Protection |
US9734333B2 (en) | 2012-04-17 | 2017-08-15 | Heat Software Usa Inc. | Information security techniques including detection, interdiction and/or mitigation of memory injection attacks |
GB2510641A (en) | 2013-02-12 | 2014-08-13 | F Secure Corp | Detecting suspicious code injected into a process if function call return address points to suspicious memory area |
US9372989B2 (en) * | 2013-02-15 | 2016-06-21 | Systems of Information Security 2012 | Robust malware detector |
RU2531861C1 (ru) | 2013-04-26 | 2014-10-27 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса |
US9411953B1 (en) | 2013-05-24 | 2016-08-09 | Symantec Corporation | Tracking injected threads to remediate malware |
RU2553056C2 (ru) * | 2013-10-24 | 2015-06-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ сохранения состояния эмулятора и его последующего восстановления |
RU2571723C2 (ru) * | 2013-12-05 | 2015-12-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения |
WO2015113052A1 (en) | 2014-01-27 | 2015-07-30 | Webroot Inc. | Detecting and preventing execution of software exploits |
KR101445634B1 (ko) * | 2014-01-27 | 2014-10-06 | 주식회사 이글루시큐리티 | 프로그램의 취약점을 이용한 공격의 탐지 장치 및 방법 |
WO2016056120A1 (ja) | 2014-10-10 | 2016-04-14 | 株式会社日立製作所 | 情報処理装置、及び情報処理方法 |
US20160232347A1 (en) | 2015-02-09 | 2016-08-11 | Palo Alto Networks, Inc. | Mitigating malware code injections using stack unwinding |
US10474813B1 (en) * | 2015-03-31 | 2019-11-12 | Fireeye, Inc. | Code injection technique for remediation at an endpoint of a network |
CN105760787B (zh) * | 2015-06-30 | 2019-05-31 | 卡巴斯基实验室股份制公司 | 用于检测随机存取存储器中的恶意代码的系统及方法 |
RU2589862C1 (ru) * | 2015-06-30 | 2016-07-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ обнаружения вредоносного кода в оперативной памяти |
US9852295B2 (en) * | 2015-07-14 | 2017-12-26 | Bitdefender IPR Management Ltd. | Computer security systems and methods using asynchronous introspection exceptions |
US10614210B2 (en) | 2015-07-31 | 2020-04-07 | Digital Guardian, Inc. | Systems and methods of protecting data from injected malware |
RU2622627C2 (ru) * | 2015-09-30 | 2017-06-16 | Акционерное общество "Лаборатория Касперского" | Способ обнаружения вредоносных исполняемых файлов, содержащих интерпретатор, посредством комбинирования эмуляторов |
US10387649B2 (en) * | 2015-10-31 | 2019-08-20 | Quick Heal Technologies Private Limited | Detecting malware when executing in a system |
RU2652665C1 (ru) * | 2016-12-12 | 2018-04-28 | Акционерное общество "Лаборатория Касперского" | Система и способ управления транспортным средством |
US10325108B2 (en) * | 2016-12-30 | 2019-06-18 | Intel Corporation | Method and apparatus for range based checkpoints in a storage device |
US10664594B2 (en) * | 2017-06-30 | 2020-05-26 | Microsoft Technology Licensing, Llc | Accelerated code injection detection using operating system controlled memory attributes |
-
2018
- 2018-03-20 US US15/925,920 patent/US10691800B2/en active Active
- 2018-08-24 JP JP2018157018A patent/JP6700351B2/ja active Active
- 2018-08-30 EP EP18191632.1A patent/EP3462358B1/en active Active
- 2018-09-11 CN CN201811056401.3A patent/CN109583202B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US10691800B2 (en) | 2020-06-23 |
JP2019067372A (ja) | 2019-04-25 |
EP3462358B1 (en) | 2020-05-13 |
EP3462358A1 (en) | 2019-04-03 |
JP6700351B2 (ja) | 2020-05-27 |
US20190102552A1 (en) | 2019-04-04 |
CN109583202A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109583202B (zh) | 用于检测进程的地址空间中的恶意代码的系统和方法 | |
CN109684832B (zh) | 检测恶意文件的系统和方法 | |
US10242186B2 (en) | System and method for detecting malicious code in address space of a process | |
JP5326062B1 (ja) | 非実行ファイル検査装置及び方法 | |
RU2531861C1 (ru) | Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса | |
RU2646352C2 (ru) | Система и способ для применения индикатора репутации для облегчения сканирования на наличие вредоносных программ | |
EP3115920B1 (en) | System and method of controlling opening of files by vulnerable applications | |
RU2571723C2 (ru) | Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения | |
JP5265061B1 (ja) | 悪意のあるファイル検査装置及び方法 | |
US8590041B2 (en) | Application sandboxing using a dynamic optimization framework | |
US7934261B1 (en) | On-demand cleanup system | |
CN110119619B (zh) | 创建防病毒记录的系统和方法 | |
RU2724790C1 (ru) | Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине | |
CN109558207B (zh) | 在虚拟机中形成用于进行文件的防病毒扫描的日志的系统和方法 | |
US9910983B2 (en) | Malware detection | |
US11397812B2 (en) | System and method for categorization of .NET applications | |
JP5326063B1 (ja) | デバッグイベントを用いた悪意のあるシェルコードの検知装置及び方法 | |
RU2665910C1 (ru) | Система и способ обнаружения вредоносного кода в адресном пространстве процессов | |
US9122872B1 (en) | System and method for treatment of malware using antivirus driver | |
RU2659738C1 (ru) | Система и способ обнаружения вредоносного скрипта | |
RU2592383C1 (ru) | Способ формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти |
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 |