论文部分内容阅读
近年来我国互联网飞速发展,在网络给我们的生活带来更多便捷的同时,网络安全问题也逐渐进入大家视野。网站安全问题不仅关乎公司的内部网络安全,还可能对人们的个人信息造成威胁。其中Webshell是攻击者攻击网站过程中最重要的一环,因此检测网站中的Webshell对网站安全至关重要。目前对Webshell的检测方式研究推进缓慢,一方面因为其数量增长迅速,另一方面则是相比我们检测技术的进步,攻击者往往也会为了规避检测对Webshell进行升级以产生新的变种。为了解决传统静态检测方法无法有效应对加密混淆等手段、传统动态检测方法在面对大量数据时则会严重影响运行效率等问题,本文主要研究利用机器学习检测Webshell,主要工作内容及创新点如下:(1)首先根据对收集的Webshell样本进行分析,总结了5种样本特征提取方法,可以有效解决静态分析中无法检测加密混淆手段的问题;针对人工蜂群算法在源选取过程中可能存在的提前收敛与遗传漂移等问题,从选择概率计算和较差解替换两个方向对其进行改进;使用支持向量机作为分类器进行websehll分类检测,并用改进后的人工蜂群算法来优化其训练参数C和?。(2)分析现有恶意软件的二进制图像可视化技术,提出了基于Opcode序列的Webshell图像可视化方法。PHP等解释性语言运行过程中会被翻译为Opcode函数依次运行,所以Opcode可以有效表征Webshell且不受加密混淆的影响。将Opcode调用序列用矩阵的方式表示,然后转化为二维灰度图像。之后结合Opcode频率特征生成的两张灰度图像一起合成RGB图像。(3)根据上述提出的图像可视化算法,首先利用KNN对RGB图像进行指定少数类的识别,将识别的少数类样本剔除,再使用卷积神经网络模型对二维Opcode序列灰度图进行分类。提出了对Softmax损失进行加权的方式来放大少数类在损失计算中的权重,从而平衡不同类在训练过程中的权值影响。实验结果表明改进后人工蜂群算法优化的支持向量机对Webshell的检测效果优于未改进的算法;利用RGB图像对少数类的Webshell分类效果有显著提升,提出的Opcode序列图像利用深度学习的方法对Webshell检测达到了良好的效果,softmax损失加权算法能够有效提升最终检测性能。