背景技术
目前网页中的不安全信息(包括网页病毒)的传播方式主要是通过挂马方式来实现,即通过可执行漏洞,包括操作系统和安装软件的安全隐患,通过js(Java描述语言),vbs(Visual Basic描述语言)等网页脚本将木马下载到本机并且执行。一个网页包含内容参见图1所示,包括html(Hypertext MarkupLanguage,超文本链接标示语言)或htm(HTML文件的后缀)等网页代码、JS或VBS等脚本、GIF或JPG等图像以及CSS等框架定义。
目前的网页安全信息检索技术,其实现方式主要有以下三种:
现有技术一、参见图2所示,传统的网页安全信息检索技术是将网页的各种构成部分下载到本机,并依赖于病毒库,根据已知的病毒信息对网页进行检索,判断是否出现耦合,如果该网页中有二进制码符合病毒库中的特征,则认为该网页为有病毒的网页。
其缺点是:
1、依赖病毒库,无法预知未知病毒。
2、由于是检索并匹配病毒特征,所以容易被欺骗,也容易产生误报。
3、一些针对性攻击只会在特定环境中发生,一般在静态环境下很难检测出来。
现有技术二、提供了一种非主流的网页安全信息检索技术。其是针对蠕虫等病毒的抵御而诞生的主动防御技术,主要针对已知的溢出漏洞。这种技术的含盖性不高,只能识别已知的可执行漏洞都,而且该技术也并非是针对网页病毒的查杀而设计的。所以之后又出现了另外一种网页安全信息检索技术,见现有技术三。
现有技术三、参见图3所示,该技术是对代码执行流程进行分析,若流程按照已知的特定规则执行(如:发现溢出、发现非法流程),则认为包含病毒。
其缺点是:
1、现有技术三的主动防御技术含盖性虽然得到了提高,但是网页中的病毒有相当一部分仍然不能被报警,因为这种技术仅能检查有溢出行为和已知的非法流程的病毒。
2、由于这种网页安全信息检索技术是主动防御技术附属产生的,而主动防御技术不成熟,因此会导致查杀病毒的定位不精确,病毒分析不清,给使用带来了并不理想的结果,例如:
~.tmp的马可被报出,但却不能查到产生~.tmp的主程序,即浏览的网页。
3、主动防御技术的行为分析是以用户广泛使用为基础,对现有典型病毒的逻辑行为进行过程分析,并且基于已发现漏洞的入侵方式进行的。但这也导致对于新出现的病毒,或者特殊构造的漏洞束手无策。举个简单的例子进行说明,一个网页针对杀毒软件构造的漏洞溢出后,会执行特定的程序,如果该漏洞并没有被杀毒软件认定为病毒的行为,也就是与杀毒软件的行为特征库不符,那么就不会触发溢出报警机制,于是病毒就成功利用了该漏洞。
4、主动防御技术在对病毒的行为过程进行分析时,由于分析过程的复杂度较大,使得分析逻辑本身会出现错误,从而导致报警系统无法正常报警。更严重的是可利用这些逻辑错误编写免杀程序。
5、技术、逻辑实现复杂。
可见由于该技术的实现复杂,智力投入较大,开发周期过长,并且产品的使用效果并不理想,重要的是不能应用到专业的网页查杀服务器中。
综上所述,现有技术必须依赖于已知的病毒特征对网页信息进行安全检测。
具体实施方式
现有基于已知的病毒特征(包括漏洞的入侵方式)无法适应当前的网页安全信息检测需求。在网页挂马、浏览器漏洞攻击等手段已被滥用的当前网络环境下,急需一种不依赖于已知的病毒特征对网页信息进行安全检测的手段。
本发明实施例提供了一种网页安全信息检测系统和方法,可根据网页的具体行为结果(本发明实施例中所述的行为结果为内核层的执行结果,而非应用层和用户层表现出来的操作结果)来确定网页的安全性。具体的,一个网页是否有病毒,不是根据任何先验的病毒特征进行精确匹配或者模糊匹配,而是模拟最终用户环境来运行该网页,通过记录网页的具体行为结果来确定该网页是否安全,从而可实现不依赖于已知的病毒特征对网页信息进行批量安全检测。
以下分别描述本发明实施例提供的网页安全信息检测系统和方法。
本发明实施例的系统植入操作系统的核心驱动程序,参见图4所示,其包括:待扫描的网页地址数据库、核心调度模块、浏览器助手模块和核心监视模块。
待扫描的网页地址数据库,用于存储待扫描的网页地址URL。
核心调度模块,用于根据预先的配置,启动至少一个浏览器。
浏览器助手模块,被启动的每一浏览器分别加载,并为加载其的浏览器生成唯一标识符,以及以该标识符通过核心调度模块请求待扫描的网页地址数据库中的URL,并控制加载其的浏览器打开该URL。
核心监视模块,用于在监视到被启动的浏览器出现异常行为结果时,根据该浏览器对应的标识符,将该浏览器打开的URL反馈给核心调度模块保存。该核心监视模块可采用hook方式实现对被启动的浏览器异常行为结果的监视,具体实现方式如下:
应用层通过增加系统服务加载驱动,通过创建内核对象(包括内核事件对象和驱动程序对象)的连接点进行应用层和内核层之间的交互,内核层主要进行评定,应用层主要对评定的结果和出现的问题进行记录。
所述核心监视模块主要采用的技术实现方式为hook,hook是一种修改程序流程的方式,中文名挂钩,一般常hook对象有windows API(ApplicationProgramming Interface应用编程接口)、中断服务、IFS(可安装文件系统)和NDIS(Network Driver Interface Standard网络驱动器接口标准)过滤等。
由于任何的用户层都是经过Windows内核服务api实现的,所以核心监视模块主要是通过hook windows内核服务api来实现对windows应用层操作的记录和保护,为了增加系统的稳定性,hook主要是通过挂接windows ssdt表(System Services Descriptor Table即系统服务描述符表)实现的,本模块hook了注册表、文件,以及进程相关的内核服务api,(如:NtCreateProcess),靠他们监视危险的用户层执行结果,一旦触发特定结果,则认为是病毒,被hook的函数通过模拟windows行为,依靠拒绝服务来保护操作系统免受病毒的侵害。当出现判定为病毒的时候,我们通过内核事件对象对上层程序(加载此驱动的程序)进行通知,这样上层程序就能够对病毒所进行的非法操作记录,方便以后对其进行评测。
本发明实施例还提供了一种网页安全信息检测方法,参见图5所示,包括下列主要步骤:
S1、启动至少一个浏览器。
S2、为每一被启动的浏览器生成唯一标识符,以及以该标识符请求URL,并在该标识符对应的浏览器中打开。
S3、在监视到被启动的浏览器出现异常行为结果时,根据该浏览器对应的标识符,将该浏览器打开的URL保存。其中,以挂钩hook方式实现对被启动的浏览器异常行为结果的监视(具体内容参见本发明实施例的系统)。
以下将本发明实施例的系统和方法相结合,以一个实施例详细描述系统的工作流程,参见图6所示,包括下述具体内容:
1、当操作系统成功启动之后,加载核心监视模块。该模块在原有操作系统的基础上,提供专用于杀毒的系统服务和功能。
如前文提到,本发明实施例是完全模拟用户使用浏览器打开网页的过程,并在此过程中监视系统是否存在异常。而染毒网页将常会利用浏览器漏洞进行攻击,当成功攻击浏览器之后,网页病毒代码会指挥浏览器下载木马/病毒文件到用户机器运行。浏览器也属于应用软件,其本身就可能包含BUG等导致系统异常的错误。病毒代码通过浏览器程序本身的漏洞攻击,有极大可能会造成浏览器崩溃甚至整个系统崩溃。核心监视模块通过在传统操作系统的基础上实现一个专用于本发明系统的子操作系统,来保护真实操作系统的安全。参见图7所示,由于该模块工作层次(应用层为最高,硬件级最低)较低,所以可以监视到上层软件,如浏览器的所有操作。对于异常行为结果进行记录,对于可能造成系统崩溃/死机的异常行为结果,不但记录,而且会拒绝。
2、当系统启动并且核心监视模块被成功加载之后,系统会自动启动核心调度模块。核心调度模块会根据预先的配置,启动若干浏览器(启动的数目,取决于以下几个条件:机器性能所允许运行的最大数目、扫描速度的需求、网络带宽)。每个浏览器启动后,会加载一个浏览器助手BHO(Browser HelperObject)模块,BHO模块会根据核心调度模块的指示来指挥浏览器工作。
3、BHO模块会根据机器编号和加载其的浏览器编号,为加载其的浏览器合成一个唯一标识符,并以此去核心调度模块请求一个URL;核心调度模块从待扫描的网页地址数据库中获取URL,并调度到所述BHO模块;当该BHO模块获得这个URL之后,就控制浏览器打开这个URL,从而使被打开的URL形成一个进程。还可在打开URL时开始计时,如果发现超过n秒仍然没有打开,则认为此URL超时。
由于浏览器与标识符唯一对应,URL是通过标识符请求的,进程是打开该URL而形成的,所以通过标识符可建立进程、浏览器和URL之间的对应关系。
4、所有的浏览器工作的同时,核心监测模块监测是否存在异常行为结果,一旦发现,则检测这些结果来自哪个进程,从而获得该进程对应的标识符,进而确定是哪个浏览器。一旦确定了是哪个浏览器,就能知道其所对应的URL是什么。然后把这个会导致异常的URL回馈给核心调度模块,核心调度模块将这些信息存储在数据库中。
本发明实施例可应用于但不限于以下两种实际方案,参见图8所示:
1、单机扫描方案:在此解决方案中,数据库和模拟启动浏览器、打开URL,监视浏览器等工作在同一个高性能计算机中。数据库事先保存好需要扫描的URL集合,并保存不安全的URL。
2、大规模扫描集群方案:该方案并不是1号方案简单的叠加。在此方案中,需要有单独的机器群运行数据库,多台机器进行模拟启动浏览器、打开URL,监视浏览器等工作。并可以根据需要增加机器来校验不安全URL等。方案2提供的解决方案,不但可以满足有网页安全信息检测需求的企业用户进行大规模批量查询,也能提供给互联网普通用户进行针对个别网页的单次查询。
综上所述,本发明实施例根据网页的具体行为结果来确定网页的安全性。本发明实施例的系统及方法中,一个网页是否有病毒,不是根据任何先验的病毒特征进行精确匹配或者模糊匹配,而是模拟最终用户环境来运行该网页,通过监视网页的具体行为结果,对该网页信息进行安全检测。
由于病毒的执行目的是为了破坏系统,不会出现病毒行为结果与正常程序行为结果相同的情况,本发明实施例是通过行为结果(本发明实施例中所述的行为结果为内核层的执行结果,而非应用层和用户层表现出来的操作结果)确定网页信息是否安全,所以不会出现误判;而现有是根据特定执行流程来确定网页信息是否安全,无法避免正常程序的执行流程与病毒的执行流程类似时的误判。可见本发明实施例相对于现有技术精确度更高。
由于本发明实施例是通过行为结果确定网页信息是否安全,与病毒库无关,任病毒种类变幻莫测,只要对系统有危害,都能检测出来。
而且不仅能检测出对系统有危害的网页,对于网页上的“弹广告”“打开错误”等信息也能记录下来。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。