Webshell流量检测

  • A+
所属分类:安全文章
一、前言

Web安全是网络安全中的重要方向,随着Web服务的快速发展为网民带来便捷的同时,也暴露出越来越多的Web安全问题.现在主流的Web安全防护产品和设备很多都应用了人工智能算法,这是因为随着Web服务的多样化以及攻击者攻击手段的变化,仅仅依靠专家知识进行规则检测很难对安全威胁,进行全面的防护。
Webshell后门攻击是Web安全中一种常见的攻击手段,攻击者通过在受害主机上留下恶意脚本,从而实现对受害主机的持续控制和攻击. 一般来说,Webshell主要分为三种类型,分别是大马、小马、一句话木马。而主流的Webshell检测方式也主要分为以下三种类型:
  • 基于Webshell流量的检测
  • 基于Webshell文件的检测
  • 基于日志分析检测Webshell
三种不同的Webshell检测模式的总结如下:基于Webshell流量的检测主要是在流量中检测具备Webshell恶意行为特点的流量,适用于在线实时检测流量;对检测结果的精准度要求比较高。基于Webshell文件的检测主要是在主机上进行文件检测从而找出攻击者留下的Webshell后门文件,适用于主动对主机进行文件扫描并检测后门文件;基于日志分析检测Webshell主要是通过流量行为日志进行分析,关联用户行为等从而找出Webshell恶意攻击行为,适用于在离线情况下对攻击者进行溯源和攻击线索发现。
本文主要是通过基于Webshell流量的检测方式对在线流量进行实时检测,利用机器学习技术找出流量中的Webshell异常行为,并通过实践应用的方式证明算法的可行性和有效性,找到了利用人工智能技术对Webshell流量进行检测的解决办法。
二、Webshell流量检测模型

学术界和业界对利用机器学习方式解决Webshell流量检测已有研究,一些常见的检测思路是利用Webshell流量的特点人工构建特征,采用监督学习算法对Webshell流量进行检测,实现对正常流量以及恶意流量的分类识别。在学术届现有的研究实验上,对Webshell流量的识别准确率可以达到90%以上。
专家利用特征工程构建特征向量,从而对Webshell检测的思路固然可以检测到Webshell流量,但是仅仅依靠人工特征工程能够找到的特征需要持续维护升级,另一方面某些难以发现的Webshell特征通过人工特征工程可能难以找到。因此利用神经网络可以在流量数据中进行做特征提取,特征提取的目的是旨在找出流量中隐含的高级特征,实现对Webshell流量的检测。我们选择采用基于特征工程的机器学习模型(GBDT模型)结合神经网络模型(DNN模型)来构建检测Webshell流量的算法原型,检测过程分为两个模块分别是GBDT模型以及DNN模型。
 建立GBDT模型阶段,首先利用专家知识针对Webshell特点进行特征提取,其主要特征覆盖一下几个方面:
  • 流量自身固有特征,例如payload长度,key-value数量,特征字符数量以及长度。
  • 系统命令执行相关函数,例如eval、chmod等。
  • 系统文件操作相关函数,例如fopen、fwrite等。
  • 隐蔽性很强的加解密函数等衍生方法,例如Base64编码,ROT13编码等。
通过特征工程将流量中的信息进行向量化表示,将结果向量传递到监督学习模型中进行训练,训练好模型之后就可以用于对流量进行检测从而找出Webshell流量。
建立DNN模型阶段,和建立GBDT模型一样的是都需要对流量数据进行文本预处理,这里包括数据编解码、过滤特殊字符以及分词等步骤,经过预处理之后的流量数据通过向量化传递到DNN神经网络中进行训练,训练好的神经网络模型用于后续的Webshell流量检测功能。
建立好DNN模型和GBDT模型之后,将两个模型的预测结果进行模型融合,得到最终的检测结果,整体流程如下图所示
Webshell流量检测
图1 – Webshell流量检测流程
实时检测到的流量会放到数据池中,等待Webshell流量检测模块处理,经过两个模型的预测和融合判断之后会将结果进行审核,检测到的有误Webshell流量会被用于后续的模型反馈继续学习。
在模型选择阶段,我们对不同的机器学习模型在流量数据上进行了实验,几种不同的模型在precision以及recall上的表现相当,其中DNN模型以及GBDT模型表现更好,这也是在Webshell流量检测模块中选择使用GBDT模型以及DNN模型的重要原因。
Webshell流量检测
图2 – 机器学习模型Webshell检测效果对比
通过以上利用机器学习算法的实践应用可以发现,利用人工智能技术能够有效的解决在流量中检测Webshell异常流量的问题,在一定程度上解决了基于专家知识的规则检测不准确以及更新修改规则复杂的问题。不过考虑到攻击者的攻击方法的变化以及网络环境的复杂性,研究人员依然需要解决在这些复杂场景中检测Webshell的问题,例如加密流量检测、Webshell文件检测等。
三、总结与展望

Webshell检测是Web安全防护的重要环节,安全人员为了在流量中检测到攻击者的恶意行为,既可以利用专家知识构建专家系统进行Webshell异常检测,也可以采用神经网络对流量内容进行检测,本文通过将两种方式进行结合,整合两种方法的优势实现Webshell流量检测机制。通过模型算法的应用实践证明了Webshell流量检测的有效性和可行性。在未来针对Webshell攻击检测以及Web安全防护的研究中,可以考虑将终端检测以及用户行为等多模态数据进行融合,实现更加准确高效的找到攻击者以及攻击行为。

往期回顾(与该文章相关的往期公众号文章)

【冰蝎全系列有效】针对HTTPS加密流量的webshell检测研究
关于伏影实验室

研究目标包括Botnet、APT高级威胁,DDoS对抗,WEB对抗,流行服务系统脆弱利用威胁、身份认证威胁,数字资产威胁,黑色产业威胁及新兴威胁。通过掌控现网威胁来识别风险,缓解威胁伤害,为威胁对抗提供决策支撑。


内容编辑:伏影实验室 张胜军 责任编辑:王星凯

本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。

关于我们


绿盟科技研究通讯由绿盟科技创新中心负责运营,绿盟科技创新中心是绿盟科技的前沿技术研究部门。包括云安全实验室、安全大数据分析实验室和物联网安全实验室。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。

绿盟科技创新中心作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。

我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。

Webshell流量检测

长按上方二维码,即可关注我

本文始发于微信公众号(绿盟科技研究通讯):Webshell流量检测

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: