检测恶意网页的方法及相关设备与流程

文档序号:14879684发布日期:2018-07-07 09:22阅读:246来源:国知局

本发明涉及网络安全技术领域,尤其涉及一种检测恶意网页的方法及一种检测恶意网页的装置。



背景技术:

网页是恶意代码的一种常见传播载体。恶意代码包括木马程序、病毒程序等等。攻击者将恶意代码以脚本或者层叠样式表(英文:cascadingstylesheets,css)元素的形式嵌入在网页文件中。当用户访问已嵌入恶意代码的网页文件时,恶意代码就会在用户不知情的情况下被下载到用户使用的终端设备中并在主机中运行,从而造成破坏,例如破坏用户的操作系统或者盗取用户的保密信息等等。被访问后会导致用户使用的终端设备被破坏的网页被称为恶意网页。

恶意网页中的第一类即为上述被嵌入恶意代码的网页。为了检测出恶意网页,网页服务器(webserver)的所有者可以使用反病毒引擎将网页目录中的网页文件与病毒特征库中的特征进行匹配,根据匹配结果识别恶意网页。攻击者为了逃避检测,使用了一种更为隐蔽的基于网页的恶意代码传播技术,其原理是攻击者入侵网页服务器,修改网页服务器提供的正常网页文件以在网页文件中植入链接。该链接指向已嵌入恶意代码的网页。用户访问被修改的网页文件时,将被重定向到已嵌入恶意代码的网页。由于被修改后的网页文件本身并不包括恶意代码,所以上述检测方法无法防范用户使用的终端设备被恶意代码破坏。

攻击者能够在不改变网页外观的条件下实现对网页的非法修改。例如攻击者在正常网页文件中插入一个iframe元素

<iframesrc=“malurl”width=“0”height=“0”frameborder=“0”></iframe>

其中,malurl为已嵌入恶意代码的网页的统一资源定位符(英文:uniformresourcelocator,url)。由于插入的iframe元素的长度和宽度都为0,所以该iframe元素在用户网页浏览器打开网页时不可见。

客户端蜜罐技术被用来检测恶意网页。客户端蜜罐技术通常是在虚拟机中安装一个真实的客户端程序(例如网页浏览器)以及一些带有漏洞的插件。当用虚拟机中的客户端程序访问网页时,监控虚拟机运行环境的变化,如注册表修改、文件系统改变、活动进程变化、磁盘访问等。依据这些变化反映出的特征判定网页浏览器所访问的网页是否是恶意网页。然而,使用客户端蜜罐技术检测恶意网页的有效性受到多种因素制约,例如每次检测结束后恢复虚拟机的初始环境会耗费较长时间和系统资源,导致检测效率不高。



技术实现要素:

本申请提供一种检测恶意网页的方法和装置,用以改善恶意网页的检测效率。

第一方面,提供了一种检测恶意网页的方法,包括:安全设备获取终端设备访问待检测网页过程中产生的至少一个访问请求报文;根据所述至少一个访问请求报文生成至少一个重定向链,所述至少一个重定向链中的每个重定向链中的每个记录分别保存所述至少一个访问请求报文中的一个访问请求报文携带的资源地址;所述至少一个重定向链中的第一重定向链包括至少两个记录,所述至少两个记录中相邻的第一记录和第二记录以第一单向关系连接,所述第一记录为出记录,所述第二记录为入记录,所述第一记录保存的资源地址所指示的资源中包括重定向指示,所述重定向指示用于将所述终端设备重定向到所述第二记录保存的资源地址;以及如果所述第一重定向链符合预定规则,确定所述待检测网页是恶意网页。

在本申请实施例中,安全设备根据终端设备访问待检测网页过程中产生的至少一个访问请求报文,生成重定向链,其中重定向链能够反映出终端设备在访问待检测网页时被先后关联重定向的轨迹。进一步在重定向链符合预定规则时,确定所述待检测网页是恶意网页。由于无需在终端设备中安装虚拟机、以及配置虚拟机环境、监控虚拟机环境变化,提升了检测效率。

可选地,在第一方面的一种可能的实现方式中,所述每个记录还保存流标识和host数据,所述根据所述至少一个访问请求报文生成至少一个重定向链,包括:按时间顺序,从所述至少一个访问请求报文中依次选择访问请求报文,对所述选择出的访问请求报文执行以下操作,直到选择了所述至少一个访问请求报文中的最后一个访问访问请求报文为止:解析获得所述选择出的访问请求报文的报文头、以及所述选择出的访问请求报文对应的访问应答报文携带的状态码;如果所述报文头中携带的流标识与所述至少一个重定向链中任意一个记录中的流标识均不同、且所述状态码指示成功、且所述报文头的referer字段内容为空,则创建一个记录,设置创建的记录的流标识为所述报文头包括的流标识,设置所述创建的记录的资源地址为所述选择出的访问请求报文携带的url、设置所述创建的记录的host数据为所述报文头包括的host字段内容;将所述创建的记录作为所述第一重定向链的首记录;如果所述报文头中携带的流标识与所述至少一个重定向链中第三记录的流标识不同、所述状态码指示成功或重定向、且所述报文头的referer字段内容包括所述第三记录的host数据,则创建一个记录,设置创建的记录的流标识为所述报文头包括的流标识,设置所述创建的记录的资源地址为所述选择出的访问请求报文携带的url,设置所述创建的记录的host数据为所述报文头包括的host字段内容;设置所述创建的记录与所述第三记录存在第二单向关系、且在所述第二单向关系中所述第三记录为出记录,所述创建的记录为入记录。

在所有重定向行为中,与恶意网页相关性较高的是触发客户端建立新的数据流的客户端重定向行为和服务器重定向行为。本申请实施例中通过上述方式选择出与这两种重定向行为相关的访问请求报文,根据选择出的访问请求报文建立重定向链,从而提升后续基于重定向链检测恶意网页时的准确性。

可选地,在第一方面的另一种可能的实现方式中,所述选择出的访问请求报文携带的url为将所述报文头包括的host字段内容与info字段内容顺序拼接后生成的字符串。

可选地,在第一方面的另一种可能的实现方式中,预定规则包括所述第一记录的host数据和所述第二记录的host数据的格式要求。

示例性地,上述格式要求为所述第一记录对应的host数据为域名、且第二记录对应的host数据为ip地址。

示例性地,上述格式要求为所述第一记录对应的host数据为域名、且第二记录对应的host数据为ip地址与非预设端口号的组合,其中所述非预设端口号为除预设端口号之外的其他端口号。

本申请实施例给出了一种用于判别根据重定向链的特征检测恶意网页的规则,该规则规定了重定向链中存在单向关系的相邻记录的host数据的格式要求。如果根据访问待检测网页中产生的访问请求报文生成的一个重定向链符合该规则,则可以确认待检测网页为恶意网页。匹配过程可以快速完成,有助于提升检测恶意网页的效率。

可选地,在第一方面的另一种可能的实现方式中,所述每个记录还保存user-agent数据,所述创建一个记录之后,还包括:设置创建的记录的user-agent数据为所述报文头包括的user-agent字段内容。所述预定规则包括所述第一记录的user-agent数据和所述第二记录的user-agent数据的格式要求。

示例性地,所述第一记录的user-agent数据和所述第二记录的user-agent数据的格式要求包括以下一种:所述第一记录的user-agent数据中的操作系统版本标识和所述第二记录的user-agent数据中的操作系统版本标识不同,所述第一记录的user-agent数据和所述第二记录的user-agent数据中至少一个为空,或所述第一记录的user-agent数据和所述第二记录的user-agent数据中至少一个为非标准格式。

上述实现方式给出了一种用于判别根据重定向链的特征检测恶意网页的规则,该规则规定了重定向链中存在单向关系的相邻记录的user-agent数据的格式要求。如果根据访问待检测网页中产生的访问请求报文生成的一个重定向链符合该规则,则可以确认待检测网页为恶意网页。匹配过程可以快速完成,有助于提升检测恶意网页的效率。

可选的,在第一方面的另一种可能的实现方式中,所述至少一个重定向链中还包括第二重定向链,所述第二重定向链中包括第四记录,所述第四记录保存有user-agent数据,所述预定规则还包括所述第一记录的user-agent数据和所述第四记录的user-agent数据的格式要求。

示例性地,所述第一记录的user-agent数据和所述第四记录的user-agent数据的格式要求包括以下一种:所述第一记录的user-agent数据中的操作系统版本标识和所述第四记录的user-agent数据中的操作系统版本标识不同,所述第一记录的user-agent数据和所述第四记录的user-agent数据中至少一个为空,或所述第一记录的user-agent数据和所述第四记录的user-agent数据中至少一个为非标准格式。

上述实现方式给出了一种用于判别根据重定向链的特征检测恶意网页的规则,该规则规定了不同重定向链中两个记录的user-agent数据的格式要求。如果根据访问待检测网页中产生的访问请求报文生成的两个重定向链符合该规则,则可以确认待检测网页为恶意网页。匹配过程可以快速完成,有助于提升检测恶意网页的效率。

可选地,在第一方面的另一种可能的实现方式中,所述预定规则包括重定向链中的记录总数大于等于设定阈值。示例性地,所述设定阈值为3或3以上的自然数。

上述实现方式给出了一种用于判别根据重定向链的特征检测恶意网页的规则,该规则规定了重定向链中记录的数目要求。如果根据访问待检测网页中产生的访问请求报文生成的一个重定向链符合该规则,则可以确认待检测网页为恶意网页。匹配过程可以快速完成,有助于提升检测恶意网页的效率。

第二方面,提供了检测恶意网页的装置,该装置具有实现上述第一方面所述方法或上述方面的任意一种可能的实现方式的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

第三方面,本申请实施例提供了一种计算机存储介质,用于储存为上述报文转发设备所用的计算机软件指令,其包含用于执行上述第一方面或上述方面的任意一种可能的实现方式所设计的程序。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例中检测恶意网页的方法的第一种应用场景示意图;

图2为本申请实施例中检测恶意网页的方法的第二种应用场景示意图;

图3为本申请实施例提供的安全设备的结构示意图;

图4为本申请实施例提供的检测恶意网页的方法的流程图;

图5为本申请实施例提供的重定向链的示意图;

图6为本申请实施例提供的根据访问请求报文生成重定向链的过程的流程图;

图7为本申请实施例提供的重定向链实例的示意图;

图8为本申请实施例提供的另一种重定向链实例的示意图;

图9为本申请实施例提供的检测恶意网页的装置的结构示意图。

具体实施方式

攻击者为了增强恶意代码的隐蔽性,在网页文件中植入链接时,往往会采用多次重定向的方式。也就是说,用户在访问一个已被修改的正常网页时,通过多次重定向,用户最终被重定向到其他网页服务器提供的已嵌入恶意代码的网页。继而恶意代码在用户不知情的情况下被下载到用户使用的终端设备中。相比较而言,用户在访问未被修改的正常网页时,被多次重定向的情况是较少的。

在本申请实施例中,恶意网页是指被访问后会导致用户使用的终端设备被破坏的网页,具体包括已被嵌入恶意代码的网页,以及虽然并未被嵌入恶意代码但已被植入链接的网页,其中被植入的链接指向另一已被嵌入恶意代码的网页。针对隐蔽性较高的被植入链接的网页,本申请实施例提供了一种检测恶意网页的方法。

安全设备根据终端设备访问待检测网页时的访问请求报文生成重定向链,该重定向链能够反映出终端设备在访问待检测网页时被重定向的轨迹。将重定向链与预定规则进行匹配,如果所述重定向链符合预定规则,确定所述待检测网页是恶意网页。该方法只需要获得网页(web)流量即可实现,无需设置和恢复虚拟机环境,消耗的处理资源较少,检测效率较高。

下面结合各个附图对本申请实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。

附图1为本申请实施例的第一种应用场景示意图。网络系统中包括安全设备12、一个或多个网页服务器11和一个或多个终端设备13。为了简明起见,本申请仅以一个网页服务器11为例进行说明。其中网页服务器11是指能提供网页服务的主机。在主机中安装阿帕奇超文本传输协议服务器(apachehttpserver)或互联网信息服务(英文:internetinformationservices,iis)应用软件并进行必要的配置后,主机可以作为网页服务器向网络中的其他用户提供网页服务。

终端设备13是指具有网页访问功能的终端设备,例如安装有网页浏览器或应用的个人计算机、智能手机或者便携手计算机等等。网页浏览器是一种用于检索并展示互联网信息资源的应用程序。常用的网页浏览器包括internetexplorer、edge、firefox、chrome、safari等等。

安全设备12获取终端设备13访问网页服务器11时产生的web流量。如图1所示,终端设备13位于局域网中,并且局域网中的所有终端设备都是通过网关设备14访问互联网。网关设备可以提供网络地址转换(英文:networkaddresstranslation,nat)功能,在这种场景下安全设备12位于网关设备14和终端设备13之间。安全设备12可以是一个防火墙设备,安全设备12需要获得nat转换之前的web流量,即来自终端设备13在局域网中的私有ip地址的web流量。安全设备12和网关设备14可以由同一个物理设备实现。

附图2为本申请实施例的另一种应用场景示意图。网络系统中包括网页服务器11、终端设备16和网关设备17。每个终端设备16中分别与一个安全设备15通信连接。其中安全设备15可以是一个独立的网络设备,也可以是终端设备16安装并运行一个安全软件后,由终端设备16自身的硬件实现。

附图3是本申请实施例提供的安全设备的结构示意图。安全设备可以是附图1中的安全设备12或者附图2中的安全设备15。安全设备包括处理器310、存储器320、网络接口330、和总线360。其中处理器310、存储器320以及网络接口330通过总线360相互连接。可选地,安全设备还包括输入设备340和输出设备350,输入设备340和输出设备350也通过总线360与上述处理器310等相连。

处理器310可以是一个或多个中央处理器(英文:centralprocessingunit,cpu),在处理器310是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。

存储器320包括但不限于是随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)、或光盘。

所述网络接口330用于可以是有线接口也可以是无线接口,或者有线接口和无线接口的组合。有线接口例如为光纤分布式数据接口(英文:fiberdistributeddatainterface,fddi)或以太网接口。网络接口330用于接收终端设备访问待检测网页过程中产生的网页流量。

输入设备340可以是键盘或鼠标等等。通过输入设备340可以向安全设备输入用于与重定向链进行匹配的预定规则。安全设备也可以通过其他方式获取预定规则,例如通过网络接口330从指定地址下载预定规则,或者定期接收其他网络设备发送的预定规则。

输出设备350可以是显示器、打印机或扬声器,通过输出设备350安全设备可以向管理人员输出待检测网页是否是恶意网页的检测结果。安全设备也可以通过其他方式输出检测结果,例如通过网络接口330向其他网络设备发送检测结果。

处理器310用于读取存储器320中存储的程序代码,运行后执行以下操作。

处理器310从网络接口330得到的web流量中获取终端设备访问待检测网页过程中产生的至少一个访问请求报文和所述至少一个访问请求报文中的每个访问请求报文对应的访问应答报文。后续将根据访问请求报文的报文头和对应的访问应答报文中携带的状态码,选择出与重定向行为相关的访问请求报文,从而根据这些与重定向行为相关的访问请求报文生成重定向链。

通常在网页访问过程中,网页浏览器先通过基于传输控制协议(英文:transmissioncontrolprotocol,tcp)与网页服务器建立连接。然后通过建立的连接向网页服务器发送访问请求报文,例如超文本传输协议(英文:hypertexttransferprotocol,http)requestget报文、httprequestpost报文。访问请求报文携带待访问页面的url。

网页服务器接收到访问请求报文后,根据访问请求报文中携带的url,从网页目录中查找到对应的网页文件。网页服务器根据查找结果向网页浏览器发送访问应答报文,例如httpresponse报文。httpresponse报文中携带有待访问页面的url或者待访问页面的url中的一部分,以此可以确定httprequestget报文和httpresponse报文的对应关系。

如果网页服务器查找到httprequestget报文中携带的url文件,将会在httpresponse报文中携带指示成功的http状态码(英文:httpstatuscode),并将网页文件中的信息携带在httpresponse报文中。

httprequestget报文和对应的httpresponse报文往往是时间上紧邻的。网页浏览器接收到第一个httpresponse报文对应的httpresponse报文后,根据httpresponse报文中携带的内容,可能再进一步发送第二个httprequestget报文,例如第二个httprequestget报文用于请求第一个httprequestget报文对应的httpresponse报文中携带的某个页面元素标识对应的资源等等。网页浏览器进一步接收网页服务器根据第二个httprequestget报文返回的第二个httpresponse报文,第二个httpresponse报文中携带某个页面元素标识对应的资源等等。因此,httprequestget报文和对应的httpresponse报文在时间上往往也是紧邻的。

以下是通过协议解析得到的httprequestget报文和httpresponse报文内容的示例。

httprequestget报文:

httpresponse报文:

http状态码是用以表示网页服务器http响应状态的3位数字代码。http状态码由请求评议(英文:requestforcomments,rfc)2616规范定义的,并得到rfc2518、rfc2817、rfc2295、rfc2774、rfc4918等规范扩展。例如在http1.1版本中定义了5类状态码,状态码由3位数字组成,第1个数字定义了响应的类别,具体地

1xx提示信息-表示请求已被成功接收,继续处理;

2xx成功-表示请求已被成功接收,理解,接受;

3xx重定向-要完成请求必须进行更进一步的处理;

4xx客户端错误-请求有语法错误或请求无法实现;

5xx服务器端错误-服务器未能实现合法的请求。

网页服务器在httpresponse报文中携带状态码,以便于客户端可以根据httpresponse报文中的状态码执行后续步骤。

进一步,处理器310根据所述至少一个访问请求报文生成至少一个重定向链。每个重定向链具有以下特点:

(1)重定向链包括一个或多个记录。每个记录分别保存所述至少一个访问请求报文中的一个访问请求报文携带的资源地址。

(2)在一个重定向链包括至少两个记录的情况下,相邻的两个记录通过单向关系连接。在每个单向关系中,有一个出记录一个入记录。对于其中一个单向关系而言,该单向关系中的出记录中的资源地址所指示的资源中包括重定向指示,所述重定向指示用于将所述终端设备重定向到该单向关系中的入记录的资源地址。

示例性的,在一个重定向链中相邻的第一记录和第二记录以第一单向关系连接,所述第一记录为出记录,所述第二记录为入记录,所述第一记录保存的资源地址所指示的资源中包括重定向指示,所述重定向指示用于将所述终端设备重定向到所述第二记录保存的资源地址。

需要说明的是上述第一记录和第二记录是指一个重定向链中的两个不同记录,其中第一记录可以是首记录。换句话说,在一个重定向链包括至少两个记录的情况下,重定向链中的任意一个记录与至少一个其他记录存在单向关系。

进一步,处理器310判断所述至少一个重定向链中是否存在一个重定向链符合预定规则,如果存在一个重定向链符合预定规则,确定所述待检测网页是恶意网页。

可选的,预定规则可以是多种类型,例如预定规则可以是一个重定向链中记录总数的要求。重定向链中的每个记录还可以包括host数据,在此情况下预定规则也可以是一个重定向链中存在单向关系的两个记录的host数据的分别应满足的格式要求。重定向链中的每个记录还可以包括user-agent信息,在此情况下预定规则也可以是一个重定向链中存在单向关系的两个相邻记录包括的user-agent数据分别应满足的格式要求,或者是不同重定向链中两个不同记录包括的user-agent数据分别应满足的格式要求。

本申请实施例中安全设备获取终端设备访问待检测网页过程中产生的至少一个访问请求报文,其中每个访问请求报文对应的访问应答报文携带的状态码指示访问成功或重定向。根据所述至少一个访问请求报文生成重定向链,重定向链能够反映出终端设备在访问待检测网页时被先后关联重定向的轨迹,例如被重定向的次数,以及每次被重定向到哪些资源地址。如果重定向链符合预定规则,确定所述待检测网页是恶意网页。由于无需在终端设备中安装虚拟机、并配置虚拟机环境、监控虚拟机环境的变化来进行检测,缩短了检测时间、减少了检测过程中耗费的系统资源,提升了检测效率。

下面结合各个流程图,对本申请提供的检测恶意网页的方法进行详细描述。

附图4是本申请实施例提供的检测恶意网页的方法的流程图。该方法可以由附图1中的安全设备12或者附图2中安全设备15的执行。

步骤41,获取终端设备访问待检测网页过程中产生的至少一个访问请求报文和所述至少一个访问请求报文中的每个访问请求报文对应的访问应答报文。

安全设备首先获得各终端设备传输的web流量。在附图1所示的场景中,安全设备12在截获每个报文时,在报文中添加时间戳以便于后续分析,其中时间戳用于指示安全设备12截获报文时的时间。当安全设备12得到的web流量中混杂有多个终端设备13访问网页服务器11的web流量时,安全设备12从得到的web流量中按照私有ip地址,区分出各个终端设备访问网页服务器11的流量。在附图2所示的场景中,安全设备15可以通过抓包软件获取终端设备16访问网页服务器11时的web流量。抓包软件可以在获得的每个报文中增加时间戳,其中时间戳用于指示抓包软件获得该报文时的时间。例如当终端设备16的操作系统为微软公司出品的windows系列操作系统时,安全设备15可以通过一种名为winpcap(windowspacketcapture)的windows平台提供的编程接口,得到终端设备16访问网页服务器11时的web流量。当终端设备16的操作系统为linux操作系统时,安全设备15可以通过操作系统提供的报文分析工具tcpdump得到终端设备16访问网页服务器11时的web流量。

在上述附图1和附图2所示的场景中,安全设备12或安全设备15预先保存网页服务器11提供的一个或多个待检测网页的url。获得终端设备13或终端设备16访问网页服务器11时的web流量后,将其中各个访问请求报文携带的url与预先保存的待检测网页的url进行匹配,如果匹配命中,则将匹配命中的访问请求报文以及后续的访问请求报文、以及对应的访问应答报文作为终端设备访问一个待检测网页过程中产生的至少一个访问请求报文和每个访问请求报文对应的访问应答报文。例如,在附图1所示的场景中,一个终端设备13的ip地址为192.168.36.10,待检测网页的url为www.crowdfundingformybusiness.com,则安全设备12从ip地址为192.168.36.10的所有web流量中,根据报文中的关键字和协议类型获取用于请求访问www.crowdfundingformybusiness.com的访问请求报文以及在此之后预定时间内产生的所有访问请求报文和访问应答报文,作为ip地址为192.168.36.10的终端设备13访问url为www.crowdfundingformybusiness.com的网页过程中产生的至少一个访问请求报文和访问应答报文。预定时间可以根据经验选取,例如2分钟。

此外,在附图2所示的场景中,安全设备15也可以通知终端设备16中网页浏览器访问urlwww.crowdfundingformybusiness.com后,保存网页浏览器传输的所有web报文,根据报文的协议类型和报文中携带用于识别访问请求报文和访问应答报文的关键字,从中筛选出终端访问www.crowdfundingformybusiness.com过程中产生的至少一个访问请求报文和对应的访问应答报文。关键字例如用于识别访问请求报文的httpget、httppost,用于识别访问应答报文的http/1.1等。

步骤42,安全设备根据所述至少一个访问请求报文生成至少一个重定向链。

本申请实施例中安全设备根据与重定向行为相关的访问请求报文生成重定向链。重定向行为可以分为服务器重定向行为和客户端重定向行为。这两种重定向行为都是指跨数据流的重定向行为,即网页浏览器在每一次被重定向时都重新建立一个数据流。

服务器重定向行为是一种通过服务器的配置,将以网页浏览器为例的客户端重定向到另一页面的过程。服务器接收到访问请求报文后,在访问应答报文中携带指示重定向的状态码、以及需要跳转的目的资源地址。通常需要跳转的目的资源地址携带在访问应答报文头的location字段中。具体地,指示重定向的状态码有以下几种:

301movedpermanently

302found

303seeother

304notmodified

307temporaryredirect。

客户端重定向行为是以网页浏览器为例的客户端通过一段javascript脚本或者在meta标签中设置refresh指令来触发重定向。由于javascript脚本和meta标签通常是加密的,所以依据javascript脚本和meta标签明文来识别客户端重定向的难度较大。客户端重定向可以通过以下条件来识别:访问请求报文对应的访问应答报文携带的特征码指示成功、通过访问请求报文的流标识确认该访问请求报文不属于一个在先的数据流、访问请求报文的referer字段内容包括其他在先的访问请求报文的host字段内容。

对于重定向链的描述请参照附图3、图5所示实施例中的相关描述。生成重定向链的详细过程将在后续结合附图6进行说明。

步骤43,如果所述至少一个重定向链中的一个重定向链,例如第一重定向链符合预定规则,安全设备确定所述待检测网页是恶意网页。后面将结合多个附图对预定规则进行详细描述。

附图5是本申请实施例提供的重定向链的示意图。安全设备根据一个与重定向行为相关的访问请求报文可以生成一个记录,因此每个记录与一个访问请求报文相对应。每个记录中包括相对应的访问请求报文携带的流标识、host数据和资源地址。附图5所示的重定向链包括n个记录,n的取值为自然数。可选地,每个记录中还包括时间戳、referer数据等等对应的访问请求报文中携带的其他信息。

通常而言,流标识是指由源ip地址、目的ip地址、源端口号、目的端口号和协议类型构成的五元组。由于终端设备访问待检测网页过程中产生的每个访问请求报文的源ip地址都是该终端设备的ip地址、目的端口均为80端口。因此流标识可以用源端口号、目的ip地址和协议类型来表示。在本实施例中,协议类型均为http,因此流标识可以进一步简化为源端口号和目的ip地址组成的二元组。

附图5中的记录1和记录n中源端口、目的ip地址、host的取值可以相同,也可以不同。资源地址用url表示。在附图6所示的实施例中,重定向链是在附图1所示的场景中根据私有ip地址为192.168.36.10的终端设备访问待检测网页时产生的web流量生成的。

重定向链中包括一个或多个记录,本申请实施例重点关注有多个记录的重定向链,有多个记录的重定向链中对于检测恶意网页有更多参考价值。

附图6是本申请实施例提供的根据访问请求报文生成重定向链的过程的流程图,包括以下步骤。

步骤61,安全设备按时间顺序,从获得的至少一个访问请求报文中选择一个访问请求报文,对所述选择出的访问请求报文执行步骤62~610,直到处理完至少一个访问请求报文中的每个访问请求报文为止。

安全设备得到的终端设备访问待检测网页过程中产生的访问请求报文和对应的访问应答报文后,对访问请求报文和访问应答报文进行http层解析,解析结果如表1所示,表1中的每行分别对应1条报文。其中待检测网页的url为www.crowdfundingformybusiness.com,终端设备的ip地址为192.168.36.10。在本实施例中访问待检测网页的访问请求报文和对应的访问应答报文是在第一个携带有待检测网页url的访问请求报文之后2分钟内发生的,因此表1中第1行至第16行是终端设备访问待检测网页过程中产生的访问请求报文和访问应答报文,第17行以及后续的报文是与访问待检测网页无关的其他web报文。可以理解,表1中的奇数行为访问请求报文,偶数行为访问应答报文,与前一行的访问请求报文相对应。例如第2行所示的访问应答报文与第1行所示的访问请求报文对应,第4行所示的访问应答报文与第3行所示的访问请求报文对应,以此类推。

其中访问请求报文和访问应答报文的协议类型均为http协议,因篇幅所限在表1中未示出。其中,srcip表示源ip地址、desip表示目的地址、srcport表示源端口、desport表示目的端口。

表1

步骤62,安全设备通过协议解析获得选择出的访问请求报文的报文头、以及所述选择出的访问请求报文对应的访问应答报文携带的状态码。在本申请实施例中主要关注报文头中的host字段内容、referer字段内容和info字段内容。对于访问应答报文,状态码携带在info字段中。具体如表1所示。

步骤63,安全设备确定现有重定向链中是否存在一个记录中的流标识与报文头中携带的流标识相同,如果存在一个记录中的流标识与报文头中携带的流标识相同则对该访问请求报文的处理结束,返回步骤61,开始处理下一条访问请求报文;如果不存在一个记录中的流标识与报文头中携带的流标识相同,执行步骤64。

步骤64,安全设备进一步判断报文头的referer字段内容是否为空,如果referer字段内容为空,则执行步骤65。如果报文头的referer字段内容非空,则执行步骤66。

步骤65,安全设备创建一个记录,设置创建的记录的流标识为所述报文头中的五元组,设置所述创建的记录的资源地址为所述选择出的访问请求报文携带的url、设置所述创建的记录的host数据为所述报文头携带的host字段内容。

步骤67,安全设备将创建的记录作为一个重定向链的首记录。具体地安全设备创建一个新的重定向链,并将创建的记录作为这个新的重定向链的首记录。

步骤66,安全设备判断状态码是否指示成功或重定向,如果状态码指示成功、或者状态码指示重定向,执行步骤68。如果状态码并非指示成功、且并非指示重定向,则对该访问请求报文的处理结束,返回步骤61,开始处理下一条访问请求报文。

步骤68,安全设备进一步判断报文头的referer字段内容包括另一记录的host数据,如果报文头的referer字段内容包括上述另一记录的host数据,执行步骤69。如果报文头的referer字段内容未包括上述另一记录的host数据,则对该访问请求报文的处理结束,返回步骤61,开始处理下一条访问请求报文。

步骤69,安全设备创建一个记录,设置创建的记录的流标识为所述报文头中的五元组,设置所述创建的记录的资源地址为所述选择出的访问请求报文携带的url,设置所述创建的记录的host数据为所述报文头的host字段内容。

步骤610,安全设备设置所述创建的记录与所述另一记录存在单向关系、且在所述创建的记录与所述另一记录之间的单向关系中所述另一记录为出记录,所述创建的记录为入记录。

经过上述步骤,安全设备构建了与终端设备访问待检测网页www.crowdfundingformybusiness.com这一过程相关的重定向链。下面将结合表1中的报文实例进行说明。

初始时,不存在ip地址192.168.36.10对应的任意一个重定向链。表1第1行所示的访问请求报文满足以下条件:表1第1行所示的报文头中携带的流标识(162.144.66.10,1061)与现有重定向链中任意一个记录中的流标识不同、且表1第2行所示的访问应答报文携带的状态码指示成功(http/1.1200ok)、且所述报文头的referer字段内容为空。因此安全设备根据表1第1行创建记录1,作为一个重定向链的首记录,如图7中记录1所示。

表1中第3行所示的访问请求报文满足以下条件:表1第3行所示的报文头中携带的流标识(162.144.66.10,1062)与记录1的流标识不同、且表1第4行所示的访问应答报文携带的状态码指示成功(http/1.1200ok)、且报文头中referer字段内容http://www.crowdfundingformybusiness.com/包括记录1中的host数据www.crowdfundingformybusiness.com。因此安全设备根据表1第3行行创建记录2,建立记录1和记录2的单向关系,其中记录1为出记录,记录2为入记录,如图7中记录2所示。

表1中第5行所示的访问请求报文满足以下条件:表1第5行所示的报文头中携带的流标识(185.14.30.37,1063)与记录2的流标识不同、且表1第4行所示的访问应答报文携带的状态码指示成功(http/1.1200ok)、且报文头中referer字段内容http://www.crowdfundingformybusiness.com/包括记录2中的host数据www.crowdfundingformybusiness.com。因此安全设备根据表1第5行行创建记录3,建立记录2和记录3的单向关系,其中记录2为出记录,记录3为入记录,如图7中记录3所示。

表1中第7行所示的访问请求报文满足以下条件:表1第7行所示的报文头中携带的流标识(178.32.173.105,1064)与记录2的流标识不同、且表1第8行所示的访问应答报文携带的状态码指示成功(http/1.1301moved)、且报文头中referer字段内容

http://www.crowdfundingformybusiness.com/wp-content/plugins/acismit/wp-facebook.php包括记录2中的host数据www.crowdfundingformybusiness.com。因此安全设备根据表1第7行行创建记录4,建立记录2和记录4的单向关系,其中记录2为出记录,记录4为入记录,如图7中记录4所示。

表1中第9行所示的访问请求报文满足以下条件:表1第9行所示的报文头中携带的流标识(185.14.30.37,1065)与记录2的流标识不同、且表1第10行所示的访问应答报文携带的状态码指示成功(http/1.1200ok)、且报文头中referer字段内容

http://www.crowdfundingformybusiness.com/wp-content/plugins/acismit/wp-facebook.php包括记录2中的host数据www.crowdfundingformybusiness.com。因此安全设备根据表1第9行行创建记录4,建立记录2和记录5的单向关系,其中记录2为出记录,记录5为入记录,如图7中记录5所示。

表1中第11行所示的访问请求报文满足以下条件:表1第11行所示的报文头中携带的流标识(46.101.59.201,1065)与记录4的流标识相同。因此安全设备不根据表1第11行创建记录。第13、15行的情况与第11行类似。

附图6和附图7所示的实施例介绍了根据访问请求报文和访问应答报文建立重定向链的详细过程。在本申请实施例中重定向链是安全设备检测恶意网页的重要依据。下面将对用于检测恶意网页的预定规则,以及如何基于预定规则和已建立的重定向链检测恶意网页的过程进行介绍。

规则1:重定向链中的记录总数大于等于设定阈值。其中设定阈值可以为3或3以上的自然数。重定向链中的记录总数越多,说明终端设备在访问待检测网页时被重定向的次数越多,被检测网页是被攻击者通过篡改的网页的可能性越高。

仍以附图7所示的重定向链为例,由于该重定向链的记录数目为5,大于设定阈值3,因此安全设备确定url为www.crowdfundingformybusiness.com的待检测网页为恶意网页。

规则2:重定向链中存在单向关系的两个记录中host数据分别的格式要求。

例如,第一种格式要求是出记录对应的host数据为域名、且入记录对应的host数据为ip地址。

仍以附图7所示的重定向链为例,记录2和记录4之间存在单向关系,记录2的host数据为www.crowdfundingformybusiness.com,记录4的host数据为178.32.173.105,满足第一种格式要求,因此安全设备确定url为www.crowdfundingformybusiness.com的待检测网页为恶意网页。

又如,第二种格式要求是出记录对应的host数据为域名、且入记录对应的host数据为ip地址与非预设端口号的组合,其中所述非预设端口号为除预设端口号之外的其他端口号。端口号的取值范围是1~65535。在本实施例中,预设端口可是安全设备的用户输入的端口号,例如在附图3所示结构的安全设备中,用户通过输入设备340输入的端口号,例如80端口。

仍以附图7所示的重定向链为例,记录2和记录4之间存在单向关系,记录2的host数据为www.crowdfundingformybusiness.com,假定记录4的host数据为178.32.173.105:90,则满足第二种格式要求,因此安全设备确定url为www.crowdfundingformybusiness.com的待检测网页为恶意网页。

进一步地,在另一个实施例中,附图5或附图7所示的重定向链中记录格式的基础上,每个记录中还可以保存user-agent数据,在附图6所示的建立重定向链的过程中,在步骤65或步骤69中,安全设备还设置创建的记录的user-agent数据为所述报文头包括的user-agent字段内容。其中报文头中的user-agent字段内容通常用于指示发送访问请求报文的终端设备的网页浏览器的版本标识,网页浏览器适配的操作系统版本标识等等。在重定向链中的每个记录还保存user-agent数据的情况下,用于检测恶意网页的预定规则还可以通过以下方式设置。

规则3:同一个重定向链中存在单向关系的两个记录中user-agent数据分别的格式要求。

例如,第一种格式要求是出记录对应的user-agent数据中的操作系统版本标识与入记录对应的user-agent数据中的操作系统版本标识不同。

第二种格式要求是入记录和出记录分别对应的user-agent数据中的至少一个为空。

第三种格式要求是入记录和出记录分别对应的user-agent数据中的至少一个为非标准格式。在现有标准,例如rfc2616中定义了user-agent的标准格式,除现有标准格式之外的其他格式为非标准格式。

附图8是采用附图6所示的方法建立的访问url为www.crowdfundingformybusiness.com的待检测网页的所有重定向链的示意图。其中包括两个重定向链,第一重定向链是由记录10~记录50构成的重定向链,第二重定向链是由记录60构成的重定向链。

以附图8所示的重定向链为例,在第一重定向链中记录20和记录30之间存在单向关系,记录20的user-agent数据中的操作系统标识为windowsnt6.1;trident/7.0;rv:11.0,记录30的user-agent数据中的操作系统标识为compatible;msie7.0,满足第一种格式要求,因此安全设备确定url为www.crowdfundingformybusiness.com的待检测网页为恶意网页。

以附图8所示的重定向链为例,在第一重定向链中记录20和记录40之间存在单向关系,记录20的user-agent数据中的操作系统标识为windowsnt6.1;trident/7.0;rv:11.0likegecko,记录40的user-agent数据中的操作系统标识为空,满足第二种格式要求,因此安全设备确定url为www.crowdfundingformybusiness.com的待检测网页为恶意网页。

以附图8所示的重定向链为例,在第一重定向链中记录20和记录50之间存在单向关系,记录20的user-agent数据中的操作系统标识为windowsnt6.1;trident/7.0;rv:11.0likegecko,记录50的user-agent数据中的操作系统标识为mozilla/4.0(-----------),满足第三种格式要求,因此安全设备确定url为www.crowdfundingformybusiness.com的待检测网页为恶意网页。

规则4:不同重定向链中的两个记录中user-agent数据分别的格式要求。

安全设备生成的至少一个重定向链中包括第一重定向链和第二重定向链。

例如,第一种格式要求是第一重定向链中的一个记录操作系统版本标识的一个记录和第二重定向链中的另一个记录操作系统版本标识不同。

第二种格式要求是第一重定向链中的一个记录操作系统版本标识的一个记录和第二重定向链中的另一个记录操作系统版本标识不同

第三种格式要求是第一重定向链中的一个记录操作系统版本标识的一个记录和第二重定向链中的至少一个为非标准格式。

仍以附图8所示的重定向链为例,记录20的user-agent数据中的操作系统标识为windowsnt6.1;trident/7.0;rv:11.0likegecko,记录60的user-agent数据中的操作系统标识为compatible;msie7.0,满足第一种格式要求,因此安全设备确定url为www.crowdfundingformybusiness.com的待检测网页为恶意网页。

仍以附图8所示的重定向链为例,记录20的user-agent数据中的操作系统标识为windowsnt6.1;trident/7.0;rv:11.0,假设记录60的user-agent数据中的操作系统标识为空,则满足第二种格式要求,因此安全设备确定url为www.crowdfundingformybusiness.com的待检测网页为恶意网页。

仍以附图8所示的重定向链为例,记录20的user-agent数据中的操作系统标识为windowsnt6.1;trident/7.0;rv:11.0,假设记录60的user-agent数据中的操作系统标识为-----------,则满足第三种格式要求,因此安全设备确定url为www.crowdfundingformybusiness.com的待检测网页为恶意网页。

本申请实施例还提供了一种检测恶意网页的装置。该装置可以执行上述方法实施例中安全设备的功能。如附图9所示,该装置包括接收模块910、重定向链生成模块920和确定模块930。这些模块可以是由软件实现,也可以由硬件实现,或者由软件和硬件相结合的方式实现。当这些模块由软件实现时,可以是附图3所示的安全设备中处理器310读取存储器320中的程序代码后生成的功能模块。

接收模块910,用于获取终端设备访问待检测网页过程中产生的至少一个访问请求报文。接收模块910获取至少一个访问请求报文的详细过程可以参照上述方法实施例中的说明,例如附图4步骤41的相关描述。

重定向链生成模块920,用于根据接收模块910接收的所述至少一个访问请求报文生成至少一个重定向链,所述至少一个重定向链中的每个重定向链中的每个记录分别保存所述至少一个访问请求报文中的一个访问请求报文携带的资源地址。所述至少一个重定向链中的第一重定向链包括至少两个记录,所述至少两个记录中相邻的第一记录和第二记录以第一单向关系连接,所述第一记录为出记录,所述第二记录为入记录,所述第一记录保存的资源地址所指示的资源中包括重定向指示,所述重定向指示用于将所述终端设备重定向到所述第二记录保存的资源地址。重定向链生成模块920根据至少一个访问请求报文生成重定向链的详细过程可以参照上述方法实施例中的说明,例如附图6相关的描述。

确定模块930,用于如果重定向链生成模块920生成的所述第一重定向链符合预定规则,确定所述待检测网页是恶意网页。确定模块930待检测网页是否是恶意网页的详细过程可以参照上述方法实施例中的说明,例如规则1至规则4的描述。

本领域普通技术人员将会理解,本申请的各个方面、或各个方面的可能实现方式可以被具体实施为计算机程序产品。计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。

计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包括但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合。如计算机可读存储介质为随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)或便携式只读存储器(cd-rom)。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的范围。这样,倘若本申请的这些修改和变型属于本发明权利要求的范围之内,则本发明也意图包括这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1