一种基于高速网络的WebShell综合检测溯源技术研究与实现

doi:10.3969/j.issn.1671-1122.2021.01.008喋血黑谷
一种基于高速网络的WebShell综合检测溯源
技术研究与实现
王跃达1,黄潘2,荆涛3,宋雅稀1
(1.中国科学院计算机网络信息中心,北京 100190;2.北龙泽达(北京)数据科技有限公司,北京 100190;
3.中国科学院办公厅,北京 100864)
摘 要:WebShell是常见的Web脚本入侵攻击工具。攻击者将WebShell植入网站服务器后可对网站服务器进行控制,获取服务器操作权限。WebShell通常嵌套在正常网
页脚本中,具有极强的隐蔽性,对网站自身及访问者带来极大危害。针对这些问题,文
章提出一种基于DPDK的高速网络流量分析检测技术,在高速网络环境中对网络流量
进行数据包捕获和解析,并通过特征码匹配的方式实现对WebShell的高效检测,同时
对WebShell文件和攻击者进行溯源分析。
关键词:WebShell;DPDK;流量分析;溯源分析
中图分类号:TP309  文献标志码: A  文章编号:1671-1122(2021)01-0065-07
中文引用格式:王跃达,黄潘,荆涛,等.一种基于高速网络的WebShell综合检测溯源技术研究与实现[J].
信息网络安全,2021,21(1):65-71.
英文引用格式:WANG Yueda, HUANG Pan, JING Tao, et al. Research and Implementation on WebShell Comprehensive Detection and Traceability Technology Based on High-speed Network[J]. Netinfo Security, 2021,
21(1): 65-71.
Research and Implementation on WebShell Comprehensive Detection
and Traceability Technology Based on High-speed Network
WANG Yueda1, HUANG Pan2, JING Tao3, SONG Yaxi1
(1. Computer Network Information Center, Chinese Academy of Sciences, Beijing 100190, China;2. Beilong
Zedata (Beijing) Data Technology Co., Ltd., Beijing 100190, China;3. Office of General Affairs,
Chinese Academy of Sciences, Beijing 100864, China)
Abstract: WebShell is a common Web script intrusion attack tool. By implanting WebShell into the Website server, the Website server can be controlled and the server operating
program permissions can be obtained. WebShell is usually nested in normal Webpage scripts,
which has strong concealment and brings great harm to the Website itself and visitors. In
response to the above problems, this paper proposes a high-speed network traffic analysis and
收稿日期:2020-11-07
基金项目:国家重点研发计划[2017YFB0801902]
作者简介:王跃达(1982—),男,吉林,高级工程师,本科,主要研究方向为网络空间安全;黄潘(2000—),男,湖北,工程师,主要研究方向为流量检测、网络攻击;荆涛(1979—),男,吉林,高级工程师,博士,主要研究方向为网络与信息安全、流量协议分析;
宋雅稀(1994—),女,河北,硕士,主要研究方向为网络安全。
通信作者:
detection technology based on DPDK, which captures and analyzes network traffic in a high-speed network environment, and realizes efficient detection of WebShell in traffic data packets through feature code matching. At the same time, the WebShell file and the attacker are traced and analyzed.
Key words: WebShell; DPDK; traffic analysis; traceability analysis
0 引言
随着互联网的高速发展及W eb技术的不断成熟,B/S(Browser/Server)架构应运而生。B/S架构也称为浏览器/服务器体系结构,是对C/S(Client/Server)架构的改进和发展,通过浏览器完成用户与各类业务系统间的交互。然而在B/S架构带来便利的同时,也存在一定的安全隐患。W ebShell植入是针对B/S架构攻击非常重要的一环,是攻击者在目标网站植入的aspx、php、jsp等程序文件,或以代码形式存在的一种命令执行环境,也可以将其视为一种网页后门[1]。网页后门是黑客成功入侵网站服务器后留下的后门程序。通过在网站的特定目录上传远程控制脚本程序,黑客可以暗中对网站服务器进行远程控制,上传、查看、修改、删除网站服务器文件,读取并修改网站数据库数据,甚至可以直接在网站服务器上运行系统命令。2019年CNCERT/CC共监测到我国境内84850个网站被植入后门[2]。W ebShell具有编码简单、使用方便的特点,一个非常简单的脚本也足以造成严重的破坏[3]。但W ebShell 只是漏洞利用过程一环,如何快速检测出网站服务器是否被植入W ebShell文件或代码,对B/S架构的W eb 站点安全来说至关重要。
目前针对W ebShell的特征检测技术,通常是Server 端特征比对及文件属性异常检测等静态检测,这种检测方式对于数据中心或服务器数量较多的大型Web系统部署过于复杂,同时也会对服务器负载产
生压力。另外,还可以基于访问情况、行为模式特征等动态检测方式在网络流量中发现其异常行为,但对于高速网络环境中如何完整、高效、快速地捕获数据包是一个难点。本文提出一种基于数据平面开发套件(DPDK)的高速网络流量分析检测技术,可对高速网络环境中的网络流量进行数据包捕获和解析,并通过特征码匹配的方式实现对W ebShell的高效检测,还可实现对W ebShell文件和攻击者的溯源分析。
1 研究背景
1.1 DPDK介绍
基于传统操作系统内核的数据采集机制丢包率高、吞吐量低,难以满足高速网络环境需求。当前高速网络环境中,高性能系统需要在极其有限的时间内成功收集和处理大量数据,因此如何高效、完整、快速捕获数据包,是准确分析网络数据的基础以及进行下一步管控的关键[4]。传统的收发报文方式必须采用硬中断进行通信,每次硬中断大约消耗100μs,其中还不包含因终止上下文带来的Cache Miss。数据需在内核态与用户态之间切换复制,这会带来大量CPU消耗及全局锁竞争。收发包都会产生系统调用开销。为了全局一致,即使采用Lock Free,也无法避免锁总线、内存屏障带来的性能损耗。从网卡到业务进程经过的路径过长,某些框架会产生一定的消耗且容易Cache Miss,如Netfilter框架。因此无法适应当前网络场景对于大规模高速数据处理的需求,成为服务器报文处理的性能瓶颈。
DPDK技术的提出为加速网络I/O提供了新的思路和解决方案[5]。DPDK技术主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。DPDK通过UIO技术将报文复制到用户空间进行处理,从而绕过内核协议栈;通过大页内存提高TLB命中率,降低TLB miss开销,进而提高CPU访问速度;通过CPU亲和性将网卡和线程绑定到固定的core,减少CPU任务切换;通过无锁队列减少资源竞争;
解决了网卡收包慢的问题。目前DPDK技术已广泛应用于安全监控、流量分析等需要对网络出口的流量数据包进行分析的场景[6]。
1.2 WebShell检测
目前W ebShell特征检测方法有静态特征检测和动态特征检测两种。静态特征检测指攻击者在上传W ebShell文件时,通过匹配静态特征(特征码、特征值、危险函数等)的方式来发现W ebShell。也就是说,由于不同的W eb语言存在不同的特征,静态检测时需要先建立一个恶意字符串特征库,然后在各类脚本文件
中检查是否与其匹配。静态检测方法快速方便,对已知的W ebShell查准确率较高。通常正常程序本身也包含W ebShell文件中的一些特征字符串,这样就会出现误报问题[7]。例如,用户普通文本文件信息也可能包含这些关键特征串的信息。因此攻击者通过更改变量名函数名可以达到免杀目的。
动态特征检测指W ebShell文件在执行过程中,通过匹配其动态特征发现W ebShell。W ebShell文件上传到Web服务器后,用户在浏览器打开W ebShell页面时会被拦截,这种情况下从网络检测到的W ebShell是Web 应用程序被解释执行的代码[8]。只要攻击者对W ebShell 稍加改动就可以轻易躲避设备检测从而导致漏报,并且需要不断更新W ebshell特征库,维护量非常庞大。
2 技术架构
本文将DPDK和W ebShell检测相结合,在高速网络流量中利用DPDK进行流量采集并使用特征挖掘等技术进行特征提取,实现对高速网络流量中的W ebShell 行为的检测、分析和溯源。首先在网络出口通过分光器将镜像出来的流量从核心交换机传输到DPDK应用服务器;然后通过DPDK服务器实现在高速网络环境中对数据包的采集、解析和提取,并通过特征匹配方式在DPDK提取的数据包中进行W ebShell检测。最后对数据包内容进行深度分析,实现对W ebShell文件及攻击者的溯源。基于高速网络的W ebShell综合检测溯源技术架构如图1所示。
DPDK
无人机自组网>哈尔滨理工大学学报
流量镜像流量镜像
网络真实流量
流量采集
流量解析
流量分类
流量分析流量分析流量分析
网页木马流量存储
WebShell
链接提取
批量脚本
验证
预警通告
安全预警安全预警
模块
流量检测
模块
流量采集
模块
名师帮你赢高考流量存储
模块
数据存储
模块
图1 基于高速网络的WebShell综合检测溯源技术架构
3 DPDK实现
3.1 高速网络捕获数据包
为了更全面解决软件方式的数据包转发和捕获效率低的问题,6WIND、Intel等公司针对Intel的CPU和网卡开发了DPDK。DPDK可以帮助用户将控制面和数据面平台进行整合,从而有效执行数据包处理。DPDK 提供了X86平台下的报文数据包处理库和驱动集合,包括数据包的接收和发送等模块。本文利用DPDK提供的模块实现网络数据捕获,在DPDK转发函数中调用数据并传参到自定义函数,提取关键信息,从而实现数据包的捕获和匹配工作。
3.2 数据结构包解析
DPDK为高速数据结构报文的处理提供了实用的工具库。rte_mbuf为缓冲区管理组件,用于内存分配创建和数据缓冲区销毁。mbuf是报文描述的结构体,是整个转发过程最核心的数据结构之一。为了高效访问数据,DPDK将内存封装在mbuf(Struct rte_mbuf)数据包结构体内。mbuf主要用来封装网络帧缓存,也可用来封装通用控制信息缓存。rte_mbuf的结构与Linux
内核协议栈的skb_buf 相似,在保存报文的内存块前后分别保留headroom 和tailroom ,以方便应用解封报文。headroom 默认128字节,可以通过宏RTE_PKTMBUF_HEADROOM 调整。mbuf 是用来存储数据的buf ,如图2所示。buf_len 的大小通常是4096字节,数据分为headroom 、data 和tailroom 3个区域。
data m->pkt.data_len == m->pkt.pkt_len
m->buf_len
tailroom
headroom Rte_mbuf
Struct rte_mbuf *m
m->buf_addr
m->buf_data激光扫描显微镜
图2 mbuf 示意图
可以通过计算m->pkt.data -m->buf_addr 得到headroom 的长度,通过计算m->buf_len -m->pkt.data_len- headroom_size 计算tailroom 的长度。通过DPDK 官方的结构体指针偏移函数可以直接将数据解析到相应的协议头结构体变量中,其顺序为DPDK 数据包结构体mbuf 、二层链路结构体头部、IP 头部、TCP 头部、HTTP 流量信息。
3.3 HTTP 数据包提取
为了实现对数据包的检测,需要进入数据帧的应用层区分不同的应用数据。首先将数据帧进行剥离直至应用层,进而分析HTTP 报文特征,比对各应用层各种应用的特征,进行分类识别。HTTP 流量是基于TCP 协议的,为提高检测效率和精度,需过滤掉非TCP 数据包,判断TCP 连接状态是否为正常连接状态。本文在取出TCP 数据包后,使用相关自定义函数确认当前数据包是否存在HTTP 数据包关键字,以此判断该数据包是否为HTTP 数据包。
由于数据包载荷部分会出现不同字符,只通过数据包数组中是否存在HTTP 协议头关键字来判断数据包是否为HTTP 数据包存在误匹配情况。本文提取数据包的前几个字符形成HTTP 数据包前置变量,再与HTTP 数据包关键字进行匹配,从而避免误匹配情况。
4 WebShell 特征提取方法
W ebShell 特征有多种,包括W ebShell 的文件名、数据包大小、请求头部、网络流量中的关键字等[9]。本文主要基于W ebShell 文件名和通信流量两种特征进行特征提取。
4.1 基于文件名的特征提取
W ebShell 是由黑客编写完成,并命名为具有明显特征的文件名,再发布到网络上。很多攻击者直接将W ebShell 传到目标网站,不重命名,即使重命名,为了便于W ebShell 管理,通常会命名为一些比较特殊且具有一定隐蔽性的、便于记忆的、易于混淆管理员视线的W ebShell 名称,如index 1.php 、xm.php 、404.php 等。一般基于W ebShell 文件名特征的分析方法主要采集大量的网页木马数据,并将名称提取出来作为匹配特征。本文收集的部分W ebShell 名称特征如表1所示。
表1 WebShell 页面名称特征示例
ASP 木马ASPX 木马脚本格式木马
JSP 木马PHP 木马x.asp xx.asp rootkit-asp osec.asp osec 2.asp
z 3.aspx iao.aspx WebAdmin 2xE.
aspx
webadmin 1.3.aspx
tkm.aspx
mycode 12.cfm list.cfrm i
404.jsp t 00ls.jsp terms.jsp test 3693.war tree.jsp ooo.jsp
up_win 32.php utils.php veroo 8.php arn.php web.php Index 1.php
4.2 基于通信流量的特征提取
在流量分析中可以进行包的载荷检测,也就是对数据包的内容进行检测。分析木马特征时需模拟W ebShell 连接,然后抓取其交互数据包进行分析。在分析W ebShell 流量过程中发现很多辨识度非常高的W ebShell 特征,这些特征比将文件名作为特征进行W ebShell 识别更加有效、准确。以W ebShell 管理工具中国菜刀为例,本文对其在访问传输中产生的流量进行特征分析。使用中国菜刀默认的W ebShell 模拟植入目标系统后,W ebShell 访问过程产生的通信流量中请求包和响应包如图3所示。
4.2.1 请求包分析
对中国菜刀W ebShell 的请求包进行分析,可以发
现其主要包含以下4项内容:
1)访问W ebShell 的密码;
2)与W ebShell 建立连接使用的字符编码类型,如GB 312、UTF 8;
3)利用W ebShell 执行的命令;
4)对W ebShell 连接工具进行的字符混淆信息。在特征匹配的过程中,可以将数据包中的固定关键字做为特征码。例如,W ebShell 连接的密码一般为工具的默认连接密码chopper 、caidao 等。也可将数据包中的固定格式作为特征,包括“&z 0=” “&z 1=”等头部信息包含的内容。
通过对大量的WebShell 请求包进行分析发现,W ebShell 请求包的头部格式相对固定,主要包括明文密码、随机值、字符编码和执行命令等。以中国菜刀
为例,z 1的值“C:\\”是执行C 分区根目录查看命令,可以将z 1和所执行的命令作为匹配特征。分段格式中的“&z 0=” “&z 1=” “&z 2
=”包含不同的连接信息,这个固定的格式也可以作为特征进行匹配。
齐白石的人格
4.2.2 响应包分析
通过分析请求包可知,该条通信目的是查看C 分区的根目录结构,如果执行成功,将返回C 分区根目录下的内容,如图4所示。
图4 执行成功返回根目录下内容
通过分析响应包可以发现其中包含的目录信息,也就是中国菜刀执行“C:\\”命令得到的响应信息。这些响应的字段为明文显示的目录路径或文件名称。一般情况下仅FTP 网站传输时存在明文目录路径和文件名称,如果在HTTP 数据包中存在这些信息,则可以直
接判定为可疑数据包。在响应包中可以看到特征“X@Y”。通过分析大量中国菜刀W ebShell 的响应数据包可以发现,“X@Y”特征是一直存在于响应包中的一个固定字段。因此,同样也可以将该固定字段作为匹配特征。
通过上述分析方法可以得到该W ebShell 的特征,再根据相应特征对传输流量中的HTTP 数据包进行匹配,若命中,则可获得同类W ebShell 的相关情报。本文将“X@Y”作为关键字,使用KMP 直接匹配HTTP 数据包载荷部分存在“X@Y”字符串的数据包,检测W ebShell ;也可以将关键位置的文件路径或文件名等信息作为特征,使用正则表达式匹配HTTP 数据包载荷部分存在相关文件路径或文件名称信息的数据包检测W ebShell 。根据以上方法的检测结果判断是否命中,即可判定该数据包是否为可疑数据包或
W ebShell
响应包。
对于加密的请求包,本文通过Base 64、URLDecode 等相关算法提取HTTP 数据包载荷部分的密文进行解
a)请求包
b)响应包
图3 请求包和响应包

本文发布于:2024-09-25 10:36:08,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/159569.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据包   特征   检测   进行   数据   分析   流量
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议