在网络安全攻防领域,有类似的“关键环节”和“伪装者”,其中Webshell就是一个典型例子。
在APT攻击事件中,Webshell是经常出场的“红人”。攻击者利用Webshell使用恶意脚本执行指令,进而完成提权,用数据库和浏览器或反弹方式长期远程访问,对企业机构造成很大的业务影响和经济危害。
Webshell也善于伪装,以PHP Webshell为例,其本身也是一段PHP代码,由于脚本语言的灵活性,导致Webshell的变形非常容易操作同时不易检测。在基于关键字判断时,PHP中的花操作和注释,也给企业机构带来更大的检测难度。
为了更好保障网络安全和业务连续性,防守方针对PHP Webshell开发了多种技术检测方式,比如特征检测(MD5)、统计分析(文件关键特征提取)、流量特征检测(元数据+特征)、动态语义检测(代码模拟执行和语义污点分析),以及最新的机器学习等。
安博通应用先进的机器学习技术,实现PHP Webshell检测,下面就一起来看看如何识别网络安全领域的“伪装者”。
这是一段使用weevely工具编写的、看似毫无意义的Webshell代码,它具有一定的伪装性。
为了降低噪声,我们将PHP转换为字节码Opcode,Opcode是一种PHP脚本编译后的中间语言,噪声有一定降低。
搜集 合适的黑白样本,利用转换工具将Webshell转换为Opcode,将转换后的字符串写入list中,再转换为词频矩阵,并进行打标记操作。将黑白样本提取到的词频矩阵整合在一起,把数值矩阵泛化为TF-IDF值。
构建随机森林模型,通过样本的随机抽取,输入模型进行长时间训练,最终可以得到基于关键字信息判断的检测模型。
安博通实现PHP Webshell检测的主要流程如下:
通过人工、工具构建及搜集大量变形Webshell进行测试验证,这一流程的检出率可提升至75%以上,大幅增强了针对性检测能力,让网络安全攻防领域的“伪装者”显露原形,有效减少其对关键业务与核心数据的威胁。