CN112395609A - 应用层shellcode的检测方法及装置 - Google Patents
应用层shellcode的检测方法及装置 Download PDFInfo
- Publication number
- CN112395609A CN112395609A CN201910755436.4A CN201910755436A CN112395609A CN 112395609 A CN112395609 A CN 112395609A CN 201910755436 A CN201910755436 A CN 201910755436A CN 112395609 A CN112395609 A CN 112395609A
- Authority
- CN
- China
- Prior art keywords
- memory page
- operation behavior
- preset memory
- shellcode
- behavior
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 25
- 230000006399 behavior Effects 0.000 claims abstract description 226
- 238000012544 monitoring process Methods 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000002159 abnormal effect Effects 0.000 claims abstract description 13
- 230000001960 triggered effect Effects 0.000 claims description 32
- 230000007246 mechanism Effects 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 230000005856 abnormality Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
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/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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
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)
- Computing Systems (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种应用层shellcode的检测方法、装置、计算机设备及计算机存储介质,涉及信息网络安全技术领域,可以对操作系统应用层的特定内存页进行监控,能够及时检测出异常的操作行为,有效发现应用层shellcode攻击行为。所述方法包括:通过在shellcode执行攻击行为定位应用层关键动态链接库的路径上选取预设内存页,将所述预设内存页设置为指定属性;基于设置的指定属性,对应用模块所在预设内存页的操作行为进行监控;若发生对应用模块所在预设内存页的访问企图,则对访问行为进行合法性判定,以检测shellcode执行的攻击行为。
Description
技术领域
本发明涉及信息网络安全技术领域,尤其是涉及应用层shellcode的检测方法、装置、计算机设备及计算机存储介质。
背景技术
在现有的各种计算机软件中,由于系统开放性、交互性和软件自身的缺陷导致计算机或者服务系统容易遭受恶意代码和漏洞的攻击,特别是系统漏洞触发外地代码shellcode的执行时,shellcode是溢出恶意攻击行为的核心代码,攻击者可以利用shellcode进入宿主进程,对宿主进程发起攻击,从而实现对操作系统的控制。
应用层是操作系统或网络应用程序提供网络服务的接口,主要负责人机交互工作。通常情况下,一旦应用层出现漏洞,被shellcode发起的攻击行为所控制,危害是极其严重的。目前,利用系统漏洞向应用层动态链接库直接注入shellcode的方式是最常见的攻击手段。然而,当前的防护手段只能从后续攻击行为上来判断或阻拦,针对未知的攻击行为,无法做到攻击效果的预判,使得攻击者的异常行为很难被检测,无法及时发现攻击行为的执行。
发明内容
有鉴于此,本发明提供了一种应用层shellcode的检测方法、装置、计算机设备及计算机存储介质,主要目的在于对操作系统应用层的特定内存页进行监控,能够及时检测出异常的操作行为,有效发现应用层shellcode攻击行为的执行。
依据本发明一个方面,提供了一种应用层shellcode的检测方法,该方法包括:
通过在shellcode执行攻击行为定位应用层动态链接库的路径上选取预设内存页,将所述预设内存页设置为指定属性;
基于设置的指定属性,对应用模块所在预设内存页的操作行为进行监控;
若发生对应用模块所在预设内存页的操作行为,则对应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为。
进一步地,所述基于设置的指定属性,对应用模块所在预设内存页的操作行为进行监控,包括:
通过将应用层关键动态链接库所在的预设内存页设置为保护属性标志,以使得所述应用模块所在预设内存页的操作行为会触发异常;
捕获对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常;
若是,则确定发生应用模块所在预设内存页的操作行为。
进一步地,所述捕获对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常,包括:
利用乒乓监控机制处理捕获的对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常。
进一步地,所述利用乒乓监控机制处理捕获的对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常,包括:
利用乒乓监控机制将应用层关键动态链接库的PE头所在的内存设置为乒页;
利用乒乓监控机制将应用层关键动态链接库的导出表所在的内存页设置为乓页;
监控关键动态链接库中是否发生对应用模块所在乓页的操作行为而触发的异常。
进一步地,所述若是,则确定发生应用模块所在预设内存页的操作行为,包括:
若关键动态链接库中发生对应用模块所在乓页的操作行为而触发的异常,则确定发生对应用模块所在预设内存页的操作行为。
进一步地,所述对应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为,包括:
将对应用模块所在预设内存页的操作行为与预定行为库中的正常操作行为进行比对,所述预定行为库中保存有适用于不同应用模块所在预设内存页的正常操作行为;
将比对结果一致的应用模块所在预设内存页的操作行为判定为正常操作行为;
将比对结果不一致的应用模块所在预设内存页的操作行为判定为发生shellcode执行的攻击行为。
进一步地,在所述将比对结果不一致的应用模块所在预设内存页的操作行为判定为发生shellcode执行的攻击行为之后,所述方法还包括:
对所述shellcode执行的攻击行为进行防护与拦截处理。
依据本发明另一个方面,提供了一种应用层shellcode的检测装置,所述装置包括:
设置单元,用于通过在shellcode执行攻击行为定位应用层动态链接库的路径上选取预设内存页,将所述预设内存页设置为指定属性;
监控单元,用于基于设置的指定属性,对应用模块所在预设内存页的操作行为进行监控;
判定单元,用于若发生对应用模块所在预设内存页的操作行为,则对应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为。
进一步地,所述监控单元包括:
设置模块,用于通过将应用层关键动态链接库所在的预设内存页设置为保护属性标志,以使得所述应用模块所在预设内存页的操作行为会触发异常;
监控模块,用于捕获对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常;
确定模块,用于若发生对应用模块所在预设内存页的操作行为而触发的异常,则确定发生应用模块所在预设内存页的操作行为。
进一步地,所述监控模块,具体利用乒乓监控机制处理捕获的对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常。
进一步地,所述监控模块,具体还用于利用乒乓监控机制将应用层关键动态链接库的PE头所在的内存设置为乒页;
所述监控模块,具体还用于利用乒乓监控机制将应用层关键动态链接库的导出表所在的内存页设置为乓页;
所述监控模块,具体还用于监控关键动态链接库中是否发生对应用模块所在乓页的操作行为而触发的异常。
进一步地,所述确定模块,具体用于若关键动态链接库中发生对应用模块所在乓页的操作行为而触发的异常,则确定发生对应用模块所在预设内存页的操作行为。
进一步地,所述判定单元包括:
比对模块,用于将对应用模块所在预设内存页的操作行为与预定行为库中的正常操作行为进行比对,所述预定行为库中保存有适用于不同应用模块所在预设内存页的正常操作行为;
第一判定模块,用于将比对结果一致的应用模块所在预设内存页的操作行为判定为正常操作行为;
第二判定模块,用于将比对结果不一致的应用模块所在预设内存页的操作行为判定为发生shellcode执行的攻击行为。
进一步地,所述装置还包括:
处理单元,用于在将比对结果不一致的应用模块所在预设内存页的操作行为判定为发生shellcode执行的攻击行为之后,对所述shellcode执行的攻击行为进行防护与拦截处理。
依据本发明又一个方面,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现应用层shellcode的检测方法的步骤。
依据本发明再一个方面,提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现应用层shellcode的检测方法的步骤。
借由上述技术方案,本发明提供一种应用层shellcode的检测方法及装置,与现有技术中通过ASLR技术进行应用层shellcode的检测的方式相比,由于shellcode在产生攻击行为时需要对应用模块所在预设内存页产生特定的行为操作,进而拿到导出表来寻找特定的API,本发明实施例利用内存监控技术对应用模块所在预设内存页的操作行为进行监控。与此同时,在发生应用模块所在预设内存页的操作行为时,并不能说明一定是应用层shellcode执行的攻击行为,进一步通过对该应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为是否发生,进而及时检测出异常的操作行为,有效发现应用层shellcode攻击行为的执行。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种应用层shellcode的检测方法流程示意图;
图2示出了本发明实施例提供的一种对应用模块所在预设内存页的操作行为进行监控过程的流程示意图;
图3示出了本发明实施例提供的利用乒乓监控机制对应用模块所在预设内存页进行监控方法流程示意图;
图4示出了本发明实施例提供的一种应用层shellcode的检测装置结构示意图;
图5示出了本发明实施例提供的另一种应用层shellcode的检测装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如背景技术所述,为了绕过ASLR技术,shellcode需要对应用模块所在预设内存页进行操作行为,从而获取系统API地址的技术,目前,针对绕过 ASLR机制,并不存在有效的防护技术,使得攻击者的异常行为很难被检测,无法及时发现应用层shellcode攻击行为的执行。
为了解决上述技术问题,本发明实施例提供了一种应用层shellcode的检测方法,可以及时检测出异常的操作行为,有效发现应用层shellcode攻击行为的执行,如图1所示,该方法包括:
101、通过在shellcode执行攻击行为定位应用层动态链接库的路径上选取预设内存页,将所述预设内存页设置为指定属性。
其中,将预设内存页设置为指定属性可以为PGEG_GUARD属性,能够监控预设内存页的操作行为,这里对指定属性不进行限定,只要是能够用于对预设内存页进行监控的方式皆可适用于本申请。
对于本发明实施例,预设内存页面通常为应用层shellcode在执行攻击时可能会利用的内存页,通过对预设内存页的操作行为注入shellcode执行的攻击行为。shellcode是一段代码(也可以是填充数据),可以利用软件漏洞而执行的代码,通常为16进制的机器码,因为经常让攻击者获得shell文件而得名。因此,本申请通过在shellcode执行攻击行为定位应用层动态链接库的路径上选取预设内存页,将预设内存页设置为指定属性以实现对其进行监控。
102、基于设置的指定属性,对应用模块所在预设内存页的操作行为进行监控。
其中,对应用模块所在预设内存页的操作行为可以为对应用模块所在预设内存页中的内存信息进行的操作,例如,读取操作、写入操作和执行操作等操作行为,本发明实施例不进行限定。
103、若发生对应用模块所在预设内存页的操作行为,则对应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为。
应说明的是,系统执行正常操作所产生对应用模块所在预设内存页的操作行为,与shellcode执行的攻击行为所产生对应用模块所在预设内存页的操作行为有着完全不同的过程,例如,系统执行正常操作产生应用模块所在预设内存页的写入行为需要调用函数A,而shellcode攻击者由于不知道、也没有正常途径去调用函数A,所以会使用其他的方式去产生应用模块所在预设内存页的写入行为,以获取相应的内核基址,从而获取相应的API地址。因此,在发生应用模块所在预设内存页的操作行为后,通过对应用模块所在预设内存页的操作行为进行合法性判定,即可检测是否发生shellcode执行的攻击行为。
本发明提供一种应用层shellcode的检测方法,与现有技术中通过ASLR技术进行应用层shellcode的检测的方式相比,由于shellcode在产生攻击行为时需要对应用模块所在预设内存页产生特定的行为操作,进而拿到导出表来寻找特定的API,本发明实施例利用内存监控技术对应用模块所在预设内存页的操作行为进行监控。与此同时,在发生应用模块所在预设内存页的操作行为时,并不能说明一定是应用层shellcode执行的攻击行为,进一步通过对该应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为是否发生,进而及时检测出异常的操作行为,有效发现应用层 shellcode攻击行为的执行。
通常情况下,ShellCode本身是位置无关的,并不能直接调用系统API,另外Windows系统引入了新的安全机制,如ASLR等技术,使得系统API的位置是随机变化的,每次程序启动均不同。ShellCode只能利用一些固定的锚点,如TEB、PEB等信息,进行进程所加载模块的扫描,然后定位关键的系统API的地址。
如果攻击者利用ShellCode从程序的固定锚点如TEB找寻并定位关键 DLL的关键函数(如Kernel32.dll的CreateFileW函数)。系统将TIB(Thread Information Block)存放于固定地址fs:0,通过Tib->Self即可定位线程环境块 Teb,依次类推再定位到进程环境块Peb。Peb结构中存放着本进程所有已加载模块的列表,攻击者就是利用这个模块列表定位到Kernl32.dll,然后直接解析Kernel32.dll镜像的PE结构,并在Kernel32.dll的导出表中通过名字定位函数CreateFileW的地址。同样的方法可能取得更多函数,如LoadLibrary以及 CreateProcess等函数,从面达成攻击扩大化前的准备工作。
本发明实施例通过利用ShellCode必须定位关键系统DLL及关键函数这一点,利用Guard Page机制将这个通道卡住。所有触发Guard Page陷阱的访问均能被我们所捕获,正常的访问如Ntdll!RtlImageNtHeader或Ntdll! RtlImageNtHeaderEx,除此之外的均属于可疑行为。
进一步地,为了更好地说明上述应用层shellcode的检测过程,作为对上述实施例的细化和扩展,在对应用模块所在预设内存页的操作行为进行监控的过程中,可以采用多种内存监控技术,作为一种内存监控技术的具体实施过程,如图2所示,具体包括:
201、通过将应用层关键动态链接库所在的预设内存页设置为保护属性标志,以使得所述应用模块所在预设内存页的操作行为会触发异常。
在应用层进行shellcode检测时,动态链接库作为虚拟内存的一部分,总是被映射到其他应用程序的地址空间中,当做其他应用程序的一部分运行,每个动态链接库文件有许多节组成,根据每个节的属性设置其对内存页的读写属性,这里只需要将关键动态链接库所在的预设内存页设置保护属性标志,该保护属性标志可以实现对预设内存页的攻击行为进行监控。
具体应用场景中,可以将Ntdll.dll、Kernel32.dll等关键DLL的“0x5a4d”所在的内存页,设置为PGEG_GUARD属性,PGEG_GUARD作为访问的保护属性标志,可以使应用程序能够在内存页中的任何一个字节被访问时得到异常通知。
202、捕获对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常。
由于在关键动态链接库设置了保护属性标志,一但发生对于关键动态链接库所在的预设内存页的操作,便会出发异常处理,本申请通过不会对关键动态链接库所在的内存页的操作,从而当操作发生异常时,便可以判定发生了对预设内存页的攻击行为而触发的异常。
203、若是,则确定发生应用模块所在预设内存页的操作行为。
若发生对应用模块所在预设内存页的操作行为而触发的异常,则说明可能存在shellcode在执行攻击行为过程中,触发了对应用模块所在预设内存页的操作行为,当然若未发生对应用模块所在预设内存页的操作行为而触发的缺页中断,而是操作了一个并不存在的内存页而触发异常,则放行该缺页中断。
对于本发明实施例,具体捕获对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常可以包括如下实现步骤:利用乒乓监控机制将应用层关键动态链接库的PE头所在的内存设置为乒页;利用乒乓监控机制将应用层关键动态链接库的导出表所在的内存页设置为乓页;监控关键动态链接库中是否发生对应用模块所在乓页的操作行为而触发的异常,从而监控是否发生对应用模块所在预设内存页的操作行为而触发的异常。
为了进一步描述捕获对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常的具体实施过程,本发明实施例提供了一种利用乒乓监控机制对应用模块所在预设内存页进行监控,如图3所示,将关键DLL的PE头(MZ标志)所在页面设置为“乒页”,并将关键DLL的导出表位置设置为“乓页”。当“乒页”触发的时候会自动开启“乓页”的监控,反之亦然。不同的一点是,导出表是我们要关注的核心点,任何访问导出表即“乓页”的企图均要接受审查,只要不是合法来源均被认定为可疑问攻击。具体当应用模块所在预设内存页触发事件异常时,若检测为“乒页”,则恢复乒页并开启乓页,进一步异常处理结束;若检测不为“乒页”,进一步检测是否为“乓页”,若检测不为“乓页”,则说明该异常并非对应用模块所在预设内存页的操作行为所触发,系统默认异常处理例程,若检测为“乓页”,则恢复乓页并开启乒页,进一步检测是否存在异常来源,若存在,则进行信息报警,若不存在,则异常处理结束。
对于本发明实施例,具体对应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为的过程可以具体包括如下步骤:首先将对应用模块所在预设内存页的操作行为与预定行为库中的正常操作行为进行比对,该预定行为库中保存有适用于不同应用模块所在预设内存页的合法操作行为;对于比对结果一致的时候,说明该操作行为属于合法操作行为,进一步将比对结果一致的应用模块所在预设内存页的操作行为判定为合法操作行为;对于比对结果不一致的时候,说明该操作行为不属于合法行为,进一步将比对结果不一致的应用模块所在预设内存页的操作行为判定为 shellcode执行的攻击行为。
进一步地,为了保证操作系统的安全性,可以在将比对结果为不一致的操作行为确定为shellcode执行的攻击行为之后,对shellcode执行的攻击行为进行防护与拦截处理。具体地,当攻击行为确定为shellcode的攻击行为后,可以利用设置到内存写入权限异常调回函数获取攻击行为对应的系统上下文关键信息,拦截shellcode对应用模块所在预设内存页的攻击行为,进一步对攻击行为对应系统上下文关键信息进行处理。
进一步地,作为图1所述方法的具体实现,本发明实施例提供了一种应用层shellcode的检测装置,如图4所示,所述装置包括:设置单元31、监控单元32、判定单元33。
设置单元31,可以用于通过在shellcode执行攻击行为定位应用层动态链接库的路径上选取预设内存页,将所述预设内存页设置为指定属性;
监控单元32,可以用于基于设置的指定属性,对应用模块所在预设内存页的操作行为进行监控;
判定单元33,可以用于若发生对应用模块所在预设内存页的操作行为,则对应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode 执行的攻击行为。
本发明提供一种应用层shellcode的检测装置,与现有技术中通过ASLR技术进行应用层shellcode的检测的方式相比,由于shellcode在产生攻击行为时需要对应用模块所在预设内存页产生特定的行为操作,进而拿到导出表来寻找特定的API,本发明实施例利用内存监控技术对应用模块所在预设内存页的操作行为进行监控。与此同时,在发生应用模块所在预设内存页的操作行为时,并不能说明一定是应用层shellcode执行的攻击行为,进一步通过对该应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为是否发生,进而及时检测出异常的操作行为,有效发现应用层shellcode攻击行为的执行。
作为图4中所示shellcode的检测装置的进一步说明,图5是根据本发明实施例另一种shellcode的检测装置的结构示意图,如图5所示,针对一种对预设内存页的操作行为进行监控的实施过程,所述监控单元32包括:
设置模块321,可以用于通过将应用层关键动态链接库所在的预设内存页设置为保护属性标志,以使得所述应用模块所在预设内存页的操作行为会触发异常;
监控模块322,可以用于捕获对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常;
确定模块323,可以用于若发生对应用模块所在预设内存页的操作行为而触发的异常,则确定发生应用模块所在预设内存页的操作行为。
在具体应用场景中,所述监控模块322,具体可以利用乒乓监控机制处理捕获的对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常。
在具体应用场景中,所述监控模块322,具体还可以用于利用乒乓监控机制将应用层关键动态链接库的PE头所在的内存设置为乒页;
所述监控模块322,具体还可以用于利用乒乓监控机制将应用层关键动态链接库的导出表所在的内存页设置为乓页;
所述监控模块322,具体还可以用于监控关键动态链接库中是否发生对应用模块所在乓页的操作行为而触发的异常。
在具体应用场景中,所述确定模块323,具体可以用于若关键动态链接库中发生对应用模块所在乓页的操作行为而触发的异常,则确定发生对应用模块所在预设内存页的操作行为。
在上述图5的基础上,所述判定单元33包括:
比对模块331,可以用于将对应用模块所在预设内存页的操作行为与预定行为库中的正常操作行为进行比对,所述预定行为库中保存有适用于不同应用模块所在预设内存页的正常操作行为;
第一判定模块332,可以用于将比对结果一致的应用模块所在预设内存页的操作行为判定为正常操作行为;
第二判定模块333,可以用于将比对结果不一致的应用模块所在预设内存页的操作行为判定为发生shellcode执行的攻击行为。
在上述图5的基础上,所述装置还包括:
处理单元34,可以用于在将比对结果不一致的应用模块所在预设内存页的操作行为判定为发生shellcode执行的攻击行为之后,对所述shellcode执行的攻击行为进行防护与拦截处理。
需要说明的是,本实施例提供的一种应用层shellcode的检测装置所涉及各功能单元的其他相应描述,可以参考图1-图3中的对应描述,在此不再赘述。
基于上述如图1-图3所示方法,相应的,本实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1-图3所示的应用层shellcode的检测方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1-图3所示的方法,以及图4-图5所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图 1-图3所示的应用层shellcode的检测方法。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频 (RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的应用层shellcode的检测的实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本申请的技术方案,与目前现有技术相比,由于shellcode在产生攻击行为时需要对应用模块所在预设内存页产生特定的行为操作,进而拿到导出表来寻找特定的API,本发明实施例利用内存监控技术对应用模块所在预设内存页的操作行为进行监控。与此同时,在发生应用模块所在预设内存页的操作行为时,并不能说明一定是应用层shellcode执行的攻击行为,进一步通过对该应用模块所在预设内存页的操作行为进行合法性判定,以检测 shellcode执行的攻击行为是否发生,进而及时检测出异常的操作行为,有效发现应用层shellcode攻击行为的执行。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种应用层shellcode的检测方法,其特征在于,所述方法包括:
通过在shellcode执行攻击行为定位应用层动态链接库的路径上选取预设内存页,将所述预设内存页设置为指定属性;
基于设置的指定属性,对应用模块所在预设内存页的操作行为进行监控;
若发生对应用模块所在预设内存页的操作行为,则对应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为。
2.根据权利要求1所述的方法,其特征在于,所述基于设置的指定属性,对应用模块所在预设内存页的操作行为进行监控,包括:
通过将应用层关键动态链接库所在的预设内存页设置为保护属性标志,以使得所述应用模块所在预设内存页的操作行为会触发异常;
捕获对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常;
若是,则确定发生应用模块所在预设内存页的操作行为。
3.根据权利要求1所述的方法,其特征在于,所述捕获对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常,包括:
利用乒乓监控机制处理捕获的对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常。
4.根据权利要求3所述的方法,其特征在于,所述利用乒乓监控机制处理捕获的对所述应用层关键动态链接库所在的内存页的操作行为,监控是否发生对应用模块所在预设内存页的操作行为而触发的异常,包括:
利用乒乓监控机制将应用层关键动态链接库的PE头所在的内存设置为乒页;
利用乒乓监控机制将应用层关键动态链接库的导出表所在的内存页设置为乓页;
监控关键动态链接库中是否发生对应用模块所在乓页的操作行为而触发的异常。
5.根据权利要求4所述的方法,其特征在于,所述若是,则确定发生应用模块所在预设内存页的操作行为,包括:
若关键动态链接库中发生对应用模块所在乓页的操作行为而触发的异常,则确定发生对应用模块所在预设内存页的操作行为。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述对应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为,包括:
将对应用模块所在预设内存页的操作行为与预定行为库中的正常操作行为进行比对,所述预定行为库中保存有适用于不同应用模块所在预设内存页的正常操作行为;
将比对结果一致的应用模块所在预设内存页的操作行为判定为正常操作行为;
将比对结果不一致的应用模块所在预设内存页的操作行为判定为发生shellcode执行的攻击行为。
7.根据权利要求6述的方法,其特征在于,在所述将比对结果不一致的应用模块所在预设内存页的操作行为判定为发生shellcode执行的攻击行为之后,所述方法还包括:
对所述shellcode执行的攻击行为进行防护与拦截处理。
8.一种应用层shellcode的检测装置,其特征在于,所述装置包括:
设置单元,用于通过在shellcode执行攻击行为定位应用层动态链接库的路径上选取预设内存页,将所述预设内存页设置为指定属性;
监控单元,用于基于设置的指定属性,对应用模块所在预设内存页的操作行为进行监控;
判定单元,用于若发生对应用模块所在预设内存页的操作行为,则对应用模块所在预设内存页的操作行为进行合法性判定,以检测shellcode执行的攻击行为。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910755436.4A CN112395609B (zh) | 2019-08-15 | 2019-08-15 | 应用层shellcode的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910755436.4A CN112395609B (zh) | 2019-08-15 | 2019-08-15 | 应用层shellcode的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112395609A true CN112395609A (zh) | 2021-02-23 |
CN112395609B CN112395609B (zh) | 2023-06-09 |
Family
ID=74601721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910755436.4A Active CN112395609B (zh) | 2019-08-15 | 2019-08-15 | 应用层shellcode的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395609B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115481397B (zh) * | 2022-08-31 | 2023-06-06 | 中国人民解放军战略支援部队信息工程大学 | 基于内存结构逆向分析的代码注入攻击取证检测方法与系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154180A (zh) * | 2006-09-29 | 2008-04-02 | 大唐移动通信设备有限公司 | 一种任务栈溢出的监测方法 |
CN102737188A (zh) * | 2012-06-27 | 2012-10-17 | 北京奇虎科技有限公司 | 检测恶意网页的方法及装置 |
CN105718374A (zh) * | 2016-01-26 | 2016-06-29 | 国家信息技术安全研究中心 | 一种热点模块指令跟踪的方法及系统 |
CN109033828A (zh) * | 2018-07-25 | 2018-12-18 | 山东省计算中心(国家超级计算济南中心) | 一种基于计算机内存分析技术的木马检测方法 |
CN109471800A (zh) * | 2018-10-31 | 2019-03-15 | 中国航天系统科学与工程研究院 | 一种基于Windows操作系统的软件无限断点设置方法 |
CN109784062A (zh) * | 2018-12-29 | 2019-05-21 | 360企业安全技术(珠海)有限公司 | 漏洞检测方法及装置 |
CN110096871A (zh) * | 2019-05-10 | 2019-08-06 | 南京大学 | 一种基于硬件虚拟化的多核环境进程内核栈保护方法 |
-
2019
- 2019-08-15 CN CN201910755436.4A patent/CN112395609B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154180A (zh) * | 2006-09-29 | 2008-04-02 | 大唐移动通信设备有限公司 | 一种任务栈溢出的监测方法 |
CN102737188A (zh) * | 2012-06-27 | 2012-10-17 | 北京奇虎科技有限公司 | 检测恶意网页的方法及装置 |
CN105718374A (zh) * | 2016-01-26 | 2016-06-29 | 国家信息技术安全研究中心 | 一种热点模块指令跟踪的方法及系统 |
CN109033828A (zh) * | 2018-07-25 | 2018-12-18 | 山东省计算中心(国家超级计算济南中心) | 一种基于计算机内存分析技术的木马检测方法 |
CN109471800A (zh) * | 2018-10-31 | 2019-03-15 | 中国航天系统科学与工程研究院 | 一种基于Windows操作系统的软件无限断点设置方法 |
CN109784062A (zh) * | 2018-12-29 | 2019-05-21 | 360企业安全技术(珠海)有限公司 | 漏洞检测方法及装置 |
CN110096871A (zh) * | 2019-05-10 | 2019-08-06 | 南京大学 | 一种基于硬件虚拟化的多核环境进程内核栈保护方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115481397B (zh) * | 2022-08-31 | 2023-06-06 | 中国人民解放军战略支援部队信息工程大学 | 基于内存结构逆向分析的代码注入攻击取证检测方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112395609B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10083294B2 (en) | Systems and methods for detecting return-oriented programming (ROP) exploits | |
US9516056B2 (en) | Detecting a malware process | |
JP6680437B2 (ja) | コンピューティングプロセス内の未知の脆弱性を検出するためのシステム及び方法 | |
US9171157B2 (en) | Method and system for tracking access to application data and preventing data exploitation by malicious programs | |
US7721333B2 (en) | Method and system for detecting a keylogger on a computer | |
US8453244B2 (en) | Server, user device and malware detection method thereof | |
US9183392B2 (en) | Anti-malware tool for mobile apparatus | |
CN113632432B (zh) | 一种攻击行为的判定方法、装置及计算机存储介质 | |
CN109784051B (zh) | 信息安全防护方法、装置及设备 | |
JP2011258019A (ja) | 異常検知装置、異常検知プログラムおよび異常検知方法 | |
Laurén et al. | An interface diversified honeypot for malware analysis | |
US20130326627A1 (en) | Apparatus and method for detecting vulnerability | |
Ramachandran et al. | Android anti-virus analysis | |
CN112395609B (zh) | 应用层shellcode的检测方法及装置 | |
CN111783087A (zh) | 可执行文件恶意执行的检测方法及装置、终端、存储介质 | |
CN113646763B (zh) | shellcode的检测方法及装置 | |
CN105791221B (zh) | 规则下发方法及装置 | |
CN112395610B (zh) | 内核层shellcode的检测方法及装置 | |
CN111177726A (zh) | 一种系统漏洞检测方法、装置、设备及介质 | |
Shi et al. | Design of a comprehensive virtual machine monitoring system | |
CN112395599B (zh) | 系统内核数据的攻击检测方法及装置、存储介质、计算机设备 | |
Humphrey et al. | Unified, multi-level intrusion detection in private cloud infrastructures | |
CN114282178A (zh) | 一种软件自防护方法、装置、电子设备及存储介质 | |
Anjikar | Detection and Analysis of Rootkits on Android Smart Phones | |
KR20210054254A (ko) | 랜섬웨어 감지 장치 및 이에 의한 랜섬웨어 감지 방법 |
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 |