CN103984898A - 一种喷射模式攻击的检测方法和装置 - Google Patents
一种喷射模式攻击的检测方法和装置 Download PDFInfo
- Publication number
- CN103984898A CN103984898A CN201410236293.3A CN201410236293A CN103984898A CN 103984898 A CN103984898 A CN 103984898A CN 201410236293 A CN201410236293 A CN 201410236293A CN 103984898 A CN103984898 A CN 103984898A
- Authority
- CN
- China
- Prior art keywords
- mark
- less
- memory block
- distribution probability
- threshold value
- 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
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
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)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例涉及计算机安全技术领域,尤其涉及一种喷射模式攻击的检测方法和装置,用以解决仅通过检测恶意攻击指令shellcode是否可执行来判断是否存在喷射模式攻击的方法会出现检测失效的问题。本发明实施例的方法包括:对敏感函数的调用情况进行检测;若敏感函数的调用异常且产生异常内存块的累计次数不小于第一阈值,则对敏感函数调用过程中产生的异常内存块进行时间戳检测,依据时间戳检测的结果生成第一分数;若第一分数不小于第二阈值,则确定应用程序存在喷射模式的攻击。由于通过对异常内存块的时间戳进行检测即可判断出是否存在喷射模式的攻击,从而减少了检测失效的情况的发生。
Description
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种喷射模式攻击的检测方法和装置。
背景技术
随着计算机技术的不断发展,计算机网络已经成为人们获取信息的主要工具,随之而来的是对计算机安全技术需求的不断提高。计算机病毒、木马、间谍软件和恶意代码是近几年来计算机网络面对的主要威胁,其中spray(喷射)型网页木马是近期出现的一种新型木马。spray包括多种模式,如Heapspray(堆喷射)、object spray(对象喷射)、jit spray(just in time spray,适时喷射)等。spray型网页木马因其通用性强、生成恶意网页简单而被广泛的采用,因此spray型网页木马的检测已是迫在眉睫的任务。
Heapspray型网页木马会在内存中填充大量无害的x86指令(如NOP、XOREAX,EAX等),并在其后附加shellcode(恶意攻击指令),这样在溢出成功并改变CPU的指令寄存器(EIP)时,只要EIP修改为内存堆上的一个地址,执行路径就会以很大的概率跳转到这些x86指令中,并最终执行shellcode。通过这种方式,在构造攻击代码时,攻击者可以不必精确计算溢出点和跳转地址,这就大大提高了攻击代码的通用性和成功率。其它模式的spray型网页木马,如object spray(对象喷射)、jit spray(just in time spray,适时喷射)等与Heapspray的特征是一样的,即利用网页漏洞来实现代码溢出,进而达到恶意攻击的目的。
现有技术主要通过检测shellcode是否可执行来判断是否存在spray型网页木马。在shellcode被加密或shellcode没有存放在网页中,而是存放在applet(应用程序)/activeX(控件)中的情况下,则该检测方法会失效。而在其它模式的spray型网页木马中,可能没有存在传统的shellcode,只有object spray(对象喷射),目的是泄露地址,则此时通过检测shellcode是否可执行来判断是否存在spray型网页木马的检测手段就会失效。
综上所述,目前仅通过检测shellcode是否可执行来判断是否存在spray模式的攻击的方法对某些spray模式的攻击会出现检测失效的情况。
发明内容
本发明实施例提供一种喷射模式攻击的检测方法和装置,用以解决仅通过检测shellcode是否可执行来判断是否存在喷射模式的攻击的方法对某些喷射模式的攻击会出现检测失效的情况的问题。
本发明实施例提供的一种喷射模式攻击的检测方法,包括以下步骤:
以仿真方式执行应用程序,并在应用程序执行过程中执行以下操作:
对敏感函数的调用情况进行检测,敏感函数是用于管理内存的函数;
当检测到敏感函数调用异常且产生异常内存块时,确定敏感函数调用异常且产生异常内存块的累计次数;
若敏感函数的调用异常且产生异常内存块的累计次数不小于第一阈值,则对敏感函数调用过程中产生的异常内存块进行时间戳检测,依据时间戳检测的结果生成第一分数;
若第一分数不小于第二阈值,则确定应用程序存在喷射模式的攻击。
较佳的,对敏感函数调用过程中产生的异常内存块进行时间戳检测,依据时间戳检测的结果生成第一分数,具体包括:
计算相邻的异常内存块的时间戳之间的第一差值;
确定第一差值小于第三阈值的数量;
若小于第三阈值的第一差值的数量不小于第四阈值时,则依据第一差值在第一取值范围或第二取值范围或第三取值范围的分布概率生成第一分数。
较佳的,依据第一差值在第一取值范围或第二取值范围或第三取值范围的分布概率得到第一分数,具体包括:
确定第一差值在第一取值范围的第一分布概率,当第一分布概率不小于第五阈值时,依据第一分布概率生成第一分数;
当第一分布概率小于第五阈值时,确定第一差值在第二取值范围的第二分布概率,当第二分布概率不小于第六阈值时,依据第二分布概率生成第一分数;
当第二分布概率小于第六阈值时,确定第一差值在第三取值范围的第三分布概率,当第三分布概率不小于第七阈值时,依据第三分布概率生成第一分数;
当第三分布概率小于第七阈值时,依据第一分布概率、第二分布概率、第三分布概率生成第一分数;
其中,第三取值范围包含第二取值范围;第二取值范围包含第一取值范围;
其中,第五阈值小于第六阈值,第六阈值小于第七阈值。
较佳的,还包括:
若第一分数小于第二阈值,则进行释放后重利用UAF检测;
确定UAF检测过程中被释放又被重新申请的异常内存块的数量;
根据UAF检测过程中被释放又被重新申请的异常内存块的数量生成第二分数;
若第一分数、第二分数的总和不小于第二阈值,则确定应用程序存在喷射模式的攻击。
较佳的,还包括:
若第一分数、第二分数的总和小于第二阈值,则进行申请次序检测;
确定申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数;
根据申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数生成第三分数;
若第一分数、第二分数、第三分数的总和不小于第二阈值时,则确定应用程序存在喷射模式的攻击。
较佳的,还包括:
若第一分数、第二分数、第三分数的总和小于第二阈值,则进行内存布局检测;
确定内存布局检测过程中相邻的异常内存块为连续内存块的情况的发生次数;
根据内存布局检测过程中相邻的异常内存块为连续内存块的情况的发生次数生成第四分数;
确定内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度;
根据内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度生成第五分数;
若第一分数、第二分数、第三分数、第四分数、第五分数的总和不小于第二阈值时,则确定应用程序存在喷射模式的攻击。
较佳的,还包括:
若第一分数、第二分数、第三分数、第四分数、第五分数的总和小于第二阈值,则进行可执行性检测;
确定可执行性检测过程中异常内存块中是否存在的可执行的恶意攻击指令shellcode;
根据可执行性检测过程中异常内存块中是否存在的可执行的shellcode生成第六分数;
若第一分数、第二分数、第三分数、第四分数、第五分数、第六分数的总和不小于第二阈值,则确定应用程序存在喷射模式的攻击。
本发明实施例提供一种喷射模式攻击的检测装置,包括:
第一检测模块,用于在仿真方式执行应用程序的过程中对敏感函数的调用情况进行检测,敏感函数是用于管理内存的函数;当检测到敏感函数调用异常且产生异常内存块时,触发控制模块;
控制模块,用于确定敏感函数调用异常且产生异常内存块的累计次数;若敏感函数的调用异常且产生异常内存块的累计次数不小于第一阈值,则触发第二检测模块;依据第二检测模块检测的结果生成第一分数;若第一分数不小于第二阈值,则确定应用程序存在喷射模式的攻击;
第二检测模块,用于根据控制模块的触发,对敏感函数调用过程中产生的异常内存块进行时间戳检测。
较佳的,
第二检测模块,具体用于:
计算相邻的异常内存块的时间戳之间的第一差值;
确定第一差值小于第三阈值的数量;
控制模块,具体用于:
若小于第三阈值的第一差值的数量不小于第四阈值时,则触发第三检测模块、第三检测模块和第四检测模块、第三检测模块和第四检测模块和第五检测模块,依据第三检测模块或第四检测模块或第五检测模块检测的结果生成第一分数;
若第一分数的总和不小于第二阈值,则确定应用程序存在喷射模式的攻击。
较佳的,
第三检测模块,具体用于:
确定第一差值在第一取值范围的第一分布概率;
第四检测模块,具体用于:
确定第一差值在第二取值范围的第二分布概率;
第五检测模块,具体用于:
确定第一差值在第三取值范围的第三分布概率;
控制模块,具体用于:
若小于第三阈值的第一差值的数量不小于第四阈值时,触发第三检测模块,若第一分布概率不小于第五阈值时,依据第一分布概率生成第一分数;
当第一分布概率小于第五阈值时,触发第四检测模块,当第二分布概率不小于第六阈值时,依据第二分布概率生成第一分数;
当第二分布概率小于第六阈值时,触发第五检测模块,当第三分布概率不小于第七阈值时,依据第三分布概率生成第一分数;
当第三分布概率小于第七阈值时,依据第一分布概率、第二分布概率、第三分布概率生成第一分数;
其中,第三取值范围包含第二取值范围;第二取值范围包含第一取值范围;
其中,第五阈值小于第六阈值,第六阈值小于第七阈值。
较佳的,
控制模块,还用于:
若第一分数的总和小于第二阈值,则触发第六检测模块;
根据释放后重利用UAF检测过程中被释放又被重新申请的异常内存块的数量生成第二分数;
若第一分数、第二分数的总和不小于第二阈值,则确定应用程序存在喷射模式的攻击;
第六检测模块,具体用于:
确定UAF检测过程中被释放又被重新申请的异常内存块的数量。
较佳的,
控制模块,还用于:
若第一分数、第二分数的总和小于第二阈值,则触发第七检测模块;
根据申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数生成第三分数;
若第一分数、第二分数、第三分数的总和不小于第二阈值时,则确定应用程序存在喷射模式的攻击。
第七检测模块,具体用于:
确定申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数。
较佳的,
控制模块,还用于:
若第一分数、第二分数、第三分数的总和小于第二阈值,则触发第八检测模块和第九检测模块;
根据内存布局检测过程中相邻的异常内存块为连续内存块的情况的发生次数生成第四分数;
根据内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度生成第五分数;
若第一分数、第二分数、第三分数、第四分数、第五分数的总和不小于第二阈值时,则确定应用程序存在喷射模式的攻击;
第八检测模块,具体用于:
确定内存布局检测过程中相邻的异常内存块为连续内存块的情况的发生次数;
第九检测模块,具体用于:
确定内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度。
较佳的,
控制模块,还用于:
若第一分数、第二分数、第三分数、第四分数、第五分数的总和小于第二阈值,则触发第十检测模块211;
根据可执行性检测过程中异常内存块中是否存在可执行的shellcode生成第六分数;
若第一分数、第二分数、第三分数、第四分数、第五分数、第六分数的总和不小于第二阈值,则确定应用程序存在喷射模式的攻击;
第十检测模块211,具体用于:
确定可执行性检测过程中异常内存块中是否存在的可执行的shellcode。
本发明实施例提供一种喷射模式攻击的检测方法和装置,以仿真方式执行应用程序,并在应用程序执行过程中对敏感函数的调用情况进行检测,敏感函数是用于管理内存的函数;当检测到敏感函数调用异常且产生异常内存块时,确定敏感函数调用异常且产生异常内存块的累计次数;若敏感函数的调用异常且产生异常内存块的累计次数不小于第一阈值,则对敏感函数调用过程中产生的异常内存块进行时间戳检测,依据时间戳检测的结果生成第一分数;若第一分数不小于第二阈值,则确定应用程序存在喷射模式的攻击。由于通过对异常内存块的时间戳进行检测即可判断出是否存在喷射模式的攻击,从而避免了仅通过检测shellcode是否可执行所造成的检测失效的情况的发生。进一步由于在shellcode执行前就进行了时间戳检测,即在shellcode执行前就可检测到喷射模式的攻击,提高了检测的及时性。
附图说明
图1为本发明实施例一提供的一种喷射模式攻击的检测方法;
图2为本发明实施例二提供的一种喷射模式攻击的检测装置;
图3为本发明实施例三提供的一种喷射模式攻击的检测方法流程图。
具体实施方式
本发明实施例提供一种喷射模式攻击的检测方法和装置,以仿真方式执行应用程序,并在应用程序执行过程中对敏感函数的调用情况进行检测,敏感函数是用于管理内存的函数;当检测到敏感函数调用异常且产生异常内存块时,确定敏感函数调用异常且产生异常内存块的累计次数;若敏感函数的调用异常且产生异常内存块的累计次数不小于第一阈值,则对敏感函数调用过程中产生的异常内存块进行时间戳检测,依据时间戳检测的结果生成第一分数;若第一分数不小于第二阈值,则确定应用程序存在喷射模式的攻击。由于通过对异常内存块的时间戳进行检测即可判断出是否存在喷射模式的攻击,从而避免了仅通过检测shellcode是否可执行所造成的检测失效的情况的发生。进一步由于在shellcode执行前就进行了时间戳检测,即在shellcode执行前就可检测到喷射模式的攻击,提高了检测的及时性。
本发明实施例一提供的一种喷射模式攻击的检测方法,如图1所示,包括以下步骤:
以仿真方式执行应用程序,并在应用程序执行过程中执行以下操作:
步骤101,对敏感函数的调用情况进行检测,敏感函数是用于管理内存的函数;
步骤102,当检测到敏感函数调用异常且产生异常内存块时,确定敏感函数调用异常且产生异常内存块的累计次数;
步骤103,若敏感函数的调用异常且产生异常内存块的累计次数不小于第一阈值,则对敏感函数调用过程中产生的异常内存块进行时间戳检测,依据时间戳检测的结果生成第一分数;
步骤104,若第一分数不小于第二阈值,则确定应用程序存在喷射模式的攻击。
较佳的,对敏感函数调用过程中产生的异常内存块进行时间戳检测,依据时间戳检测的结果生成第一分数,具体包括:
计算相邻的异常内存块的时间戳之间的第一差值;
确定第一差值小于第三阈值的数量;
若小于第三阈值的第一差值的数量不小于第四阈值时,则依据第一差值在第一取值范围或第二取值范围或第三取值范围的分布概率生成第一分数。
较佳的,依据第一差值在第一取值范围或第二取值范围或第三取值范围的分布概率得到第一分数,具体包括:
确定第一差值在第一取值范围的第一分布概率,当第一分布概率不小于第五阈值时,依据第一分布概率生成第一分数;
当第一分布概率小于第五阈值时,确定第一差值在第二取值范围的第二分布概率,当第二分布概率不小于第六阈值时,依据第二分布概率生成第一分数;
当第二分布概率小于第六阈值时,确定第一差值在第三取值范围的第三分布概率,当第三分布概率不小于第七阈值时,依据第三分布概率生成第一分数;
当第三分布概率小于第七阈值时,依据第一分布概率、第二分布概率、第三分布概率生成第一分数;
其中,第三取值范围包含第二取值范围;第二取值范围包含第一取值范围;
其中,第五阈值小于第六阈值,第六阈值小于第七阈值。
在实施中,本发明实施例所提供的检测方案适用于检测利用漏洞进行的spray模式的攻击。
在实施过程中,当用户打开某个应用程序时,在应用程序底层的模块自动以仿真方式执行该应用程序。其中,该应用程序可为常规电脑程序,如office办公系统软件、Adobe Reader阅读器、IE浏览器等,下面结合IE浏览器的使用来具体说明本发明实施例。
当用户点击IE浏览器的启动程序iexplore.exe进行网页浏览时,自动触发底层模块,底层模块对网络数据进行解析,并以仿真的方式预先执行该应用程序。其中,该底层模块如mshtml.dll、jscript9.dll、oleaut32.dll、msvcrt.dll等。此时,用户看到的界面仍旧为正在打开中,若在系统层仿真执行该应用程序的过程中,检测到了spray模式的攻击,则会弹出提示框,提醒用户,该网页存在spray模式的攻击,此时用户界面上仍旧显示网页正在打开中,弹出提示,可由用户自行选择是否继续打开;另一种方案为,当在仿真执行该应用程序的过程中,检测到了spray模式的攻击时,直接强制用户关闭该网页,以免电脑受到攻击,从而造成用户信息泄露、电脑被控制等。
本发明实施例所提供的方法主要为当用户点击该应用程序时,系统底层模块仿真运行该应用程序,对spray模式的攻击进行检测。
在实施中,当用户打开某应用程序时,系统底层模块仿真执行该应用程序,并在应用程序的仿真执行过程中执行以下操作:
(1)对该仿真执行应用程序的过程进行监测,在执行过程中,对敏感函数的调用情况进行检测,敏感函数是用于管理内存的函数,如OLEAUT32.dll中的APP_DATA::AllocCachedMem,OLEAUT32.dll中的APP_DATA::FreeCached Mem,msvcrt.dll中的_heap_alloc,msvcrt.dll中的free等。
当检测到敏感函数调用异常且产生异常内存块时,确定敏感函数调用异常且产生异常内存块的累计次数。
由于是在系统层面上虚拟执行该应用程序,而非在脚本层面单步解析,因此提高了检测效率。进一步由于仅对于敏感函数进行检测,并且过滤掉了正常调用敏感函数的情况,因此排除了大量无用的信息,检测效率更高。
本领域技术人员可知,调用环境异常是指调用来源异常,以及敏感函数的调用来源是否在一个白名单的地址范围内,另外调用环境异常会产生一些异常的内存块,而一些明显不会出问题的内存块即不为异常内存块,应被过滤掉,例如,根据统计,“申请内存大小为X”的请求明显不会出问题,则此时可认为“申请内存大小为X”的请求所产生的内存块并非敏感函数调用异常且产生异常内存块的情况,将该情况直接过滤掉。
本领域技术人员可知,当函数被调用时,调用一次即会产生一个内存块,调用环境正常时,即产生正常的内存块,调用环境异常时,即会产生异常内存块。对产生异常内存块的次数进行累计。
一般来讲,正常的应用程序的堆分配是很平滑的,分配模式也是随机的,调用环境正常的函数内存块地址随机化非常明显,不会出现内存暴增的情况,目的是为了防止攻击者直接定位攻击代码位置,进而达到阻止溢出的目的。而spray模式的攻击特点即为瞬间申请大量内存,此时调用函数所产生的内存块也会具备相应的特点,本发明实施例所提供的方法即为针对这些敏感函数调用环境异常的情况下所产生的内存块特点进行检测,从而检测是否存在spray模式的攻击。
(2)较佳的,对敏感函数调用过程中产生的异常内存块进行时间戳检测,依据时间戳检测的结果生成第一分数,具体包括:
计算相邻的异常内存块的时间戳之间的第一差值;
确定第一差值小于第三阈值的数量;
若小于第三阈值的第一差值的数量不小于第四阈值时,则依据第一差值在第一取值范围或第二取值范围或第三取值范围的分布概率生成第一分数。
较佳的,依据第一差值在第一取值范围或第二取值范围或第三取值范围的分布概率得到第一分数,具体包括:
确定第一差值在第一取值范围的第一分布概率,当第一分布概率不小于第五阈值时,依据第一分布概率生成第一分数;
当第一分布概率小于第五阈值时,确定第一差值在第二取值范围的第二分布概率,当第二分布概率不小于第六阈值时,依据第二分布概率生成第一分数;
当第二分布概率小于第六阈值时,确定第一差值在第三取值范围的第三分布概率,当第三分布概率不小于第七阈值时,依据第三分布概率生成第一分数;
当第三分布概率小于第七阈值时,依据第一分布概率、第二分布概率、第三分布概率生成第一分数;
其中,第三取值范围包含第二取值范围;第二取值范围包含第一取值范围;
其中,第五阈值小于第六阈值,第六阈值小于第七阈值。
由于spray模式的攻击均是在很短的时间内产生大量的内存操作,进而在短时间内产生大量的内存块,因此可使用时间戳检测来判断是否存在spray模式的攻击。
在实施中,当敏感函数在异常调用的情况下所产生的异常内存块的累计次数不小于第一阈值时,即触发了检测条件,此时开始申请进行时间戳检测。例如,当敏感函数在异常调用的情况下所产生的异常内存块个数超过阈值,则开始申请进行检测,之后相应的应将该阈值增大,如假设敏感函数在异常调用的情况下所产生的异常内存块个数的阈值为50个,当敏感函数在异常调用的情况下所产生的异常内存块个数超过50个时,此时开始申请进行检测,之后应将敏感函数在异常调用的情况下所产生的异常内存块个数的阈值调整为大于50的数值,比如,可调整为100。
本领域技术人员可知,时间戳通常是一个字符序列,唯一的标识某一刻的时间。
本领域技术人员可知,在对所有该敏感函数的异常内存块申请进行时间戳检测之后,需对异常内存块进行对齐处理,之后检查这些待检测的异常内存块是否均存在在维护链表中,若没有,则需要将进行对齐处理后的待处理的异常内存块插入维护链表中。
将所有待检测的异常内存块放入维护链表中之后,检测这些异常内存块的信息对于时间戳检测是否有效,即判断这些异常内存块的大小、地址等信息是否符合进行时间戳检测的条件。
当这些异常内存块的信息对于时间戳的检测有效时,即这些异常内存块的信息适合进行时间戳检测时,即对这些异常内存块进行时间戳检测。若这些异常内存块的信息对于时间戳的检测无效时,即这些异常内存块的信息不适合进行时间戳检测时,则直接跳过该检测方法,进行下一个检测。或较佳的,当这些异常内存块的信息不适合进行时间戳检测时,直接生成的第一分数为0。
依据异常内存块长度算取合适的异常内存块时间戳之间的差值,将该差值设为第三阈值。
由于spray模式攻击是内存块瞬间暴增,所以相邻内存块的时间戳的第一差值一定很小。针对该特点,本发明实施例通过对相邻内存块的时间戳进行检测,当相邻内存块的时间戳之间的第一差值小于第三阈值时,即表示该应用程序可能存在spray模式攻击,此时,遍历维护链表,对链表中所有的异常内存块信息进行时间戳检测,并对小于第三阈值的第一差值的数量进行计数,若小于第三阈值的第一差值的数量不小于第四阈值时,则依据第一差值在第一取值范围或第二取值范围或第三取值范围的分布概率生成第一分数。
在实施中,小于第三阈值的第一差值的数量越多,大于等于第四阈值时,则表明存在spray模式攻击的风险,需对其进行下一步的检测。一种情况为,所有异常内存块的时间戳之间的第一差值均不第三阈值,此时第一分数即为零。
在实施中,若小于第三阈值的第一差值的数量不小于第四阈值时,,则接着对第一差值的概率分布进行统计。
首先依据所有第一差值设定一个中心值,依据该中心值设定第一取值范围、第二取值范围、第三取值范围。其中,第三取值范围包含第二取值范围,第二取值范围包含第一取值范围。例如,所有第一差值分别为5.05、5.15、5.25,此时设定一个中心值为5,则第一取值范围设定为4.9-5.1;第二取值范围设定为4.8-5.2;第三取值范围设定为4.5-5.5,此时可以看出第三取值范围包含第二取值范围,第二取值范围包含第一取值范围,较佳的,三个取值范围均以中心值为中心点。
判断第一差值在第一取值范围内的第一分布概率,设定第一取值范围内的第五阈值,若第一分布概率不小于第五阈值,则依据第一分布概率生成第一分数;此时不再判断第二取值范围以及第三取值范围内的分布概率;
若第一分布概率小于第五阈值时,则需判断第一差值在第二取值范围内的第二分布概率,设定第二取值范围内的第六阈值,若第二分布概率不小于第六阈值,则依据第二分布概率生成第一分数;此时不再判断第三取值范围;
若第二分布概率小于第六阈值时,则需判断第一差值在第三取值范围内的第三分布概率,设定第三取值范围内的第七阈值,若第三分布概率不小于第七阈值,则依据第三分布概率生成第一分数;
其中,第五阈值小于第六阈值,第六阈值小于第七阈值。
若第三分布概率小于第七阈值,则需依据第一分布概率、第二分布概率、第三分布概率生成第一分数。
下面举一个具体的例子进行说明,例如有10个第一差值,在第一取值范围内有2个第一差值,在第二取值范围内有3各第一差值,在第三个取值范围内有5个取值范围,此时可知第一差值在第一取值范围内的第一分布概率为20%,第一差值在第二取值范围内的第二分布概率为30%,第一差值在第三取值范围内的第三分布概率为50%。
此时假设第五阈值为25%,第六阈值为28%,第七阈值为40%;此时因第一分布概率20%小于第五阈值25%;因此接着判断第二分布概率30%与第六阈值28%的关系,此时明显第二分布概率不小于第六阈值,因此依据第二分布概论生成第一分数。
在实施中,依据第一分布概率生成的第一分数不小于依据第二分布概率生成的第一分数;依据第二分布概率生成的第一分数不小于依据第三分布概率生成的第一分数;依据第三分布概率生成的第一分数不小于依据第一分布概率、第二分布概率、第三分布概率生成的第一分数。即第一差值分布的越分散,则表明被spray模式攻击的可能性越小,则第一分数越小。
在实施中,依据第一分数来判断是否存在spray模式的攻击时,一种实施方式为可直接用第一分数与第二阈值进行比较,若第一分数不小于第二阈值,则表明该应用程序存在spray模式的攻击,进行提示。
另一种方案为,将内存块长度与第一分数进行结合,将第一分数依据一定的权重进行变换,变换为加权后的第一分数,此时使用加权后的第一分数与第二阈值进行比较,若加权后的第一分数不小于第二阈值,则表明该应用程序存在spray模式的攻击。
若在系统层仿真执行该应用程序的过程中,检测到了spray模式的攻击,则会弹出提示框,提醒用户,该网页存在spray模式的攻击,此时用户界面上仍旧显示网页正在打开中,弹出提示,可由用户自行选择是否继续打开;另一种方案为,当在仿真执行该应用程序的过程中,检测到了spray模式的攻击时,直接强制用户关闭该网页,以免电脑受到攻击,从而造成用户信息泄露、电脑被控制等。
(3)较佳的,还包括:
若第一分数小于第二阈值,则进行UAF检测;
确定UAF检测过程中被释放又被重新申请的异常内存块的数量;
根据UAF检测过程中被释放又被重新申请的异常内存块的数量生成第二分数;
若第一分数、第二分数的总和不小于第二阈值,则确定应用程序存在喷射模式的攻击。
本领域技术人员可知,UAF为另一种漏洞利用的方式,常与spray模式结合使用,因此可通过判断是否存在UAF进而来判断是否存在spray模式的攻击。
本发明实施例在申请进行时间戳检测时,已将异常内存块加入了维护链表中。此时若第一分数小于第二阈值,即并未检测出spray模式的攻击,则申请进行UAF检测。
检测这些异常内存块的信息对于UAF检测是否有效,即判断这些异常内存块的信息是否适合进行UAF(use after free;释放后重利用)检测的条件,如,这些异常内存块的大小、地址等信息是否符合进行UAF检测的条件。当这些异常内存块的信息对于时间戳的检测有效时,即这些异常内存块的信息适合进行时间戳检测时,即对这些异常内存块进行时间戳检测;若这些异常内存块的信息对于UAF检测无效时,即这些异常内存块的信息不适合进行UAF检测时,则直接跳过该检测方法,进行下一个检测。或较佳的,当这些异常内存块的信息不适合进行UAF检测时,直接生成的第二分数为0。
当这些异常内存块的信息对于UAF的检测有效时,遍历维护链表,判断是否存在被释放又被重新申请的异常内存块,确定UAF检测过程中被释放又被重新申请的异常内存块的数量;根据UAF检测过程中被释放又被重新申请的异常内存块的数量生成第二分数。
若UAF检测过程中被释放又被重新申请的异常内存块的数量越多,说明越有可能受到了spray模式的攻击,此时第二分数就会越高。
一种方式为当第一分数、第二分数的总和不小于第二阈值时,确定存在spray模式的攻击;另外一种则是依据一定的权重将所有分数进行加权,判断加权后的第一分数、加权后的第二分数的总和不小于第二阈值时,则确定存在spray模式的攻击。
(4)较佳的,还包括:
若第一分数、第二分数的总和小于第二阈值,则进行申请次序检测;
确定申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数;
根据申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数生成第三分数;
若第一分数、第二分数、第三分数的总和不小于第二阈值时,则确定应用程序存在喷射模式的攻击。
由于spray模式的攻击在分配内存时都是一次性的,连续分配的,一般中间不会有其它的内存操作,因此可通过检测相邻的异常内存块的申请次序是否为连续来判断是否存在spray模式的攻击。
本发明实施例在申请进行时间戳检测时,已将异常内存块加入了维护链表中。此时若第一分数、第二分数的总和小于第二阈值,即并未检测出spray模式的攻击,则申请进行申请次序的检测。
检测这些异常内存块的信息对于申请次序的检测是否有效,即判断这些异常内存块的信息是否符合进行申请次序检测的条件,如,这些异常内存块的大小、地址等信息是否符合进行申请次序检测的条件。若这些异常内存块的信息对于申请次序的检测有效时,即这些异常内存块的信息适合进行申请次序的检测时,即对这些异常内存块进行申请次序的检测;若这些异常内存块的信息对于申请次序的检测无效时,即这些异常内存块的信息不适合进行申请次序的检测时,则直接跳过该检测方法,进行下一个检测。或较佳的,当这些异常内存块的信息不适合进行申请次序的检测时,直接生成的第三分数为0。
当这些异常内存块的信息对于申请次序检测的检测有效时,遍历维护链表,判断相邻的异常内存块的申请次序是否为递增,确定申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数;根据申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数生成第三分数。
若相邻的异常内存块的申请次序为递增的情况的发生次数越多,说明越有可能受到了spray模式的攻击,此时第三分数就会越高。
一种方式为当第一分数、第二分数、第三分数的总和不小于第二阈值时,确定存在spray模式的攻击;另外一种则是依据一定的权重将所有分数进行加权,判断加权后的第一分数、加权后的第二分数、加权后的第三分数的总和不小于第二阈值时,则确定存在spray模式的攻击。
(5)较佳的,还包括:
若第一分数、第二分数、第三分数的总和小于第二阈值,则进行内存布局检测;
确定内存布局检测过程中相邻的异常内存块为连续内存块的情况的发生次数;
根据内存布局检测过程中相邻的异常内存块为连续内存块的情况的发生次数生成第四分数;
确定内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度;
根据内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度生成第五分数;
若第一分数、第二分数、第三分数、第四分数、第五分数的总和不小于第二阈值时,则确定应用程序存在喷射模式的攻击。
由于spray模式的攻击在内存中会产生连续的内存块,因此可通过检测异常内存块是否为连续内存块的方式检测是否存在spray模式的攻击。
本发明实施例在申请进行时间戳检测时,已将异常内存块加入了维护链表中。此时若第一分数、第二分数、第三分数的总和小于第二阈值,即并未检测出spray模式的攻击,则申请进行内存布局的检测。
检测这些异常内存块的信息对于内存布局的检测是否有效,即判断这些异常内存块的信息是否符合进行内存布局检测的条件,如,这些异常内存块的大小、地址等信息是否符合进行内存布局检测的条件。若这些异常内存块的信息对于内存布局的检测有效时,即这些异常内存块的信息适合进行内存布局的检测时,即对这些异常内存块进行内存布局的检测;若这些异常内存块的信息对于内存布局的检测无效时,即这些异常内存块的信息不适合进行内存布局的检测时,则直接跳过该检测方法,进行下一个检测。或较佳的,当这些异常内存块的信息不适合进行内存布局的检测时,直接生成的第四分数、第五分数均为0。
当这些异常内存块的信息对于申请次序检测有效时,遍历维护链表,判断相邻的异常内存块的申请次序是否为递增,确定申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数;根据申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数生成第四分数;
确定内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度;
根据内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度生成第五分数;
若相邻的异常内存块的申请次序为递增的情况的发生次数越多,说明越有可能受到了spray模式的攻击,此时第四分数就会越高;若异常内存块为连续内存块时的连续内存块的总长度越长,则说明越有可能受到了spray模式的攻击,此时第五分数就会越高。
一种方式为当第一分数、第二分数、第三分数、第四分数、第五分数的总和不小于第二阈值时,确定存在spray模式的攻击;另外一种则是依据一定的权重将所有分数进行加权,判断加权后的第一分数、加权后的第二分数、加权后的第三分数、加权后的第四分数、加权后的第五分数的总和不小于第二阈值时,则确定存在spray模式的攻击。
(6)较佳的,还包括:
若第一分数、第二分数、第三分数、第四分数、第五分数的总和小于第二阈值,则进行可执行性检测;
确定可执行性检测过程中异常内存块中存在的可执行的恶意攻击指令shellcode的数量;
根据可执行性检测过程中异常内存块中存在的可执行的shellcode的数量生成第六分数;
若第一分数、第二分数、第三分数、第四分数、第五分数、第六分数的总和不小于第二阈值,则确定应用程序存在喷射模式的攻击。
由于spray模式的攻击主要代码就是shellcode,因此可通过是否存在可执行的shellcode来判断是否存在spray模式的攻击。
本发明实施例在申请进行时间戳检测时,已将异常内存块加入了维护链表中。此时若第一分数、第二分数、第三分数、第四分数、第五分数的总和小于第二阈值,即并未检测出spray模式的攻击,则申请进行可执行性检测。
检测这些异常内存块的信息对于可执行性检测是否有效,即判断这些异常内存块的信息是否符合进行可执行性检测的条件,如,这些异常内存块的大小、地址等信息是否符合进行可执行性检测的条件。当这些异常内存块的信息对于可执行性检测有效时,即这些异常内存块的信息适合进行可执行性检测时,即对这些异常内存块进行可执行性检测;若这些异常内存块的信息对于可执行性检测无效时,即这些异常内存块的信息不适合进行可执行性检测时,则直接跳过该检测方法,进行下一个检测。或较佳的,当这些异常内存块的信息不适合进行可执行性检测时,直接生成的第六分数为0。
当这些异常内存块的信息对于可执行性检测有效时,遍历维护链表,判断异常内存块中是否存在的可执行的shellcode,依据异常内存块中是否存在可执行的shellcode生成第六分数;
若存在可执行的shellcode,则生成较大的第六分数,如第六分数此时可为100分;若不存在可执行的shellcode,则生成较小的第六分数,此时第六分数可为0分。存在可执行的shellcode时生成的第六分数大于不存在可执行的shellcode时生成的第六分数。
一种方式为当第一分数、第二分数、第三分数、第四分数、第五分数、第六分数的总和不小于第二阈值时,确定存在spray模式的攻击;另外一种则是依据一定的权重将所有分数进行加权,判断加权后的加权后的第一分数、加权后的第二分数、加权后的第三分数、加权后的第四分数、加权后的第五分数、加权后的第六分数的总和不小于第二阈值时,则确定存在spray模式的攻击。
由于本发明实施例提供了多种检测方法,可依据spray模式所产生的内存块信息自动匹配不同的检测方法,因此准确率更高。
由于在检测网页上是否存在可执行的shellcode之前,已经进行了大量检测,以便从内存块信息上判断出是否存在shellcode,因此该检测方法在很大程度上,在shellcode执行前便可检测出spray模式的攻击,及时性大大提高。
针对上述方法流程,本发明实施例还提供一种喷射模式攻击的检测装置,这些装置的具体内容可以参照上述方法实施,在此不再赘述。
基于相同的构思,本发明实施例二提供的一种喷射模式攻击的检测装置,如图2所示,包括:
第一检测模块201,用于在仿真方式执行应用程序的过程中对敏感函数的调用情况进行检测,敏感函数是用于管理内存的函数;当检测到敏感函数调用异常且产生异常内存块时,触发控制模块202;
控制模块202,用于确定敏感函数调用异常且产生异常内存块的累计次数;若敏感函数的调用异常且产生异常内存块的累计次数不小于第一阈值,则触发第二检测模块203;依据第二检测模块203检测的结果生成第一分数;若第一分数不小于第二阈值,则确定应用程序存在喷射模式的攻击。
第二检测模块203,用于根据控制模块202的触发,对敏感函数调用过程中产生的异常内存块进行时间戳检测。
较佳的,
第二检测模块203,具体用于:
计算相邻的异常内存块的时间戳之间的第一差值;
确定第一差值小于第三阈值的数量;
控制模块202,具体用于:
若小于第三阈值的第一差值的数量不小于第四阈值时,则触发第三检测模块204、第三检测模块204和第四检测模块205、第三检测模块204和第四检测模块205和第五检测模块206,依据第三检测模块204或第四检测模块205或第五检测模块206检测的结果生成第一分数;
若第一分数的总和不小于第二阈值,则确定应用程序存在喷射模式的攻击。
较佳的,
第三检测模块204,具体用于:
确定第一差值在第一取值范围的第一分布概率;
第四检测模块205,具体用于:
确定第一差值在第二取值范围的第二分布概率;
第五检测模块206,具体用于:
确定第一差值在第三取值范围的第三分布概率;
控制模块202,具体用于:
若小于第三阈值的第一差值的数量不小于第四阈值时,触发第三检测模块204,若第一分布概率不小于第五阈值时,依据第一分布概率生成第一分数;
当第一分布概率小于第五阈值时,触发第四检测模块205,当第二分布概率不小于第六阈值时,依据第二分布概率生成第一分数;
当第二分布概率小于第六阈值时,触发第五检测模块206,当第三分布概率不小于第七阈值时,依据第三分布概率生成第一分数;
当第三分布概率小于第七阈值时,依据第一分布概率、第二分布概率、第三分布概率生成第一分数;
其中,第三取值范围包含第二取值范围;第二取值范围包含第一取值范围;
其中,第五阈值小于第六阈值,第六阈值小于第七阈值。
较佳的,
控制模块202,还用于:
若第一分数的总和小于第二阈值,则触发第六检测模块207;
根据释放后重利用UAF检测过程中被释放又被重新申请的异常内存块的数量生成第二分数;
若第一分数、第二分数的总和不小于第二阈值,则确定应用程序存在喷射模式的攻击;
第六检测模块207,具体用于:
确定UAF检测过程中被释放又被重新申请的异常内存块的数量。
较佳的,
控制模块202,还用于:
若第一分数、第二分数的总和小于第二阈值,则触发第七检测模块208;
根据申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数生成第三分数;
若第一分数、第二分数、第三分数的总和不小于第二阈值时,则确定应用程序存在喷射模式的攻击。
第七检测模块208,具体用于:
确定申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数。
较佳的,
控制模块202,还用于:
若第一分数、第二分数、第三分数的总和小于第二阈值,则触发第八检测模块209和第九检测模块210;
根据内存布局检测过程中相邻的异常内存块为连续内存块的情况的发生次数生成第四分数;
根据内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度生成第五分数;
若第一分数、第二分数、第三分数、第四分数、第五分数的总和不小于第二阈值时,则确定应用程序存在喷射模式的攻击;
第八检测模块209,具体用于:
确定内存布局检测过程中相邻的异常内存块为连续内存块的情况的发生次数;
第九检测模块210,具体用于:
确定内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度。
较佳的,
控制模块202,还用于:
若第一分数、第二分数、第三分数、第四分数、第五分数的总和小于第二阈值,则触发第十检测模块;
根据可执行性检测过程中异常内存块中是否存在可执行的shellcode生成第六分数;
若第一分数、第二分数、第三分数、第四分数、第五分数、第六分数的总和不小于第二阈值,则确定应用程序存在喷射模式的攻击;
第十检测模块,具体用于:
确定可执行性检测过程中异常内存块中是否存在的可执行的shellcode。
基于相同的构思,本发明实施例三提供的一种喷射模式攻击的检测方法流程图,如图3所示。
步骤301,以仿真方式执行应用程序;
当用户打开某个应用程序时,在应用程序底层的模块自动以仿真方式执行该应用程序。
步骤302,对该仿真执行应用程序的过程进行监测;
由于是在系统层面上仿真执行该应用程序,而非在脚本层面单步解析,因此提高了检测效率;
步骤303,是否为敏感函数,且调用异常,并产生异常内存块;是则执行步骤304,不是则执行步骤302;
在执行过程中,对敏感函数的调用情况进行检测,敏感函数是用于管理内存的函数;
当敏感函数被调用时,调用一次即会产生一个内存块,调用环境正常时,即产生正常的内存块,调用环境异常时,即会产生异常内存块。
通过此步骤的筛选,仅对敏感函数进行检测,且进一步将敏感函数所产生的正常内存块过滤掉,从而排除了大量无用的信息,检测效率更高。
步骤304,将敏感函数的调用异常且产生异常内存块的次数进行累计;
步骤305,判断敏感函数的异常调用且产生异常内存块的次数是否不小于第一阈值;敏感函数的异常调用且产生异常内存块的次数不小于第一阈值时,执行步骤306;敏感函数的异常调用且产生异常内存块的次数小于第一阈值时,执行步骤302;
在实施中,当敏感函数在异常调用的情况下所产生的异常内存块的累计次数不小于第一阈值时,即触发了检测条件,此时开始申请进行检测。即执行步骤306;
例如,当敏感函数在异常调用的情况下所产生的异常内存块个数超过阈值,则开始申请进行检测,之后相应的应将该阈值增大,如假设敏感函数在异常调用的情况下所产生的异常内存块个数的阈值为50个,当敏感函数在异常调用的情况下所产生的异常内存块个数超过50个时,此时开始申请进行检测,之后应将敏感函数在异常调用的情况下所产生的异常内存块个数的阈值调整为大于50的数值,比如,可调整为100。
在实施中,若敏感函数的异常调用且产生异常内存块的次数小于第一阈值时,则执行步骤302,即继续仿真执行该应用程序。
步骤306,计算相邻的所述异常内存块的时间戳之间的第一差值;确定第一差值小于第三阈值的数量;
在对所有该敏感函数的异常内存块申请进行时间戳检测之后,需对异常内存块进行对齐处理,之后检查这些待检测的异常内存块是否均存在在维护链表中,若没有,则需要将进行对齐处理后的待处理的异常内存块插入维护链表中。
将所有带检测的异常内存块放入维护链表中之后,检测这些异常内存块的信息对于时间戳检测是否有效;当这些异常内存块的信息对于时间戳的检测有效时,即这些异常内存块的信息适合进行时间戳检测时,即对这些异常内存块进行时间戳检测;若这些异常内存块的信息对于时间戳的检测无效时,即这些异常内存块的信息不适合进行时间戳检测时,则直接跳过该检测方法,进行下一个检测。或较佳的,当这些异常内存块的信息不适合进行时间戳检测时,直接生成的第一分数为0;
遍历维护链表,对链表中所有的异常内存块信息进行时间戳检测,并对小于第三阈值的第一差值的数量进行计数,生成第一分数;
在实施中,小于第三阈值的第一差值的数量越多,表明越有可能受到spray模式的攻击。
步骤307,判断小于第三阈值的第一差值的数量是否不小于第四阈值时;若小于第三阈值的第一差值的数量小于第四阈值时,则执行步骤315;若小于第三阈值的第一差值的数量不小于第四阈值时,则执行步骤308;
若小于第三阈值的第一差值的数量小于第四阈值时,则表明该敏感函数的异常内存块不适合进行时间戳检测,此时直接返回第一分数为0,接着执行步骤315,即进行其它逻辑检测;
若小于第三阈值的第一差值的数量不小于第四阈值时,则执行步骤308,即进行时间戳检测进而生成第一分数。
步骤308,判断第一分布概率是否不小于第五阈值;若第一分布概率不小于第五阈值,则执行步骤309;若第一分布概率小于第五阈值,则执行步骤310;
步骤309,依据第一分布概率生成第一分数;
步骤310,判断第二分布概率是否不小于第六阈值;若第二分布概率不小于第六阈值,则执行步骤311;若第二分布概率小于第六阈值,则执行步骤312;
步骤311,依据第二分布概率生成所述第一分数;
步骤312,判断第三分布概率是否不小于第七阈值;若第三分布概率不小于第七阈值,则执行步骤313;若第三分布概率小于第七阈值,则执行步骤314;
步骤313,依据第三分布概率生成所述第一分数;
步骤314,依据第一分布概率、第二分布概率、第三分布概率生成第一分数;
依据第一分布概率生成的第一分数不小于依据第二分布概率生成的第一分数;依据第二分布概率生成的第一分数不小于依据第三分布概率生成的第一分数;依据第三分布概率生成的第一分数不小于依据第一分布概率、第二分布概率、第三分布概率生成的第一分数。即第一差值分布的越分散,则表明被spray模式攻击的可能性越小,则第一分数越小。
步骤315,判断第一分数是否不小于第二阈值;若第一分数不小于第二阈值,则执行步骤325;若第一分数小于第二阈值,则执行步骤316;
步骤316,依据异常内存块中被释放又被重新申请的所述异常内存块个数生成第二分数;
由于UAF为另一种漏洞利用的方式,常与spray模式结合使用,因此可通过判断是否存在UAF进而来判断是否存在spray模式的攻击。
本发明实施例在申请进行时间戳检测时,已将异常内存块加入了维护链表中。此时若第一分数小于第二阈值,即并未检测出spray模式的攻击,则申请进行UAF检测。
检测这些异常内存块的信息对于UAF检测是否有效,当这些异常内存块的信息对于时间戳的检测有效时,即这些异常内存块的信息适合进行时间戳检测时,即对这些异常内存块进行时间戳检测;若这些异常内存块的信息对于UAF检测无效时,即这些异常内存块的信息不适合进行UAF检测时,则直接跳过该检测方法,进行下一个检测。或较佳的,当这些异常内存块的信息不适合进行UAF检测时,直接生成的第二分数为0。
当这些异常内存块的信息对于UAF的检测有效时,遍历维护链表,判断是否存在被释放又被重新申请的异常内存块,确定UAF检测过程中被释放又被重新申请的异常内存块的数量;根据UAF检测过程中被释放又被重新申请的异常内存块的数量生成第二分数。
若UAF检测过程中被释放又被重新申请的异常内存块的数量越多,说明越有可能受到了spray模式的攻击,此时第二分数就会越高。
步骤317,判断第一分数、第二分数的总和是否不小于第二阈值;若第一分数、第二分数之和不小于第二阈值,则执行步骤325;若第一分数、第二分数之和小于第二阈值,则执行步骤318;
步骤318,依据相邻的异常内存块的申请次序为递增的情况的发生次数生成第三分数;
由于spray模式的攻击在分配内存时都是一次性的,连续分配的,一般中间不会有其它的内存操作,因此可通过检测相邻的异常内存块的申请次序是否为连续来判断是否存在spray模式的攻击。
本发明实施例在申请进行时间戳检测时,已将异常内存块加入了维护链表中。此时若第一分数、第二分数的总和小于第二阈值,即并未检测出spray模式的攻击,则申请进行申请次序的检测。
检测这些异常内存块的信息对于申请次序的检测是否有效,若这些异常内存块的信息对于申请次序的检测有效时,即这些异常内存块的信息适合进行申请次序的检测时,即对这些异常内存块进行申请次序的检测;若这些异常内存块的信息对于申请次序的检测无效时,即这些异常内存块的信息不适合进行申请次序的检测时,则直接跳过该检测方法,进行下一个检测。或较佳的,当这些异常内存块的信息不适合进行申请次序的检测时,直接生成的第三分数为0。
当这些异常内存块的信息对于申请次序检测的检测有效时,遍历维护链表,判断相邻的异常内存块的申请次序是否为递增,确定申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数;根据申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数生成第三分数。
若相邻的异常内存块的申请次序为递增的情况的发生次数越多,说明越有可能受到了spray模式的攻击,此时第三分数就会越高。
步骤319,判断第一分数、第二分数、第三分数的总和是否不小于第二阈值;若第一分数、第二分数、第三分数之和不小于第二阈值,则执行步骤325;若第一分数、第二分数、第三分数之和小于第二阈值,则执行步骤320;
步骤320,根据相邻的异常内存块为连续内存块的情况的发生次数生成第四分数;根据内存布局检测过程中相邻的异常内存块为连续内存块时的所述连续内存块的总长度生成第五分数;
由于spray模式的攻击在内存中会产生连续的内存块,因此可通过检测异常内存块是否为连续内存块的方式检测是否存在spray模式的攻击。
本发明实施例在申请进行时间戳检测时,已将异常内存块加入了维护链表中。此时若第一分数、第二分数、第三分数的总和小于第二阈值,即并未检测出spray模式的攻击,则申请进行内存布局的检测。
检测这些异常内存块的信息对于内存布局的检测是否有效;若这些异常内存块的信息对于内存布局的检测有效时,即这些异常内存块的信息适合进行内存布局的检测时,即对这些异常内存块进行内存布局的检测;若这些异常内存块的信息对于内存布局的检测无效时,即这些异常内存块的信息不适合进行内存布局的检测时,则直接跳过该检测方法,进行下一个检测。或较佳的,当这些异常内存块的信息不适合进行内存布局的检测时,直接生成的第四分数、第五分数均为0。
当这些异常内存块的信息对于申请次序检测有效时,遍历维护链表,判断相邻的异常内存块的申请次序是否为递增,确定申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数;根据申请次序检测过程中相邻的异常内存块的申请次序为递增的情况的发生次数生成第四分数;
确定内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度;
根据内存布局检测过程中相邻的异常内存块为连续内存块时的连续内存块的总长度生成第五分数。
若相邻的异常内存块的申请次序为递增的情况的发生次数越多,说明越有可能受到了spray模式的攻击,此时第四分数就会越高;若异常内存块为连续内存块时的连续内存块的总长度越长,则说明越有可能受到了spray模式的攻击,此时第五分数就会越高。
步骤321,第一分数、第二分数、第三分数、第四分数、第五分数的总和小于第二阈值;若第一分数、第二分数、第三分数、第四分数、第五分数之和不小于第二阈值,则执行步骤325;若第一分数、第二分数、第三分数、第四分数、第五分数之和小于第二阈值,则执行步骤322;
步骤322,根据可执行性检测过程中所述异常内存块中存在的可执行的shellcode的数量生成第六分数;
由于spray模式的攻击主要代码就是shellcode,因此可通过是否存在可执行的shellcode来判断是否存在spray模式的攻击。
本发明实施例在申请进行时间戳检测时,已将异常内存块加入了维护链表中。此时若第一分数、第二分数、第三分数、第四分数、第五分数的总和小于第二阈值,即并未检测出spray模式的攻击,则申请进行可执行性检测。
若这些异常内存块的信息对于该检测有效时,则进行该项检测;若这些异常内存块的信息对于可执行性检测无效时,即这些异常内存块的信息不适合进行可执行性检测时,则直接跳过该检测方法,进行下一个检测。或较佳的,当这些异常内存块的信息不适合进行可执行性检测时,直接生成的第六分数为0。
当这些异常内存块的信息对于可执行性检测有效时,遍历维护链表,判断异常内存块中是否存在的可执行的shellcode,依据异常内存块中是否存在可执行的shellcode生成第六分数;
若存在可执行的shellcode,则生成较大的第六分数,如第六分数此时可为100分;若不存在可执行的shellcode,则生成较小的第六分数,此时第六分数可为0分。存在可执行的shellcode时生成的第六分数大于不存在可执行的shellcode时生成的第六分数。
步骤323,判断第一分数、第二分数、第三分数、第四分数、第五分数、第六分数的总和是否不小于第二阈值;若第一分数、第二分数、第三分数、第四分数、第五分数、第六分数之和不小于第二阈值,则执行步骤325;若第一分数、第二分数、第三分数、第四分数、第五分数、第六分数之和小于第二阈值,则执行步骤324;
步骤324,确定应用程序不存在喷射模式的攻击;可安全打开应用程序。
步骤325,确定所述应用程序存在喷射模式的攻击;
若在系统层仿真执行该应用程序的过程中,检测到了spray模式的攻击,则会弹出提示框,提醒用户,该网页存在spray模式的攻击,此时用户界面上仍旧显示网页正在打开中,弹出提示,可由用户自行选择是否继续打开;另一种方案为,当在仿真执行该应用程序的过程中,检测到了spray模式的攻击时,直接强制用户关闭该网页,以免电脑受到攻击,从而造成用户信息泄露、电脑被控制等。
由于本发明实施例提供了多种检测方法,可依据spray模式所产生的内存块信息自动匹配不同的检测方法,因此准确率更高。
由于在检测网页上是否存在可执行的shellcode之前,已经进行了大量检测,以便从内存块信息上判断出是否存在shellcode,因此该检测方法在很大程度上,在shellcode执行前便可检测出spray模式的攻击,及时性大大提高。
本发明实施例提供一种喷射模式攻击的检测方法和装置,以仿真方式执行应用程序,并在应用程序执行过程中对敏感函数的调用情况进行检测,敏感函数是用于管理内存的函数;当检测到敏感函数调用异常且产生异常内存块时,确定敏感函数调用异常且产生异常内存块的累计次数;若敏感函数的调用异常且产生异常内存块的累计次数不小于第一阈值,则对敏感函数调用过程中产生的异常内存块进行时间戳检测,依据时间戳检测的结果生成第一分数;若第一分数不小于第二阈值,则确定应用程序存在喷射模式的攻击。由于通过对异常内存块的时间戳进行检测即可判断出是否存在喷射模式的攻击,从而避免了仅通过检测shellcode是否可执行所造成的检测失效的情况的发生。进一步由于在shellcode执行前就进行了时间戳检测,即在shellcode执行前就可检测到喷射模式的攻击,提高了检测的及时性。
本领域内的技术人员应明白,本发明的实施例可提供为方法或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种喷射模式攻击的检测方法,其特征在于,包括以下步骤:
以仿真方式执行应用程序,并在所述应用程序执行过程中执行以下操作:
对敏感函数的调用情况进行检测,所述敏感函数是用于管理内存的函数;
当检测到所述敏感函数调用异常且产生异常内存块时,确定所述敏感函数调用异常且产生异常内存块的累计次数;
若所述敏感函数的调用异常且产生异常内存块的累计次数不小于第一阈值,则对所述敏感函数调用过程中产生的异常内存块进行时间戳检测,依据所述时间戳检测的结果生成第一分数;
若所述第一分数不小于第二阈值,则确定所述应用程序存在喷射模式的攻击。
2.如权利要求1所述的方法,其特征在于,所述对所述敏感函数调用过程中产生的异常内存块进行时间戳检测,依据所述时间戳检测的结果生成第一分数,具体包括:
计算相邻的所述异常内存块的时间戳之间的第一差值;
确定所述第一差值小于第三阈值的数量;
若所述小于所述第三阈值的所述第一差值的数量不小于第四阈值时,则依据所述第一差值在第一取值范围或第二取值范围或第三取值范围的分布概率生成第一分数。
3.如权利要求2所述的方法,其特征在于,所述依据所述第一差值在第一取值范围或第二取值范围或第三取值范围的分布概率得到第一分数,具体包括:
确定所述第一差值在第一取值范围的第一分布概率,当所述第一分布概率不小于第五阈值时,依据所述第一分布概率生成第一分数;
当所述第一分布概率小于第五阈值时,确定所述第一差值在第二取值范围的第二分布概率,当所述第二分布概率不小于第六阈值时,依据第二分布概率生成所述第一分数;
当所述第二分布概率小于第六阈值时,确定所述第一差值在第三取值范围的第三分布概率,当所述第三分布概率不小于第七阈值时,依据所述第三分布概率生成所述第一分数;
当所述第三分布概率小于第七阈值时,依据所述第一分布概率、所述第二分布概率、所述第三分布概率生成所述第一分数;
其中,所述第三取值范围包含第二取值范围;第二取值范围包含第一取值范围;
其中,所述第五阈值小于第六阈值,第六阈值小于第七阈值。
4.如权利要求2所述的方法,其特征在于,还包括:
若所述第一分数小于所述第二阈值,则进行释放后重利用UAF检测;
确定UAF检测过程中被释放又被重新申请的所述异常内存块的数量;
根据UAF检测过程中被释放又被重新申请的所述异常内存块的数量生成第二分数;
若所述第一分数、所述第二分数的总和不小于所述第二阈值,则确定所述应用程序存在喷射模式的攻击。
5.如权利要求4所述的方法,其特征在于,还包括:
若所述第一分数、所述第二分数的总和小于所述第二阈值,则进行申请次序检测;
确定申请次序检测过程中相邻的所述异常内存块的申请次序为递增的情况的发生次数;
根据申请次序检测过程中相邻的所述异常内存块的申请次序为递增的情况的发生次数生成第三分数;
若所述第一分数、所述第二分数、所述第三分数的总和不小于所述第二阈值时,则确定所述应用程序存在喷射模式的攻击。
6.如权利要求5所述的方法,其特征在于,还包括:
若所述第一分数、所述第二分数、所述第三分数的总和小于所述第二阈值,则进行内存布局检测;
确定内存布局检测过程中相邻的所述异常内存块为连续内存块的情况的发生次数;
根据内存布局检测过程中相邻的所述异常内存块为连续内存块的情况的发生次数生成第四分数;
确定内存布局检测过程中相邻的所述异常内存块为连续内存块时的所述连续内存块的总长度;
根据所述内存布局检测过程中相邻的所述异常内存块为连续内存块时的所述连续内存块的总长度生成第五分数;
若所述第一分数、所述第二分数、所述第三分数、所述第四分数、所述第五分数的总和不小于所述第二阈值时,则确定所述应用程序存在喷射模式的攻击。
7.如权利要求6所述的方法,其特征在于,还包括:
若所述第一分数、所述第二分数、所述第三分数、所述第四分数、所述第五分数的总和小于所述第二阈值,则进行可执行性检测;
确定可执行性检测过程中所述异常内存块中是否存在的可执行的恶意攻击指令shellcode;
根据可执行性检测过程中所述异常内存块中是否存在的可执行的shellcode生成第六分数;
若所述第一分数、所述第二分数、所述第三分数、所述第四分数、所述第五分数、所述第六分数的总和不小于所述第二阈值,则确定所述应用程序存在喷射模式的攻击。
8.一种喷射模式攻击的检测装置,其特征在于,包括:
第一检测模块,用于在仿真方式执行应用程序的过程中对敏感函数的调用情况进行检测,所述敏感函数是用于管理内存的函数;当检测到所述敏感函数调用异常且产生异常内存块时,触发控制模块;
控制模块,用于确定所述敏感函数调用异常且产生异常内存块的累计次数;若所述敏感函数的调用异常且产生异常内存块的累计次数不小于第一阈值,则触发第二检测模块;依据所述第二检测模块检测的结果生成第一分数;若所述第一分数不小于第二阈值,则确定所述应用程序存在喷射模式的攻击;
第二检测模块,用于根据所述控制模块的触发,对所述敏感函数调用过程中产生的异常内存块进行时间戳检测。
9.如权利要求8所述的装置,其特征在于,
所述第二检测模块,具体用于:
计算相邻的所述异常内存块的时间戳之间的第一差值;
确定所述第一差值小于第三阈值的数量;
所述控制模块,具体用于:
若小于所述第三阈值的所述第一差值的数量不小于第四阈值时,则触发第三检测模块、第三检测模块和第四检测模块、第三检测模块和第四检测模块和第五检测模块,依据所述第三检测模块或所述第四检测模块或所述第五检测模块检测的结果生成第一分数;
若所述第一分数的总和不小于所述第二阈值,则确定所述应用程序存在喷射模式的攻击。
10.如权利要求9所述的装置,其特征在于,
所述第三检测模块,具体用于:
确定所述第一差值在第一取值范围的第一分布概率;
所述第四检测模块,具体用于:
确定所述第一差值在第二取值范围的第二分布概率;
所述第五检测模块,具体用于:
确定所述第一差值在第三取值范围的第三分布概率;
所述控制模块,具体用于:
若小于所述第三阈值的所述第一差值的数量不小于第四阈值时,触发第三检测模块,若所述第一分布概率不小于第五阈值时,依据所述第一分布概率生成第一分数;
当所述第一分布概率小于第五阈值时,触发第四检测模块,当所述第二分布概率不小于第六阈值时,依据第二分布概率生成所述第一分数;
当所述第二分布概率小于第六阈值时,触发第五检测模块,当所述第三分布概率不小于第七阈值时,依据所述第三分布概率生成所述第一分数;
当所述第三分布概率小于第七阈值时,依据所述第一分布概率、所述第二分布概率、所述第三分布概率生成所述第一分数;
其中,所述第三取值范围包含第二取值范围;第二取值范围包含第一取值范围;
其中,所述第五阈值小于第六阈值,第六阈值小于第七阈值。
11.如权利要求8所述的装置,其特征在于,
所述控制模块,还用于:
若所述第一分数的总和小于所述第二阈值,则触发第六检测模块;
根据释放后重利用UAF检测过程中被释放又被重新申请的所述异常内存块的数量生成第二分数;
若所述第一分数、所述第二分数的总和不小于所述第二阈值,则确定所述应用程序存在喷射模式的攻击;
所述第六检测模块,具体用于:
确定UAF检测过程中被释放又被重新申请的所述异常内存块的数量。
12.如权利要求11所述的装置,其特征在于,
所述控制模块,还用于:
若所述第一分数、所述第二分数的总和小于所述第二阈值,则触发第七检测模块;
根据申请次序检测过程中相邻的所述异常内存块的申请次序为递增的情况的发生次数生成第三分数;
若所述第一分数、所述第二分数、所述第三分数的总和不小于所述第二阈值时,则确定所述应用程序存在喷射模式的攻击。
所述第七检测模块,具体用于:
确定申请次序检测过程中相邻的所述异常内存块的申请次序为递增的情况的发生次数。
13.如权利要求12所述的装置,其特征在于,
所述控制模块,还用于:
若所述第一分数、所述第二分数、所述第三分数的总和小于所述第二阈值,则触发第八检测模块和第九检测模块;
根据内存布局检测过程中相邻的所述异常内存块为连续内存块的情况的发生次数生成第四分数;
根据所述内存布局检测过程中相邻的所述异常内存块为连续内存块时的所述连续内存块的总长度生成第五分数;
若所述第一分数、所述第二分数、所述第三分数、所述第四分数、所述第五分数的总和不小于所述第二阈值时,则确定所述应用程序存在喷射模式的攻击;
所述第八检测模块,具体用于:
确定内存布局检测过程中相邻的所述异常内存块为连续内存块的情况的发生次数;
所述第九检测模块,具体用于:
确定内存布局检测过程中相邻的所述异常内存块为连续内存块时的所述连续内存块的总长度。
14.如权利要求13所述的装置,其特征在于,
所述控制模块,还用于:
若所述第一分数、所述第二分数、所述第三分数、所述第四分数、所述第五分数的总和小于所述第二阈值,则触发第十检测模块;
根据可执行性检测过程中所述异常内存块中是否存在可执行的shellcode生成第六分数;
若所述第一分数、所述第二分数、所述第三分数、所述第四分数、所述第五分数、所述第六分数的总和不小于所述第二阈值,则确定所述应用程序存在喷射模式的攻击;
所述第十检测模块,具体用于:
确定可执行性检测过程中所述异常内存块中是否存在的可执行的shellcode。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410236293.3A CN103984898B (zh) | 2014-05-29 | 2014-05-29 | 一种喷射模式攻击的检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410236293.3A CN103984898B (zh) | 2014-05-29 | 2014-05-29 | 一种喷射模式攻击的检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103984898A true CN103984898A (zh) | 2014-08-13 |
CN103984898B CN103984898B (zh) | 2017-02-01 |
Family
ID=51276863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410236293.3A Active CN103984898B (zh) | 2014-05-29 | 2014-05-29 | 一种喷射模式攻击的检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103984898B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160378986A1 (en) * | 2015-06-29 | 2016-12-29 | Palo Alto Networks, Inc. | Detecting Heap-Spray in Memory Images |
CN106709357A (zh) * | 2016-12-14 | 2017-05-24 | 武汉虹旭信息技术有限责任公司 | Android平台基于内核内存监控的漏洞防护系统 |
CN106855925A (zh) * | 2015-12-09 | 2017-06-16 | 中国电信股份有限公司 | 堆喷射检测方法及装置 |
CN106997313A (zh) * | 2017-03-28 | 2017-08-01 | 腾讯科技(深圳)有限公司 | 一种应用程序的信号处理方法、系统及终端设备 |
CN110826073A (zh) * | 2019-10-31 | 2020-02-21 | 腾讯科技(深圳)有限公司 | 一种内核漏洞检测方法、装置和存储介质 |
CN111193617A (zh) * | 2019-12-17 | 2020-05-22 | 中移(杭州)信息技术有限公司 | 网页篡改识别方法、装置、电子设备及存储介质 |
CN112989323A (zh) * | 2021-02-03 | 2021-06-18 | 成都欧珀通信科技有限公司 | 进程检测方法、装置、终端及存储介质 |
CN113253092A (zh) * | 2020-01-28 | 2021-08-13 | 新唐科技股份有限公司 | 使用软安全对策的安全集成电路 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818822A (zh) * | 2005-02-07 | 2006-08-16 | 福建东方微点信息安全有限责任公司 | 缓冲区溢出攻击的检测方法 |
CN101034364A (zh) * | 2007-04-02 | 2007-09-12 | 华为技术有限公司 | 一种实现内存数据备份的方法、装置和系统 |
US20090328007A1 (en) * | 2008-06-27 | 2009-12-31 | International Business Machines Corporation | Memory leak diagnosis |
CN103092746A (zh) * | 2013-02-05 | 2013-05-08 | 上海大唐移动通信设备有限公司 | 线程异常的定位方法及系统 |
US20140075203A1 (en) * | 2012-09-10 | 2014-03-13 | Oberthur Technologies | Method for testing the security of an electronic device against an attack, and electronic device implementing countermeasures |
-
2014
- 2014-05-29 CN CN201410236293.3A patent/CN103984898B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818822A (zh) * | 2005-02-07 | 2006-08-16 | 福建东方微点信息安全有限责任公司 | 缓冲区溢出攻击的检测方法 |
CN101034364A (zh) * | 2007-04-02 | 2007-09-12 | 华为技术有限公司 | 一种实现内存数据备份的方法、装置和系统 |
US20090328007A1 (en) * | 2008-06-27 | 2009-12-31 | International Business Machines Corporation | Memory leak diagnosis |
US20140075203A1 (en) * | 2012-09-10 | 2014-03-13 | Oberthur Technologies | Method for testing the security of an electronic device against an attack, and electronic device implementing countermeasures |
CN103092746A (zh) * | 2013-02-05 | 2013-05-08 | 上海大唐移动通信设备有限公司 | 线程异常的定位方法及系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9804800B2 (en) * | 2015-06-29 | 2017-10-31 | Palo Alto Networks, Inc. | Detecting heap-spray in memory images |
US20160378986A1 (en) * | 2015-06-29 | 2016-12-29 | Palo Alto Networks, Inc. | Detecting Heap-Spray in Memory Images |
CN106855925A (zh) * | 2015-12-09 | 2017-06-16 | 中国电信股份有限公司 | 堆喷射检测方法及装置 |
CN106855925B (zh) * | 2015-12-09 | 2020-02-18 | 中国电信股份有限公司 | 堆喷射检测方法及装置 |
CN106709357A (zh) * | 2016-12-14 | 2017-05-24 | 武汉虹旭信息技术有限责任公司 | Android平台基于内核内存监控的漏洞防护系统 |
CN106997313B (zh) * | 2017-03-28 | 2022-04-05 | 腾讯科技(深圳)有限公司 | 一种应用程序的信号处理方法、系统及终端设备 |
CN106997313A (zh) * | 2017-03-28 | 2017-08-01 | 腾讯科技(深圳)有限公司 | 一种应用程序的信号处理方法、系统及终端设备 |
CN110826073A (zh) * | 2019-10-31 | 2020-02-21 | 腾讯科技(深圳)有限公司 | 一种内核漏洞检测方法、装置和存储介质 |
CN111193617A (zh) * | 2019-12-17 | 2020-05-22 | 中移(杭州)信息技术有限公司 | 网页篡改识别方法、装置、电子设备及存储介质 |
CN111193617B (zh) * | 2019-12-17 | 2022-10-18 | 中移(杭州)信息技术有限公司 | 网页篡改识别方法、装置、电子设备及存储介质 |
CN113253092A (zh) * | 2020-01-28 | 2021-08-13 | 新唐科技股份有限公司 | 使用软安全对策的安全集成电路 |
CN113253092B (zh) * | 2020-01-28 | 2023-08-08 | 新唐科技股份有限公司 | 使用软安全对策的安全集成电路 |
CN112989323A (zh) * | 2021-02-03 | 2021-06-18 | 成都欧珀通信科技有限公司 | 进程检测方法、装置、终端及存储介质 |
CN112989323B (zh) * | 2021-02-03 | 2024-02-13 | 成都欧珀通信科技有限公司 | 进程检测方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103984898B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103984898A (zh) | 一种喷射模式攻击的检测方法和装置 | |
Lee et al. | An {Off-Chip} attack on hardware enclaves via the memory bus | |
Wilander et al. | RIPE: Runtime intrusion prevention evaluator | |
Hizver et al. | Real-time deep virtual machine introspection and its applications | |
CN104008329B (zh) | 一种基于虚拟化技术的软件隐私泄露行为检测方法及系统 | |
RU2016103212A (ru) | Оценка процесса для выявления вредоносных программ в виртуальных машинах | |
CN104700026A (zh) | 基于java字节码插桩和java方法挂钩检测java沙箱逃逸攻击 | |
CN102012987A (zh) | 自动二进制恶意代码行为分析系统 | |
CN111859394B (zh) | 基于tee的软件行为主动度量方法及系统 | |
Bian et al. | Minethrottle: Defending against wasm in-browser cryptojacking | |
CN105260659A (zh) | 一种基于qemu的内核级代码重用型攻击检测方法 | |
Chen et al. | JITSafe: a framework against Just‐in‐time spraying attacks | |
CN102651062A (zh) | 基于虚拟机架构的恶意行为跟踪系统和方法 | |
CN106599688A (zh) | 一种基于应用类别的安卓恶意软件检测方法 | |
Fu et al. | A critical-path-coverage-based vulnerability detection method for smart contracts | |
CN104809391B (zh) | 缓冲区溢出攻击检测装置、方法和安全防护系统 | |
CN101719204B (zh) | 基于中间指令动态插装的Heapspray型网页木马的检测方法 | |
CN105468965A (zh) | 一种动态堆栈内存管理方法 | |
Li et al. | Virtual wall: Filtering rootkit attacks to protect linux kernel functions | |
CN102708330A (zh) | 一种防止系统被入侵的方法、入侵防御系统及计算机 | |
Ghosh et al. | Software protection for dynamically-generated code | |
CN101315655A (zh) | 一种防御缓冲区溢出攻击方法和装置 | |
US20190213323A1 (en) | Systems and methods for detecting and mitigating code injection attacks | |
US20220138311A1 (en) | Systems and methods for detecting and mitigating code injection attacks | |
Dong et al. | Kims: kernel integrity measuring system based on trustzone |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Co-patentee after: NSFOCUS TECHNOLOGIES Inc. Patentee after: NSFOCUS Technologies Group Co.,Ltd. Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Co-patentee before: NSFOCUS TECHNOLOGIES Inc. Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd. |