01加密恶意流量检测
1.1 背景
有大量的恶意脚本、勒索病毒、代理、挖矿、远控工具等采用加密手段来躲避安全防护和检测。通常的安全产品对无法识别、无法检测的流量会放行。其中webshell是攻击网站的一种恶意脚本,识别出webshell文件或通信流量可以有效地阻止黑客进一步的攻击行为。目前webshell的检测方法主要分为三大类:静态检测、动态检测和日志检测。
本文主要基于流量来实现webshell连接工具的检测。目前基于流量的检测仍然面临一些问题。现存的一些webshell连接工具,比如冰蝎、哥斯拉、蚁剑等,都使用了混淆或加密机制,通过加密通信流量的方式来绕过传统安全设备,逃避检测。
1.2 antsword 编码方法
1.2.1 antsword-default编码
先来看一下默认编码模式流量。
默认状态下的流量还是比较友好的,存在很多函数可以进行特征定位,在经过大量的数据包分析后,确定了特征如下:
特征1:在1处使用正则进行匹配这处的函数格式;
特征2:在2处对于函数先后顺序进行匹配。
1.2.2 antsword-base64编码
base64:是一种基于64个可打印字符来表示二进制数据的表示方法。
下面先来看一下数据包:
base64编码下从数据包中可以发现使用了eval,base64_decode等敏感函数,在经过大量的数据包分析后,定位特征如下:
特征1:在1处使用正则进行匹配这处的函数格式;
特征2:取2处的两个14位字符进行对比判断是否相同。
1.2.3 antsword-chr编码
chr: ascii 值返回字符。ascii 值可被指定为十进制值、八进制值或十六进制值。八进制值被定义为带前置 0,十六进制值被定义为带前置 0x。
下面先来看一下数据包:
chr编码下从数据包中可以发现存在大小写混杂的eval函数,同时需要配合匹配编码的格式与长度结合进行检测。
特征1:使用正则匹配1处,eval函数括号中chr(*).chr(*),对chr(*)数量定义阈值配合检测。
1.2.4 antsword-chr16编码
chr16: ascii 值返回字符。ascii 值可被指定为十进制值、八进制值或十六进制值。八进制值被定义为带前置 0,十六进制值被定义为带前置 0x。
下面先来看一下数据包:
chr16编码下从数据包中可以发现也存在大小写混杂的eval函数,与chr编码类似,也需要配合匹配编码的格式与长度结合进行检测。
特征1:使用正则匹配1处,eval函数括号中chr(0x*).chr(0x*),对chr(0x*)数量定义阈值配合检测。
1.2.5 antsword-rot13编码
rot13:编码是把每一个字母在字母表中向前移动 13 个字母得到。数字和非字母字符保持不变。
下面先来看一下数据包:
rot13编码下从数据包中可以发现存在eval,str_rot13等敏感函数名称,在经过大量数据包分析后,确定了特征如下:
特征1:在1处使用正则进行匹配这处的函数格式;
特征2:取2处的14位字符进行对比,判断是否相同。
02总结
在实战测试中,通过上述几点,对加密型 webshell 的流量进行分析,总结相关弱特征和强特征,多种特征结合,可以准确识别这类 webshell 的通讯过程,及时处置和发现失陷主机。但上述基于字符串特征检测的方案,需要安全运营人员逐一分析样本,会消耗较大的人力,并且难以检测变种的恶意外连流量。
随着攻防技术之间的不断博弈,恶意软件也越来越隐匿。目前使用加密通信的恶意软件家族超过200种,使用加密通信的恶意软件占比超过40%,使用加密通信的恶意软件几乎覆盖了所有常见类型。后续我们可能遇到的场景更多是https,aes,xor等加密类型。对于这种加密类型,更好的wepoker官网的解决方案是使用机器学习或者深度学习对流量特征进行识别。
随着人工智能技术的发展,通过大量的测试验证,人工智能用于加密流量安全检测将是一种新技术手段。作为安全运营人员,唯有不断探索和研究新的特征和方法,才能更好的应对网络流量中日益复杂的攻击。
声明:
1.本文档由天融信安全团队发布,未经授权禁止第三方转载及转投。
2.本文档所提到的技术内容及资讯仅供参考,有关内容可能会随时更新,天融信不另行通知。
3.本文档中提到的信息为正常公开的信息,若因本文档或其所提到的任何信息引起了他人直接或间接的资料流失、利益损失,天融信及其员工不承担任何责任。
- 关键词标签:
- 天融信 威胁分析与响应 恶意流量检测