一种快速筛查新型WebShell流量的方法、系统及设备转让专利

申请号 : CN202410057042.2

文献号 : CN117579385B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王珂崔晓鑫吕绪银闫继文戴军曹瑞

申请人 : 山东星维九州安全技术有限公司

摘要 :

本申请公开了一种快速筛查新型WebShell流量的方法、系统及设备,涉及流量安全检测技术领域,将访问服务器的流量数据进行筛选获取符合筛选条件的流量数据;如果检测判断流量数据不在白名单内则将流量数据进行离散度检测确定流量数据的词频分布趋势;如果离散度检测判定流量数据为正常流量,则提取流量的URL特征信息加入白名单列表中;或者,如果离散度检测判定流量数据为异常流量,则提交到人工进行审核。双向加密是新型WebShell最主要的特征,加密的内容越长,加密后的词频分布越趋于平均,通过检测数据的词频统计特征来确定这部分数据是否是经过加密的,以此来判断是否是新型WebShell流量。

权利要求 :

1.一种快速筛查新型WebShell流量的方法,其特征在于,包括:将访问服务器的流量数据进行筛选获取符合筛选条件的流量数据,包括:将Sniffer流量采集装置对接核心交换机的流量镜像;

将采集的流量数据送入到过滤器装置进行筛选,筛选出符合筛选条件的流量数据进入白名单检测流程,其中所述筛选条件为:筛选出的HTTP流量数据需要同时获取HTTP请求和对应的响应、HTTP流量数据的HTTP方法为POST、HTTP流量数据的RequestBody和ResponseBody长度需要大于或等于阈值N;

对所述流量数据进行白名单检测,如果检测判断所述流量数据不在白名单内则将所述流量数据进行离散度检测确定流量数据的词频分布趋势,包括:获取所述流量数据HTTP Request中的URL,检查其是否在白名单内;

如果不在白名单内,则从的HTTP请求和响应中截取RequestBody和ResponseBody两个字符串分别进行离散度检测确定流量数据的词频分布趋势;

所述如果不在白名单内,则从的HTTP请求和响应中截取RequestBody和ResponseBody两个字符串分别进行离散度检测确定流量数据的词频分布趋势,包括:将输入的字符串中的每个字符转换成ascii十进制的编码,即0‑255中的一个数字,按顺序写入字节数组T,字节数组T的长度应与输入字符串的长度相同,T中第N个元素应是输入字符串的第N个字符的ascii值;

初始化一个长度256的数组空间X,每个元素值为0;

T的每个元素T[N]的取值范围在0‑255之间,对应了X的下标范围,将每个T[N]的值作为X的下标进行加1操作,即X[ T[N] ]值增加1;

遍历全部T[N],最终得到的X数组,即是待检测字符串的字符分布统计;

计算X的方差,方差值越低,其为加密字符串的可能性就越高;

按上述检测字符串是否为加密字符串,当输入的RequestBody和ResponseBody同时为加密字符串时,则认为是异常流量数据;

如果离散度检测判定所述流量数据为正常流量,则提取所述流量的URL特征信息加入白名单列表中;或者,如果离散度检测判定所述流量数据为异常流量,则提交到人工进行审核。

2.根据权利要求1所述的快速筛查新型WebShell流量的方法,其特征在于,所述计算X的方差,包括:取阈值H,方差值低于H即认定为加密字符串,大于H则认定为非加密字符串。

3.根据权利要求1或2所述的快速筛查新型WebShell流量的方法,其特征在于,还包括:将X中的元素由大到小排列,在X中删除TOP n个最大值,或删除n个最小值,n小于或等于3。

4.根据权利要求3所述的快速筛查新型WebShell流量的方法,其特征在于,如果离散度检测判定所述流量数据为正常流量,则提取所述流量的URL特征信息加入白名单列表中,包括:检测为正常流量时,自动提取RequestBody中的URL,加入白名单中并记录流量数据特征,下一轮检测中如果获取到相同流量数据特征的流量数据不再检测。

5.一种快速筛查新型WebShell流量的系统,其特征在于,包括:数据筛选模块,用于将访问服务器的流量数据进行筛选获取符合筛选条件的流量数据,包括:将Sniffer流量采集装置对接核心交换机的流量镜像;

将采集的流量数据送入到过滤器装置进行筛选,筛选出符合筛选条件的流量数据进入白名单检测流程,其中所述筛选条件为:筛选出的HTTP流量数据需要同时获取HTTP请求和对应的响应、HTTP流量数据的HTTP方法为POST、HTTP流量数据的RequestBody和ResponseBody长度需要大于或等于阈值N;

数据筛查模块,用于对所述流量数据进行白名单检测,如果检测判断所述流量数据不在白名单内则将所述流量数据进行离散度检测确定流量数据的词频分布趋势,包括:获取所述流量数据HTTP Request中的URL,检查其是否在白名单内;

如果不在白名单内,则从的HTTP请求和响应中截取RequestBody和ResponseBody两个字符串分别进行离散度检测确定流量数据的词频分布趋势;

所述如果不在白名单内,则从的HTTP请求和响应中截取RequestBody和ResponseBody两个字符串分别进行离散度检测确定流量数据的词频分布趋势,包括:将输入的字符串中的每个字符转换成ascii十进制的编码,即0‑255中的一个数字,按顺序写入字节数组T,字节数组T的长度应与输入字符串的长度相同,T中第N个元素应是输入字符串的第N个字符的ascii值;

初始化一个长度256的数组空间X,每个元素值为0;

T的每个元素T[N]的取值范围在0‑255之间,对应了X的下标范围,将每个T[N]的值作为X的下标进行加1操作,即X[ T[N] ]值增加1;

遍历全部T[N],最终得到的X数组,即是待检测字符串的字符分布统计;

计算X的方差,方差值越低,其为加密字符串的可能性就越高;

按上述检测字符串是否为加密字符串,当输入的RequestBody和ResponseBody同时为加密字符串时,则认为是异常流量数据;

数据处理模块,用于如果离散度检测判定所述流量数据为正常流量,则提取所述流量的URL特征信息加入白名单列表中;或者,如果离散度检测判定所述流量数据为异常流量,则提交到人工进行审核。

6.一种快速筛查新型WebShell流量的设备,其特征在于,包括:处理器;

存储器;

以及计算机程序,其中所述计算机程序被存储在所述存储器中,所述计算机程序包括指令,当所述指令被所述处理器执行时,使得所述设备执行权利要求1至4中任意一项所述的快速筛查新型WebShell流量的方法。

说明书 :

一种快速筛查新型WebShell流量的方法、系统及设备

技术领域

[0001] 本申请涉及流量安全检测技术领域,具体涉及一种快速筛查新型WebShell流量的方法、系统及设备。

背景技术

[0002] 越来越多的黑客使用端到端加密的新型WebShell控制服务器(以下简称新型WebShell)进行网络攻击。新型WebShell通常是通过网络攻击获得权限并在服务器上植入的,它提供了一种远程控制服务器的方式,可以执行命令、上传/下载文件、访问数据库等。新型WebShell的特点是在建立会话之后,会创建一个加密隧道。双向通讯均经过加密,流量侧的安全设备无法解密,从而增加检测难度。
[0003] 传统技术中诸多有关检测新型WebShell类的手段均为终端侧检测方案,通过检测其文件特征和内存特征,建立检测模型,以识别是否为恶意文件。这类方案需要在每台服务器上安装检测终端,并赋予最高的OS权限。但是在中大型企业应用场景中,成百上千台服务器上安装、更新终端检测程序,其维护和管理工作存在实际困难,而且检测程序权限过高,潜在的BUG可能影响服务器的稳定性。
[0004] 目前主流的流量侧检测方案,多为特征检测,即通过多组正则表达式或关键字作为防御规则,来检测出新型WebShell的流量。这类方案已经与新型WebShell陷入深度对抗状态,安全人员可以不停的更新防御规则来检测更多的新型WebShell,而黑客通过对新型WebShell通讯特征的免杀可以不断绕过这类检测。因此,这类方案无法检测最新出现的新型WebShell。另外,部分流量侧检测方案,使用了机器学习和神经网络等AI算法,由于AI模型本身涉及大量矩阵运算,当应用于大规模的流量检测时,会占用大量的CPU时间,如果使用GPU检测,则会推高硬件成本。

发明内容

[0005] 本申请为了解决上述技术问题,提出了如下技术方案:
[0006] 第一方面,本申请实施例提供了一种快速筛查新型WebShell流量的方法,包括:
[0007] 将访问服务器的流量数据进行筛选获取符合筛选条件的流量数据;
[0008] 对所述流量数据进行白名单检测,如果检测判断所述流量数据不在白名单内则将所述流量数据进行离散度检测确定流量数据的词频分布趋势;
[0009] 如果离散度检测判定所述流量数据为正常流量,则提取所述流量的URL特征信息加入白名单列表中;或者,如果离散度检测判定所述流量数据为异常流量,则提交到人工进行审核。
[0010] 在一种可能的实现方式中,所述将访问服务器的流量数据进行筛选获取符合筛选条件的流量数据,包括:
[0011] 将Sniffer流量采集装置对接核心交换机的流量镜像;
[0012] 将采集的流量数据送入到过滤器装置进行筛选,筛选出符合筛选条件的流量数据进入白名单检测流程,其中所述筛选条件为:筛选出的HTTP流量数据需要同时获取HTTP请求和对应的响应、HTTP流量数据的HTTP方法为POST、HTTP流量数据的RequestBody和ResponseBody长度需要大于或等于阈值N。
[0013] 在一种可能的实现方式中,对所述流量数据进行白名单检测,如果检测判断所述流量数据不在白名单内则将所述流量数据进行离散度检测确定流量数据的词频分布趋势,包括:
[0014] 获取所述流量数据中HTTP Request中的URL,检查其是否在白名单内;
[0015] 如果不在白名单内,则从的HTTP请求和响应中截取RequestBody和ResponseBody两个字符串分别进行离散度检测确定流量数据的词频分布趋势。
[0016] 在一种可能的实现方式中,所述如果不在白名单内,则从的HTTP请求和响应中截取RequestBody和ResponseBody两个字符串分别进行离散度检测,包括:
[0017] 将输入的字符串中的每个字符转换成ascii十进制的编码,即0‑255中的一个数字,按顺序写入字节数组T,字节数组T的长度应与输入字符串的长度相同,T中第N个元素应是输入字符串的第N个字符的ascii值;
[0018] 初始化一个长度256的数组空间X,每个元素值为0;
[0019] T的每个元素T[N]的取值范围在0‑255之间,对应了X的下标范围,将每个T[N]的值作为X的下标进行加1操作,即X[ T[N] ]值增加1;
[0020] 遍历全部T[N],最终得到的X数组,即是待检测字符串的字符分布统计;
[0021] 计算X的方差,方差值越低,其为加密字符串的可能性就越高;
[0022] 按上述检测字符串是否为加密字符串,当输入的HTTP RequestBody和HTTP ResponseBody同时为加密字符串时,则认为是异常流量数据。
[0023] 在一种可能的实现方式中,所述计算X的方差,包括:取阈值H,方差值低于H即认定为加密字符串,大于H则认定为非加密字符串。
[0024] 在一种可能的实现方式中,还包括:将X中的元素由大到小排列,在X中删除TOP n个最大值,或删除n个最小值,n小于或等于3。
[0025] 在一种可能的实现方式中,如果离散度检测判定所述流量数据为正常流量,则提取所述流量的URL特征信息加入白名单列表中,包括:检测为正常流量时,自动提取HTTP Request中的URL,加入白名单中并记录流量数据特征,下一轮检测中如果获取到相同流量数据特征的流量数据不再检测。
[0026] 第二方面,本申请实施例提供了一种快速筛查新型WebShell流量的系统,包括:
[0027] 数据筛选模块,用于将访问服务器的流量数据进行筛选获取符合筛选条件的流量数据;
[0028] 数据筛查模块,用于对所述流量数据进行白名单检测,如果检测判断所述流量数据不在白名单内则将所述流量数据进行离散度检测确定流量数据的词频分布趋势;
[0029] 数据处理模块,用于如果离散度检测判定所述流量数据为正常流量,则提取所述流量的URL特征信息加入白名单列表中;或者,如果离散度检测判定所述流量数据为异常流量,则提交到人工进行审核。
[0030] 第三方面,本申请实施例提供了一种快速筛查新型WebShell流量的设备,包括:
[0031] 处理器;
[0032] 存储器;
[0033] 以及计算机程序,其中所述计算机程序被存储在所述存储器中,所述计算机程序包括指令,当所述指令被所述处理器执行时,使得所述设备执行第一方面任一可能实现方式所述的快速筛查新型WebShell流量的方法。
[0034] 在本申请实施例中,在不对流量进行解码的前提下直接进行检测,检测速度快;基于加密数据的雪崩效应,加密后的字符串的各项统计特征将被抹平。双向加密是新型WebShell最主要的特征,加密的内容越长,加密后的词频分布越趋于平均,本专利通过检测数据的词频统计特征,来确定这部分数据是否是经过加密的,以此来判断是否是新型WebShell流量。

附图说明

[0035] 图1为本申请实施例提供的一种快速筛查新型WebShell流量的方法的流程示意图;
[0036] 图2为本申请实施例提供的选定网页首页的字符分布示意图;
[0037] 图3为本申请实施例提供的选定网页首页加密后的字符分布示意图;
[0038] 图4为本申请实施例提供的一种快速筛查新型WebShell流量的系统示意图;
[0039] 图5为本申请实施例提供的一种快速筛查新型WebShell流量的设备示意图。

具体实施方式

[0040] 下面结合附图与具体实施方式对本方案进行阐述。
[0041] 参见图1,本申请实施例提供的快速筛查新型WebShell流量的方法,包括:
[0042] S101,将访问服务器的流量数据进行筛选获取符合筛选条件的流量数据。
[0043] 如果网站部署在企业机房或IDC中,网站访问的流量会通过核心交换机,因此异常的流量数据也会经过核心交换机。因此,本实施例中,采用Sniffer装置作为流量采集装置,将Sniffer流量采集装置对接核心交换机的流量镜像。将采集的流量数据送入到过滤器装置进行筛选,筛选出符合筛选条件的流量数据进入白名单检测流程,其中所述筛选条件为:筛选出的HTTP流量数据需要同时获取HTTP请求和对应的响应、HTTP流量数据的HTTP方法为POST、HTTP流量数据的RequestBody和ResponseBody长度需要大于或等于阈值N,本实施例中,N取值范围为0
[0044] S102,对所述流量数据进行白名单检测,如果检测判断所述流量数据不在白名单内则将所述流量数据进行离散度检测确定流量数据的词频分布趋势。
[0045] 白名单检测装置取S101中HTTPRequest中的URL,检查其是否在白名单内,如果在白名单中,则不予检测;如果不在,进入离散度检测装置。如果不在白名单内,则从的HTTP请求和响应中截取RequestBody和ResponseBody两个字符串分别进行离散度检测确定流量数据的词频分布趋势。
[0046] 具体地,本实施例中进行离散度检测确定流量数据的词频分布趋势,包括:将输入的字符串中的每个字符转换成ascii十进制的编码,即0‑255中的一个数字,按顺序写入字节数组T,字节数组T的长度应与输入字符串的长度相同,T中第N个元素应是输入字符串的第N个字符的ascii值。
[0047] 初始化一个长度256的数组空间X,每个元素值为0。
[0048] T的每个元素T[N]的取值范围在0‑255之间,对应了X的下标范围,将每个T[N]的值作为X的下标进行加1操作,即X[ T[N] ]值增加1。例如,T中第50个元素的值是125(即T[50]=125),而X[125]的当前值是0。则X[125]增加1,变为X[125]=0+1=1。遍历全部T[N],最终得到的X数组,即是待检测字符串的字符分布统计。
[0049] 遍历全部T[N],最终得到的X数组,即是待检测字符串的字符分布统计。
[0050] 计算X的方差,方差值越低,其为加密字符串的可能性就越高。可取阈值H(H参考值:6000),方差值低于H即认定为加密字符串,大于H则认定为非加密字符串。图2是选定网页首页的字符分布X(方差为5921642),图3是选定网页首页加密后的字符分布X(方差为2876),他们的方差有明显的差异。
[0051] 按上述检测字符串是否为加密字符串,当输入的HTTPRequestBody和HTTPResponseBody同时为加密字符串时,则认为是异常流量数据,否则为正常流量。
[0052] 本实施例中,为了去除编码算法中的特殊字符对分布规律的干扰,比如URL编码中经常出现的“%”和“u”字符,这两个字符属于编码协议的一部分,与编码内容无关。将X中的元素由大到小排列,在X中删除TOP n个最大值,或删除n个最小值,一般n不会超过3。
[0053] S103,如果离散度检测判定所述流量数据为正常流量,则提取所述流量的URL特征信息加入白名单列表中;或者,如果离散度检测判定所述流量数据为异常流量,则提交到人工进行审核。
[0054] 检测流量数据为正常流量时,自动提取Request中的URL,加入白名单。下次遇到相同流量则不再检测,节省资源消耗。检测为异常流量时,需要经过人工审核。
[0055] 如果人工审核为正常流量时,则自动提取Request中的URL,加入白名单中。下次遇到相同流量则不再检测,以降低误报。如果人工检测未异常流量,则说明服务器被黑客控制,需要采取相关应急措施。
[0056] 与上述实施例提供的一种快速筛查新型WebShell流量的方法相对应,本申请还提供了一种快速筛查新型WebShell流量的系统。
[0057] 参见图4,本实施例中的快速筛查新型WebShell流量的系统200,包括:
[0058] 数据筛选模块201,用于将访问服务器的流量数据进行筛选获取符合筛选条件的流量数据。
[0059] 数据筛查模块202,用于对所述流量数据进行白名单检测,如果检测判断所述流量数据不在白名单内则将所述流量数据进行离散度检测确定流量数据的词频分布趋势。
[0060] 数据处理模块203,用于如果离散度检测判定所述流量数据为正常流量,则提取所述流量的URL特征信息加入白名单列表中;或者,如果离散度检测判定所述流量数据为异常流量,则提交到人工进行审核。
[0061] 本申请还提供了一种快速筛查新型WebShell流量的设备的实施例。
[0062] 参见图5,本实施例提供的快速筛查新型WebShell流量的设备300,包括:处理器301、存储器302及通信单元303。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图3中示出的快速筛查新型WebShell流量的设备300结构并不构成对本申请实施例的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0063] 其中,通信单元303,用于建立通信信道,从而使快速筛查新型WebShell流量的设备300可以与服务器等其它电子设备进行通信。
[0064] 处理器301,为快速筛查新型WebShell流量的设备300的控制中心,利用各种接口和线路连接整个快速筛查新型WebShell流量的设备300的各个部分,通过运行或执行存储在存储器302内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行快速筛查新型WebShell流量的设备300的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,IC) 组成,例如可以由单颗封装的IC 所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器301可以仅包括中央处理器(central processing unit,CPU)。在本申请实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
[0065] 存储器302,用于存储处理器301的执行指令,存储器302可以由任何类型的易失性或非易失性存储电子设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0066] 当存储器302中的执行指令由处理器301执行时,使得快速筛查新型WebShell流量的设备300能够执行上述方法实施例中的部分或全部步骤。
[0067] 与上述实施例相对应,本申请实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质可存储有程序,其中,在程序运行时可控制计算机可读存储介质所在快速筛查新型WebShell流量的设备300执行上述方法实施例中的部分或全部步骤。具体实现中,该计算机可读存储介质可为磁碟、光盘、只读存储记忆体(英文:read‑only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
[0068] 本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a, b, c, a‑b, a‑c, b‑c,或a‑b‑c,其中a, b, c可以是单个,也可以是多个。
[0069] 以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。