专利名称:分析网络内容的系统和方法
技术领域:
本申请案涉及数据和应用程序安全性。确切地说,本申请案揭示收集和挖掘数据以 确定数据是否包含恶意内容的系统方法。
背景技术:
传统十.,计算机病毒和其它恶意内容最经常通过将受感染的磁盘或某种其它物理媒 体插入计算机而被提供到客户端计算机。随着电子邮件和因特网的使用增加,电子邮件 附件攻击变为用于向计算机分布病毒代码的普遍方法。为了用这些类型的具有恶意内容 的病毒感染计算机,通常需要用户的某种同意动作,例如打开受感染的文件附件或从网 站下载受感染的文件并在用户的计算机上启动所述文件。随着时间的过去,反病毒软件 制作者开发出日益有效的程序,所述程序经设计以扫描文件并在其有机会感染客户端计 算机之前将其消毒。因此,计算机黑客不得不创造更聪明且创新的方法来用其恶意代码 感染计算机。
在当今的日渐联网的数字世界,正开发分布式应用程序以在开放的、合作的联网环 境中向用户提供越来越多的功能性。尽管这些应用程序较有力且复杂,但其增加的功能 性要求网络服务器以更集成的方式与客户端计算机交互。举例来说,在先前网络应用程 序主要向客户端浏览器提供HTML内容并经由HTTP邮递命令从客户端接收回数据的情 况下,许多新的网络应用程序经配置以向客户端计算机发送各种形式的内容,其引起在 较新的网络浏览器的增强特征内启动应用程序。举例来说,许多基于网络的应用程序现 在利用活动-X (Active-X)控件,其必须下载到客户端计算机以使得其可被有效地利用。 在特定例子中Java小程序(Java applet)、 VB脚本(VBScript)和Java脚本(JavaScript) 命令也有能力修改客户端计算机文件。
这些功能性增加所带来的便利也有代价。较新的网络应用程序和内容显然比先前的 应用程序环境更有力。因此,其还为将恶意代码下载到客户端计算机提供了机会。另外, 随着操作系统和网络浏览应用程序的复杂性增加,更难以识别可能会允许黑客将恶意代码传送到客户端计算机的安全性弱点。尽管浏览器和操作系统厂商通常会发布软件更新 以补救这些弱点,但许多用户尚未配置其计算机以下载这些更新。因此,黑客已开始编 写利用这些弱点以将其本身下载到用户的机器而不用依赖于用户的任何特定活动(例如 启动受感染的文件)的恶意代码和应用程序。此攻击的一个实例是使用嵌入在网站上的 活动内容对象的恶意代码。如果恶意代码已经配置以利用网络浏览器中的弱点,那么用 户可能仅仅因为访问过所述页面就会被恶意代码感染或损害,因为所述页面中的内容将 在用户的计算机上执行。
解决嵌入内容中的恶意代码的问题的一种尝试是利用网络浏览器上的升高的安全性 设定。然而在许多公司环境中,内部网或外部网应用程序经配置而向客户端计算机发送 可执行内容。将浏览器设定设定为高安全性等级往往会妨碍或阻碍对这些类型的"安全" 应用程序的有效使用。解决问题的另一尝试是使用网络防火墙应用程序来阻止所有可执 行内容。此强力方法在许多环境中也是低效的,因为为了让软件正确地起作用,有必要 对特定类型内容进行选择性存取。
需要一种允许检测恶意网络内容而不会损害用户功能性的系统和方法。此外,需要 一种可检测可执行内容并快速识别和归类其行为,且以最小延迟向大量客户端计算机提 供针对恶意内容的保护的系统。
发明内容
本发明的系统、方法和装置每一者均具有若干方面,其中任何单个--个方面均不唯 一-负责其所需的属性。现在将简要论述本发明的若干特征,但并不限制本发明的范围。
在 一 个实施例中,提供 一 种识别网络内容中的不适当内容的计算机实施的方法。所 述方法包含接收针对网络内容的请求。将所请求的网络内容与数据库中的数据进行比较。 如果所请求的内容不在数据库中,则将其发送到收集与所请求内容相关的数据的收集模 块。基于所收集数据,确定URL的候选状态。
在另一实施例中,提供一种用于从一组未经归类URL中识别候选URL的系统。所 述系统可包含经配置以存储未经归类URL的URL数据库,以及经配置以收集关于未经 归类URL的包含与未经归类URL相关的数据的信息的收集系统。收集系统可包含数据 挖掘模块,其经配置以识别具有指示目标内容的特性的未经归类URL。
在又-一实施例中,提供一种收集关于URL的数据的计算机实施的方法。所述方法包 含提供具有配置插件的数据挖掘模块。所述数据挖掘模块可具有经配置以彼此独立操作 的多个调度程序。数据挖掘模块接收URL数据用于分析,并将URL数据分离为URL串的工作单元。所述方法进一步用于确定所述多个调度程序中是否有一者可用于接收工作 单元,且如果调度程序中的一者可用则将URL发送到所述调度程序。
在又一实施例中,提供一种收集关于URL的数据的系统。所述系统可包含用于存储 关于URL的信息的数据库。所述系统还可包含调度程序库,所述调度程序包含异步系统 过程,每一异步系统过程经配置以接收URL数据输入且对数据执行动作。所述系统还可 包含驱动程序模块,其经配置监视所述调度程序库以查找可用的调度程序,且将所述URL 数据输入的一部分发送到所述可用的调度程序。
在又一实施例中, 一种用于从一组未经归类URL中识别候选URL的系统包含用于 存储未经归类URL的构件,用于收集与未经归类URL相关的信息的构件,以及用于识 别具有指示目标内容的特性的未经归类URL的构件。
在本描述内容中参看附图,其中始终以相同标号指代相同部分。 图1是根据本发明方面的系统的各种组件的方框图。 图2是来自图1的工作站模块的方框图。 图3是来自图1的网关服务器模块的方框图。 图4是记录数据库的实例。 图5是URL接入策略数据库表的实例。 图6A和6B分别是经归类和未经归类的URL的实例。 图7是来自图1的数据库管理模块的方框图。 图S是来自图7的收集系统的方框图。 图9是来自图8的收集模块的方框图。 图IO展示根据本发明某些方面的蜜罐客户端系统。 图11是由来自图9的收集模块收集的URL相关数据的实例。 图12是描述在一个实施例中可如何在网关服务器模块中处理URL的流程图。 图13是描述根据某些实施例可如何结合策略模块通过网关服务器模块处理URL的 流程图。
图14是描述收集系统可如何在网关服务器模块内处理URL的流程图。
图15是描述收集系统可如何在数据库管理模块内处理URL的流程图。
图16是描述可如何使用蜜罐客户端控制服务器来收集URL数据的流程图。
图17是描述可如何进一步补充由收集系统收集的数据以允许详细分析的流程图。图18是数据挖掘系统的方框图。 具4本实施方式
特定实施例提供识别和归类在通过统一资源定位符(URL)识别的位置发现的网络 内容的系统和方法,所述内容包含可能可执行的网络内容和恶意内容。如本文使用,可 能可执行的网络内容通常指包含由网络浏览器或网络客户端计算机执行的指令的任何类 型的内容。可能可执行的网络内容可包含例如小程序、嵌入HTML或其它超文本文档(包 含例如Java脚本或VB脚本的脚本语言)的可执行代码、嵌入其它文档(例如微软Word 宏或样式表)屮的可执行代码。可能可执行的网络内容也可指执行位于另一位置(例如 另一网页、另一计算机或网络浏览器计算机本身上)中的代码的文档。举例来说,通常 可认为包含"对象"元素且因此可引起活动X或其它可执行组件的执行的HTML网页是 可能可执行的网络内容,无论所述可执行组件的位置如何。恶意内容可指不可执行但可 经计算以利用客户端计算机的弱点的内容。然而,可能可执行的网络内容也可能是恶意 内容。举例来说,己使用图像文件来在所述图像经处理用于显示时利用某些操作系统中 的弱点。而且,恶意网络内容也可指例如"网络钓鱼(phishing)"方案的交互内容,在 所述方案中,HTML表格或其它网络内容经设计以表现为由例如银行的另一 (通常是受 到信任的)网站提供,以便欺骗用户向未经授权方提供证书或其它敏感信息。
图1提供示范性系统的最高级说明。系统包含网络110。网络110可以是局域网、广 域网或某种其它类型的网络。网络110可包含一个或.-个以上工作站116。工作站116 可以是附接到网络的各种类型的客户端计算机。客户端计算机116可以是桌上型计算机、 笔记型计算机、手持式计算机或类似计算机。客户端计算机也可装载有操作系统,所述 操作系统允许客户端计算机通过例如网络浏览器、电子邮件程序等各种软件模块利用网 络。
每--工作站U6均可与网关服务器模块120电连通。网关服务器模块可驻存在网络 110的边缘,使得从因特网112和向因特网112发送的业务可在进入或离开网络U0的途 中经过M关服务器模块。网关服务器模块120可采用安装在服务器上的软件模块的形式, 所述服务器作为向比工作站116直接附接到的网络110广的区域网络112的网关而起作 用。数据库管理模块U4也连接到因特两112。数据库管理模块也可以是驻存在一个或一 个以上计算装置上的软件模块(或-个或一个以上硬件器件)。数据库管理模块114可驻 存在包含某类网络连接硬件(例如网络接口卡)的机器上,所述网络连接硬件允许数据 库管理模块114向因特网112发送数据和信息以及从因特网U2接收数据和信息。作站116的更详细视图。工作站116可包含工作站模块130。 工作站模块130可采用经安装以在丁作站116的操作系统上运行的软件的形式。或者, 工作站模块130可以是在另一机器上运行的由工作站116远程启动的应用程序。
工作站模块130可包含各种组件。工作站模块可包含本地活动内容模块132的清单 (inventory),其记录存储在工作站116上的所有网络内容。举例来说,本地内容清单模 块132可周期性列出所有本地内容的清单。清单中列出的数据可上载到网关服务器模块 120以与经归类的URL/内容数据库146 (下文更详细论述)进行比较。本地内容清单模 块132可通过与其中含有的清单中列出的本地内容进行比较来确定是否有新内容正在被 引入到工作站116。
工作站模块还可包含上载/下载模块134和URL请求模块136。上载/下载模块134 可用于通过网关服务器模块120从网络110向因特网U2发送和接收数据。URL请求模 块136从用户或某个系统过程接收URL输入,且可经由网关服务器模块120发送请求以 检索与所述URL相关联的文件和/或内容。通常,上载/下载模块134和URL请求模块 136中的每一者的功能可由例如网络浏览器的软件应用程序执行,其中因特网探测器@ (Internet Explorer )、谋智火狐(Mozilla Firefox)、奥普拉(Opera)、远征(Safari)是 此项技术中众所周知的浏览软件的实例。或者,模块的功能可在不同的软件应用程序之 问划分。举例来说,FTP应用程序可执行上载/下载模块134的功能,而网络浏览器可执 行URL请求。其它类型的软件也可执行上载/下载模块134的功能。尽管工作站上通常 不需耍这些类型的软件,但例如间谍软件(Spyware)或特洛伊木马(Trojan Horses)的 软件可能做出从因特网发送和接收数据的请求。
工作站模块130可与网关服务器模块120通信。网关服务器模块120可用于分析传 入和传出的网络业务并做出关于所述业务对工作站116可能造成的影响的各种确定。现 在参看图3,提供网关服务器模块120的实例。网关服务器模块120与工作站116双向通 信。其可从工作站模块130接收文件上载和下载以及URL请求。网关服务器模块120还 与因特网112双向通信。因此,源自网络110的工作站116内的请求可能需要在其前进 到因特网时通过网关服务器模块120。在一些实施例中,网关服务器模块120可与保护 网络110免受来自因特网112的未经授权的入侵的某个防火墙硬件或软件集成。在其它 实施例中,网关服务器模块120可以是独立的硬件器件乃至是安装在驻存于到因特网112 的网络网关处的单独网关服务器上的软件模块。
如上论述,网关服务器模块120可借助于工作站模块130而从工作站116接收URL请求和上载/下载数据。网关服务器模块120可包含基于所接收数据执行各种功能的各种 组件。
网关服务器模块120中包含的一个特征是经归类URL数据库146。 URL数据库146 可用于存储包含与URL相关联的数据的关于URL的信息。经归类URL数据库146可以 是关系数据库,或其可以例如平面文件、面向对象的数据库的某种其它形式存储,且可 经由应用程序编程接口 (API)或某个数据库管理软件(DBMS)存取。URL数据库146 通常可用于帮助确定由URL请求模块136发送的URL请求是否将被许可完成。在一个 实施例中,将存储在URL数据库146中的URL归类。
网关服务器模块120还可包含策略模块142。策略模块142可用于实施关丁-特定内 容将如何由网关服务器模块120或由安装在网络110内的防火墙或某种其它安全性软件 处理的网络策略。在一个实施例中,策略模块142可经配置以提供关于如何处理针对经 归类URL的URL请求的系统引导。举例来说,网关服务器模块120可经配置以不允许 归类为"恶意"或"间谍软件"的URL请求。在其它实施例中,策略模块142可用于确 定如何处理未经归类的URL请求。在一个实施例中,系统可经配置以阻止针对不在经归 类URL数据库146中的URL的所有请求。策略模块142还可经配置以基于做出请求的 用户或做出请求的时间而允许某些对未经归类URL的请求。这允许系统在通用型 (one-size-fits-all)配置将不满足运行网关服务器模块120的组织的业务需要时避免具有 所述配置。
网关服务器模块120可包含收集模块140。收集模块140可以是用于收集关于URL 的数据的软件程序、例行程序或过程。在一个实施例中,当从URL请求模块136接收到 针对特定URL的请求时,收集模块140可经配置以访问所述URL并下载页面数据到网 关服务器模块120以供网关服务器模块120的组件进行分析。下载的数据还可经由因特 网112发送以传递到数据库管理模块114 (如下文将进一步论述的)。
在一些实施例中,网关服务器模块120还可包含记录数据库144。记录数据库144 可执行各种功能。举例来说,其可存储网络110内的特定类型发生情况的记录。在一个 实施例中,记录数据库144可经配置以记录工作站U6请求未经授权URL的每一事件。 在一些实施例中,记录数据库144还可经配置以记录特定未经归类URL被请求的频率。 此信息可用于确定未经归类URL是否应具有特定重要性或优先权且应先于较早的接收到 的数据而由数据库管理模块114归类。在一些实施例中,未经归类URL可单独存储在未 经归类URL数据库147中。举例来说,可编写某个间谍软件以从特定URL请求数据。如果网络110内的许多工 作站U6被所述间谍软件感染,则对特定URL的重复请求可提供网络内存在某种异常的 指示。记录数据库也可经配置以记录对经归类URL数据的请求。在一些实施例中,对经 归类URL的请求归类可有助于确定特定URL是否被错误地特征化。
现在参看图4,论述记录数据库144的实例。记录数据库144包含四列数据。第一 列"页面请求次数"152指示网络110内的用户请求特定URL的次数。第二列"URL" 154记录正在记录数据库144中记录的特定URL串。因此,当将URL发送到记录数据库 144时,可首先搜索数据库以确定所述URL串是否已在其中。如果不是,那么可将URL 串添加到数据库。在一些实施例中,收集模块140可经配置以访问所请求的URL并收集 关于所述URL的数据。收集模块140可检索所请求URL的页面源并对其进行扫描以査 找可能指示内容类型的特定关键词。举例来说,如果页面源包含"javascript://",那么所 述页可被识别为具有Java脚本。尽管此内容并非固有危险的,但具有Java脚本的网页包 含恶意内容的可能性可能更大,所述恶意内容经设计以利用浏览器应用程序处理Java脚 本函数调用的方式。在一些实施例中,此数据可存储在记录数据库144中在Java脚本列 155中。记录数据库也可从包含活动-X内容的页面接收类似的信息并将所述内容存储在 活动X列156内。在其它实施例中,可针对Java小程序、VB脚本等检测和存储其它类 型的内容。
再次参看图3,网关服务器模块120可进一步包含管理界面模块148或"管理模块"。 管理模块148可用于允许网络管理员或组织内的其它技术人员配置M关服务器模块120 的各种特征。在某些实施例中,管理模块148允许网络管理员或某种其它网络管理类型 来配置策略模块142。
现在参看图5,提供URL接入策略数据库158的实例。URL接入策略数据库158可 由策略模块142用于实施用于网络110内的工作站116接入基于网络的内容的策略。在 所示的实施例中,URL接入策略数据库158包含具有四列的表。第一列是用户列160。"用 户"列160包含关于服从于在表的给定行中定义的策略的用户的数据。下一列"类别" 162列出所述行定义的策略所适用的内容的类别。第三列"总是阻止"164表示当所请求 内容的用户和类别166匹配于所述特定行中定义的用户和类别时系统实施的行为或策 略。在一个实施例中,"总是阻止"字段可以是其中数据可设定为真或假的布尔型字段。 因此,在数据表所示的第一行中,策略模块142经配置以"总是阻止"用户"asmith"对 "恶意内容"的请求。如上所述,策略模块还可经配置以基于不同时间实施策略。在图5提供的实施例中, 第四列"允许的时问"166提供此功能性。第二行数据提供如何实施时间策略的实例。 用户164设定为"bnguyen"且类别162是"赌博"。正如保留为空A的字段所指示的, 策略未经配置以针对"bnguyen""总是阻止"赌博内容。然而,这些URL请求被许可的 时间限于从6PM到8AM。因此,采用这些类型的策略允许网络管理员向工作站和用户 提供某一程度的灵活性,但此灵活性的提供是以在典型工作时间期间网络业务不受损害 的方式进行的。
图6A和6B提供对经归类URL数据库146可如何存储经归类数据的说明。在一个 实施例中,经归类URL可存储在例如图6A所示的两列数据库表中。在一个实施例中, 所述表可包含URL列172,其可仅存储已经特征化的URL串。类别列174可存储关于所 述URL已如何由数据库模块114特征化的数据(如下文将详细描述)。在一个实施例中, 可对URL字段编索引以使得其可被实时地更快速地搜索。因为经归类URL的列表可能 涉及到数百万个URL,所以快速接入例行程序是有益的。
现在参看图6B,提供未经归类URL的表147 (上文结合图3描述)。此表中可填充 有来自工作站116的URL请求,所述URL请求是请求在经归类URL表146中不存在的 URL。如下文将更详细描述,网关服务器模块120可经配置以查询经归类URL数据库146 以确定是否应阻止所请求的URL。如果所请求URL在经归类数据库146中,则策略模块 可确定是否允许所述请求前进到因特网112。然而如果在经归类URL数据库中没有发现 所请求URL,则可将其添加到未经归类URL列表176,使得其可经由因特网112发送到 数据库管理模块114并稍后经分析和归类且下载到经归类URL数据库146中。
图7是对数据库管理模块114中可包含的各种组件的说明。如上文论述,数据库管 理模块U4可位于网络IIO及其相关联工作站116的远端(可经由因特网112接入)。数 据库管理模块可采用一个或许多不同硬件和软件组件的形式,例如同时运行数百个服务 器以实现改善性能的服务器库。
在一个实施例中,数据库管理模块114可包含上载/下载模块178。上载/下载模块178 可以是软件或硬件组件,其允许数据库管理模块U4从因特网112向任意数目的位置发 送和接收数据。在一个实施例中,上载/下载模块经配置以向因特网H2上的网关服务器 模块120发送新归类的URL以添加到其本地URL数据库"6。
数据库管理模块114还可包含URL/内容数据库180。 URL/内容数据库180可采用数 据仓库的形式,其存储URL串和关于已由收集系统182收集的URL的信息。URL/内容数据库180可以是经编索引以提供快速且有效的数据搜索的关系数据库。在某些实施例 中,URL数据库可以是数据入库应用程序,其跨越许多物理硬件组件和存储媒体。URL 数据库可包含例如以下数据:URL串、与这些串相关联的内容、关于如何收集到内容(例 如,通过蜜罐客户端、通过客户提交等)的信息,且可能包含URL被'与'入到URL/内容 数据库180内的口期。
数据库管理模块114可进一步包含训练系统184。训练系统184可以是软件/硬件模 块,其用于定义可用于归类基于网络的内容的属性和定义。数据库管理模块114可进一 步提供记分/分类系统186,其利用由训练系统184创建的定义和属性来向网络内容提供 记分或分类(例如,归类),使得所述归类可经由上载/下载模块178传递到网关服务器 模块120。
现在参看图8,提供收集系统182的更详细视图。收集系统182可包含收集模块190, 其(直接或间接)耦合到数据挖掘模块192。收集模块190可由数据库管理模块114用于 为URL/内容数据库180收集关于未经归类的URL的数据。收集模块还可用于收集URL 供其它系统组件进行额外分析。收集模块190可与其可从其收集关于URL的数据的一个 或一个以上收集源194相关联。收集源可采用各种形式。在一些实施例中,收集源194 可包含主动与被动蜜罐和蜜罐客户端、存储在网关服务器模块120上的记录数据库144 的用以识别应用程序的数据分析、用于收集的URL和协议。收集源也可以是网络爬行 (webcrawling)应用程序,其针对特定关键词搜索因特网112,或在页面内容内搜索短语。 收集源194还可包含从DNS数据库挖掘的URL和IP地址数据以识别与已知恶意IP地址 相关联的域。在一些实施例中,可通过从共享恶意代码和恶意URL样本的其它组织接收 此信息以收集用于归类的URL。在又一些实施例中,可经由电子邮件模块收集URL,所 述模块经配置以从整个公众接收举报(tip),近似于通过罪犯举报热线来识别罪犯的方式。
现在参看图9,提供收集模块190的更详细视图。收集模块190可包含允许其有效 利用上述收集源中每一者的各种子组件。收集模块190可包含搜索短语数据模块197和 表达式数据模块198。搜索短语数据模块197收集并提供可能与识别不适当内容相关的 搜索短语。表达式数据模块198可包含各种类型的表达式,例如常规表达式、操作数或 某种其它表达式。搜索短语数据模块197和表达式数据模块198每一者可包含可更新的 记录组,其可用于定义用于网络爬行收集源194的搜索参数。收集模块190还可包含优 先权模块200。优先权模块200可采用在收集系统182内运行的软件过程的形式,或者 其可作为单独过程运行。优先权模块可用于对收集模块收集的数据区分优先次序,以便使较可能危险或可疑的URL(或数据)在较可能无害的URL之前受到严格的检查。在一 个实施例中,优先权模块200可基于接收的URL来自的收集源194而指派优先权。举例 来说,如果从客户报告接收到URL,则可为其指定较高的优先权。类似地,如果从接入 在过去主机恶意内容已知的域或IP地址或子网的网络爬行器接收到URL,则所述URL 可得到高优先权。类似地,由蜜罐客户端(下文更详细论述)识别的可能危险的网站也 可得到高优先权。收集模块190还可包含数据选择模块202,其可与优先权模块200 — 起丁作以确定所识别URL是否应被标记为用于归类的候选URL。在一个实施例中,数据 选择URL可提供用于接收搜索参数的用户界面以通过基于优先权和内容搜索数据来进一 步细化经区分优先次序的数据。
如上文指示,收集模块还可包含数据下载模块204。数据下载模块204可经配置以 识别URL以进行访问以及从所访问URL下载数据和内容。数据下载模块可结合收集模 块中的各种子系统一起工作,以检索用于URL/内容数据库180的数据。 一个此子系统是 网络爬行器模块206。网络爬行器模块206可以是软件应用程序,其经配置以通过接入 网页并跟随包含在所述页面中的超链接来接入因特网112上的网站。网络爬行器模块2 0 6 可配置有若干同时的过程,所述过程允许模块同时爬行许多网站并将所访问URL报告回 URL/内容数据库180,如下文将更详细论述。收集模块190还可包含蜜罐客户端模块208。 蜜罐客户端模块208是软件过程,其经配置而以吸引存储在所访问页面内的恶意代码的 方式模仿网络浏览者访问网站的行为。蜜罐客户端模块208可访问网站并跟踪网站的行 为,且将内容下载回到URL/内容数据库1S0供进一步分析。
下载模块204还可包含第二方供应者模块212,其经配置以从第三方接收URL和相 关联的内容。举例来说,第二方模块212可经配置以提供可山一般公众接入的网站。所 述模块可经配置以接收输入URL串,所述串随后可被输入到URL/内容数据库180中。 在 一 些实施例中,第三方模块还可经配置以接收来自专有或公共邮寄列表的电子邮件, 且识别所述电子邮件内嵌入的任何URL数据以存储在URL/内容数据库180中。
下载模块还可包含网关服务器接入模块210。网关服务器接入模块是软件组件或程 序,其可经配置以有规律地接入网关服务器模块120上的记录数据库144以下载/上载由 记录数据库144识别的所有新未经归类的网络内容。
返回参看图8,收集系统还可包含数据挖掘模块192。数据挖掘模块192可用于获得 关于存储在URL/内容数据库180中的URL的额外数据。在许多例子中,由收集源194 供应到收集模块190和URL/内容数据库180的信息仅限于URL串。因此,为了使系统有效地归类所述URL内的内容,可能必须有更多数据。举例来说,可能需要检查实际的 页面内容以确定是否存在嵌入URL内的危险内容。数据挖掘模块192用于收集关于URL 的此额外必要数据,且下文将更详细论述。
图IO提供蜜罐客户端系统208的更详细视图。蜜罐客户端系统208包含控制服务器 220。控制服务器220用于控制多个蜜罐挖掘器(honey miner) 222,其经配置以访问网 站并模仿人类浏览者的行为以尝试检测网站上的恶意代码。蜜罐挖掘器222可以是被动 蜜罐挖掘器或主动蜜罐挖掘器。被动蜜罐挖掘器类似于上述的网络爬行器。然而,不同 于仅访问网站并报告从所述站点可获得的URL链接的上述网络爬行器,被动蜜罐挖掘器 可经配置以下载页面内容并将其传回控制服务器220以用于插入到URL/内容数据库180 中或某个其它数据库中。蜜罐挖掘器222可以是单一机器上的软件模块,或者其每一者 可实施在单独计算装置上。
在一个实施例中,每一控制服务器可控制16个被动蜜罐挖掘器222。控制服务器220 可从URL/内容数据库180提取或接收需要额外信息以便得到完全分析或归类的URL。控 制服务器220将所述URL提供到挖掘器,挖掘器又审阅URL并存储收集的数据。当被 动挖掘器222完成特定URL时,其可从其控制服务器222请求另一 URL。在一些实施例 中,挖掘器222可经配置以跟随URL内容上的链接,使得除了访问由控制服务器220指 定的URL之外,挖掘器还可访问其链接到所述URL的内容。在一些实施例中,挖掘器 222可经配置以相对于每一原始URL挖掘到指定深度。举例来说,挖掘器222可经配置 以向下挖掘穿过四层网络内容,然后从控制服务器220请求新的URL数据。
在其它实施例中,控制服务器220可经配置以控制主动蜜罐挖掘器222。与仅访问 网站并存储站点上呈现的内容的被动蜜罐挖掘器相比,主动蜜罐挖掘器222可经配置以 访问URL并运行或执行在站点上识别的内容。在一些实施例中,主动蜜罐挖掘器222包 含网络浏览软件,其经配置以访问网站并经由浏览器软件接入网站上的内容。控制服务 器220 (或蜜罐挖掘器本身222)可经配置以在其执行其访问的网站上的内容时监视蜜罐 挖掘器222的特性。在一个实施例中,控制服务器220将记录由于执行所访问网站上的 应用程序或内容而由蜜罐挖掘器访问的URL。因此,主动蜜罐挖掘器222可提供更准确 地跟踪系统行为并发现先前未识别出的利用(exploit)的方式。因为主动蜜罐挖掘器将 其本身暴露于可执行内容的危险,所以在一些实施例中主动蜜罐挖掘器222可位于沙盒 (sandbox)环境中,其提供一组受到紧密控制的资源用-T客人程序(guest program)在其 中运行,以便保护其它计算机免于可能由恶意内容造成的危险。在一些实施例中,沙盒可采用模拟操作系统的虚拟机的形式。在其它实施例中,沙盒可采用与网络隔离的实际 系统的形式。可通过实时跟踪对沙盒机器上的文件系统做出的改变来检测反常行为。在 一些实施例中,由主动蜜罐挖掘器222执行的代码可能会引起运行所述挖掘器的机器由 丁-嵌入在网页内容中的恶意代码而变为不可操作。为了解决此问题,控制服务器可控制 替代挖掘器,其可插手帮助完成在挖掘过程期间损坏的蜜罐挖掘器222的工作。
现在参看图11,提供已由收集系统收集的一组URL相关数据的实例。尽管提供所收 集数据的特定实例,炉.所属领域的技术人员将了解,除了此实例中提供的数据之外还可 收集其它数据。所收集数据中包含针对URL的IP地址230。 IP地址230可用于识别正 代管同一IP地址下或同一服务器上的可疑内容的多个域的网站。因此,如果具有恶意内 容的URL被识别为来自特定IP地址,那么可针对具有相同IP地址的其它URL挖掘URL/ 内容数据库180中的数据的其余部分,以便对其进行选择和对其进行更仔细的分析。所 收集URL数据还可包含URL 232,如图ll中的第二列指示。在使用例如上述蜜罐客户 端过程的挖掘过程收集数据的例子中,URL 232可常包含来自相同网域的各种页面,因 为挖掘器可能经自置以爬行通过网站中的所有链接。所收集数据还可包含针对特定URL 的页而内容234。因为URL的内容可.罕.图形、文本、应用程序和/或其它内容的形式,所 以在一些实施例中,存储此URL数据的数据库可经配置以将页面内容存储为数据记录中 的二进制大对象(blob)或应用程序对象。然而,由于某些网页只含有文本,因此页面 内容234也可存储为文本。在一些实施例中,收集例行程序可经配置以确定URL是否含 有可执行内容。在这些例子中,所收集数据的所得数据集可包含URL在其页面代码内是 否具有可执行内容236的指示。此信息可稍后用于从具有候选数据的URL/内容数据库 180中选择数据以供分析。
如上文结合图3论述,在一些实施例中,网关服务器模块120可经配置以基于经归 类URL数据库146中存储的数据来控制对特定URL的接入。图12是描述网关服务器模 块处理来自丄作站116的请求的实施例的流程图。
在方框1200,工作站U6从因特网112请求URL。在方框1202,此请求在因特网网 关处被拦截并转发到网关服务器模块120。在方框1204,查询经归类URL数据库146以 确定所请求的URL是否存储在数据库146中。如果发现所请求的URL是数据库中的记 录,则过程继续移动到方框1206,其中其分析URL记录以确定URL的类别是否是应针 对工作站用户阻止的类别。如果所述类别被阻止,则过程跳转到方框1212且请求被阻止。 然而如果类别未被阻止,则在方框1208处允许所述请求。如果在方框1204处没有发现所请求的URL是经归类URL数据库146中的记录,则 系统前进到方框1210。在方框1210处,系统确定如何处理未经归类内容。在一些实施 例中,系统可利用策略模块142来做出此确定。如果网关服务器模块120经配置以阻止 针对未经归类内容的请求,则过程移动到方框1212,且阻止请求。另一方面,如果模块 经配置以允许这些类型的未经归类请求,则过程移动到方框1208,其中允许所述请求前 进到因特网112。
在一些实施例中,对URL数据的请求可能会导致将新记录添加到记录数据库144。 这些记录稍后可被传送到数据库管理模块U4供进一步分析。现在参看图13,提供描述 网关服务器模块可借以处理URL请求的过程的另一流程图。在方框1300,网关服务器模 块120接收针对URL的请求。如上所述,此请求可来自工作站116。在方框1302,接着 将URL与经归类URL数据库146进行比较,且系统在方框1304确定所请求URL是否 在经归类URL数据库中。
如果URL已经在经归类URL数据库146中,则过程跳转到方框1308。然而如果没 有发现所请求URL在经归类URL数据库146中,则过程移动到方框1306,其中将URL 插入到未经归类URL数据库147中。(在一些实施例中,记录数据库144和未经归类URL 147数据库可以是同一数据库。)在将URL插入到数据库中之后,所述方法前进到方框 1308。在方框1308,检査策略数据库以获得关于如何处理所接收URL的指令。 一旦策略 模块142经检査,就在方框1310更新记录数据库144以记录URL已被请求。在更新记 录数据库144之后,如果策略数据库许可工作站116接入URL,则过程移动到方框1314, 且将URL请求发送到因特网112。然而如果策略数据库不允许所述请求,则过程跳转到 方框1316且阻止请求。
在一些实施例中,网关服务器模块120可执行收集以减少数据库管理模块114的收 集系统182的负担。图14提供网关服务器收集模块140用于收集关于未经归类URL的 数据的系统的实例。在方框1400,网关服务器模块接收针对URL的请求。接着,在方框 1402,将所请求URL与经归类URL数据库进行比较。如果在方框1404系统确定所请求 URL在URL数据库中,则过程移动到方框1410,其中依据URL如何归类而将请求转发 到因特网112或阻止请求。
如果所请求URL不在经归类URL数据库146中,则过程移动到方框1406,其中将 URL发送到网关收集模块140。接着在方框1408,收集模块140收集关于所请求URL 的URL数据。在一些实施例中,此数据可存储在未经归类URL数据库147中。或者,理模块114。 一旦数据经收集并存储,则 过程移动到方框1410,其中基于策略模块142中指示的策略而允许或阻止URL请求。
如先前论述,可将未经归类URL数据从网关服务器模块120发送到数据库管理模块 114供进一步分析,使得URL可经归类并添加到经归类URL数据库146。然而,因为未 经归类数据的量有时太大,所以或许不可能在无损于准确性的情况下将所有接收的数据 归类。因此,在一些例子中,可能需要识别未经归类数据内的最可能对工作站116和网 络110呈现威胁的候选URL。
图15提供用于识别候选URL供进一步分析的方法的实例。所述方法以将URL接收 到数据库模块114的收集系统182中开始。在方框1502,预处理URL或应用程序以确定 其是否携带已知的恶意数据元素或数据签名。接着在方框1504,如果系统确定URL包含 已知的恶意元素,则过程跳转到方框1514,其中将URL标记为候选URL并将其发送到 训练系统184供进一步分析。如果在方框1504中对URL的初始分析没有显示恶意元素, 则过程移动到方框1506,其中将URL添加到可能候选URL的数据库。接着在方框1508, 数据挖掘模块192经配置以基于预先配置的条件(例如,攻击串、病毒签名等)从源194 (可能候选URL的数据库是其中之一)选择URL。接着在方框1510将包含所有数据源 194的数据集发送到数据挖掘模块192,其中在方框1512通过数据挖掘模块192分析每 一URL。如果URL满足所定义的预先配置条件,则过程移动到方框1514,其中将URL 标记为候选URL并将其继续发送到记分/分类系统186供额外分析。然而如果URL不满 足为将其转换为候选URL而指定的条件,则方法前进到方框1516且不将URL标记为候 选。尽管在URL候选分类的上下文中描述此实施例,但所属领域的技术人员将容易了解, 可使用上述过程类似地分析应用程序并将其标记为候选。
在另一实施例中,系统可结合数据挖掘系统192利用蜜罐客户端系统208来收集将 添加到候选URL列表用于分类的URL。图16说明用于收集此数据的过程的实例。在方 框1600,启动蜜罐客户端控制服务器220。接着在方框1602控制服务器220启动一个或 一个以上蜜罐挖掘器222。接着在方框1604,蜜罐挖掘器222访问由控制服务器220向 其提供的下一URL,并在方框1606解析所述URL的页面源以确定URL中是否存在活动 内容。如果页面中没有发现活动内容,则过程跳转到方框1610。然而如果发现活动内容, 则过程移动到方框1608,其中将URL添加到候选URL列表。
接着在方框1610,挖掘器222确定当前URL是否含有超链接或表格。如果没有发现 超链接或表格,则过程循环回到方框1604,其中挖掘器从控制服务器222接收另一URL
18供分析。然而如果URL含有超链接或表格,则方法前进到方框1612,其中其接着确定 URL是否包含隐藏链接或表格。因为许多恶意网站希望避免例如蜜罐客户端系统208的 挖掘软件的检测,所以其包含当人浏览时无法看到的隐藏超链接。因此,网站可通过将 这些链接作为"诱饵"隐藏来检测挖掘器。用于隐藏链接的一种技术是使其具有与网页 背景相同的颜色。如果挖掘器跟随链接,则网站被警告存在挖掘器。
在图16提供的方法中,挖掘器经配置以检测这些隐藏链接。如果不存在隐藏链接, 那么过程跳转到方框1618,且挖掘器通过跟随URL内容中的非隐藏链接而继续。然而在 方框1614,如果存在任何隐藏链接,则在方框1616将URL及其隐藏链接添加到分类列 表并将其忽略。 一旦隐藏链接经处理(即,添加到分类列表),则方法接着前进到方框 1618,其中跟随非隐藏链接。
在一些实施例中,将URL数据添加到URL/内容数据库180,而无需供记分/分类系 统186进行完全分析的所有必要数据。举例来说,有时从收集源194接收的关于URL的 仅有的数据是URL串本身。因此,可能必须收集关于URL的额外数据以便对其进行适 当分析。现在参看图17,其根据一个实施例展示描述系统可如何处理候选URL的过程。 在方框1700,将来自收集源的数据添加到URL/内容数据库180。如先前论述,URL/内 容数据库180可以是数据仓库。接着在方框1702,系统查看URL数据并确定是否有进行 分析所必需的遗漏内容。在一些实施例中,如果URL的内容不在数据仓库中,则在方框 1704系统确定需要更多数据并将URL发送到数据挖掘模块用于补充。数据挖掘模块接着 可获取所接收数据并收集额外数据。如果没有内容遗漏,则在方框1706将URL立即发 送到记分/分类模块186供进一步分析。
如上论述,收集并分析因特网数据以确定其是否包含有害的活动内容的难点之一是 必须收集和分析的极大的数据量。在又一实施例中,数据挖掘模块192可用于通过收集 大量相关数据来解决这些问题以有效且高效地利用系统资源。现在参看图18,提供数据 挖掘系统192的更详细的方框图。数据挖掘系统192可采用软件模块的形式,其运行多 个异步过程以实现最大效率和输出。数据挖掘系统192可包含插件模块242,插件模块 242接收提供关于应如何处理输入数据的指令的配置参数。在一个实施例中,由插件模 块接收的指令可采用HTTP协议插件的形式,其为数据挖掘系统192提供参数以接收URL 数据并基于由数据挖掘系统对URL数据实施的各种HTTP相关指令分析和补充数据。在 另一实施例中,插件可适合于挖掘例如FTP、 NNTP或某种其它数据形式的某种其它协 议。也可用于实施被动蜜罐客户端的数据挖掘系统192也可包含调度程序248的库246。 调度程序248是各个异步处理实体,其基于输入到数据挖掘系统中的数据(用于分析) 和由插件模块242接收的配置数据接收任务指派。库246是由驱动程序244控制的调度 程序集合。驱动程序244是用于库的管理机制。驱动程序244可经配置以监视库246中 的调度程序248的活动以确定何时将额外数据发送到库246中用于挖掘和分析。在一个 实施例中,驱动程序可经配置以每当任何调度程序248空闲便将新数据单元发送到库246 中。在一个实施例中,驱动程序244可用作控制服务器以管理如上文结合图IO描述的蜜 罐客户端挖掘器222。库246可将数据单元传递到空闲的调度程序248。调度程序248读 取插件配置并根据插件242执行动作。
在一个实施例中,插件模块可接收HTTP插件。HTTP插件可经配置以接收呈URL 串形式的输入数据,关于所述数据,数据挖掘系统192将获得额外信息,例如URL的页 面内容、在接入时由URL返回的HTTP消息(例如,"4xx—文件未找到"或"5xx—服 务器错误")。插件可进一步指定网络爬行模式,其中调度程序除了收集页面内容以外还 将URL内容内的URL链接添加到待分析的URL数据集。
如本文使用,"数据库"指存储在可由计算机存取的媒体上的存储数据的任何集合。 举例来说,数据库可指平面数据文件或结构化数据文件。而且,将认识到结合本文揭示 的实施例描述的各种说明性数据库可实施为组合各种说明性数据库的方面的数据库,或 者可将说明性数据库划分为多个数据库。举例来说,各种说明性数据库中的一者或一者 以上可实施为一个或一个以上关系数据库中的表。实施例可以关系数据库实施,所述关 系数据库包含SQL数据库、面向对象的数据库、对象关系数据库、平面文件或任何其它 合适的数据存储系统。
结合本文揭示的实施例描述的各种说明性逻辑区块、模块和电路可用如下装置实施 或执行通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门 阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其经设计 以执行本文所述功能的任意组合。通用处理器可以是微处理器,但在替代方案中,处理 器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的 组合,例如DSP与微处理器的组合、多个微处理器、 一个或一个以上微处理器结合DSP 核心,或任何其它此配置。
结合本文揭示的实施例描述的方法或算法的步骤可直接以硬件实施、以由处理器执 行的软件模块实施,或以两者的组合实施。软件模块可驻存在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除盘、CD-ROM 或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得 处理器可从存储媒体读取信息和向存储媒体写入信息。在替代方案中,存储媒体可与处 理器成为一体。处理器和存储媒体可驻存在ASIC中。ASIC可驻存在用户终端中。在替 代方案中,处理器和存储媒体可作为离散组件驻存在用户终端中。所属领域的技术人员 将了解,在不脱离本发明精神的情况下可做出许多各种修改。因此,应清楚了解,本发 明的形式仅是说明性的,且不希望限制本发明的范围。
权利要求
1.一种识别不适当网络内容的计算机实施的方法,所述方法包括接收针对网络内容的请求;将所述请求与数据库中的数据进行比较;如果所述请求不在所述数据库中,则将所述请求发送到收集模块;通过所述收集模块收集与所述请求相关的数据;以及基于所述收集的数据确定所述请求的候选状态。
2. 根据权利要求1所述的计算机实施的方法,其中所述请求是应用程序请求。
3. 根据权利要求1所述的计算机实施的方法,其中所述请求是针对URL的请求。
4. 根据权利要求l所述的计算机实施的方法,其中所述数据库是URL/内容数据库。
5. 根据权利要求1所述的计算机实施的方法,其中所述网络内容是可通过URL接入的 内容。
6. 根据权利要求1所述的计算机实施的方法,其中确定是否使所述请求成为候选请求 包括预先处理与所述请求相关的所述数据;以及 至少部分地基于所述预先处理将所述请求标记为候选请求。
7. 根据权利要求6所述的计算机实施的方法,其中所述预先处理包含扫描所述数据以 查找已知的不安全数据元素。
8. 根据权利要求7所述的计算机实施的方法,其中所述预先处理指示与所述请求相关 的所述数据含有已知的不安全数据元素。
9. 根据权利要求7所述的计算机实施的方法,其进一步包括如果与所述请求相关的 所述数据不含有已知的不安全数据元素,则将所述请求标记为可能的候选请求。
10. 根据权利要求9所述的计算机实施的方法,其进一步包括-配置数据挖掘模块以从所述可能的候选请求中选择候选请求;以及 将所述可能的候选请求输入到所述数据挖掘模块中。
11. 根据权利要求10所述的计算机实施的方法,其中配置所述数据挖掘模块包含定义 指示目标属性的特性,以及配置所述数据挖掘模块以识别具有所述属性的请求。
12. 根据权利要求11所述的计算机实施的方法,其中所述属性是一组关键词、常规表达 式或操作数中的至少一者。
13. 根据权利要求11所述的计算机实施的方法,其中所述属性是HTTP请求标头数据的类型。
14. 根据权利要求ll所述的计算机实施的方法,其中所述HTTP请求标头数据包含内容类型。
15. —种用于从一组未经归类的URL中选择候选URL的系统,所述系统包括数据库,其存储所述未经归类的URL;收集系统,其经配置以收集与所述未经归类的URL相关的信息;以及 数据挖掘模块,其经配置以识别具有指示目标内容的特性的未经归类的URL。
16. 根据权利要求15所述的系统,其中所述目标内容是有害内容。
17. 根据权利要求15所述的系统,其进一步包括经配置以收集关丁-所述未经归类的URL 的额外数据的收集模块,所述额外数据用于识别所述目标内容。
18. 根据权利要求17所述的系统,其中所述收集模块包含网络爬行模块。
19. 根据权利要求18所述的系统,其中所述收集模块包含关键词数据模块。
20. 根据权利要求19所述的系统,其进一步包括经配置以基于候选URL的可能危险确 定所述URL的优先权以进行归类的优先权模块。
21. —种收集关于URL的数据的计算机实施的方法,所述方法包括提供具有配置插件的数据挖掘模块,所述数据挖掘模块具有经配置以彼此独立操 作的多个调度程序;将URL数据接收到所述数据挖掘模块中以用于分析;将所述URL数据分离为工作单元,每一工作单元包括一 URL;确定所述多个调度程序中是否有一者可用于接收工作单元;如果可用,则将所述工作单元中的一者发送到所述调度程序中的一者;以及基于由所述配置插件提供的数据处理所述发送的工作单元。
22. 根据权利要求21所述的计算机实施的方法,其中所述调度程序每一者在计算机存 储器内包括一单独过程。
23. 根据权利要求22所述的方法,其中所述配置插件向所述可用的调度程序提供指令, 所述指令致使所述可用的调度程序访问与所述经处理的发送的工作单元相关的网 页并将与所述经处理的发送的工作单元相关联的数据存储在数据库中。
24. 根据权利要求23所述的方法,其中如果与所述经处理的发送的工作单元相关联的 所述数据包含URL串,则将所述URL串添加到所述URL数据。
25. 根据权利要求21所述的方法,其中所述确定所述多个调度程序中是否有一者可用于接收工作单元包括轮询所述调度程序。
26. —种用于收集关于URL的数据的系统,所述系统包括数据库,其用于存储关于URL的信息;调度程序库,所述调度程序包括异步系统过程,所述异步系统过程每一者经配置 以接收URL数据输入并对所述数据执行动作;以及驱动程序模块,其经配置以监视所述调度程序库以查找可用的调度程序,且将所 述URL数据输入的一部分发送到所述可用的调度程序。
27. 根据权利要求26所述的系统,其中所述调度程序进一步经配置以访问由所述接收 的URL数据输入指示的URL并将与所述URL数据输入相关联的信息下载到所述数 据库。
28. —种用于从一组未经归类的URL中识别候选URL的系统,所述系统包括用于存储所述未经归类的URL的构件; 用于收集与所述未经归类的URL相关的信息的构件;以及 用于识别具有指示目标内容的特性的所述未经归类的URL的构件。
全文摘要
本发明提供一种用于识别网络上的网站中的不适当内容的系统和方法。未被认出的统一资源定位符(URL)或其它网络内容由工作站接入并识别为可能具有恶意内容。可在网关服务器模块或某种其它软件模块内预先处理所述URL或网络内容以收集与所述URL相关的额外信息。可扫描所述URL以查找已知的攻击签名,且如果发现任何攻击签名,则可将所述URL标记为需要由分类模块进行进一步分析的候选URL。
文档编号G06F17/30GK101517570SQ200780025938
公开日2009年8月26日 申请日期2007年7月9日 优先权日2006年7月10日
发明者丹·哈伯德, 尼古拉斯·J·维雷尼尼 申请人:网圣公司