一种网页攻击数据的检测方法及装置的制造方法_2

文档序号:8925220阅读:来源:国知局
访问变量。需要说明的是,正常用户通过该种向网页服务器发送网页访问请求的方式,来进行网页访问,同样,攻击者也利用该种方式向网页服务器发送攻击数据。
[0050]具体地,攻击者向网页服务器中的某个网页文件(网页木马)发送网页访问请求,该网页访问请求中包含初始访问变量,初始访问变量的内容即为网页攻击数据(或者称之为对网页木马的访问数据)。例如,网页服务器中包含的网页木马为“a.php”,攻击者向网页木马“a.php”发送的网页访问请求为“GET/a.php ? p = format HTTP/1.1”。该网页访问请求中包含的初始访问变量为“P”,初始访问变量“P”的具体内容为“format”命令,“ format ”命令的功能是格式化。
[0051]需要说明的是,网页访问请求中可以包含HTTP(HyperText Transfer Protocol,超文本传输协议)访问变量,HTTP访问变量可以具体为GET、P0ST或COOKIE等,当然,访问变量的所述具体形式仅仅作为说明示例,本申请并不限定于此。这些访问变量中包含的数据即用户发送的访问数据,通常,网页攻击数据也封装在这些访问变量中。
[0052]步骤S102:判断所述初始访问变量是否具有预设污点数据特征;若是,执行步骤S103o
[0053]发明人经过研宄发现,网页攻击数据通常具有一些自身特有的特征,利用预先统计的网页攻击数据特征生成污点数据特征,用来判断初始访问变量是否可能为网页攻击数据。若初始访问变量具有预先设置的污点数据特征,则表明初始访问变量可能为网页攻击数据,并进一步利用后续步骤S103及步骤S104进行准确判定。
[0054]在实施例中,可以根据预先统计的网页攻击数据特征生成特征库,特征库中包含至少一个污点数据关键词,相应地,判断初始访问变量是否具有预设污点数据特征的一种具体实现方式可以是:
[0055]判断初始访问变量中是否包含特征库中的污点数据关键词,若包含,则执行步骤S103o
[0056]步骤S103:确定所述初始访问变量在网页访问响应中的传播路径;其中,所述网页访问响应为依据所述网页访问请求生成展示网页的过程。
[0057]其中,网页服务器在接收到网页访问请求后,进行网页访问响应。若网页访问响应成功,则会生成向用户展示的网页。本实施例即是监测整个网页访问响应过程中,以进一步确定具有污点数据特征的初始访问变量是否为网页攻击数据。
[0058]网页访问响应中需要利用初始访问变量进行响应操作,该响应操作中会涉及到对函数的操作,例如,将初始访问变量作为参数调用函数。具体地,函数调用的具体形式可以是,直接将初始访问变量作为参数调用函数,也可以是对初始访问变量进行变形操作后,生成新的访问变量,将新的访问变量作为参数调用函数。网页访问响应中对函数的操作表明初始访问变量在整个网页访问响应中存在传播路径,该传播路径表示初始访问变量在网页访问响应中参与的函数操作。
[0059]步骤S104:在所述传播路径中包含预设目标函数的情况下,确定所述初始访问变量为网页攻击数据。
[0060]需要说明的是,初始访问变量的传播路径中包含函数,表明初始访问变量参与的操作内容中包含对函数的相关操作。进而,可通过判断初始访问变量的传播路径中是否包含预设的目标函数,来确定初始访问变量是否为网页攻击数据。具体地,若初始访问变量的传播路径中包含预设目标函数,则将该初始访问变量确定为网页攻击数据。
[0061]发明人经过研宄发现,网页攻击数据在网页响应中会作为参数调用脚本内部函数,且调用的函数具有一定的特征,即函数会执行参数传入的代码或命令。具体地,网页木马只有运行才能发挥破坏作用,但网页木马的运行需要借助于网页响应中操作的函数才能运行,因此,网页攻击数据会作为参数,调用执行外部传入代码或命令的函数,以触发这些函数来执行网页木马。因此,将具有如上特征的函数预先设置为目标函数。例如,以PHP脚本语言为例,目标函数为eval函数、assert函数、require函数、system函数及SQL查询函数等。当然,这几个函数仅仅是示例,本申请并不局限于此。其中,在预设目标函数中包含SQL查询函数时,说明本实施例除了可以检测网页木马型的攻击数据,还可用来检测SQL注入攻击型的攻击数据。
[0062]由以上的技术方案可知,本实施例提供的网页木马的检测方法中,首先判断网页访问请求中的初始访问变量是否具有污点数据的特征,如果具有,则追踪初始访问变量在网页访问响应中的传播路径,若传播路径中包含预设目标函数,则确定初始访问变量为网页攻击数据。可见,应用本实施例提供的网页木马的检测方法,可以检测出网页访问请求中是否存在网页木马。
[0063]更具体地讲,本实施例提供的网页木马的检测方法,首先利用污点数据特征对初始访问变量进行初步判断,由于网页木马可能利用脚本变形、加密等方法改变初始访问变量,使初始访问变量不具备预设污点数据特征,因此,本实施例进一步跟踪初始访问变量在网页响应过程中的传播路径,利用传播路径进行精确判断,进而检测出变形后的网页木马,提高网页木马的检测全面性。
[0064]另外,本实施例在接收到用户发送的网页访问请求后,即可进行网页木马的检测。并且检测的是网页响应的过程,网页响应是依据网页访问请求生成用户访问的页面的过程,可见,本实施例是实时检测,或者称之为动态检测,保证网页木马在被访问的过程中即被检测出来,避免事后检测的滞后性。
[0065]需要说明的是,一种动态检测方法可以是,拦截一句话函数,判断如果在同一线程内发生特定系统API调用如操作文件、数据库等,则确定存在网页木马。这种检测方法误报率较高。具体地,这种方法是判断网页木马是否执行了一些敏感操作,而判断依据是线程ID,这种判断方式中会将正常脚本误报为网页木马。因为,正常脚本可能在同一个线程中先调用正常函数,再继续调用文件的操作,而机械地判断该脚本是否在同一线程中的检测方法则会将正常脚本进行误报。然而,本实施例中,并未判断脚本的操作是否在同一线程中,而是跟踪初始访问变量的传播路径,从而避免对正常脚本的误报。
[0066]如图2所示,在上述实施例确定出网页木马后,还可以包括步骤S105:终止所述网页访问响应,并记录所述预设目标函数。
[0067]其中,网页访问响应是为用户生成待访问的目标网页,开始于接收到网页访问请求,在网页访问响应的过程中,若检测到网页木马,则表明该网页访问请求了攻击者的网页木马,因此,为了保证网页服务器的安全,终止该网页访问响应过程。同时,可记录网页木马的传播路径中的预设目标函数,表明预设目标函数被网页木马调用。在实际应用中,本实施例是可以多次重复执行的,因此,可实现对每个网页木马调用的预设目标函数的记录,进而统计出每个预设目标函数被调用的频率,这些数据以供相关人员对网页木马的函数调用情况进行分析。
[0068]需要说明的是,上述的实施例中,确定出初始访问变量的传播路径后,只有在出传播路径中包含预设目标函数的情况下,才确定初始访问变量为网页攻击数据。因此,需要准确判断传播路径中是否包含预设目标函数。为实现所述目的,本申请提供以下实现方案。
[0069]在网页访问响应中,初始访问变量可能调用各种函数。预先为目标函数设置钩子函数,钩子函数的作用是监测目标函数是否被初始访问变量调用。初始访问变量调用目标函数的方式是,初始访问变量作为外部传入参数调用目标函数,由于在正常情况下,目标函数仅仅执行系统内部的参数,并不执行外部传入的参数。因此,一旦目标函数被外部传入参数调用,则说明该外部传入参数为网页攻击数据,也说明初始访问变量调用预设目标函数,也即初始访问变
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1