CN104331663A - web shell的检测方法以及web服务器 - Google Patents

web shell的检测方法以及web服务器 Download PDF

Info

Publication number
CN104331663A
CN104331663A CN201410602604.3A CN201410602604A CN104331663A CN 104331663 A CN104331663 A CN 104331663A CN 201410602604 A CN201410602604 A CN 201410602604A CN 104331663 A CN104331663 A CN 104331663A
Authority
CN
China
Prior art keywords
script
web
web server
argument
syntax tree
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.)
Granted
Application number
CN201410602604.3A
Other languages
English (en)
Other versions
CN104331663B (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.)
Beijing Qizhi Business Consulting Co ltd
Beijing Qihoo Technology Co Ltd
360 Digital Security Technology Group Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410602604.3A priority Critical patent/CN104331663B/zh
Publication of CN104331663A publication Critical patent/CN104331663A/zh
Application granted granted Critical
Publication of CN104331663B publication Critical patent/CN104331663B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种web shell的检测方法以及web服务器,涉及信息安全领域,主要目的在于快速、精确地检测出web服务器中的web shell,从而能够保护web服务器的安全。本发明的主要技术方案为:构造运行web服务器脚本的web脚本虚拟机;根据测试目的的不同获取不同的web脚本运行的web脚本参数;将web脚本参数和检测的web服务器脚本在web脚本虚拟机上运行,记录web服务器脚本运行过程中的过程行为;将过程行为与预定恶意脚本规则库进行匹配;若匹配成功,则确定web服务器脚本为web shell。本发明主要应用于检测web shell的过程中。

Description

web shell的检测方法以及web服务器
技术领域
本发明涉及信息安全领域,特别是涉及一种web shell的检测方法以及web服务器。
背景技术
随着互联网技术的高速发展,互联网信息安全成为人们日益关注的焦点。web shell是web入侵的脚本攻击工具。简单的说来,web shell就是一个动态服务器页面(Active Server Page,asp)或超级文本预处理语言(Hypertext Preprocessor,php)木马后门,黑客在入侵了一个网站后,常常在将这些asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。
目前,我们常常通过静态检测的方式检测是否存在web shell。该静态检测方式是通过将web服务器端的脚本与恶意特征码进行二进制匹配,若匹配成功,则确定该脚本为web shell。该种检测方法不能快速、精确地检测出web服务器中的web shell,增加了对web服务器端web shell的误判率,从而使web服务器的安全受到威胁。
发明内容
有鉴于此,本发明实施例提供一种web shell的检测方法以及web服务器,主要目的在于快速、精确地检测出web服务器中的web shell,从而能够保护web服务器的安全。
依据本发明一个方面,提供了一种web shell检测方法,包括:
构造运行web服务器脚本的web脚本虚拟机;
根据测试目的的不同获取不同的web脚本运行的web脚本参数;
将所述web脚本参数和检测的web服务器脚本在所述web脚本虚拟机上运行,记录所述web服务器脚本运行过程中的过程行为;
将所述过程行为与预定恶意脚本规则库进行匹配,所述恶意脚本规则库中包含了已知恶意脚本的判断规则;
若匹配成功,则确定所述web服务器脚本为web shell。
根据本发明的另一个方面,提供了一种web服务器,包括:
构造单元,用于构造运行web服务器脚本的web脚本虚拟机;
获取单元,用于根据测试目的的不同获取不同的web脚本运行的web脚本参数;
操作单元,用于将所述获取单元获取的web脚本参数和检测的web服务器脚本在所述构造单元构造的web脚本虚拟机上运行,记录所述web服务器脚本运行过程中的过程行为;
匹配单元,用于将所述操作单元记录的过程行为与预定恶意脚本规则库进行匹配,所述恶意脚本规则库中包含了已知恶意脚本的判断规则;
确定单元,用于当所述匹配单元匹配成功时,确定所述web服务器脚本为web shell。
借由上述技术方案,本发明提供的web shell的检测方法以及web服务器,当对web shell进行检测的时候,先构造能运行web服务器脚本的web脚本虚拟机,web shell的检测是基于该web脚本虚拟机实现的;再将获取的web脚本参数和检测的web服务器脚本在该web脚本虚拟机上运行,并且记录web服务器脚本在运行过程中的过程行为,将记录下来的过程行为与预定恶意脚本规则库进行匹配,若能够匹配成功,那么该web服务器脚本为web shell,整个过程按照规则流程自动执行,与现有技术中通过静态检测的方式检测是否存在web shell相比快速、准确。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种web shell检测方法的流程图;
图2示出了本发明实施例提供的构建web脚本虚拟机的方法流程图;
图3示出了本发明实施例提供的根据测试目的的不同获取不同的web脚本运行的web脚本参数的流程图;
图4示出了本发明实施例提供的一种操作web脚本虚拟机的方法流程图;
图5示出了本发明实施例提供的另一种web shell检测方法的流程图;
图6示出了本发明实施例提供的一种web服务器的组成框图;
图7示出了本发明实施例提供的另一种web服务器的组成框图;
图8示出了本发明实施例提供的另一种web服务器的组成框图;
图9示出了本发明实施例提供的另一种web服务器的组成框图;
图10示出了本发明实施例提供的另一种web服务器的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供的一种web shell检测方法,如图1所示,该方法包括:
101、构造运行web服务器脚本的web脚本虚拟机。
web shell检测是在web服务器端进行的,其检测的目的是防止web服务器在运行的时候存在web shell。在设置检测方法时,一般不能以正常运行的web服务器以及web服务器脚本为测试用例,需要根据构建一个与正常运行的web服务器脚本一样的运行环境,并在此基础上进行训练测试。这样就需要构造运行web服务器脚本的web脚本虚拟机。该虚拟机的构造包括web服务器脚本运行环境的构造以及读写和解析web服务器脚本模块的构造等。
102、根据测试目的的不同获取不同的web脚本运行的web脚本参数。
web脚本参数存储在已知的web脚本参数库中,该已知的web脚本参数库记录了黑客入侵常使用的脚本参数,并根据黑客入侵的类型进行分类,其中,每个类型包含多种web脚本参数。
在根据测试目的的不同获取不同的web脚本运行的web脚本参数时,可以先根据测试的目的确定待获取参数的类型,之后再根据所述待获取参数的类型查询web脚本参数库,获取web脚本运行的web脚本参数。
在根据所述待获取参数的类型查询web脚本参数库时,可以根据测试的目的遍历并获取已知web脚本参数库中该测试目的对应的web脚本参数,在一定程度上相对于人为的输入测试参数,使得获取的测试参数更加全面和准确,从而增加了检测web shell的准确性,能够保护web服务器的安全。
103、将web脚本参数和检测的web服务器脚本在web脚本虚拟机上运行,记录web服务器脚本运行过程中的过程行为。
在对web服务器端进行检测web shell时,没有用户访问web服务器,web脚本虚拟机无法获取所需的web脚本参数,因此需要将已知web脚本参数库中的web脚本参数引入。
在将web脚本参数和检测的web服务器脚本在web脚本虚拟机上运行时,记录其运行的整个过程行为,该整个过程行为包括调用的函数、调用函数的次序,调用的参数,参数处理的过程,参数处理的中间结果,变量的处理以及进行加法、减法运算等等,具体的对运行过程中的实际操作不进行限定。
104、将过程行为与预定恶意脚本规则库进行匹配,恶意脚本规则库中包含了已知恶意脚本的判断规则。
预定恶意脚本规则库为已知的预定恶意脚本规则库,该恶意脚本规则库记录了黑客攻击web服务器时常用的规则,该恶意脚本规则库中的内容根据经验设定。将过程行为与预定恶意脚本规则库进行匹配,首先根据过程行为依次遍历该预定恶意规则库中的规则,若过程行为能匹配该预定恶意规则库中的其中一条规则,则执行105,若匹配不成功,则检测的web服务器脚本为无恶意脚本。
105、若匹配成功,则确定web服务器脚本为web shell。
本发明实施例中,当对web shell进行检测的时候,先构造能运行web服务器脚本的web脚本虚拟机,web shell的检测是基于该web脚本虚拟机实现的;再将获取的web脚本参数和检测的web服务器脚本在该web脚本虚拟机上运行,并且记录web服务器脚本在运行过程中的过程行为,将记录下来的过程行为与预定恶意脚本规则库进行匹配,若能够匹配成功,那么该web服务器脚本为web shell,整个过程按照规则流程自动执行,与现有技术中通过静态检测的方式检测是否存在web shell相比快速、准确。
基于上述方法,虚拟机的构造包括web服务器脚本运行环境的构造以及读写和解析web服务器脚本模块的构造等。在构造web脚本虚拟机时可以通过但不局限于以下的方法实现,如图2所示,构建web脚本虚拟机的方法包括:
201、构造web服务器脚本词法和语法分析器,所述词法和语法分析器用于对检测的web服务器脚本进行分析,得到语法树,语法树的根结点是运行web服务器脚本的程序入口。
由于web服务器脚本都有各自的语法,例如,变量名的写入,变量之间进行加、减、乘、除运算以及函数之间的调用等,因此在对检测的web服务器脚本进行分析时,可以通过词法和语法分析器对检测的web服务器脚本进行分析,得到语法树;也可以通过链表实现对检测的web服务器脚本的分析,具体的实现方式,本发明实施例不进行限制。
本发明实施例以通过词法和语法分析器对检测的web服务器脚本进行分析,得到语法树为例进行具体的阐述。得到的语法树的每一个结点为一条语句,按照分析出web服务器脚本的内容,可将该语法树分为一个或多个左子树以及一个或多个右子树,也可以将该语法树分为二叉树或者完全二叉树,具体的,本发明实施例对此不进行限制。
202、建立语法树的执行环境,执行环境至少包括:变量空间、内置对象以及内置函数。
在通过词法和语法分析器对检测的web服务器脚本进行分析,得到语法树之后,需要建立语法树的执行环境。该执行环境为可变更的执行环境,其包含的内容可根据用户的需求自行变更,具体的执行环境中包含的内容,本发明实施例对此不进行限制。
其中,变量空间为web服务器脚本变量初始化所需要的存储空间,关于该存储空间的大小可根据在实际操作中所需要的存储空间进行确定,具体的本发明实施例不进行限制;内置对象至少包括环境变量对象,通过环境变量对象可以得到当前运行的目录、当前运行的配置等信息;内置函数至少包括字符串搜索、加法、减法、乘法、除法等函数。其中,内置对象和内置函数不仅仅包括上述的内容,上述内容为示例性的举例,具体包含的内容,本发明实施例不进行限制。
进一步的,基于web脚本虚拟机实现对web shell的检测,具体的在执行102根据测试目的的不同获取不同的web脚本运行的web脚本参数时,本发明实施例可以采用但不局限于以下的方法实现,该方法如图3所示,包括:
301、根据测试的目的确定待获取参数的类型。
web脚本参数的类型至少包括:注入测试、信息泄露、提权等。关于web脚本参数的具体类型本发明实施例对此不进行限制。根据测试的目的确定待获取参数的类型,例如,当检测web服务器脚本是否为关于信息泄露类型的web shell时,可以先遍历web脚本参数库中关于信息泄露类型的web脚本参数获取该类型的web脚本参数之后,在进行后续的检测。
302、根据待获取参数的类型查询web脚本参数库,获取web脚本运行的web脚本参数。
进一步的,在获取web脚本运行的web脚本参数之后,将web脚本参数和检测的web服务器脚本在web脚本虚拟机上运行,正如前面所述的,基于web脚本虚拟机,并在web脚本虚拟机上运行该web服务器脚本实现对web shell的检测,同时记录web服务器脚本运行过程中的过程行为。具体的,本发明实施例提供一种操作web脚本虚拟机的方法:如图4所示,该方法包括:
401、依次从获取的web脚本参数中读取web脚本参数。
黑客进行攻击web服务器时的类型可以有多种web脚本参数,在对web服务器脚本进行检测时,我们需要依次读取根据测试的目的确定待获取参数的类型中包含的所有可用的web脚本参数,再逐一的将获取的所有可用的web脚本参数进行后续检测。
402、每次从语法树的根结点开始,逐一执行语法树中的每一条语句。
在进行检测web服务器脚本是否为web shell时,将步骤401获取的待获取参数的类型中包含的所有可用的web脚本参数分别进行检测,例如,将获取的待获取参数的类型中包含的所有可用的web脚本参数中的第一个参数输入到检测的web服务器脚本中,执行该web服务器脚本对应的语法树,从该语法树的根结点开始运行,直到遍历完语法树中所有的结点;在将获取的待获取参数的类型中包含的所有可用的web脚本参数中的第二个参数输入到检测的web服务器脚本中,执行该web服务器脚本对应的语法树,从该语法树的根结点开始运行,直到遍历完语法树中所有的结点,直到用获取的待获取参数的类型中包含的所有可用的web脚本参数遍历完语法树中所有的结点,确保获取的待获取参数的类型中包含的所有可用的web脚本参数都能被运行,从而提高了检测web shell的准确性。
其中,逐一执行语法树中的每一条语句,即逐一执行语法树中的每一个结点。在执行语法树中的每一个结点时,可以通过前序遍历、后序遍历,也可以通过中序遍历。具体的本发明实施例对此不进行限制。
403、记录语法树执行过程中的过程行为。
通过web虚拟机中调用的内置函数记录读取的web脚本参数在运行的整个过程行为,例如,在进行sql注入测试时,脚本参数为sql,在web虚拟机中运行通过词法和语法分析器对web脚本参数sql分析得到的语法树,调用web虚拟机中的内置函数,通过该内置函数传入字符串,该字符串为用户输入的脚本参数;语法树执行过程中的过程行为,即在内置函数中所调用的参数,例如,在进行测试时调用用户输入的参数abc,同时内置函数记录该调用的参数,若调用的参数被改动过,且对web服务器进行攻击,判断为web shell;若调用的字符串被改动过,但没有任何恶意行为,判断为正常脚本。
其中,读取的web脚本参数在进行运行之前,通过一个内置函数对该读取的web脚本参数进行安全处理,例如将/以及%等加入到读取的web脚本参数中;在将安全处理后的web脚本参数运行时,将该脚本参数通过web虚拟机的内置函数进行解密。
进一步的,在执行步骤104将过程行为与预定恶意脚本规则库进行匹配时,本发明实施例还提供一种web shell检测方法,如图5所示,该方法包括:
501、获取预定恶意脚本规则库中的规则。
该预定恶意脚本规则库为如前所述的预定恶意脚本规则库,关于预定恶意脚本规则库的相关描述,此处将不再对此进行赘述。
502、利用规则对过程行为进行分析。
web虚拟机中的内置函数获取调用的参数后,再去获取预定恶意规则库,根据输入的参数和输出的参数的不同,对预定恶意规则库依次进行遍历,如果匹配了预定恶意脚本规则库其中的一条规则,则执行503。
503、若得到分析结果,则确定检测的web服务器脚本为web shell。
基于上述方法实施例,本发明实施例提供一种web服务器,如图6所示,web服务器包括:
构造单元61,用于构造运行web服务器脚本的web脚本虚拟机;
获取单元62,用于根据测试目的的不同获取不同的web脚本运行的web脚本参数;web脚本参数存储在已知的web脚本参数库中,该已知的web脚本参数库记录了黑客入侵常使用的脚本参数,并根据黑客入侵的类型进行分类,其中,每个类型包含多种web脚本参数。在根据测试目的的不同获取不同的web脚本运行的web脚本参数时,可以先根据测试的目的确定待获取参数的类型,之后再根据所述待获取参数的类型查询web脚本参数库,获取web脚本运行的web脚本参数。在根据所述待获取参数的类型查询web脚本参数库时,可以根据测试的目的遍历并获取已知web脚本参数库中该测试目的对应的web脚本参数,在一定程度上相对于认为的输入测试参数,使得获取的测试参数更加全面和准确,从而增加了检测web shell的准确性,能够保护web服务器的安全。
操作单元63,用于将获取单元62获取的web脚本参数和检测的web服务器脚本在构造单元61构造的web脚本虚拟机上运行,记录web服务器脚本运行过程中的过程行为。其中,在将web脚本参数和检测的web服务器脚本在web脚本虚拟机上运行时,记录其运行的整个过程行为,该整个过程行为包括调用的函数、调用函数的次序,调用的参数,参数处理的过程,参数处理的中间结果,变量的处理以及进行加法、减法运算等等,具体的对运行过程中的实际操作不进行限定。
匹配单元64,用于将操作单元63记录的过程行为与预定恶意脚本规则库进行匹配,恶意脚本规则库中包含了已知恶意脚本的判断规则。预定恶意脚本规则库为已知的预定恶意脚本规则库,该恶意脚本规则库记录了黑客攻击web服务器时常用的规则,该恶意脚本规则库中的内容根据经验设定。
确定单元65,用于当匹配单元64匹配成功时,确定web服务器脚本为web shell。
进一步的,如图7所示,构造单元61包括:
构造模块611,用于构造web服务器脚本词法和语法分析器,所述词法和语法分析器用于对检测的web服务器脚本进行分析,得到语法树,语法树的根结点是运行web服务器脚本的程序执行入口;其中,由于web服务器脚本都有各自的语法,例如,变量名的写入,变量之间进行加、减、乘、除运算以及函数之间的调用等,因此在对检测的web服务器脚本进行分析时,可以通过词法和语法分析器对检测的web服务器脚本进行分析,得到语法树;也可以通过链表实现对检测的web服务器脚本的分析,具体的实现方式,本发明实施例不进行限制。
建立模块612,用于建立构造模块611得到的语法树的执行环境,执行环境至少包括:变量空间、内置对象以及内置函数。其中,变量空间为web服务器脚本变量初始化所需要的存储空间,关于该存储空间的大小可根据在实际操作中所需要的存储空间进行确定,具体的本发明实施例不进行限制;内置对象至少包括环境变量对象,通过环境变量对象可以得到当前运行的目录、当前运行的配置等信息;内置函数至少包括字符串搜索、加法、减法、乘法、除法等函数。其中,内置对象和内置函数不仅仅包括上述的内容,上述内容为示例性的举例,具体包含的内容,本发明实施例不进行限制。
进一步的,如图8所示,获取单元62包括:
确定模块621,用于根据测试的目的确定待获取参数的类型;
获取模块622,用于根据确定模块621确定的待获取参数的类型查询web脚本参数库,获取web脚本运行的web脚本参数,web脚本参数库存储有根据经验积累的黑客经常使用的web脚本参数,web脚本参数根据黑客入侵的类型进行分类。
进一步的,如图9所示,操作单元63包括:
读取模块631,用于依次从获取的web脚本参数中读取web脚本参数;黑客进行攻击web服务器时的类型可以有多种web脚本参数,在对web服务器脚本进行检测时,我们需要依次读取根据测试的目的确定待获取参数的类型中包含的所有可用的web脚本参数,再逐一的将获取的所有可用的web脚本参数进行后续检测。
执行模块632,用于每次从语法树的根结点开始,逐一执行语法树中的每一条语句;在进行检测web服务器脚本是否为web shell时,将读取模块631获取的待获取参数的类型中包含的所有可用的web脚本参数分别进行检测,例如,将获取的待获取参数的类型中包含的所有可用的web脚本参数中的第一个参数输入到检测的web服务器脚本中,执行该web服务器脚本对应的语法树,从该语法树的根结点开始运行,直到遍历完语法树中所有的结点;在将获取的待获取参数的类型中包含的所有可用的web脚本参数中的第二个参数输入到检测的web服务器脚本中,执行该web服务器脚本对应的语法树,从该语法树的根结点开始运行,直到遍历完语法树中所有的结点,直到用获取的待获取参数的类型中包含的所有可用的web脚本参数遍历完语法树中所有的结点,确保获取的待获取参数的类型中包含的所有可用的web脚本参数都能被运行,从而提高了检测web shell的准确性。
记录模块633,用于记录语法树在执行模块632执行语法树中的每一条语句过程中的过程行为。
进一步的,如图10所示,匹配单元64包括:
获取模块641,用于获取预定恶意脚本规则库中的规则;
分析模块642,用于利用获取模块641获取的规则对过程行为进行分析;
确定模块643,用于当分析模块642得到分析结果时,确定检测的web服务器脚本为web shell。
本发明提供的一种web shell的检测方法以及web服务器,当对web shell进行检测的时候,先构造能运行web服务器脚本的web脚本虚拟机,webshell的检测是基于该web脚本虚拟机实现的;再将获取的web脚本参数和检测的web服务器脚本在该web脚本虚拟机上运行,并且记录web服务器脚本在运行过程中的过程行为,将记录下来的过程行为与预定恶意脚本规则库进行匹配,若能够匹配成功,那么该web服务器脚本为web shell,整个过程按照规则流程自动执行,与现有技术中通过静态检测的方式检测是否存在web shell相比快速、准确。
此外,在根据所述待获取参数的类型查询web脚本参数库时,可以根据测试的目的遍历并获取已知web脚本参数库中该测试目的对应的web脚本参数,在一定程度上相对于人为的输入测试参数,使得获取的测试参数更加全面和准确,从而增加了检测web shell的准确性,能够保护web服务器的安全。
进一步的,每次从语法树的根结点开始,逐一执行语法树中的每一条语句,直到用获取的待获取参数的类型中包含的所有可用的web脚本参数遍历完语法树中所有的结点,确保获取的待获取参数的类型中包含的所有可用的web脚本参数都能被运行,从而提高了检测web shell的准确性。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的web shell的检测方法以及web服务器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种web shell检测方法,其特征在于,包括:
构造运行web服务器脚本的web脚本虚拟机;
根据测试目的的不同获取不同的web脚本运行的web脚本参数;
将所述web脚本参数和检测的web服务器脚本在所述web脚本虚拟机上运行,记录所述web服务器脚本运行过程中的过程行为;
将所述过程行为与预定恶意脚本规则库进行匹配,所述恶意脚本规则库中包含了已知恶意脚本的判断规则;
若匹配成功,则确定所述web服务器脚本为web shell。
2.根据权利要求1所述的方法,其特征在于,构造运行web服务器脚本的web脚本虚拟机包括:
构造web服务器脚本词法和语法分析器,所述词法和语法分析器用于对检测的web服务器脚本进行分析,得到语法树,所述语法树的根结点是运行web服务器脚本的程序入口;
建立所述语法树的执行环境,所述执行环境至少包括:变量空间、内置对象以及内置函数。
3.根据权利要求2所述的方法,其特征在于,根据测试目的的不同获取不同的web脚本运行的web脚本参数包括:
根据测试的目的确定待获取参数的类型;
根据所述待获取参数的类型查询web脚本参数库,获取web脚本运行的web脚本参数,所述web脚本参数库存储有根据经验积累的黑客经常使用的web脚本参数,所述web脚本参数根据黑客入侵的类型进行分类。
4.根据权利要求3所述的方法,其特征在于,将所述web脚本参数和检测的web服务器脚本在所述web脚本虚拟机上运行,记录所述web服务器脚本运行过程中的过程行为包括:
依次从获取的web脚本参数中读取web脚本参数;
每次从语法树的根结点开始,逐一执行所述语法树中的每一条语句;
记录所述语法树执行过程中的过程行为。
5.根据权利要求1-4中任一项所述的方法,其特征在于,将所述过程行为与预设恶意脚本规则库进行匹配包括:
获取预定恶意脚本规则库中的规则;
利用所述规则对所述过程行为进行分析;
若得到分析结果,则确定检测的web服务器脚本为web shell。
6.一种web服务器,其特征在于,包括:
构造单元,用于构造运行web服务器脚本的web脚本虚拟机;
获取单元,用于根据测试目的的不同获取不同的web脚本运行的web脚本参数;
操作单元,用于将所述获取单元获取的web脚本参数和检测的web服务器脚本在所述构造单元构造的web脚本虚拟机上运行,记录所述web服务器脚本运行过程中的过程行为;
匹配单元,用于将所述操作单元记录的过程行为与预定恶意脚本规则库进行匹配,所述恶意脚本规则库中包含了已知恶意脚本的判断规则;
确定单元,用于当所述匹配单元匹配成功时,确定所述web服务器脚本为web shell。
7.根据权利要求6所述的web服务器,其特征在于,所述构造单元包括:
构造模块,用于构造web服务器脚本词法和语法分析器,所述词法和语法分析器用于对检测的web服务器脚本进行分析,得到web服务器脚本语法树,所述语法树的根结点是运行web服务器脚本的程序执行入口;
建立模块,用于建立所述构造模块得到的语法树的执行环境,所述执行环境至少包括:变量空间、内置对象以及内置函数。
8.根据权利要求7所述的web服务器,其特征在于,所述获取单元包括:
确定模块,用于根据测试的目的确定待获取参数的类型;
获取模块,用于根据所述确定模块确定的待获取参数的类型查询web脚本参数库,获取web脚本运行的web脚本参数,所述web脚本参数库存储有根据经验积累的黑客经常使用的web脚本参数,所述web脚本参数根据黑客入侵的类型进行分类。
9.根据权利要求8所述的web服务器,其特征在于,所述操作单元包括:
读取模块,用于依次从获取的web脚本参数中读取web脚本参数;
执行模块,用于每次从语法树的根结点开始,逐一执行所述语法树中的每一条语句;
记录模块,用于记录所述语法树在执行模块执行所述语法树中的每一条语句过程中的过程行为。
10.根据权利要求6-9中任一项所述的web服务器,其特征在于,所述匹配单元包括:
获取模块,用于获取预定恶意脚本规则库中的规则;
分析模块,用于利用所述获取模块获取的规则对所述过程行为进行分析;
确定模块,用于当分析模块得到分析结果时,确定检测的web服务器脚本为web shell。
CN201410602604.3A 2014-10-31 2014-10-31 web shell的检测方法以及web服务器 Active CN104331663B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410602604.3A CN104331663B (zh) 2014-10-31 2014-10-31 web shell的检测方法以及web服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410602604.3A CN104331663B (zh) 2014-10-31 2014-10-31 web shell的检测方法以及web服务器

Publications (2)

Publication Number Publication Date
CN104331663A true CN104331663A (zh) 2015-02-04
CN104331663B CN104331663B (zh) 2017-09-01

Family

ID=52406385

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410602604.3A Active CN104331663B (zh) 2014-10-31 2014-10-31 web shell的检测方法以及web服务器

Country Status (1)

Country Link
CN (1) CN104331663B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105069355A (zh) * 2015-08-26 2015-11-18 厦门市美亚柏科信息股份有限公司 webshell变形的静态检测方法和装置
CN105488398A (zh) * 2015-12-04 2016-04-13 北京航空航天大学 Web应用程序行为提取方法和恶意行为检测方法
WO2016127858A1 (zh) * 2015-02-10 2016-08-18 阿里巴巴集团控股有限公司 网页入侵脚本特征的识别方法及设备
CN106650437A (zh) * 2016-12-29 2017-05-10 广州华多网络科技有限公司 webshell检测方法和装置
CN106850617A (zh) * 2017-01-25 2017-06-13 余洋 webshell检测方法及装置
CN109040071A (zh) * 2018-08-06 2018-12-18 杭州安恒信息技术股份有限公司 一种web后门攻击事件的确认方法
CN109145598A (zh) * 2017-06-19 2019-01-04 腾讯科技(深圳)有限公司 脚本文件的病毒检测方法、装置、终端及存储介质
CN112182561A (zh) * 2020-09-24 2021-01-05 百度在线网络技术(北京)有限公司 一种后门的检测方法、装置、电子设备和介质
CN112688966A (zh) * 2021-03-11 2021-04-20 北京邮电大学 webshell检测方法、装置、介质和设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090031393A (ko) * 2009-03-05 2009-03-25 김동규 패턴 탐지 기반의 웹쉘 관제 시스템 및 그 방법
CN101673326A (zh) * 2008-09-11 2010-03-17 北京理工大学 基于程序执行特征的网页木马检测方法
CN101692267A (zh) * 2009-09-15 2010-04-07 北京大学 一种大规模恶意网页检测方法及系统
CN102043919A (zh) * 2010-12-27 2011-05-04 北京安天电子设备有限公司 基于脚本虚拟机的漏洞通用检测方法和系统
CN102609649A (zh) * 2012-02-06 2012-07-25 北京百度网讯科技有限公司 一种自动采集恶意软件的方法和装置
CN102955913A (zh) * 2011-08-25 2013-03-06 腾讯科技(深圳)有限公司 一种网页挂马检测方法及系统
CN103559447A (zh) * 2013-11-15 2014-02-05 北京奇虎科技有限公司 一种基于病毒样本特征的检测方法、检测装置及检测系统
CN103905422A (zh) * 2013-12-17 2014-07-02 哈尔滨安天科技股份有限公司 一种本地模拟请求辅助查找webshell的方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673326A (zh) * 2008-09-11 2010-03-17 北京理工大学 基于程序执行特征的网页木马检测方法
KR20090031393A (ko) * 2009-03-05 2009-03-25 김동규 패턴 탐지 기반의 웹쉘 관제 시스템 및 그 방법
CN101692267A (zh) * 2009-09-15 2010-04-07 北京大学 一种大规模恶意网页检测方法及系统
CN102043919A (zh) * 2010-12-27 2011-05-04 北京安天电子设备有限公司 基于脚本虚拟机的漏洞通用检测方法和系统
CN102955913A (zh) * 2011-08-25 2013-03-06 腾讯科技(深圳)有限公司 一种网页挂马检测方法及系统
CN102609649A (zh) * 2012-02-06 2012-07-25 北京百度网讯科技有限公司 一种自动采集恶意软件的方法和装置
CN103559447A (zh) * 2013-11-15 2014-02-05 北京奇虎科技有限公司 一种基于病毒样本特征的检测方法、检测装置及检测系统
CN103905422A (zh) * 2013-12-17 2014-07-02 哈尔滨安天科技股份有限公司 一种本地模拟请求辅助查找webshell的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李剑等: "脚本引擎的简单实现", 《电脑编程技巧与维护 》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016127858A1 (zh) * 2015-02-10 2016-08-18 阿里巴巴集团控股有限公司 网页入侵脚本特征的识别方法及设备
CN105069355A (zh) * 2015-08-26 2015-11-18 厦门市美亚柏科信息股份有限公司 webshell变形的静态检测方法和装置
CN105069355B (zh) * 2015-08-26 2018-09-11 厦门市美亚柏科信息股份有限公司 webshell变形的静态检测方法和装置
CN105488398B (zh) * 2015-12-04 2018-06-15 北京航空航天大学 Web应用程序行为提取方法和恶意行为检测方法
CN105488398A (zh) * 2015-12-04 2016-04-13 北京航空航天大学 Web应用程序行为提取方法和恶意行为检测方法
CN106650437A (zh) * 2016-12-29 2017-05-10 广州华多网络科技有限公司 webshell检测方法和装置
CN106850617B (zh) * 2017-01-25 2018-05-15 余洋 webshell检测方法及装置
CN106850617A (zh) * 2017-01-25 2017-06-13 余洋 webshell检测方法及装置
CN109145598A (zh) * 2017-06-19 2019-01-04 腾讯科技(深圳)有限公司 脚本文件的病毒检测方法、装置、终端及存储介质
CN109145598B (zh) * 2017-06-19 2021-01-22 腾讯科技(深圳)有限公司 脚本文件的病毒检测方法、装置、终端及存储介质
CN109040071A (zh) * 2018-08-06 2018-12-18 杭州安恒信息技术股份有限公司 一种web后门攻击事件的确认方法
CN109040071B (zh) * 2018-08-06 2021-02-09 杭州安恒信息技术股份有限公司 一种web后门攻击事件的确认方法
CN112182561A (zh) * 2020-09-24 2021-01-05 百度在线网络技术(北京)有限公司 一种后门的检测方法、装置、电子设备和介质
CN112182561B (zh) * 2020-09-24 2024-04-30 百度在线网络技术(北京)有限公司 一种后门的检测方法、装置、电子设备和介质
CN112688966A (zh) * 2021-03-11 2021-04-20 北京邮电大学 webshell检测方法、装置、介质和设备

Also Published As

Publication number Publication date
CN104331663B (zh) 2017-09-01

Similar Documents

Publication Publication Date Title
CN104331663A (zh) web shell的检测方法以及web服务器
Kamtuo et al. Machine Learning for SQL injection prevention on server-side scripting
EP3471008B1 (en) De-obfuscating scripted language for network intrusion detection using a regular expression signature
CN107659570A (zh) 基于机器学习与动静态分析的Webshell检测方法及系统
CN105491053A (zh) 一种Web恶意代码检测方法及系统
CN104462985A (zh) bat漏洞的检测方法以及装置
CN102185930A (zh) 一种sql注入漏洞检测方法
CN103077351B (zh) 虚拟机系统的反检测系统
Huang et al. UChecker: Automatically detecting php-based unrestricted file upload vulnerabilities
CN104850493A (zh) 一种检测源代码漏洞的方法和装置
Akrout et al. An automated black box approach for web vulnerability identification and attack scenario generation
CN110765459A (zh) 一种恶意脚本检测方法、装置和存储介质
Moog et al. Statically detecting javascript obfuscation and minification techniques in the wild
CN103559447A (zh) 一种基于病毒样本特征的检测方法、检测装置及检测系统
CN113961930A (zh) Sql注入漏洞检测方法、装置及电子设备
CN112688966A (zh) webshell检测方法、装置、介质和设备
CN104134019A (zh) 检测脚本病毒的方法和装置
Yan et al. Detection method of the second-order SQL injection in Web applications
US20180173685A1 (en) Security-Focused Web Application Crawling
Khodayari et al. It’s (dom) clobbering time: Attack techniques, prevalence, and defenses
Klein et al. Hand sanitizers in the wild: A large-scale study of custom javascript sanitizer functions
Jaeger et al. Normalizing security events with a hierarchical knowledge base
CN106650439A (zh) 检测可疑应用程序的方法及装置
Blanc et al. Characterizing obfuscated JavaScript using abstract syntax trees: Experimenting with malicious scripts
Micheelsen et al. A static analysis tool for detecting security vulnerabilities in python web applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee after: Beijing Qizhi Business Consulting Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220329

Address after: 100016 1773, 15 / F, 17 / F, building 3, No.10, Jiuxianqiao Road, Chaoyang District, Beijing

Patentee after: Sanliu0 Digital Security Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Beijing Qizhi Business Consulting Co.,Ltd.