CN107689940B - WebShell检测方法及装置 - Google Patents
WebShell检测方法及装置 Download PDFInfo
- Publication number
- CN107689940B CN107689940B CN201610635353.8A CN201610635353A CN107689940B CN 107689940 B CN107689940 B CN 107689940B CN 201610635353 A CN201610635353 A CN 201610635353A CN 107689940 B CN107689940 B CN 107689940B
- Authority
- CN
- China
- Prior art keywords
- data
- webshell
- behavior
- behavior characteristics
- suspicious
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种WebShell检测方法,包括:检测服务器与客户端之间的流量数据,以判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据,其中,若所述流量数据中存在具有WebShell特征的可疑数据,则确定所述流量数据中存在WebShell;若所述流量数据中存在具有WebShell行为特征的可疑数据,则分析该可疑数据所对应的WebShell行为特征,并根据分析结果,判断所述流量数据中是否存在WebShell。本发明还公开了一种WebShell检测装置。本发明基于流量检测与操作行为分析,从而实现对WebShell的检测以防止服务器被入侵,保证服务器上数据安全。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及WebShell检测方法及装置。
背景技术
WebShell是网站被成功入侵后被安装的后门程序,从而可以方便入侵者控制被入侵的主机(或服务器)以盗取敏感数据或凭据或者作为攻击内网主机的跳板。WebShell常常被伪装成正常的网站程序,如果不能发现已经安装的WebShell,那么即使修复了网站的漏洞,入侵者仍然可以利用隐藏在网站程序中的WebShell来继续控制被入侵的主机。因此,检测发现已经安装的WebShell具有非常重要的意义。
目前现有技术主要通过如下几种方式来检测或防御WebShell:
1、直接对WebShell文件的源代码进行检测,但由于WebShell大多是用动态语言编写,非常容易进行变形或混淆,同时还有一些web服务器的接口,如CGI或Java Servlet可以运行编译后二进制程序,因而难以进行检测。
2、通过修改web服务器以及hook WebShell使用的关键API函数进行检测,但由于WebShell使用的多数API也会在正常的网站程序中使用,只收集到API调用的数据可能不足以分辨WebShell。
3、根据web服务器的访问日志进行检测
从web服务器记录的访问日志中发现WebShell,但由于访问日志一般只记录了URL、IP地址等少量信息,因而也不足以用来分辨WebShell,因此该方法一般是和其它方法结合使用。
发明内容
本发明的主要目的在于提供一种WebShell检测方法及装置,旨在通过新的WebShell检测方式以解决现有WebShell检测技术中的不足的技术问题。
为实现上述目的,本发明提供一种WebShell检测方法,所述WebShell检测方法包括:
检测服务器与客户端之间的流量数据,以判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据,其中,若所述流量数据中存在具有WebShell特征的可疑数据,则确定所述流量数据中存在WebShell;
若所述流量数据中存在具有WebShell行为特征的可疑数据,则分析该可疑数据所对应的WebShell行为特征,并根据分析结果,判断所述流量数据中是否存在WebShell。
优选地,所述检测服务器与客户端之间的流量数据,以判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据包括:
读取所述服务器与所述客户端之间的数据包并进行数据流重组,得到所述数据包重组后所对应的流量数据;
对所述流量数据进行解析,得到对应的解析数据,所述解析数据至少包括URL数据、表单数据、所述服务器反馈给所述客户端的数据中的一种或多种;
将所述解析数据与预置WebShell特征库中数据进行比对,并根据比对结果判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据。
优选地,所述将所述解析数据与预置WebShell特征库中数据进行比对,并根据比对结果判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据还包括:
根据所述解析数据,判断所述流量数据是否为所述客户端向所述服务器所发送的访问请求;
若为所述访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对,所述WebShell特征库中包括若干WebShell特征与WebShell行为特征;
若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
优选地,所述将所述解析数据与预置WebShell特征库中数据进行比对,并根据比对结果判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据包括:
根据所述解析数据,判断所述流量数据是否为所述服务器向所述客户端所返回的反馈响应;
若为所述反馈响应,则判断是否已缓存所述反馈响应所对应的访问请求;
若未缓存所述反馈响应所对应的访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对;
若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据;或
若已缓存所述反馈响应所对应的访问请求,则读取缓存的所述反馈响应所对应的访问请求,并将所述解析数据与该访问请求所具有的WebShell行为特征进行比对;
若所述解析数据中存在符合该访问请求所具有的WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
优选地,所述若所述流量数据中存在具有WebShell行为特征的可疑数据,则分析该可疑数据所对应的WebShell行为特征,并根据分析结果,判断所述流量数据中是否存在WebShell包括:
若所述流量数据中存在具有WebShell行为特征的可疑数据,则将该流量数据中的WebShell行为特征进行分类记录;
根据对WebShell行为特征所进行的一次或多次的所述分类记录,判断记录的WebShell行为特征所对应的操作行为是否为异常行为,若记录的WebShell行为特征所对应的操作行为是异常行为,则确定所述流量数据中存在WebShell;
其中,所述WebShell行为特征至少包括列出目录及文件、上传文件、下载敏感数据、查询数据库、执行命令、执行代码中的任一种,若所述分类记录中存在两种或两种以上的所述WebShell行为特征,则确定记录的WebShell行为特征所对应的操作行为是异常行为。
进一步地,为实现上述目的,本发明还提供一种WebShell检测装置,所述WebShell检测装置包括:
检测模块,用于检测服务器与客户端之间的流量数据,以判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据,其中,若所述流量数据中存在具有WebShell特征的可疑数据,则确定所述流量数据中存在WebShell;
分析模块,用于若所述流量数据中存在具有WebShell行为特征的可疑数据,则分析该可疑数据所对应的WebShell行为特征,并根据分析结果,判断具有所述WebShell行为特征的操作是否为访问WebShell操作。
优选地,所述检测模块包括:
读取子模块,用于读取所述服务器与所述客户端之间的数据包并进行数据流重组,得到所述数据包重组后所对应的流量数据;
解析子模块,用于对所述流量数据进行解析,得到对应的解析数据,所述解析数据至少包括URL数据、表单数据、所述服务器反馈给所述客户端的数据中的一种或多种;
比对子模块,用于将所述解析数据与预置WebShell特征库中数据进行比对,并根据比对结果判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据。
优选地,所述比对子模块包括:
判断单元,用于根据所述解析数据,判断所述流量数据是否为所述客户端向所述服务器所发送的访问请求;
比对单元,用于若所述流量数据为所述访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对,所述WebShell特征库中包括若干WebShell特征与WebShell行为特征;
确定单元,用于若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
优选地,所述判断单元还用于:根据所述解析数据,判断所述流量数据是否为所述服务器向所述客户端所返回的反馈响应;若所述流量数据为所述反馈响应,则判断是否已缓存所述反馈响应所对应的访问请求;
所述比对单元还用于:若未缓存所述反馈响应所对应的访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对;
所述确定单元还用于:若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据;
所述比对单元还用于:若已缓存所述反馈响应所对应的访问请求,则读取缓存的所述反馈响应所对应的访问请求,并将所述解析数据与该访问请求所具有的WebShell行为特征进行比对;
所述确定单元还用于:若所述解析数据中存在符合该访问请求所具有的WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
优选地,所述分析模块包括:
分类单元,用于若所述流量数据中存在具有WebShell行为特征的可疑数据,则将该流量数据中的WebShell行为特征进行分类记录;
分析单元,用于根据对WebShell行为特征所进行的一次或多次的所述分类记录,判断记录的WebShell行为特征所对应的操作行为是否为异常行为,若记录的WebShell行为特征所对应的操作行为是异常行为,则确定所述流量数据中存在WebShell,其中,所述WebShell行为特征至少包括列出目录及文件、上传文件、下载敏感数据、查询数据库、执行命令、执行代码中的任一种,若所述分类记录中存在两种或两种以上的所述WebShell行为特征,则确定记录的WebShell行为特征所对应的操作行为是异常行为。
本发明针对现有WebShell检测技术的不足,通过检测服务器与客户端之间的流量数据进行WebShell初步检测,并结合WebShell的操作行为特征进行深入分析,从而判断确定服务器上是否存在WebShell程序或者是否存在外部客户端的WebShell操作,进而避免现有WebShell检测检测方法容易被绕过的缺点,同时也不影响服务器的工作稳定性,此外也大大提高了WebShell检测的准确率。
附图说明
图1为本发明WebShell检测方法第一实施例的流程示意图;
图2为图1中步骤S10的细化流程示意图;
图3为图2中步骤S103第一实施例的细化流程示意图;
图4为图2中步骤S103第二实施例的细化流程示意图;
图5为本发明WebShell检测方法第二实施例的流程示意图;
图6为本发明WebShell检测装置一实施例的功能模块示意图;
图7为图6中检测模块的细化功能模块示意图;
图8为图7中比对子模块的细化功能模块示意图;
图9为图6中分析模块的细化功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明WebShell检测方法第一实施例的流程示意图。本实施例中,所述WebShell检测方法包括:
步骤S10,检测服务器与客户端之间的流量数据,以判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据,其中,若所述流量数据中存在具有WebShell特征的可疑数据,则确定所述流量数据中存在WebShell;
WebShell通常具有明显的交互性。例如,当使用WebShell进行文件管理时,一般的过程是:入侵者通过WebShell列出服务器上的目录和文件,然后根据这些信息进一步地决定下载其中的某些文件或者向其中某个目录上传恶意代码等,而这一过程则会产生多个web请求和响应。因此,只要能够识别这些请求或响应中通过网络传递的命令或数据,就可以检测出WebShell的访问过程。因此,本实施例中,具体通过检测服务器与客户端之间的web流量数据来识别WebShell,通过对web流量数据进行深入分析并结合WebShell行为特征来识别流量数据中是否存在WebShell。
需要说明的是,本实施例中所述的WebShell特征具体是指WebShell程序文件的特征,WebShell行为特征具体是指WebShell程序运行过程中的行为特征。
本实施例中,如果检测的流量数据中存在具有WebShell特征的可疑数据,则可确定该流量数据中存在WebShell,具体识别方式及过程不限,具体根据实际需要进行设置。
上述对于具有WebShell特征的可疑数据的判断方式只对于一般的WebShell访问有用,而对于某些特殊的WebShell访问则无法更准确地进行识别,但通过WebShell行为特征分析则至少可以从操作行为意图及目的方面来间接分析及判断可能存在WebShell行为特征的可疑数据,也即可以间接地根据流量数据中操作命令所对应的操作行为来确定是否存在WebShell行为特征,例如上传文件、执行指定代码等。
步骤S20,若所述流量数据中存在具有WebShell行为特征的可疑数据,则分析该可疑数据所对应的WebShell行为特征,并根据分析结果,判断所述流量数据中是否存在WebShell。
本实施例中,若流量数据中存在具有WebShell行为特征的可疑数据,同时为避免误判,因而还需要进一步对该具有WebShell行为特征的可疑数据进行分析,并根据分析结果来确定具有WebShell行为特征的操作是否为访问WebShell操作,也即判断检测的流量数据中是否存在WebShell。本实施例对于分析可疑数据的方式不限,具体根据实际需要进行设置。
本实施例针对现有WebShell检测技术的不足,通过检测服务器与客户端之间的流量数据进行WebShell初步检测,并结合WebShell的操作行为特征进行深入分析,从而判断确定服务器上是否存在WebShell程序或者是否存在外部客户端的访问WebShell操作,进而避免现有WebShell检测检测方法容易被绕过的缺点,同时也不影响服务器的工作稳定性,此外也大大提高了WebShell检测的准确率。
参照图2,图2为图1中步骤S10的细化流程示意图。基于上述方法第一实施例,本实施例中,上述步骤S10包括:
步骤S101,读取所述服务器与客户端之间的数据包并进行数据流重组,得到所述数据包重组后所对应的流量数据;
步骤S102,对所述流量数据进行解析,得到对应的解析数据,所述解析数据至少包括URL数据、表单数据、所述服务器反馈给所述客户端的数据中的一种或多种;
步骤S103,将所述解析数据与预置WebShell特征库中数据进行比对,并根据比对结果判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据。
基于服务器与客户端之间的通信协议,比如HTTP协议,服务器与客户端之间通常传输都是数据包,而在服务器或客户端进行数据流重组才能得到对应的流量数据,比如HTTP数据流。
同时,为进一步获得HTTP数据流中的特征数据,因此,还需要对流量数据进行解析,比如进行TLS/SSL解密、去除协议编码等,进而获得比如原始的URL数据、表单数据、服务器反馈给客户端的数据等。
本实施例中,预置WebShell特征库中收录了WebShell相关的URL、Cookie、表单数据等特征数据或特征行为数据,从而将解析得到的解析数据与特征库进行比对,并根据比对结果,判断检测的流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据。
本实施例中,可选的比对结果包括如下三种情况:
第一种情况:流量数据符合某种已知的WebShell的特征,则认为已经检测到了WebShell;
第二种情况:流量数据中含有WebShell常见行为(如列出目录和文件、上传文件、下载敏感数据、执行命令、执行代码等)的特征,则需要这段流量数据作进一步的行为检测,并根据行为检测结果再判断具有WebShell行为特征的操作是否为访问WebShell操作;
第三种情况:流量数据和任何已知的WebShell特征或WebShell行为特征均不匹配,则认为该流量数据中不存在WebShell或不存在访问WebShell的操作。
参照图3,图3为图2中步骤S103第一实施例的细化流程示意图。基于上述步骤S10的细化实施例,本实施例中,上述步骤S103进一步包括:
步骤S1031,根据所述解析数据,判断所述流量数据是否为所述客户端向所述服务器所发送的访问请求;
步骤S1032,若为所述访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对,所述WebShell特征库中包括若干WebShell特征与WebShell行为特征;
步骤S1033,若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
本实施例中,检测的流量数据可能是客户端向服务器所发送的访问请求,或者也可能是服务器向客户端发送的反馈响应,具体可基于HTTP协议,通过解析数据中的相关属性进行确定。
本实施例中,若检测的流量数据对应为客户端向服务器所发送的访问请求,则可直接通过将解析数据与WebShell特征库中数据进行比对来确定解析数据中是否存在符合所述WebShell特征的数据。
本实施例中,若解析数据中存在符合WebShell特征的数据,则确定该解析数据所对应流量数据中存在具有WebShell特征的可疑数据;而若该解析数据中存在符合WebShell行为特征的数据,则确定该解析数据所对应流量数据中存在具有WebShell行为特征的可疑数据。此外,为便于对访问请求所对应的反馈响应进行WebShell检测与判断,因此,本实施例中,可选的,当确定访问请求具有WebShell行为特征时,可缓存该访问请求以便综合反馈响应的特征进行综合判断。
参照图4,图4为图2中步骤S103第二实施例的细化流程示意图。基于上述步骤S103第一实施例,本实施例中,上述步骤S103进一步包括:
步骤S1034,根据所述解析数据,判断所述流量数据是否为所述服务器向所述客户端所返回的反馈响应;
步骤S1035,若为所述反馈响应,则判断是否已缓存所述反馈响应所对应的访问请求;
步骤S1036,若未缓存所述反馈响应所对应的访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对;
步骤S1037,若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据;
本实施例中,若检测的流量数据对应为服务器向客户端所发送的反馈响应,则先判断该反馈响应所对应的访问请求是否已经被缓存,也即确定该反馈响应所对应的访问请求是否具有WebShell行为特征,若是,则需要根据访问请求所对应的WebShell行为特征,综合分析确定该反馈响应是否存在WebShell特征或WebShell行为特征。
若未缓存该反馈响应所对应的访问请求,则将解析数据与WebShell特征库中数据进行比对来确定解析数据中是否存在符合WebShell特征的数据。本实施例中,若解析数据中存在符合WebShell特征的数据,则确定该解析数据所对应流量数据中存在具有WebShell特征的可疑数据;而若该解析数据中存在符合WebShell行为特征的数据,则确定该解析数据所对应流量数据中存在具有WebShell行为特征的可疑数据。
步骤S1038,若已缓存所述反馈响应所对应的访问请求,则读取缓存的所述反馈响应所对应的访问请求,并将所述解析数据与该访问请求所具有的WebShell行为特征进行比对;
步骤S1039,若所述解析数据中存在符合该访问请求所具有的WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
此外,本实施例中,若已缓存该反馈响应所对应的访问请求,则读取该反馈响应所对应的访问请求,进而将该反馈响应所对应的解析数据与该访问请求所具有的WebShell行为特征进行比对,若该反馈响应所对应的解析数据中存在符合该访问请求所具有的WebShell行为特征的数据,则确定检测的流量数据中存在具有WebShell行为特征的可疑数据。
本实施例中,通常WebShell行为是由客户端所发起的,因此,在对反馈响应进行WebShell检测时,需要根据反馈响应所对应的访问请求所具有的WebShell行为特征,来确定该反馈响应是否为WebShell,进而提升对于WebShell检测的准确性,同时,对访问请求与反馈响应都进行WebShell检测,进而提高检测的全面性。
参照图5,图5为本发明WebShell检测方法第二实施例的流程示意图。基于上述方法第一实施例,本实施例中,上述步骤S20包括:
步骤S201,若所述流量数据中存在具有WebShell行为特征的可疑数据,则将该流量数据中的WebShell行为特征进行分类记录;
步骤S202,根据对WebShell行为特征所进行的一次或多次的所述分类记录,判断记录的WebShell行为特征所对应的操作行为是否为异常行为,若记录的WebShell行为特征所对应的操作行为是异常行为,则确定所述流量数据中存在WebShell;
其中,所述WebShell行为特征至少包括列出目录及文件、上传文件、下载敏感数据、查询数据库、执行命令、执行代码中的任一种,若所述分类记录中存在两种或两种以上的所述WebShell行为特征,则确定记录的WebShell行为特征所对应的操作行为是异常行为。
本实施例中,对于具有WebShell行为特征的可疑数据,需要进行行为分析处理,具体为:先对流量数据中的WebShell行为特征进行分类记录,比如划分为以下几类:列出目录及文件、上传文件、下载敏感数据、查询数据库、执行命令、执行代码等,然后再分析记录的上述行为类别的数量,需要说明的是,在实际操作行为中的正常行为通常只会WebShell行为特征中的一种行为,因此,若检测发现一次或多次的流量数据所对应的分析记录中记录了两类或两类以上的WebShell行为特征,则可确定具有所述WebShell行为特征的操作为访问WebShell操作。
当然,本实施例中对于具有WebShell行为特征的可疑数据的行为分析并不限于上述方式,比如还可以是分析各类WebShell行为特征的行为执行的先后顺序、单位时间内的执行频率等来综合确定该WebShell行为特征的操作是否为访问WebShell操作。
参照图6,图6为本发明WebShell检测装置一实施例的功能模块示意图。本实施例中,所述WebShell检测装置包括:
检测模块10,用于检测服务器与客户端之间的流量数据,以判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据,其中,若所述流量数据中存在具有WebShell特征的可疑数据,则确定所述流量数据中存在WebShell;
本实施例中,具体通过检测服务器与客户端之间的web流量数据来识别WebShell,通过对web流量数据进行深入分析并结合WebShell行为特征来识别流量数据中是否存在WebShell。
本实施例中,如果检测的流量数据中存在具有WebShell特征的可疑数据,则可确定该流量数据中存在WebShell,具体识别方式及过程不限,具体根据实际需要进行设置。
上述对于具有WebShell特征的可疑数据的判断方式只对于一般的WebShell访问有用,而对于某些特殊的WebShell访问则无法更准确地进行识别,但通过WebShell行为特征分析则至少可以从操作行为意图及目的方面来间接分析及判断可能存在WebShell行为特征的可疑数据,也即可以间接地根据流量数据中操作命令所对应的操作行为来确定是否存在WebShell行为特征,例如上传文件、执行指定代码等。
分析模块20,用于若所述流量数据中存在具有WebShell行为特征的可疑数据,则分析该可疑数据所对应的WebShell行为特征,并根据分析结果,判断具有所述WebShell行为特征的操作是否为访问WebShell操作。
本实施例中,若流量数据中存在具有WebShell行为特征的可疑数据,同时为避免误判,因而还需要进一步对该具有WebShell行为特征的可疑数据进行分析,并根据分析结果来确定具有WebShell行为特征的操作是否为访问WebShell操作。本实施例对于分析可疑数据的方式不限,具体根据实际需要进行设置。
本实施例针对现有WebShell检测技术的不足,通过检测服务器与客户端之间的流量数据进行WebShell初步检测,并结合WebShell的操作行为特征进行深入分析,从而判断确定服务器上是否存在WebShell程序或者是否存在外部客户端的访问WebShell操作,进而避免现有WebShell检测检测方法容易被绕过的缺点,同时也不影响服务器的工作稳定性,此外也大大提高了WebShell检测的准确率。
参照图7,图7为图6中检测模块的细化功能模块示意图。基于上述装置第一实施例,本实施例中,上述检测模块10包括:
读取子模块101,用于读取所述服务器与所述客户端之间的数据包并进行数据流重组,得到所述数据包重组后所对应的流量数据;
解析子模块102,用于对所述流量数据进行解析,得到对应的解析数据,所述解析数据至少包括URL数据、表单数据、所述服务器反馈给所述客户端的数据中的一种或多种;
比对子模块103,用于将所述解析数据与预置WebShell特征库中数据进行比对,并根据比对结果判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据。
基于服务器与客户端之间的通信协议,比如HTTP协议,服务器与客户端之间通常传输都是数据包,而在服务器或客户端进行数据流重组才能得到对应的流量数据,比如HTTP数据流。
同时,为进一步获得HTTP数据流中的特征数据,因此,还需要对流量数据进行解析,比如进行TLS/SSL解密、去除协议编码等,进而获得比如原始的URL数据、表单数据、服务器反馈给客户端的数据等。
本实施例中,预置WebShell特征库中收录了WebShell相关的URL、Cookie、表单数据等特征数据或特征行为数据,从而将解析得到的解析数据与特征库进行比对,并根据比对结果,判断检测的流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据。
本实施例中,可选的比对结果包括如下三种情况:
第一种情况:流量数据符合某种已知的WebShell的特征,则认为已经检测到了WebShell;
第二种情况:流量数据中含有WebShell常见行为(如列出目录和文件、上传文件、下载敏感数据、执行命令、执行代码等)的特征,则需要这段流量数据作进一步的行为检测,并根据行为检测结果再判断具有WebShell行为特征的操作是否为访问WebShell操作;
第三种情况:流量数据和任何已知的WebShell特征或WebShell行为特征均不匹配,则认为该流量数据中不存在WebShell或访问WebShell的操作。
参照图8,图8为图7中比对子模块的细化功能模块示意图。基于上述检测模块的细化实施例,本实施例中,上述比对子模块103包括:
判断单元1031,用于根据所述解析数据,判断所述流量数据是否为所述客户端向所述服务器所发送的访问请求;
比对单元1032,用于若所述流量数据为所述访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对,所述WebShell特征库中包括若干WebShell特征与WebShell行为特征;
确定单元1033,用于若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
本实施例中,检测的流量数据可能是客户端向服务器所发送的访问请求,或者也可能是服务器向客户端发送的反馈响应,具体可基于HTTP协议,通过解析数据中的相关属性进行确定。
本实施例中,若检测的流量数据对应为客户端向服务器所发送的访问请求,则可直接通过将解析数据与WebShell特征库中数据进行比对来确定解析数据中是否存在符合所述WebShell特征的数据。
本实施例中,若解析数据中存在符合WebShell特征的数据,则确定该解析数据所对应流量数据中存在具有WebShell特征的可疑数据;而若该解析数据中存在符合WebShell行为特征的数据,则确定该解析数据所对应流量数据中存在具有WebShell行为特征的可疑数据。此外,为便于对访问请求所对应的反馈响应进行WebShell检测与判断,因此,本实施例中,当确定访问请求具有WebShell行为特征时,将缓存该访问请求以便综合反馈响应的特征进行综合判断。
可选的,在本发明WebShell检测装置一实施例中,基于上述比对子模块的细化实施例,本实施例中,所述判断单元1031还用于:根据所述解析数据,判断所述流量数据是否为所述服务器向所述客户端所返回的反馈响应;若所述流量数据为所述反馈响应,则判断是否已缓存所述反馈响应所对应的访问请求;
所述比对单元1032还用于:若未缓存所述反馈响应所对应的访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对;
所述确定单元1033还用于:若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据;
本实施例中,若检测的流量数据对应为服务器向客户端所发送的反馈响应,则先判断该反馈响应所对应的访问请求是否已经被缓存,也即确定该反馈响应所对应的访问请求是否具有WebShell行为特征,若是,则需要根据访问请求所对应的WebShell行为特征,综合分析确定该反馈响应是否存在WebShell特征或WebShell行为特征。
若未缓存该反馈响应所对应的访问请求,则将解析数据与WebShell特征库中数据进行比对来确定解析数据中是否存在符合WebShell特征的数据。本实施例中,若解析数据中存在符合WebShell特征的数据,则确定该解析数据所对应流量数据中存在具有WebShell特征的可疑数据;而若该解析数据中存在符合WebShell行为特征的数据,则确定该解析数据所对应流量数据中存在具有WebShell行为特征的可疑数据。
此外,所述比对单元1032还用于:若已缓存所述反馈响应所对应的访问请求,则读取缓存的所述反馈响应所对应的访问请求,并将所述解析数据与该访问请求所具有的WebShell行为特征进行比对;
所述确定单元1033还用于:若所述解析数据中存在符合该访问请求所具有的WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
本实施例中,若已缓存该反馈响应所对应的访问请求,则读取该反馈响应所对应的访问请求,进而将该反馈响应所对应的解析数据与该访问请求所具有的WebShell行为特征进行比对,若该反馈响应所对应的解析数据中存在符合该访问请求所具有的WebShell行为特征的数据,则确定检测的流量数据中存在具有WebShell行为特征的可疑数据。
本实施例中,通常WebShell行为是由客户端所发起的,因此,在对反馈响应进行WebShell检测时,需要根据反馈响应所对应的访问请求所具有的WebShell行为特征,来确定该反馈响应是否为WebShell,进而提升对于WebShell检测的准确性,同时,对访问请求与反馈响应都进行WebShell检测,进而提高检测的全面性。
参照图9,图9为图6中分析模块的细化功能模块示意图。基于上述装置第一实施例,本实施例中,所述分析模块20包括:
分类单元201,用于若所述流量数据中存在具有WebShell行为特征的可疑数据,则将该流量数据中的WebShell行为特征进行分类记录;
分析单元202,用于根据对WebShell行为特征所进行的一次或多次的所述分类记录,判断记录的WebShell行为特征所对应的操作行为是否为异常行为,若记录的WebShell行为特征所对应的操作行为是异常行为,则确定所述流量数据中存在WebShell,其中,所述WebShell行为特征至少包括列出目录及文件、上传文件、下载敏感数据、查询数据库、执行命令、执行代码中的任一种,若所述分类记录中存在两种或两种以上的所述WebShell行为特征,则确定记录的WebShell行为特征所对应的操作行为是异常行为。
本实施例中,对于具有WebShell行为特征的可疑数据,需要进行行为分析处理,具体为:先对流量数据中的WebShell行为特征进行分类记录,比如划分为以下几类:列出目录及文件、上传文件、下载敏感数据、查询数据库、执行命令、执行代码等,然后再分析记录的上述行为类别的数量,需要说明的是,在实际操作行为中的正常行为通常只会WebShell行为特征中的一种行为,因此,若检测发现一次或多次的流量数据所对应的分析记录中记录了两类或两类以上的WebShell行为特征,则可确定具有该WebShell行为特征的操作为访问WebShell操作。当然,本实施例中对于具有WebShell行为特征的可疑数据的行为分析并不限于上述方式,比如还可以是分析各类WebShell行为特征的行为执行的先后顺序、单位时间内的执行频率等来综合确定该WebShell行为特征的操作是否为访问WebShell操作。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种WebShell检测方法,其特征在于,所述WebShell检测方法包括:
检测服务器与客户端之间的流量数据,以判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据,其中,若所述流量数据中存在具有WebShell特征的可疑数据,则确定所述流量数据中存在WebShell;
若所述流量数据中存在具有WebShell行为特征的可疑数据,则将该流量数据中的WebShell行为特征进行分类记录;
根据对WebShell行为特征所进行的一次或多次的所述分类记录,判断记录的WebShell行为特征所对应的操作行为是否为异常行为,若记录的WebShell行为特征所对应的操作行为是异常行为,则确定所述流量数据中存在WebShell;
其中,所述WebShell行为特征至少包括列出目录及文件、上传文件、下载敏感数据、查询数据库、执行命令、执行代码中的任一种,若所述分类记录中存在两种或两种以上的所述WebShell行为特征,则确定记录的WebShell行为特征所对应的操作行为是异常行为。
2.如权利要求1所述的WebShell检测方法,其特征在于,所述检测服务器与客户端之间的流量数据,以判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据包括:
读取所述服务器与所述客户端之间的数据包并进行数据流重组,得到所述数据包重组后所对应的流量数据;
对所述流量数据进行解析,得到对应的解析数据,所述解析数据至少包括URL数据、表单数据、所述服务器反馈给所述客户端的数据中的一种或多种;
将所述解析数据与预置WebShell特征库中数据进行比对,并根据比对结果判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据。
3.如权利要求2所述的WebShell检测方法,其特征在于,所述将所述解析数据与预置WebShell特征库中数据进行比对,并根据比对结果判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据包括:
根据所述解析数据,判断所述流量数据是否为所述客户端向所述服务器所发送的访问请求;
若为所述访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对,所述WebShell特征库中包括若干WebShell特征与WebShell行为特征;
若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
4.如权利要求2所述的WebShell检测方法,其特征在于,所述将所述解析数据与预置WebShell特征库中数据进行比对,并根据比对结果判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据包括:
根据所述解析数据,判断所述流量数据是否为所述服务器向所述客户端所返回的反馈响应;
若为所述反馈响应,则判断是否已缓存所述反馈响应所对应的访问请求;
若未缓存所述反馈响应所对应的访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对;
若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据;或
若已缓存所述反馈响应所对应的访问请求,则读取缓存的所述反馈响应所对应的访问请求,并将所述解析数据与该访问请求所具有的WebShell行为特征进行比对;
若所述解析数据中存在符合该访问请求所具有的WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
5.一种WebShell检测装置,其特征在于,所述WebShell检测装置包括:
检测模块,用于检测服务器与客户端之间的流量数据,以判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据,其中,若所述流量数据中存在具有WebShell特征的可疑数据,则确定所述流量数据中存在WebShell;
分析模块,用于若所述流量数据中存在具有WebShell行为特征的可疑数据,则分析该可疑数据所对应的WebShell行为特征,并根据分析结果,判断所述流量数据中是否存在WebShell;
所述分析模块包括:
分类单元,用于若所述流量数据中存在具有WebShell行为特征的可疑数据,则将该流量数据中的WebShell行为特征进行分类记录;
分析单元,用于根据对WebShell行为特征所进行的一次或多次的所述分类记录,判断记录的WebShell行为特征所对应的操作行为是否为异常行为,若记录的WebShell行为特征所对应的操作行为是异常行为,则确定所述流量数据中存在WebShell,其中,所述WebShell行为特征至少包括列出目录及文件、上传文件、下载敏感数据、查询数据库、执行命令、执行代码中的任一种,若所述分类记录中存在两种或两种以上的所述WebShell行为特征,则确定记录的WebShell行为特征所对应的操作行为是异常行为。
6.如权利要求5所述的WebShell检测装置,其特征在于,所述检测模块包括:
读取子模块,用于读取所述服务器与所述客户端之间的数据包并进行数据流重组,得到所述数据包重组后所对应的流量数据;
解析子模块,用于对所述流量数据进行解析,得到对应的解析数据,所述解析数据至少包括URL数据、表单数据、所述服务器反馈给所述客户端的数据中的一种或多种;
比对子模块,用于将所述解析数据与预置WebShell特征库中数据进行比对,并根据比对结果判断所述流量数据中是否存在具有WebShell特征或WebShell行为特征的可疑数据。
7.如权利要求6所述的WebShell检测装置,其特征在于,所述比对子模块包括:
判断单元,用于根据所述解析数据,判断所述流量数据是否为所述客户端向所述服务器所发送的访问请求;
比对单元,用于若所述流量数据为所述访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对,所述WebShell特征库中包括若干WebShell特征与WebShell行为特征;
确定单元,用于若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
8.如权利要求6所述的WebShell检测装置,其特征在于,
所述判断单元还用于:根据所述解析数据,判断所述流量数据是否为所述服务器向所述客户端所返回的反馈响应;若所述流量数据为所述反馈响应,则判断是否已缓存所述反馈响应所对应的访问请求;
所述比对单元还用于:若未缓存所述反馈响应所对应的访问请求,则将所述解析数据与所述WebShell特征库中数据进行比对;
所述确定单元还用于:若所述解析数据中存在符合所述WebShell特征的数据,则确定所述流量数据中存在具有所述WebShell特征的可疑数据,若所述解析数据中存在符合所述WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据;
所述比对单元还用于:若已缓存所述反馈响应所对应的访问请求,则读取缓存的所述反馈响应所对应的访问请求,并将所述解析数据与该访问请求所具有的WebShell行为特征进行比对;
所述确定单元还用于:若所述解析数据中存在符合该访问请求所具有的WebShell行为特征的数据,则确定所述流量数据中存在具有所述WebShell行为特征的可疑数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610635353.8A CN107689940B (zh) | 2016-08-04 | 2016-08-04 | WebShell检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610635353.8A CN107689940B (zh) | 2016-08-04 | 2016-08-04 | WebShell检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107689940A CN107689940A (zh) | 2018-02-13 |
CN107689940B true CN107689940B (zh) | 2021-03-09 |
Family
ID=61151707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610635353.8A Active CN107689940B (zh) | 2016-08-04 | 2016-08-04 | WebShell检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107689940B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110602030A (zh) * | 2019-05-16 | 2019-12-20 | 上海云盾信息技术有限公司 | 网络入侵阻断方法、服务器及计算机可读介质 |
CN113132329A (zh) * | 2019-12-31 | 2021-07-16 | 深信服科技股份有限公司 | Webshell检测方法、装置、设备及存储介质 |
CN113132341B (zh) * | 2020-01-16 | 2023-03-21 | 深信服科技股份有限公司 | 网络攻击行为的检测方法、装置、电子设备及存储介质 |
CN113746784B (zh) * | 2020-05-29 | 2023-04-07 | 深信服科技股份有限公司 | 一种数据检测方法、***及相关设备 |
CN111800405A (zh) * | 2020-06-29 | 2020-10-20 | 深信服科技股份有限公司 | 检测方法及检测设备、存储介质 |
CN114465741B (zh) * | 2020-11-09 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 一种异常检测方法、装置、计算机设备及存储介质 |
CN112491882A (zh) * | 2020-11-27 | 2021-03-12 | 泰康保险集团股份有限公司 | webshell的检测方法、装置、介质及电子设备 |
CN113961913B (zh) * | 2021-09-27 | 2022-05-31 | 北京东方通科技股份有限公司 | 一种应用于跨域安全的检测方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102647421A (zh) * | 2012-04-09 | 2012-08-22 | 北京百度网讯科技有限公司 | 基于行为特征的web后门检测方法和装置 |
CN103607413A (zh) * | 2013-12-05 | 2014-02-26 | 北京奇虎科技有限公司 | 一种网站后门程序检测的方法及装置 |
CN103839008A (zh) * | 2014-03-21 | 2014-06-04 | 彭岸峰 | 一句话脚本后门和php变量函数后门免疫安全服务 |
CN105812196A (zh) * | 2014-12-30 | 2016-07-27 | ***通信集团公司 | 一种WebShell检测方法及电子设备 |
-
2016
- 2016-08-04 CN CN201610635353.8A patent/CN107689940B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102647421A (zh) * | 2012-04-09 | 2012-08-22 | 北京百度网讯科技有限公司 | 基于行为特征的web后门检测方法和装置 |
CN103607413A (zh) * | 2013-12-05 | 2014-02-26 | 北京奇虎科技有限公司 | 一种网站后门程序检测的方法及装置 |
CN103839008A (zh) * | 2014-03-21 | 2014-06-04 | 彭岸峰 | 一句话脚本后门和php变量函数后门免疫安全服务 |
CN105812196A (zh) * | 2014-12-30 | 2016-07-27 | ***通信集团公司 | 一种WebShell检测方法及电子设备 |
Non-Patent Citations (2)
Title |
---|
"Webshell安全检测篇(1)-基于流量的检测方式";迷路的指南针;《https://www.sec-un.org/webshell-security-testing-1-based-traffic-detection/》;20151107;网页正文第二-四部分 * |
"Webshell安全检测篇(3)-基于行为分析来发现"未知的Webshel"";迷路的指南针;《https://www.sec-un.org/webshell-security-detection-3-based-on-behavioral-analysis-to-discover-unknown-webshell/》;20151119;网页正文第一、二部分 * |
Also Published As
Publication number | Publication date |
---|---|
CN107689940A (zh) | 2018-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107689940B (zh) | WebShell检测方法及装置 | |
CN110324311B (zh) | 漏洞检测的方法、装置、计算机设备和存储介质 | |
CN109922052B (zh) | 一种结合多重特征的恶意url检测方法 | |
CN111209565B (zh) | 水平越权漏洞检测方法、设备及计算机可读存储介质 | |
US8601586B1 (en) | Method and system for detecting web application vulnerabilities | |
CN105491053A (zh) | 一种Web恶意代码检测方法及*** | |
CN111460445B (zh) | 样本程序恶意程度自动识别方法及装置 | |
CN108337269B (zh) | 一种WebShell检测方法 | |
KR100894331B1 (ko) | 웹 로그 상호연관분석을 이용한 웹 애플리케이션 공격의침입 탐지 시스템 및 방법 | |
CN103595732B (zh) | 一种网络攻击取证的方法及装置 | |
CN109918907B (zh) | Linux平台进程内存恶意代码取证方法、控制器及介质 | |
CN110889113A (zh) | 一种日志分析方法、服务器、电子设备及存储介质 | |
CN108040036A (zh) | 一种行业云Webshell安全防护方法 | |
CN106911635B (zh) | 一种检测网站是否存在后门程序的方法及装置 | |
CN109214179B (zh) | 一种程序模块安全检测方法及装置 | |
CN107566371B (zh) | 一种面向海量日志的WebShell挖掘方法 | |
CN111581637A (zh) | Sql注入检测方法、装置、设备及计算机存储介质 | |
JP6258189B2 (ja) | 特定装置、特定方法および特定プログラム | |
CN107229865B (zh) | 一种解析Webshell入侵原因的方法及装置 | |
JP6007308B1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP5966076B1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
KR101725399B1 (ko) | 호스트 레벨 기반 악성 스크립트 탐지 및 실행 방지 장치와 악성 스크립트 탐지 및 실행 방지 방법 | |
CN112003824B (zh) | 攻击检测方法、装置及计算机可读存储介质 | |
KR101572239B1 (ko) | 사용자 브라우저 영역에서 악성 스크립트 탐지 및 실행 방지 장치 및 시스템 | |
CN112818348A (zh) | 一种勒索病毒文件识别与检测方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 518000 the first floor of A1 building, Nanshan Zhiyuan 1001, Nanshan District Xue Yuan Avenue, Shenzhen, Guangdong. Applicant after: SANGFOR TECHNOLOGIES Inc. Address before: 518052 the first floor of A1 building, Nanshan Zhiyuan 1001, Nanshan District Xue Yuan Avenue, Shenzhen, Guangdong. Applicant before: Sangfor Technologies Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |