CN105100065B - 基于云的webshell攻击检测方法、装置及网关 - Google Patents

基于云的webshell攻击检测方法、装置及网关 Download PDF

Info

Publication number
CN105100065B
CN105100065B CN201510363767.5A CN201510363767A CN105100065B CN 105100065 B CN105100065 B CN 105100065B CN 201510363767 A CN201510363767 A CN 201510363767A CN 105100065 B CN105100065 B CN 105100065B
Authority
CN
China
Prior art keywords
script file
sentence
feature
default
vestige
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.)
Active
Application number
CN201510363767.5A
Other languages
English (en)
Other versions
CN105100065A (zh
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.)
Qax Technology Group Inc
Original Assignee
Beijing Qianxin 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 Qianxin Technology Co Ltd filed Critical Beijing Qianxin Technology Co Ltd
Priority to CN201510363767.5A priority Critical patent/CN105100065B/zh
Publication of CN105100065A publication Critical patent/CN105100065A/zh
Application granted granted Critical
Publication of CN105100065B publication Critical patent/CN105100065B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于云的webshell攻击检测方法、装置及网关,涉及互联网技术领域,能够解决现有技术中难以识别变形webshell攻击的问题。本发明的方法包括:截获向网站服务器发送的脚本文件;基于云平台检测脚本文件中是否存在预设的特征变形痕迹,特征变形痕迹为对脚本文件中的特征语句进行形式改动所产生的痕迹;若脚本文件中存在特征变形痕迹,则根据预设的还原规则对改动过的特征语句进行还原,还原规则为特征变形规则的逆规则;检测还原后的特征语句是否与预设的基本特征语句相同,基本特征语句为攻击敏感语句;若还原后的特征语句与基本特征语句相同,则确定脚本文件为webshell攻击文件。本发明适用于黑客向网站服务器发送webshell攻击文件的场景中。

Description

基于云的webshell攻击检测方法、装置及网关
技术领域
本发明涉及互联网技术领域,尤其涉及一种基于云的webshell攻击检测方法、装置及网关。
背景技术
webshell是一种以asp(active server pages,动态服务器页面)、php(hypertextpreprocessor,超文本预处理器)、jsp(java server pages,java服务器页面)或者cgi(common gateway interface,公共网关接口)等网页文件形式存在的命令执行环境。由于webshell是一种网页后门,所以就成为黑客入侵网站服务器的脚本攻击工具。在实际应用中,黑客在入侵了一个网站后,通常会将这些asp或php等后门文件与网站服务器web目录下正常的网页文件混在一起,然后通过浏览器来访问这些asp或php等后门文件,从而控制网站服务器。
因此,防护webshell攻击对于网站安全十分重要。在现有的webshell攻击检测技术中,网关在获得外部发送给网站服务器的脚本文件后,通过检测脚本文件中是否存在基本攻击特征来确定是否有webshell攻击。然而,黑客们为了避免webshell攻击被检测出来,编写出许多特征变形的webshell攻击方法。例如,在一些特征字符串中添加“%”、“*”等其他非字母符号,以使得该特征字符串变成一个新的自定义的字符串。在这种情况下,由于webshell攻击的基本攻击特征已被打乱,所以很难根据基本攻击特征将其检测出来,从而webshell攻击的检测成为如今一大难题。
发明内容
有鉴于此,本发明提供一种基于云的webshell攻击检测方法、装置及网关,能够解决现有技术中难以识别变形webshell攻击的问题。
第一方面,本发明提供了一种基于云的webshell攻击检测方法,所述方法包括:
截获向网站服务器发送的脚本文件;
基于云平台检测所述脚本文件中是否存在预设的特征变形痕迹,所述特征变形痕迹为对所述脚本文件中的特征语句进行形式改动所产生的痕迹;
若所述脚本文件中存在所述特征变形痕迹,则根据预设的还原规则对改动过的特征语句进行还原,所述还原规则为特征变形规则的逆规则;
检测还原后的特征语句是否与预设的基本特征语句相同,所述基本特征语句为攻击敏感语句;
若所述还原后的特征语句与所述基本特征语句相同,则确定所述脚本文件为webshell攻击文件。
第二方面,本发明提供了一种基于云的webshell攻击检测装置,所述装置包括:
截获单元,用于截获向网站服务器发送的脚本文件;
检测单元,用于基于云平台检测所述截获单元截获的所述脚本文件中是否存在预设的特征变形痕迹,所述特征变形痕迹为对所述脚本文件中的特征语句进行形式改动所产生的痕迹;
还原单元,用于当所述检测单元检测到所述脚本文件中存在所述特征变形痕迹时,根据预设的还原规则对改动过的特征语句进行还原,所述还原规则为特征变形规则的逆规则;
所述检测单元,还用于检测所述还原单元还原后的特征语句是否与预设的基本特征语句相同,所述基本特征语句为攻击敏感语句;
确定单元,用于当所述检测单元检测到所述还原后的特征语句与所述基本特征语句相同时,确定所述脚本文件为webshell攻击文件。
第三方面,本发明提供了一种基于云的webshell攻击检测网关,所述网关包括如第二方面所述的装置。
借由上述技术方案,本发明提供的基于云的webshell攻击检测方法、装置及网关,能够在外部向网站服务器发送脚本文件时,截获该脚本文件,并基于云平台先对该脚本文件进行特征变形痕迹的检测,再将改动过的特征语句进行还原,最后将还原后的特征语句与基本特征语句进行比较,若相同,则判定该脚本文件为webshell攻击文件。与现有技术中仅进行基本特征语句的检测方法相比,本发明通过先将改动后的特征语句进行还原,使得被打乱的特征语句还原为原有的特征语句,再与基本特征语句进行比对,使得隐藏在脚本文件中的基本特征语句被检测出来,从而确定该脚本文件为webshell攻击文件。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种基于云的webshell攻击检测方法的流程图;
图2示出了本发明实施例提供的一种基于云的webshell攻击检测装置的组成框图;
图3示出了本发明实施例提供的另一种基于云的webshell攻击检测装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种基于云的webshell攻击检测方法,如图1所示,该方法包括:
101、截获向网站服务器发送的脚本文件。
当外部(包括一般用户、黑客等)向网站服务器发送脚本文件时,需要经过网关,因此当该脚本文件到达网关时,网关可以对该脚本文件进行截获,以便对该脚本文件进行安全性的检测,从而保证达到网站服务器侧的脚本文件是安全的。
需要说明的是,上述脚本文件可以为asp(active server pages,动态服务器页面)文件、php(hypertext preprocessor,超文本预处理器)文件、jsp(java server pages,java服务器页面)文件、cgi(common gateway interface,公共网关接口)文件,或者其他格式的网页文件。
102、基于云平台检测脚本文件中是否存在预设的特征变形痕迹。
其中,特征变形痕迹为对脚本文件中的特征语句进行形式改动所产生的痕迹。特征语句可以为位于典型位置上的语句,例如含有函数的语句,也可以为具有其他特征的语句,还可以泛指可执行的代码语句。
具体的,特征变形痕迹可以为以下一个或任意多个的组合:注释语句、变量赋值字符、预设特征字符和预设特征函数名。若特征变形痕迹仅包括一项内容(如仅包括预设特征函数名),则网关仅对脚本文件进行该项内容的检测;若特征变形痕迹包括至少两项内容,则网关会分别对脚本文件进行每一项内容的检测。在实际应用中,网关可以根据预设检测顺序依次对脚本文件进行特征变形痕迹中所有内容的检测,也可以同时对脚本文件进行所有内容的检测。
需要说明的是,本步骤中提及的基于云平台主要是指网关需要先从云平台侧获取最新的特征变形痕迹、还原规则和基本特征语句,才可以对脚本文件进行检测。其中,最新的特征变形痕迹、还原规则和基本特征语句的获取方式可以为直接从云平台获取,也可以为通过云平台对本地的特征变形痕迹、还原规则和基本特征语句进行更新,其具体获取方式在此不作限定。
103、若脚本文件中存在特征变形痕迹,则根据预设的还原规则对改动过的特征语句进行还原。
其中,还原规则为特征变形规则的逆规则。当网关检测到脚本文件中存在特征变形痕迹时,说明特征语句已经按照预设的特征变形规则进行了改动。此时,网关按照特征变形规则的逆规则(还原规则)即可将改动过的特征语句进行还原,从而得到原始(改动前)的特征语句,以便进行后续步骤104、105的操作。
例如,网关检测到一条语句为“e/*aaaa*/val($_POST[‘a’]);”,通过与预设的特征变形痕迹相匹配,可知该语句中存在一种特征变形痕迹,即注释语句。该特征变形的规则为在语句中添加注释语句,因此该特征变形规则的逆规则(还原规则)为删除添加的注释语句。
104、检测还原后的特征语句是否与预设的基本特征语句相同。
其中,基本特征语句为攻击敏感语句,即由编程人员统计的能够直接确定存在webshell攻击特征的语句。在通过还原规则将改动过的特征语句还原后,可以获得原始的特征语句,此时,网关再通过与基本特征语句进行比对,就可以判断出还原后的特征语句是否为预设的基本特征语句,从而得出脚本文件是否为webshell攻击文件。
105、若还原后的特征语句与基本特征语句相同,则确定脚本文件为webshell攻击文件。
由于基本特征语句为攻击敏感语句,所以当网关检测出还原后的特征语句与基本特征语句相同时,可以确定该还原后的特征语句为攻击敏感语句,从而得知脚本文件中存在攻击敏感语句,进而确定该脚本文件为webshell攻击文件。反之,当网关检测出还原后的特征语句与基本特征语句不同时,可以确定该还原后的特征语句不是攻击敏感语句,从而得知脚本文件中不存在攻击敏感语句,进而确定该脚本文件不是webshell攻击文件。
示例性的,网关检测到“eval($/*xyz*/{“_P”.“OST”}[‘op’]);”中存在两种特征变形痕迹,分别为注释语句和预设特征字符,所以网关需要根据对应特征变形痕迹的还原规则对其进行还原。在实际应用中,对于注释语句和预设特征字符的还原规则均为删除操作,所以将注释语句与预设特征字符都删除后,得到的还原后的特征语句为“eval($_POST[‘op’]);”。将该特征语句与基本特征语句进行比较,可判断出脚本文件是否为webshell攻击文件。若基本特征语句中包含“eval($_POST[‘op’]);”,则还原后的特征语句与基本特征语句相同,从而得出该脚本文件为webshell攻击文件;若基本特征语句中不包含“eval($_POST[‘op’]);”,则还原后的特征语句与基本特征语句不同,从而还需要继续对脚本文件中的其他特征语句进行判断,才可确定该脚本文件是否为webshell攻击文件。
需要说明的是,在实际应用中,只有当网关确定其所截获的脚本文件不是webshell攻击文件时,才将该脚本文件继续上传到网站服务器,而当该脚本文件是webshell攻击文件时,不再将该脚本文件上传到网站服务器,从而保证了上传到网站服务器的脚本文件为安全的文件。
本发明实施例提供的基于云的webshell攻击检测方法,能够在外部向网站服务器发送脚本文件时,截获该脚本文件,并基于云平台先对该脚本文件进行特征变形痕迹的检测,再将改动过的特征语句进行还原,最后将还原后的特征语句与基本特征语句进行比较,若相同,则判定该脚本文件为webshell攻击文件。与现有技术中仅进行基本特征语句的检测方法相比,本发明通过先将改动后的特征语句进行还原,使得被打乱的特征语句还原为原有的特征语句,再与基本特征语句进行比对,使得隐藏在脚本文件中的基本特征语句被检测出来,从而确定该脚本文件为webshell攻击文件。
进一步的,依据上述方法实施例可知,当预设的特征变形痕迹只包含一种特征变形痕迹时,网关仅检测脚本文件中是否存在该特征变形痕迹;当预设的特征变形痕迹中包括多种特征变形痕迹时,网关会同时检测脚本文件中是否存在该多种特征变形痕迹,或者按照顺序依次检测该脚本文件中是否存在该多种特征变形痕迹。在检测出特征变形痕迹后,需要将改动过的特征语句还原,然而对于不同类型的特征变形痕迹具有不同的还原方法,下面针对不同情况进行介绍:
情况一:当特征变形痕迹包括注释语句时,网关会基于云平台检测脚本文件中是否存在注释语句。若脚本文件中存在注释语句,则将注释语句删除;若脚本文件中不存在注释语句,则无需进行注释语句的删除操作。
由于注释语句并不参与程序的执行,所以当黑客在特征语句中添加注释语句后,也不影响该特征语句本身的功能。当该特征语句为基本特征语句时,该脚本文件就是webshell攻击文件。但是在该特征语句中添加了注释语句后,改动后的特征语句就不再与基本特征语句相同了,因此需要将添加的注释语句删除,才能得到原始的特征语句,以便更精确地检测出本质上与基本特征语句相同的语句,从而避免发生webshell攻击文件漏检的现象。
在实际应用中,注释语句的检测主要是通过检测注释标识,例如:“//”、“/*”、“*/”等。例如,网关检测到一条特征语句“eva/*xxxxx*/l($_POST[‘a’]);”中包含“/*”和“*/”注释标识,则将携带有注释标识的注释语句删除,从而获得添加注释语句前的语句,即“eval($_POST[‘a’]);”。在获得改动前的特征语句后,将其与基本特征语句进行比对。若基本特征语句中包含“eval($_POST[‘a’]);”,则还原后的特征语句与基本特征语句相同,从而得出该脚本文件为webshell攻击文件;若基本特征语句中不包含“eval($_POST[‘a’]);”,则还原后的特征语句与基本特征语句不同,从而还需要继续对脚本文件中的其他特征语句进行判断,才可确定该脚本文件是否为webshell攻击文件。
情况二:当特征变形痕迹包括变量赋值字符时,网关会基于云平台检测脚本文件中是否存在变量赋值字符。若脚本文件中存在变量赋值字符,则将被赋值的变量还原;若脚本文件中不存在变量赋值字符,则无需进行变量还原操作。
在实际应用中,编程人员常常通过给特征语句中的变量赋值,即用新的变量来代替旧变量,从而使得该特征语句发生形式上的改变,而实际功能不变。在这种情况下,仅将变量赋值后的特征语句与基本特征语句进行比对,是无法检测出其隐藏的webshell攻击特征的。因此,网关需要先将被赋值的变量还原,以获得原始的特征语句,才可精确地判断出该特征语句是否为基本特征语句,从而正确地判断出该脚本文件是否为webshell攻击文件。
具体的,变量赋值字符主要包括变量赋值标识,即“=”,也可以包括其他具有赋值功能的字符,在此不作限定。
例如,脚本文件中有如下代码:
$aaa=e;
$bbb=v;
$ccc=a;
$ddd=l;
$xsser=$_POST[‘op’];
“$aaa”.“$bbb”.“$ccc”.“$ddd”($xsser);
网关在上述代码中检测到变量特征字符(即“=”),并且检测到““$aaa”.“$bbb”.“$ccc”.“$ddd”($xsser);”语句中的$aaa、$bbb、$ccc、$ddd和$xsser分别是给e、v、a、l、和$_POST[‘op’]赋的新变量,因此网关需要将这些新变量还原为原始变量,还原后的代码变为“eval($_POST[‘op’]);”,再将此特征语句与基本特征语句进行比较。若基本特征语句中包含“eval($_POST[‘op’]);”,则该脚本文件为webshell攻击文件;若基本特征语句中不包含“eval($_POST[‘op’]);”,则需要继续对脚本文件中的其他特征语句进行判断,才能确定该脚本文件是否为webshell攻击文件。
情况三:当特征变形痕迹包括预设特征字符时,网关会基于云平台检测脚本文件中是否存在预设特征字符。若脚本文件中存在预设特征字符,则将预设特征字符删除;若脚本文件中不存在预设特征字符,则无需进行预设特征字符删除操作。
在实际应用中,黑客常常通过在特征语句中添加拼接符等字符来打乱一个完整的函数名或者变量名等等,从而仅通过基本特征语句无法检测出来该特征语句中存在的webshell攻击特征,因此需要将含有预设特征字符的特征语句还原,才可更进一步地检测出该特征语句是否是含有webshell攻击特征的语句,从而判断该脚本文件是否为webshell攻击文件。
例如,网关检测到““e”.“v”.“a”.“l”($_POST[‘a’]);”中含有拼接符双引号和点,所以将该特征语句中的双引号和点删除后,可以获得原始的语句,即“eval($_POST[‘a’]);”。此时,将“eval($_POST[‘a’]);”与基本特征语句比对,若基本特征语句中包含“eval($_POST[‘a’]);”,则该脚本文件为webshell攻击文件,若基本特征语句中不包含“eval($_POST[‘a’]);”,则需要继续对脚本文件中的其他特征语句进行判断,才能确定该脚本文件是否为webshell攻击文件。
情况四:当特征变形痕迹包括预设特征函数名时,网关会基于云平台检测脚本文件中是否存在预设特征函数名。若脚本文件中存在预设特征函数名,则根据特征函数功能的逆功能对对应特征函数的语句进行还原;若脚本文件中不存在预设特征函数名,则无需进行特征函数的还原。
实际应用中,黑客常常利用一些特殊函数来对特征语句进行变形,使得特征语句本身的功能不发生改变,而仅通过基本特征语句进行检测,往往无法将其隐藏的webshell攻击特征检测出来。因此,网关需要先将经特征函数改动的特征语句还原,才可以更精确地将隐藏的webshell攻击特征检测出来,从而完成webshell攻击文件的鉴定。
具体的,预设特征函数名包括str_replace、preg_replace、pack、chr、base64_decode、strrev、str_rot13、rot_13、create_function、urldecode、strtr、gzuncompress、gzinflate和gzdecode等。每个特征函数名所对应的特征函数都具有一定的功能,因此网关通过特征函数功能的逆功能就可以将改动后的特征语句还原,从而获得原始的特征语句,以便进行后续基本特征语句的检测。
例如,脚本文件中有如下代码
$abcd=str_repalce(“abc”,“eva”,“abcl”);
$abcd($_POST[‘a’]);
网关检测到上述代码中存在str_repalce,而str_repalce函数在本语句中实现的功能为:将abcl中的abc用eva来代替,因此“$abcd($_POST[‘a’]);”实际上为“eval($_POST[‘a’]);”。由此可知,需要利用str_repalce函数功能的逆功能将“$abcd($_POST[‘a’]);”还原,从而得到“eval($_POST[‘a’]);”,再将“eval($_POST[‘a’]);”与基本特征语句比对。若基本特征语句中包括eval($_POST[‘a’]);”,则该脚本文件为webshell攻击文件;若基本特征语句中不包括eval($_POST[‘a’]);”,则不能根据上述代码判断出该脚本文件为webshell攻击文件。
又如,脚本文件中有如下代码
$xxyz=strtr(“exyz”,“xyz”,“val”);
$xxyz($_POST[‘a’]);
网关检测到上述代码中存在strtr,而strtr函数在本语句中实现的功能为:将exyz中的x、y、z分别用v、a、l来代替,因此“$xxyz($_POST[‘a’]);”实际上为“eval($_POST[‘a’]);”。由此可知,需要利用strtr函数功能的逆功能将“$xxyz($_POST[‘a’]);”还原,从而得到“eval($_POST[‘a’]);”,再将“eval($_POST[‘a’]);”与基本特征语句比对。若基本特征语句中包括eval($_POST[‘a’]);”,则该脚本文件为webshell攻击文件;若基本特征语句中不包括eval($_POST[‘a’]);”,则不能根据上述代码判断出该脚本文件为webshell攻击文件。
进一步的,在检测脚本文件中是否存在预设的特征变形痕迹之前,网关侧需要先获取特征变形痕迹、还原规则和基本特征语句,才能进行后续的检测或还原等操作。
具体的,由于云平台侧存储有在不同网站中出现的webshell攻击文件,所以云平台侧具有最全的涉及webshell攻击的特征变形痕迹、还原规则和基本特征语句。因此网关可以从云平台侧获取最新的特征变形痕迹、还原规则和基本特征语句。
具体的,若网关本地不存在特征变形痕迹、还原规则和基本特征语句,则在对脚本文件进行特征变形痕迹的检测之前,网关可以从云平台侧获取携带有最新的特征变形痕迹、还原规则和基本特征语句的文件;若网关本地存在特征变形痕迹、还原规则和基本特征语句,则网关可以通过云平台直接更新本地的特征变形痕迹、还原规则和基本特征语句,例如,通过向云平台获取更新包来更新本地的特征变形痕迹、还原规则和基本特征语句。
此外,在实际应用中,在网关截获脚本文件以后,可以直接将脚本文件上报给云平台,让云平台采用上述检测方法对该脚本文件进行检测,从而将检测结果发送给网关,以便网关确定该脚本文件是否可以继续发送给网站服务器。
进一步的,由于云平台侧需要不断的更新和完善本地的特征变形痕迹、还原规则和基本特征语句的文件,所以在网关确定脚本文件为webshell攻击文件之后,需要向云平台上报本次检测出来的webshell脚本文件,以便云平台对特征变形痕迹、还原规则和基本特征语句的文件进行更新。
进一步的,依据上述方法实施例,本发明实施例还提供了一种基于云的webshell攻击检测装置,如图2所示,该装置包括:截获单元21、检测单元22、还原单元23和确定单元24。其中,
截获单元21,用于截获向网站服务器发送的脚本文件;
检测单元22,用于基于云平台检测截获单元21截获的脚本文件中是否存在预设的特征变形痕迹,特征变形痕迹为对脚本文件中的特征语句进行形式改动所产生的痕迹;
还原单元23,用于当检测单元22检测到脚本文件中存在特征变形痕迹时,根据预设的还原规则对改动过的特征语句进行还原,还原规则为特征变形规则的逆规则;
检测单元22,还用于检测还原单元23还原后的特征语句是否与预设的基本特征语句相同,基本特征语句为攻击敏感语句;
确定单元24,用于当检测单元22检测到还原后的特征语句与基本特征语句相同时,确定脚本文件为webshell攻击文件。
进一步的,检测单元22检测的特征变形痕迹为以下一个或任意多个的组合:
注释语句、变量赋值字符、预设特征字符和预设特征函数名。
具体的,如图3所示,检测单元22,包括:
第一检测模块221,用于当特征变形痕迹包括注释语句时,基于云平台检测脚本文件中是否存在注释语句;
还原单元23,包括:
第一删除模块231,用于当脚本文件中存在注释语句时,将注释语句删除。
进一步的,如图3所示,检测单元22,包括:
第二检测模块222,用于当特征变形痕迹包括变量赋值字符时,基于云平台检测脚本文件中是否存在变量赋值字符;
还原单元23,包括:
第一还原模块232,用于当脚本文件中存在变量赋值字符时,将被赋值的变量还原。
进一步的,如图3所示,检测单元22,包括:
第三检测模块223,用于当特征变形痕迹包括预设特征字符时,基于云平台检测脚本文件中是否存在预设特征字符;
还原单元23,包括:
第二删除模块233,用于当脚本文件中存在预设特征字符时,将预设特征字符删除。
进一步的,如图3所示,检测单元22,包括:
第四检测模块224,用于当特征变形痕迹包括预设特征函数名时,基于云平台检测脚本文件中是否存在预设特征函数名;
还原单元23,包括:
第二还原模块234,当脚本文件中存在预设特征函数名时,根据特征函数功能的逆功能对对应特征函数的语句进行还原。
进一步的,如图3所示,该装置进一步包括:
获取单元25,用于在检测单元22检测脚本文件中是否存在预设的特征变形痕迹之前,向云平台获取特征变形痕迹、还原规则以及基本特征语句;
更新单元26,用于在检测单元22检测脚本文件中是否存在预设的特征变形痕迹之前,通过云平台更新本地缓存的特征变形痕迹、还原规则以及基本特征语句。
进一步的,如图3所示,该装置进一步包括:
上报单元27,用于在确定单元24确定脚本文件为webshell攻击文件之后,向云平台上报脚本文件。
本发明实施例提供的基于云的webshell攻击检测装置,能够在外部向网站服务器发送脚本文件时,截获该脚本文件,并基于云平台先对该脚本文件进行特征变形痕迹的检测,再将改动过的特征语句进行还原,最后将还原后的特征语句与基本特征语句进行比较,若相同,则判定该脚本文件为webshell攻击文件。与现有技术中仅进行基本特征语句的检测方法相比,本发明通过先将改动后的特征语句进行还原,使得被打乱的特征语句还原为原有的特征语句,再与基本特征语句进行比对,使得隐藏在脚本文件中的基本特征语句被检测出来,从而确定该脚本文件为webshell攻击文件。
进一步的,依据上述装置实施例,本发明实施例还提供了一种基于云的webshell攻击检测网关,该网关包括如图2或3所示的装置。
本发明实施例提供的基于云的webshell攻击检测网关,能够在外部向网站服务器发送脚本文件时,截获该脚本文件,并基于云平台先对该脚本文件进行特征变形痕迹的检测,再将改动过的特征语句进行还原,最后将还原后的特征语句与基本特征语句进行比较,若相同,则判定该脚本文件为webshell攻击文件。与现有技术中仅进行基本特征语句的检测方法相比,本发明通过先将改动后的特征语句进行还原,使得被打乱的特征语句还原为原有的特征语句,再与基本特征语句进行比对,使得隐藏在脚本文件中的基本特征语句被检测出来,从而确定该脚本文件为webshell攻击文件。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的随身电子防丢设备的状态检测方法、设备、服务器及***设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (17)

1.一种基于云的webshell攻击检测方法,其特征在于,所述方法包括:
截获向网站服务器发送的脚本文件;
基于云平台检测所述脚本文件中是否存在预设的特征变形痕迹,所述特征变形痕迹为对所述脚本文件中的特征语句进行形式改动所产生的痕迹,所述基于云平台是指需要先从云平台侧获取最新的特征变形痕迹、还原规则和基本特征语句;
若所述脚本文件中存在所述特征变形痕迹,则根据预设的还原规则对改动过的特征语句进行还原,所述还原规则为特征变形规则的逆规则;
检测还原后的特征语句是否与预设的基本特征语句相同,所述基本特征语句为攻击敏感语句;
若所述还原后的特征语句与所述基本特征语句相同,则确定所述脚本文件为webshell攻击文件。
2.根据权利要求1所述的方法,其特征在于,所述特征变形痕迹为以下一个或任意多个的组合:
注释语句、变量赋值字符、预设特征字符和预设特征函数名。
3.根据权利要求2所述的方法,其特征在于,若所述特征变形痕迹包括注释语句,则所述基于云平台检测所述脚本文件中是否存在预设的特征变形痕迹,包括:
基于所述云平台检测所述脚本文件中是否存在所述注释语句;
所述若所述脚本文件中存在所述特征变形痕迹,则根据预设的还原规则对改动过的特征语句进行还原,包括:
若所述脚本文件中存在所述注释语句,则将所述注释语句删除。
4.根据权利要求2所述的方法,其特征在于,若所述特征变形痕迹包括变量赋值字符,则所述基于云平台检测所述脚本文件中是否存在预设的特征变形痕迹,包括:
基于所述云平台检测所述脚本文件中是否存在所述变量赋值字符;
所述若所述脚本文件中存在所述特征变形痕迹,则根据预设的还原规则对改动过的特征语句进行还原,包括:
若所述脚本文件中存在所述变量赋值字符,则将被赋值的变量还原。
5.根据权利要求2所述的方法,其特征在于,若所述特征变形痕迹包括预设特征字符,则所述基于云平台检测所述脚本文件中是否存在预设的特征变形痕迹,包括:
基于所述云平台检测所述脚本文件中是否存在所述预设特征字符;
所述若所述脚本文件中存在所述特征变形痕迹,则根据预设的还原规则对改动过的特征语句进行还原,包括:
若所述脚本文件中存在所述预设特征字符,则将所述预设特征字符删除。
6.根据权利要求2所述的方法,其特征在于,若所述特征变形痕迹包括预设特征函数名,则所述基于云平台检测所述脚本文件中是否存在预设的特征变形痕迹,包括:
基于所述云平台检测所述脚本文件中是否存在所述预设特征函数名;
所述若所述脚本文件中存在所述特征变形痕迹,则根据预设的还原规则对改动过的特征语句进行还原,包括:
若所述脚本文件中存在所述预设特征函数名,则根据特征函数功能的逆功能对对应特征函数的语句进行还原。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述检测所述脚本文件中是否存在预设的特征变形痕迹之前,所述方法进一步包括:
向所述云平台获取所述特征变形痕迹、所述还原规则以及所述基本特征语句;
或者,通过所述云平台更新本地缓存的所述特征变形痕迹、所述还原规则以及所述基本特征语句。
8.根据权利要求1至6中任一项所述的方法,其特征在于,在所述确定所述脚本文件为webshell攻击文件之后,所述方法进一步包括:
向所述云平台上报所述脚本文件。
9.一种基于云的webshell攻击检测装置,其特征在于,所述装置包括:
截获单元,用于截获向网站服务器发送的脚本文件;
检测单元,用于基于云平台检测所述截获单元截获的所述脚本文件中是否存在预设的特征变形痕迹,所述特征变形痕迹为对所述脚本文件中的特征语句进行形式改动所产生的痕迹,所述基于云平台是指需要先从云平台侧获取最新的特征变形痕迹、还原规则和基本特征语句;
还原单元,用于当所述检测单元检测到所述脚本文件中存在所述特征变形痕迹时,根据预设的还原规则对改动过的特征语句进行还原,所述还原规则为特征变形规则的逆规则;
所述检测单元,还用于检测所述还原单元还原后的特征语句是否与预设的基本特征语句相同,所述基本特征语句为攻击敏感语句;
确定单元,用于当所述检测单元检测到所述还原后的特征语句与所述基本特征语句相同时,确定所述脚本文件为webshell攻击文件。
10.根据权利要求9所述的装置,其特征在于,所述检测单元检测的所述特征变形痕迹为以下一个或任意多个的组合:
注释语句、变量赋值字符、预设特征字符和预设特征函数名。
11.根据权利要求10所述的装置,其特征在于,所述检测单元,包括:第一检测模块,用于当所述特征变形痕迹包括注释语句时,基于所述云平台检测所述脚本文件中是否存在所述注释语句;
所述还原单元,包括:
第一删除模块,用于当所述脚本文件中存在所述注释语句时,将所述注释语句删除。
12.根据权利要求10所述的装置,其特征在于,所述检测单元,包括:
第二检测模块,用于当所述特征变形痕迹包括变量赋值字符时,基于所述云平台检测所述脚本文件中是否存在所述变量赋值字符;
所述还原单元,包括:
第一还原模块,用于当所述脚本文件中存在所述变量赋值字符时,将被赋值的变量还原。
13.根据权利要求10所述的装置,其特征在于,所述检测单元,包括:
第三检测模块,用于当所述特征变形痕迹包括预设特征字符时,基于所述云平台检测所述脚本文件中是否存在所述预设特征字符;
所述还原单元,包括:
第二删除模块,用于当所述脚本文件中存在所述预设特征字符时,将所述预设特征字符删除。
14.根据权利要求10所述的装置,其特征在于,所述检测单元,包括:
第四检测模块,用于当所述特征变形痕迹包括预设特征函数名时,基于所述云平台检测所述脚本文件中是否存在所述预设特征函数名;
所述还原单元,包括:
第二还原模块,当所述脚本文件中存在所述预设特征函数名时,根据特征函数功能的逆功能对对应特征函数的语句进行还原。
15.根据权利要求9至14中任一项所述的装置,其特征在于,所述装置进一步包括:
获取单元,用于在所述检测单元检测所述脚本文件中是否存在预设的特征变形痕迹之前,向所述云平台获取所述特征变形痕迹、所述还原规则以及所述基本特征语句;
更新单元,用于在所述检测单元检测所述脚本文件中是否存在预设的特征变形痕迹之前,通过所述云平台更新本地缓存的所述特征变形痕迹、所述还原规则以及所述基本特征语句。
16.根据权利要求9至14中任一项所述的装置,其特征在于,所述装置进一步包括:
上报单元,用于在所述确定单元确定所述脚本文件为weshell攻击文件之后,向所述云平台上报所述脚本文件。
17.一种基于云的webshell攻击检测网关,其特征在于,所述网关包括如权利要求9至16中任一项所述的装置。
CN201510363767.5A 2015-06-26 2015-06-26 基于云的webshell攻击检测方法、装置及网关 Active CN105100065B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510363767.5A CN105100065B (zh) 2015-06-26 2015-06-26 基于云的webshell攻击检测方法、装置及网关

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510363767.5A CN105100065B (zh) 2015-06-26 2015-06-26 基于云的webshell攻击检测方法、装置及网关

Publications (2)

Publication Number Publication Date
CN105100065A CN105100065A (zh) 2015-11-25
CN105100065B true CN105100065B (zh) 2018-03-16

Family

ID=54579612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510363767.5A Active CN105100065B (zh) 2015-06-26 2015-06-26 基于云的webshell攻击检测方法、装置及网关

Country Status (1)

Country Link
CN (1) CN105100065B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108062474B (zh) * 2016-11-08 2022-01-11 阿里巴巴集团控股有限公司 文件的检测方法及装置
CN106911686B (zh) * 2017-02-20 2020-07-07 杭州迪普科技股份有限公司 WebShell检测方法及装置
CN106982233B (zh) * 2017-05-23 2023-06-27 信联安宝(北京)科技有限公司 电源分立的集成安全管理交换机
CN108156131B (zh) * 2017-10-27 2020-08-04 上海观安信息技术股份有限公司 Webshell检测方法、电子设备和计算机存储介质
CN109992967A (zh) * 2019-03-12 2019-07-09 福建拓尔通软件有限公司 一种在文件上传时实现自动检测文件安全性的方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895517A (zh) * 2009-05-19 2010-11-24 北京启明星辰信息技术股份有限公司 一种脚本语义提取方法和提取装置
KR101291782B1 (ko) * 2013-01-28 2013-07-31 인포섹(주) 웹쉘 탐지/대응 시스템
CN103559441A (zh) * 2013-10-28 2014-02-05 中国科学院信息工程研究所 一种恶意文件云环境下跨平台检测方法及***
CN103577756A (zh) * 2013-11-05 2014-02-12 北京奇虎科技有限公司 基于脚本类型判断的病毒检测方法及装置
CN104394176A (zh) * 2014-12-17 2015-03-04 中国人民解放军国防科学技术大学 一种基于强制访问控制机制的webshell防范方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101244945B1 (ko) * 2011-06-23 2013-04-05 주식회사 티벨로 메타 패턴을 이용한 웹쉘 탐지 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895517A (zh) * 2009-05-19 2010-11-24 北京启明星辰信息技术股份有限公司 一种脚本语义提取方法和提取装置
KR101291782B1 (ko) * 2013-01-28 2013-07-31 인포섹(주) 웹쉘 탐지/대응 시스템
CN103559441A (zh) * 2013-10-28 2014-02-05 中国科学院信息工程研究所 一种恶意文件云环境下跨平台检测方法及***
CN103577756A (zh) * 2013-11-05 2014-02-12 北京奇虎科技有限公司 基于脚本类型判断的病毒检测方法及装置
CN104394176A (zh) * 2014-12-17 2015-03-04 中国人民解放军国防科学技术大学 一种基于强制访问控制机制的webshell防范方法

Also Published As

Publication number Publication date
CN105100065A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
US20210382949A1 (en) Systems and methods for web content inspection
CN105100065B (zh) 基于云的webshell攻击检测方法、装置及网关
Gupta et al. PHP-sensor: a prototype method to discover workflow violation and XSS vulnerabilities in PHP web applications
Shar et al. Automated removal of cross site scripting vulnerabilities in web applications
Mesbah et al. Automated cross-browser compatibility testing
CN103279710B (zh) Internet信息***恶意代码的检测方法和***
Stock et al. From facepalm to brain bender: Exploring client-side cross-site scripting
CN103678487B (zh) 一种网页快照的生成方法和装置
CN104683328A (zh) 一种跨站漏洞扫描方法及***
CN103647678A (zh) 一种网站漏洞在线验证方法及装置
CN113342639B (zh) 小程序安全风险评估方法和电子设备
CN105430002A (zh) 漏洞检测方法及装置
CN102855418A (zh) 发现Web内网代理漏洞的方法
CN105404816B (zh) 基于内容的漏洞检测方法及装置
CN104462985A (zh) bat漏洞的检测方法以及装置
CN105488400A (zh) 一种恶意网页综合检测方法及***
CN105164691A (zh) 利用计算机网络为测试计算机软件应用优化测试数据有效载荷的选择
CN103617390A (zh) 一种恶意网页判断方法、装置和***
CN113032655A (zh) 一种暗网电子数据提取固定方法
CN105373533B (zh) 一种页面链接地址的检测方法、客户端及装置
Bezemer et al. Automated security testing of web widget interactions
Javed et al. Towards elimination of cross-site scripting on mobile versions of web applications
Marashdih et al. An enhanced static taint analysis approach to detect input validation vulnerability
AU2014233889A1 (en) Online privacy management
Pan et al. Domxssmicro: A micro benchmark for evaluating dom-based cross-site scripting detection

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20161122

Address after: 100088 Jiuxianqiao Chaoyang District Beijing Road No. 10, building 15, floor 17, layer 1701-26, 3

Applicant after: BEIJING QIANXIN TECHNOLOGY Co.,Ltd.

Address before: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 100088 Building 3 332, 102, 28 Xinjiekouwai Street, Xicheng District, Beijing

Patentee after: QAX Technology Group Inc.

Address before: 100088 Floor 15, Floor 17, Floor 1 701-26, Building No. 10, Jiuxianqiao Road, Chaoyang District, Beijing

Patentee before: BEIJING QIANXIN TECHNOLOGY Co.,Ltd.