CN113761522A - 一种webshell流量的检测方法、装置、设备和存储介质 - Google Patents
一种webshell流量的检测方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113761522A CN113761522A CN202111025436.2A CN202111025436A CN113761522A CN 113761522 A CN113761522 A CN 113761522A CN 202111025436 A CN202111025436 A CN 202111025436A CN 113761522 A CN113761522 A CN 113761522A
- Authority
- CN
- China
- Prior art keywords
- webshell
- traffic
- flow
- detection
- data set
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000001514 detection method Methods 0.000 claims abstract description 113
- 238000012549 training Methods 0.000 claims abstract description 63
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 54
- 238000000605 extraction Methods 0.000 claims abstract description 36
- 238000004458 analytical method Methods 0.000 claims abstract description 33
- 238000012546 transfer Methods 0.000 claims abstract description 9
- 230000000694 effects Effects 0.000 abstract description 5
- 238000013515 script Methods 0.000 description 17
- 238000011144 upstream manufacturing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010304 firing Methods 0.000 description 4
- 241000283086 Equidae Species 0.000 description 3
- 241000239226 Scorpiones Species 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种webshell流量的检测方法、装置、设备和存储介质。一种webshell流量的检测方法,包括:对训练数据集中的流量进行HTTP字段解析;对所述HTTP字段解析结果进行特征提取;基于特征提取结果训练得到检测算法模型;基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量;其中,所述webshell流量使用HTTP超文本传输协议进行传输。本实施例的技术方案,解决了针对特定函数名或请求名进行检测,覆盖度和可扩展性较差且攻击者通过改变字段内容容易规避检测的问题,达到了高性能、低误报率地检测webshell流量的效果。
Description
技术领域
本发明实施例涉及主机安全和沙箱检测技术,尤其涉及一种webshell流量的检测方法、装置、设备和存储介质。
背景技术
当前互联网的使用日益普及,互联网安全对于信息安全也愈发重要,webshell是网站入侵的常用脚本,利用webshell可以在Web服务器上执行系统命令、窃取数据等恶意操作,危害极大。
在现有技术中,通常基于规则策略进行检测,即针对可疑函数名、可疑请求名来对超文本传输协议(Hyper Text Transfer Protocol,HTTP)字段内容以及负载内容进行匹配检测。然而,现有技术存在如下技术缺陷:规则策略的制定针对特定函数名或请求名,覆盖度和可扩展性较差,且攻击者通过改变字段内容容易规避检测。
发明内容
本发明提供一种webshell流量的检测方法、装置、设备和存储介质,以实现高性能、低误报率地检测webshell流量的效果。
第一方面,本发明实施例提供了一种webshell流量的检测方法,包括:
对训练数据集中的流量进行HTTP字段解析;
对所述HTTP字段解析结果进行特征提取;
基于特征提取结果训练得到检测算法模型;
基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量;
其中,所述webshell流量使用HTTP超文本传输协议进行传输。
第二方面,本发明实施例还提供了一种webshell流量的检测装置,包括:
字段解析模块,用于对训练数据集中的流量进行HTTP字段解析;
特征提取模块,用于对所述HTTP字段解析结果进行特征提取;
模型训练模块,用于基于特征提取结果训练得到检测算法模型;
检测模块,用于基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量;
其中,所述webshell流量使用HTTP超文本传输协议进行传输。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如实施例中任一所述的webshell流量的检测方法。
第四方面,本发明实施例还提供了一种计算机可执行指令的存储介质,其上存储有计算机可执行指令,该指令被处理器执行时实现如实施例中任一所述的webshell流量的检测方法。
本实施例的技术方案,通过对训练数据集中的流量进行HTTP字段解析,对所述HTTP字段解析结果进行特征提取,基于特征提取结果训练得到检测算法模型,基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量,解决了针对特定函数名或请求名进行检测,覆盖度和可扩展性较差且攻击者通过改变字段内容容易规避检测的问题,达到了高性能、低误报率地检测webshell流量的效果。
附图说明
图1为本发明实施例一提供的一种webshell流量的检测方法的流程图;
图2a是webshell流量的uri最长长度和正常流量的uri最长长度的核密度统计图;
图2b是webshell流量的uri平均长度和正常流量的uri平均长度的核密度统计图;
图3a是webshell流量的上行最大数据量和正常流量的上行最大数据量的箱型统计图;
图3b是webshell流量的上行平均数据量和正常流量的上行平均数据量的箱型统计图;
图3c是webshell流量的上行数据总量和正常流量的上行数据总量的箱型统计图;
图4a是webshell流量的最大内容长度和正常流量的最大内容长度的箱型统计图;
图4b是webshell流量的平均内容长度和正常流量的平均内容长度的箱型统计图;
图4c是webshell流量的内容长度总和以及正常流量的内容长度总和的箱型统计图;
图5a是webshell流量的referer个数和正常流量的referer个数的箱型统计图;
图5b是webshell流量的下行数据总量和正常流量的下行数据总量的箱型统计图;
图6a是webshell流量的payload可疑请求命中数和正常流量的payload可疑请求命中数的箱型统计图;
图6b是webshell流量的payload是否为base64编码和正常流量的payload是否为base64编码的箱型统计图;
图7为本发明实施例二提供的一种webshell流量的检测方法的流程图;
图8为用于产生模拟流量的靶场的结构示意图;
图9为本发明实施例三提供的一种webshell流量的检测方法的流程图;
图10为本发明实施例四提供的一种webshell流量的检测装置的结构图;
图11为本发明实施例五提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
Webshell脚本是入侵网站的常用后门,按照原代码的代码规模通常可以分为大马、小马和一句话木马。当webshell脚本入侵目标网站之后,通常处于休眠状态,入侵者使用webshell客户端通过网络向所述webshell脚本发送指令,远程控制webshell脚本进行后续的入侵行为。本发明旨在通过识别webshell客户端与所述webshell脚本的非加密协议通信,来识别出入侵网络的webshell行为,即基于控制webshell脚本的通信指令的流量来检测webshell攻击行为和脚本。目前常用的webshell客户端种类包含冰蝎、哥斯拉、蚁剑等webshell工具。
实施例一
图1为本发明实施例一提供的一种webshell流量的检测方法的流程图,本实施例可适用于当webshell脚本已经入侵网络后,根据webshell客户端与所述webshell脚本的通信流量来识别所述webshell脚本的通信行为,该方法可以由一种webshell流量的检测装置来执行,具体包括如下步骤:
S110、对训练数据集中的流量进行HTTP字段解析。
训练数据集是客户端通过网络向目标网站发送的用于训练检测算法模型的指令集,其中包括webshell客户端向webshell脚本发送的webshell流量和正常客户端向正常脚本发送的正常流量。首先,对采用超文本传输协议(HTTP)进行传输的流量内容进行HTTP字段解析,如表1所示,解析得到19个字段。
表1
需要注意的是,这里所述的HTTP字段解析是以会话为单位进行的,客户端在向目标网站发送指令时,会有相互往来的数据包,即客户端与目标网站之间互发数据包进行通信,其中,多个数据包又组成一次会话。在此,对每个会话进行字段解析,从而得到上述19个字段,其中一些字段可以用于区分webshell流量和普通流量。本发明实施例中HTTP字段解析过程是通过采用Python的dpkt库进行的。
例如,对某次会话进行HTTP字段解析,得到一个由19个分量组成的向量,分别对应表1中的19个字段。其中,第一分量src_ip的值是该会话流量的源IP地址,即向目标网站发送指令的客户端的IP地址;第二分量src_port的值是该会话流量的源端口的端口号;第七分量pkts_total_cnt的值表示该会话中包含的数据包的数量。表1中第八分量和第九分量中所述的上行是指由客户端向目标网站发送,第十分量中所述的下行是指由目标网站向客户端发送。
可选的,所述HTTP字段解析结果包括:uri统一资源标示符、content-length内容长度、referer对请求中uri的原始获取和payload载荷。
也就是说,本发明中所选的字段解析结果可以是但不限于上述19个字段,而是可以根据实际情况进行选择,例如,选用上述字段中的一部分或选择上述字段以外的其他字段。这样设置的好处在于,增加字段选择的灵活性,根据webshell流量的特征选择合适的字段类型。
可选的,所述流量训练数据集中正常流量的数量大于webshell流量的数量。
这样设置的好处在于,流量训练集中正常流量与webshell流量的数量比更符合实际情况,从而提高训练得到的检测算法模型的准确性。
S120、对所述HTTP字段解析结果进行特征提取。
基于上述HTTP字段解析结果,进行特征提取和转化。在上述得到的由19个分量组成的向量中,其中,某些分量对于区分webshell流量和正常流量而言具有重要的作用,因此对具有重要作用的分量进行进一步的统计特征提取和挖掘。例如,将表1中的第十七分量content-length(内容长度)进一步划分为sum_content_len(内容长度总和)、max_content_len(最大内容长度)和avg_content_len(平均内容长度);将表1中的第十四分量user-agent(用户代理)进一步划分为user_agent_cnt(用户代理个数)和user_agent_target_cnt(可疑用户代理命中个数)。特征提取之后的结果如表2所示,即每个会话进一步表征为一个具有29个分量的向量。
表2
表2中的特征提取结果的选取是根据统计分析数据得到的。以下是具体的统计分析内容:
图2a是webshell流量的uri最长长度220和正常流量的uri最长长度210的核密度统计图。图2b是webshell流量的uri平均长度240和正常流量的uri平均长度230的核密度统计图。其中,uri最长长度(uri_max_len)表示某一会话中各个数据包中统一资源标示符的最大长度;uri平均长度(uri_avg_len)表示某一会话中各个数据包中统一资源标示符的平均长度。由图2a和图2b可知,webshell流量的统一资源标示符的长度比正常流量的长度分布更广,且正常流量的统一资源标示符的长度通常较短。这是由于webshell脚本上传至目标网站的位置较为隐蔽,路径较深,因此使得webshell流量的统一资源标示符的长度通常大于正常流量。
图3a是webshell流量的上行最大数据量310和正常流量的上行最大数据量320的箱型统计图。图3b是webshell流量的上行平均数据量330和正常流量的上行平均数据量340的箱型统计图。图3c是webshell流量的上行数据总量350和正常流量的上行数据总量360的箱型统计图。其中,上行最大数据量(max_ul_bytes)表示某一会话中各个上行数据包中的最大数据量;上行平均数据量(avg_ul_bytes)表示某一会话中各个上行数据包的平均数据量;上行数据总量(ul_bytes)表示某一会话中各个上行数据包的数据总量。由图3a、3b和3c可知,webshell流量的上行数据量一般大于正常流量的上行数据量,且离群点的幅度范围也较大。这是由于webshell客户端向目标网站发送的上行数据中包含数据负载(payload)和指令信息,为了规避检测,webshell客户端会对webshell流量中的指令信息和payload进行混淆、数据填充以及乱序等操作,继而使得webshell流量的上行数据量比正常流量的上行数据量要大。此外,由于各种webshell客户端允许攻击者加载各种自定义脚本或者代码,因此webshell流量的上行数据量的离群点的幅度明显的较大。
图4a是webshell流量的最大内容长度410和正常流量的最大内容长度420的箱型统计图。图4b是webshell流量的平均内容长度430和正常流量的平均内容长度440的箱型统计图。图4c是webshell流量的内容长度总和450和正常流量的内容长度总和460的箱型统计图。其中,最大内容长度(max_content_len)表示某一会话中各个数据包中的最大内容长度;平均内容长度(avg_content_len)表示某一会话中各个数据包的平均内容长度;内容长度总和(sum_content_len)表示某一会话中各个数据包的内容长度的总和。由图4a、4b和4c可知,webshell流量的内容长度(content-length)通常大于正常流量,且离群点幅度较大。以webshell客户端是冰蝎为例,在webshell客户端向目标网站发送webshell流量时,最终都会调用Utils.getData函数来对请求的参数加密,由于加密的参数不定长,因此content_length相应的长度也会变化。
图5a是webshell流量的referer个数510和正常流量的referer个数520的箱型统计图。图5b是webshell流量的下行数据总量530和正常流量的下行数据总量540的箱型统计图。其中,referer个数(referer_cnt)表示某一会话中referer参数的数量;下行数据总量(dl_bytes)表示某一会话中各个下行数据包的数据总量。由图5a和5b可知,正常流量中的referer数量和下行数据量都要大于webshell流量。webshell流量中referer数量较少是由于小马和一句话木马都少有跳转关系,大马登陆的首页也和上一网页没有跳转关系。正常流量的访问行为会获取到网站发送的大量数据内容,而webshell一般以命令执行来获取指定的结果内容,大文件传输和内容获取行为较少,因此webshell流量中下行数据总量较少。并且,下行数据总量与上行数据总量的比值也可以作为特征用于区分webshell流量与正常流量。
图6a是webshell流量的payload可疑请求命中数610和正常流量的payload可疑请求命中数620的箱型统计图。图6b是webshell流量的payload是否为base64编码630和正常流量的payload是否为base64编码640的箱型统计图。其中,payload可疑请求命中数(payload_suspicious_req_cnt)表示某一会话中payload可疑请求的数量;payload是否为base64编码(payload_isbase64)表示某一会话中payload是否采用base64编码。由图6a和6b可知,在payload的内容分析方面,对于是否采用base64编码以及payload可疑函数的使用频率,webshell流量都远高于正常流量,因此,相关特征的统计量也可以用于区分webshell流量与正常流量。
S130、基于特征提取结果训练得到检测算法模型。
基于特征提取结果对轻量级提升学习算法(Light Gradient Boosting Machine,LightGBM)进行训练,得到检测算法模型。
LightGBM支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率、支持分布式可以快速处理海量数据等优点。且作为树形集成学习方法,有较好的可解释性和检测精度。获取数据特征后,根据任务需求进行建模训练或者检测,建模训练完成后,自动更新离线模型并保存。与LightGBM算法模型属于GBDT梯度提升树的集成学习算法,与其相似的还有Xgboost算法模型,LightGBM与Xgboost的区别在于,前者在运算上引入了直方图算法、单边梯度抽样算法(GOSS)和互斥特征捆绑算法(EFB)来提升运算效率。
例如,在具有1000个流量训练数据,且每个流量训练数据的特征提取结果为具有29个分量的向量的情况下,可以采用LightGBM算法对所得到的1000×29的特征矩阵进行训练,从而得到检测算法模型。
S140、基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量。
部署训练得到的检测算法模型,对待检测的流量进行检测,当检测出webshell流量时进行告警提示。可选的,生成webshell流量报告,其中,所述webshell流量报告包括:源IP、目的IP、源端口、目的端口、开始时间、结束时间和检测结果。
本实施例的技术方案,通过对训练数据集中的流量进行HTTP字段解析,对所述HTTP字段解析结果进行特征提取,基于特征提取结果训练得到检测算法模型,基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量,解决了针对特定函数名或请求名进行检测,覆盖度和可扩展性较差且攻击者通过改变字段内容容易规避检测的问题,达到了高性能、低误报率地检测webshell流量的效果。
实施例二
图7为本发明实施例二提供的一种webshell流量的检测方法的流程图,实施例二对实施例一的webshell流量的检测方法进行了进行一步的优化,可用于需要自行创建流量训练数据集的情况,该方法可以由一种webshell流量的检测装置来执行,具体包括如下步骤:
S710、搭建用于产生模拟流量的靶场。
图8为用于产生模拟流量的靶场的结构示意图。如图8所示,所述靶场包括:攻击者主机、互联网、靶机网站和wireshark流量采集装置。靶机网站是自行建立的用于承受webshell攻击的网站,虚拟攻击者在攻击者主机上运行冰蝎、哥斯拉、蚁剑等较为流行的webshell客户端和正常流量的客户端,通过互联网向攻击者主机发送webshell流量和正常加密流量。由于在网站实际运营过程中捕捉webshell流量的难度较大,因此,可以模拟搭建用于产生流量的靶场,模拟webshell流量的攻击过程和正常流量的数据传输,继而通过wireshark流量采集装置对webshell流量和正常流量进行采集。
S720、运行所述靶场,得到所述流量训练数据集。
运行所述靶场,通过wireshark流量采集装置得到包括webshell流量和正常流量的流量训练数据集。
S730、对训练数据集中的流量进行HTTP字段解析。
S740、对所述HTTP字段解析结果进行特征提取。
S750、基于特征提取结果训练得到检测算法模型。
S760、基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量。
本实施例的技术方案,通过搭建用于产生模拟流量的靶场,运行所述靶场,得到所述流量训练数据集,解决了在网站实际运营过程中捕捉webshell流量难度较大的问题,得到用于训练的足够数量的webshell流量和正常流量。
可选的,所述流量检测数据集包括第一检测数据集和/或第二检测数据集,在基于训练得到的检测算法模型对流量检测数据集进行检测之前,还包括:运行所述靶场,得到所述第一检测数据集;和/或,从外部网络获取所述第二检测数据集。
也就是说,用于检测的流量检测数据集可以同流量训练数据集一样来自于上述靶场,也可以在检测算法模型投入使用时,以外部网络中实际产生的流量数据作为流量监测数据集进行检测。
这样设置的好处在于,使用靶场得到的流量检测数据集进行检测能够验证检测算法模型的准确性,从而在检测算法模型达到预定的准确性之后,再将所述检测算法模型投入实际应用中。
实施例三
图9为本发明实施例三提供的一种webshell流量的检测方法的流程图,实施例三对实施例二的webshell流量的检测方法进行了进行一步的细化,可用于自行创建流量训练数据集并对训练得到的检测算法模型进行评价的情况,该方法可以由一种webshell流量的检测装置来执行,具体包括如下步骤:
S910、搭建用于模拟流量的靶场,运行靶场得到所述流量训练数据集。
搭建如实施例二中所述的靶场,其中,具体配置如表3所示,攻击者主机设置有Linux攻击者和Windows攻击者两种。
表3
运行靶场得到的加密流量训练数据集的构成如表4所示,其中,webshell流量693条,正常流量1626条,webshell流量采用例如冰蝎、哥拉斯等多种webshell客户端得到。自采集数据来源于上述所搭建的靶场,Pcapanalysis和Packettotal表示数据来自于互联网中现有的数据库。
表4
S920、对训练数据集中的流量进行HTTP字段解析,并对所述HTTP字段解析结果进行特征提取,得到向量形式的特征提取结果。
对上述2319个流量数据进行特征提取,每个流量数据得到包含29个分量的向量。
S930、基于特征提取结果对LightGBM轻量级提升学习算法进行训练,得到检测算法模型。
其中,仅对LightGBM算法模型的训练参数进行调整,不作结构优化,具体参数为learning_rate=0.1,n_estimators=200,num_leaves=200,early_stopping_rounds=5,其余参数采用常规默认设置。
S940、运行靶场得到所述流量检测数据集。
运行靶场得到用于检测的流量数据集,其中,webshell流量219条,正常流量477条。
S950、基于所述检测算法模型对流量检测数据集进行检测,得到检测结果。
由上述可知,训练以及检测相关数据如表5示,通过混淆矩阵对实施例三的检测结果进行统计,得到的混合矩阵如表6所示。
表5
总计 | 训练 | 测试 | |
Webshell | 693 | 474 | 219 |
Normal | 1626 | 1149 | 477 |
表6
Normal | Webshell | |
Normal | 471 | 6 |
Webshell | 7 | 212 |
经计算,
准确率=(471+212)/(471+212+6+7)≈98.13%
召回率=212/(7+212)≈96.80%
误报率=1-471/(6+471)≈1.26%
因此,该实施例所述的脚本检测方法:准确率98.13%,召回率96.8%,误报率1.26%。
检测结果的webshell流量报告如下所示:
{"src_ip":"192.168.***.***","dst_ip":"172.17.***.***","src_port":50063,"dst_port":80,"start_time":"2020-12-24 11:14:14","end_time":"2020-12-2411:14:19","result":"webshell"}
其中,webshell流量报告包括:源IP、目的IP、源端口、目的端口、开始时间、结束时间和检测结果。
实施例四
图10为本发明实施例四提供的一种webshell流量的检测装置的结构图。该装置可执行本发明任意实施例所提供的一种webshell加密流量的检测方法,具备执行方法相应的功能模块和有益效果。
一种webshell流量的检测装置,包括:
字段解析模块1010,用于对训练数据集中的流量进行HTTP字段解析;
特征提取模块1020,用于对所述HTTP字段解析结果进行特征提取;
模型训练模块1030,用于基于特征提取结果训练得到检测算法模型;
检测模块1040,用于基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量;
其中,所述webshell流量使用HTTP超文本传输协议进行传输。
可选的,所述HTTP字段解析结果包括:uri统一资源标示符、content-length内容长度、referer对请求中uri的原始获取和payload载荷。
可选的,所述webshell流量的检测装置还包括:
靶场搭建模块,用于搭建用于产生模拟流量的靶场;
训练数据集获取模块,用于运行所述靶场,得到所述流量训练数据集。
可选的,所述流量检测数据集包括第一检测数据集和/或第二检测数据集,所述webshell流量的检测装置还包括:
检测数据集获取模块,用于运行所述靶场,得到所述第一检测数据集;和/或,从外部网络获取所述第二检测数据集。
可选的,所述流量训练数据集中正常流量的数量大于webshell流量的数量。
可选的,所述模型训练模块包括:
LightGBM训练子模块,用于基于特征提取结果对LightGBM轻量级提升学习算法进行训练,得到检测算法模型。
可选的,所述webshell流量的检测装置还包括:
报告生成模块,用于生成webshell流量报告;
其中,所述webshell流量报告包括:源IP、目的IP、源端口、目的端口、开始时间、结束时间和检测结果。
本实施例的技术方案,通过对训练数据集中的流量进行HTTP字段解析,对所述HTTP字段解析结果进行特征提取,基于特征提取结果训练得到检测算法模型,基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量,解决了针对特定函数名或请求名进行检测,覆盖度和可扩展性较差且攻击者通过改变字段内容容易规避检测的问题,达到了高性能、低误报率地检测webshell流量的效果。
实施例五
图11为本发明实施例五提供的一种设备的结构示意图,如图11所示,该设备包括处理器1120、存储器1110、输入装置1130和输出装置1140;设备中处理器1120的数量可以是一个或多个,图12中以一个处理器1120为例;设备中的处理器1120、存储器1110、输入装置1130和输出装置1140可以通过总线或其他方式连接,图12中以通过总线连接为例。
存储器1110作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种webshell流量的检测方法对应的程序指令/模块(例如,一种webshell流量的检测装置中的字段解析模块1110、特征提取模块1120、模型训练模块1130和检测模块1140)。处理器1120通过运行存储在存储器1110中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的webshell流量的检测方法。
存储器1110可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器1110可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器1110可进一步包括相对于处理器1120远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置1130可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置1140可包括显示屏等显示设备。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种webshell流量的检测方法,该方法包括:
对训练数据集中的流量进行HTTP字段解析;
对所述HTTP字段解析结果进行特征提取;
基于特征提取结果训练得到检测算法模型;
基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量;
其中,所述webshell流量使用HTTP超文本传输协议进行传输。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的一种webshell流量的检测方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种webshell流量的检测方法,其特征在于,包括:
对训练数据集中的流量进行HTTP字段解析;
对所述HTTP字段解析结果进行特征提取;
基于特征提取结果训练得到检测算法模型;
基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量;
其中,所述webshell流量使用HTTP超文本传输协议进行传输。
2.根据权利要求1所述的webshell流量的检测方法,其特征在于,所述HTTP字段解析结果包括:uri统一资源标示符、content-length内容长度、referer对请求中uri的原始获取和payload载荷。
3.根据权利要求1所述的webshell流量的检测方法,其特征在于,对训练数据集中的流量进行HTTP字段解析之前,还包括:
搭建用于产生模拟流量的靶场;
运行所述靶场,得到所述流量训练数据集。
4.根据权利要求3所述的webshell流量的检测方法,其特征在于,所述流量检测数据集包括第一检测数据集和/或第二检测数据集,在基于训练得到的检测算法模型对流量检测数据集进行检测之前,还包括:
运行所述靶场,得到所述第一检测数据集;和/或,
从外部网络获取所述第二检测数据集。
5.根据权利要求1所述的webshell流量的检测方法,其特征在于,
所述流量训练数据集中正常流量的数量大于webshell流量的数量。
6.根据权利要求1所述的webshell流量的检测方法,其特征在于,基于特征提取结果训练得到检测算法模型,包括:
基于特征提取结果对LightGBM轻量级提升学习算法进行训练,得到检测算法模型。
7.根据权利要求1所述的webshell流量的检测方法,其特征在于,还包括:生成webshell流量报告;
其中,所述webshell流量报告包括:源IP、目的IP、源端口、目的端口、开始时间、结束时间和检测结果。
8.一种webshell流量的检测装置,其特征在于,包括:
字段解析模块,用于对训练数据集中的流量进行HTTP字段解析;
特征提取模块,用于对所述HTTP字段解析结果进行特征提取;
模型训练模块,用于基于特征提取结果训练得到检测算法模型;
检测模块,用于基于所述检测算法模型对流量检测数据集进行检测,得到webshell流量;
其中,所述webshell流量使用HTTP超文本传输协议进行传输。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的webshell流量的检测方法。
10.一种计算机可执行指令的存储介质,其上存储有计算机可执行指令,其特征在于,该指令被处理器执行时实现如权利要求1-7中任一所述的webshell流量的检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111025436.2A CN113761522A (zh) | 2021-09-02 | 2021-09-02 | 一种webshell流量的检测方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111025436.2A CN113761522A (zh) | 2021-09-02 | 2021-09-02 | 一种webshell流量的检测方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113761522A true CN113761522A (zh) | 2021-12-07 |
Family
ID=78792591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111025436.2A Pending CN113761522A (zh) | 2021-09-02 | 2021-09-02 | 一种webshell流量的检测方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113761522A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116248413A (zh) * | 2023-05-09 | 2023-06-09 | 山东云天安全技术有限公司 | 一种webshell文件的流量检测方法、设备及介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888571A (zh) * | 2017-10-26 | 2018-04-06 | 江苏省互联网行业管理服务中心 | 一种基于HTTP日志的多维度webshell入侵检测方法及检测系统 |
US10237294B1 (en) * | 2017-01-30 | 2019-03-19 | Splunk Inc. | Fingerprinting entities based on activity in an information technology environment |
CN110753064A (zh) * | 2019-10-28 | 2020-02-04 | 中国科学技术大学 | 机器学习和规则匹配融合的安全检测系统 |
CN110855661A (zh) * | 2019-11-11 | 2020-02-28 | 杭州安恒信息技术股份有限公司 | 一种WebShell检测方法、装置、设备及介质 |
CN111711608A (zh) * | 2020-05-20 | 2020-09-25 | 南方电网调峰调频发电有限公司信息通信分公司 | 一种电力数据网流量异常检测方法、系统及电子设备 |
CN111740946A (zh) * | 2020-05-09 | 2020-10-02 | 郑州启明星辰信息安全技术有限公司 | Webshell报文的检测方法及装置 |
CN111818103A (zh) * | 2020-09-09 | 2020-10-23 | 信联科技(南京)有限公司 | 一种网络靶场中基于流量的溯源攻击路径方法 |
CN112367336A (zh) * | 2020-11-26 | 2021-02-12 | 杭州安恒信息技术股份有限公司 | webshell拦截检测方法、装置、设备及可读存储介质 |
CN113132329A (zh) * | 2019-12-31 | 2021-07-16 | 深信服科技股份有限公司 | Webshell检测方法、装置、设备及存储介质 |
CN113194064A (zh) * | 2021-03-16 | 2021-07-30 | 中国科学院信息工程研究所 | 基于图卷积神经网络的webshell检测方法及装置 |
CN113259313A (zh) * | 2021-03-30 | 2021-08-13 | 浙江工业大学 | 一种基于在线训练算法的恶意https流量智能分析方法 |
-
2021
- 2021-09-02 CN CN202111025436.2A patent/CN113761522A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10237294B1 (en) * | 2017-01-30 | 2019-03-19 | Splunk Inc. | Fingerprinting entities based on activity in an information technology environment |
CN107888571A (zh) * | 2017-10-26 | 2018-04-06 | 江苏省互联网行业管理服务中心 | 一种基于HTTP日志的多维度webshell入侵检测方法及检测系统 |
CN110753064A (zh) * | 2019-10-28 | 2020-02-04 | 中国科学技术大学 | 机器学习和规则匹配融合的安全检测系统 |
CN110855661A (zh) * | 2019-11-11 | 2020-02-28 | 杭州安恒信息技术股份有限公司 | 一种WebShell检测方法、装置、设备及介质 |
CN113132329A (zh) * | 2019-12-31 | 2021-07-16 | 深信服科技股份有限公司 | Webshell检测方法、装置、设备及存储介质 |
CN111740946A (zh) * | 2020-05-09 | 2020-10-02 | 郑州启明星辰信息安全技术有限公司 | Webshell报文的检测方法及装置 |
CN111711608A (zh) * | 2020-05-20 | 2020-09-25 | 南方电网调峰调频发电有限公司信息通信分公司 | 一种电力数据网流量异常检测方法、系统及电子设备 |
CN111818103A (zh) * | 2020-09-09 | 2020-10-23 | 信联科技(南京)有限公司 | 一种网络靶场中基于流量的溯源攻击路径方法 |
CN112367336A (zh) * | 2020-11-26 | 2021-02-12 | 杭州安恒信息技术股份有限公司 | webshell拦截检测方法、装置、设备及可读存储介质 |
CN113194064A (zh) * | 2021-03-16 | 2021-07-30 | 中国科学院信息工程研究所 | 基于图卷积神经网络的webshell检测方法及装置 |
CN113259313A (zh) * | 2021-03-30 | 2021-08-13 | 浙江工业大学 | 一种基于在线训练算法的恶意https流量智能分析方法 |
Non-Patent Citations (1)
Title |
---|
FLORELLE: "冰蝎shell_冰蝎全系列有效:针对HTTPS加密流量的webshell检测研究", pages 1 - 3, Retrieved from the Internet <URL:《网页在线公开:https://blog.csdn.net/weixin_27298377/article/details/112052321》> * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116248413A (zh) * | 2023-05-09 | 2023-06-09 | 山东云天安全技术有限公司 | 一种webshell文件的流量检测方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111565199B (zh) | 网络攻击信息处理方法、装置、电子设备及存储介质 | |
US10735438B2 (en) | System, method and computer-accessible medium for network intrusion detection | |
US9992217B2 (en) | Methods, systems, and computer readable media for detecting malicious network traffic | |
CN104836702B (zh) | 一种大流量环境下主机网络异常行为检测及分类方法 | |
CN113315742B (zh) | 攻击行为检测方法、装置及攻击检测设备 | |
CN109845228A (zh) | 用于实时检测网络黑客攻击的网络流量记录系统及方法 | |
CN107135093A (zh) | 一种基于有限自动机的物联网入侵检测方法及检测系统 | |
CN113364750B (zh) | 一种基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法 | |
CN110855659A (zh) | redis蜜罐部署系统 | |
CN105577670A (zh) | 一种撞库攻击的告警系统 | |
CN106576051A (zh) | 使用主机应用/程序到用户代理的映射的零日威胁检测 | |
CN103475663B (zh) | 基于网络通信行为特征的木马识别方法 | |
CN111193633A (zh) | 异常网络连接的检测方法及装置 | |
CN113079150A (zh) | 一种电力终端设备入侵检测方法 | |
Teng et al. | A cooperative intrusion detection model for cloud computing networks | |
CN113761522A (zh) | 一种webshell流量的检测方法、装置、设备和存储介质 | |
CN111131309A (zh) | 分布式拒绝服务检测方法、装置及模型创建方法、装置 | |
CN113242233B (zh) | 一种多分类的僵尸网络检测装置 | |
CN109474567B (zh) | Ddos攻击溯源方法、装置、存储介质及电子设备 | |
CN113347184A (zh) | 网络流量安全检测引擎的测试方法、装置、设备及介质 | |
CN113765911A (zh) | 一种webshell加密流量的检测方法、装置、设备和存储介质 | |
CN115801366A (zh) | 攻击检测的方法、装置、电子设备及计算机可读存储介质 | |
CN111680294A (zh) | 一种基于高交互蜜罐技术的数据库监控方法、装置、设备 | |
CN112615713A (zh) | 隐蔽信道的检测方法、装置、可读存储介质及电子设备 | |
CN113114609A (zh) | webshell检测取证方法及系统 |
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 |