基于决策树的Webshell检测方法研究_胡建康
基于决策树的网络攻击检测与防御研究
基于决策树的网络攻击检测与防御研究网络攻击是当今互联网世界中一个不可忽视的问题。
为了保护网络安全,网络攻击检测与防御技术变得尤为重要。
而基于决策树的网络攻击检测与防御研究,则是在此背景下应运而生的一项关键技术。
本文将重点探讨基于决策树的网络攻击检测与防御,并对其进行深入研究和分析。
首先,我们来了解什么是决策树。
决策树是一种机器学习和数据挖掘中常用的分类方法,其模型类似于一棵以节点表示属性测试的树。
在每个节点上,我们根据某个属性的取值选择一个分支,直到达到叶节点,叶节点表示分类结果。
决策树的建立过程是通过对属性进行划分,使得每个分支节点所对应的样本都具有相同的属性取值,从而实现对数据的分类。
基于决策树的网络攻击检测与防御技术利用了决策树分类的特点,通过对网络流量数据的特征进行提取,建立决策树模型来实现对网络攻击的检测和防御。
具体而言,网络流量数据中包含了众多特征,例如源IP地址、目标IP地址、端口号、协议类型等。
利用这些特征,可以通过构建决策树模型来对网络流量进行分类,将正常流量与网络攻击流量区分开,从而及时发现和防范网络攻击行为。
基于决策树的网络攻击检测与防御技术的优点之一是其可解释性强。
决策树模型可以直观地展示分类的规则和流程,使得对于网络攻击行为的检测和分析更加可靠和可理解。
此外,决策树模型的建立过程也相对简单,不需要太多的参数调整和大量的计算资源,因此在实际应用中具有较高的效率。
然而,基于决策树的网络攻击检测与防御技术依然面临一些挑战。
首先,网络流量数据的特征非常丰富,包含的信息量很大,传统的决策树方法可能会遇到维度灾难的问题,需要进行特征选择和提取,以提高模型的分类准确性和效果。
其次,网络攻击手段日新月异,网络攻击行为的特征也不断变化,因此需要及时更新和调整决策树模型,以适应不断变化的网络攻击形势。
为了解决上述问题,研究者们提出了一系列的改进方法和技术。
例如,可以采用集成学习方法,将多个决策树模型进行结合,形成一个更加强大和稳定的网络攻击检测与防御系统。
基于决策树算法的网络入侵检测与分析技术研究
基于决策树算法的网络入侵检测与分析技术研究网络入侵检测与分析技术是当前网络安全领域中一个非常重要的研究方向。
随着网络攻击的日益复杂和频繁,传统的安全防护手段已经无法满足对网络入侵的及时检测和准确分析的需求。
决策树算法作为一种流行的机器学习算法,在网络入侵检测与分析中得到了广泛的应用。
本文将对基于决策树算法的网络入侵检测与分析技术进行详细研究和探讨。
首先,我们需要了解什么是网络入侵检测与分析技术。
网络入侵是指网络中的非法侵入行为,包括未经授权的访问、非法的数据修改、系统破坏等。
网络入侵检测与分析技术旨在通过监控和分析网络流量数据,及时发现、识别并响应网络入侵行为。
决策树算法是一种基于树形结构的机器学习算法,它通过构建树状模型来进行分类和预测。
决策树算法将样本数据集划分为多个子集,每个子集对应一个决策树的节点。
通过在节点上选择最优的特征来对数据进行划分,直到达到停止条件为止。
决策树算法具有可解释性强、易于实现和处理高维数据等优点,因此在网络入侵检测与分析领域得到了广泛应用。
基于决策树算法的网络入侵检测与分析技术主要包括以下几个关键步骤:1. 数据预处理:网络入侵检测与分析所使用的数据通常是原始的网络流量数据,其中可能包含大量的噪声和冗余信息。
因此,需要对数据进行预处理以提高后续分析的效果。
数据预处理包括特征选择、数据清洗和数据变换等步骤。
2. 决策树构建:通过使用决策树算法,可以根据预处理后的数据构建决策树模型。
决策树的构建过程中,需要选择合适的特征进行节点划分,并确定停止条件。
常用的决策树算法包括ID3、C4.5和CART等。
3. 网络入侵检测:利用构建好的决策树模型,对网络流量数据进行分类和预测。
通过将网络流量数据输入到决策树模型中,并根据模型的判断结果进行入侵检测。
如果某个数据样本被划分到了入侵类别,则可以认为该样本可能对网络安全造成风险。
4. 结果分析和优化:对网络入侵检测的结果进行分析和评估。
基于随机森林的WebShell检测方法
基于随机森林的WebShell检测方法秦英【摘要】WebShell根据其功能和大小可以分为多种类型,各种类型的WebShell 在基本特征上又有其独有的特征,而现有的WebShell检测大多从单一层面提取特征,无法较全面的覆盖各种类型WebShell全部特征,具有种类偏向性,无差别的检测效果差,泛化能力弱等问题.针对这一问题,提出了一种基于随机森林的WebShell检测方法.该方法在数据预处理阶段分别提取文本层的统计特征和文本层源码与编译结果层字节码(opcode)的序列特征,构成较全面的组合特征,然后通过Fisher特征选择选取适当比例的重要特征,降低特征维度,构成样本的特征集,最后采用随机森林分类器训练样本得到检测模型.通过实验表明,本检测方法能有效地检测WebShell,并在准确率、召回率和误报率上都优于单一层面的WebShell检测模型.【期刊名称】《计算机系统应用》【年(卷),期】2019(028)002【总页数】6页(P240-245)【关键词】WebShell;随机森林;组合特征;特征选择【作者】秦英【作者单位】武汉邮电科学研究院,武汉 430074;南京烽火星空通信发展有限公司,南京 210019【正文语种】中文随着Internet技术的兴起和WWW浏览器技术的不断成熟,人们已经熟悉浏览器的上网方式,使得基于B/S结构的Web应用在信息系统的开发建设中盛行起来.但由于Web系统开发人员的技术水平参差不齐,安全意识淡薄,防护能力不足,Web系统不断面临网络安全威胁.例如,Web交互功能越来越丰富,人们可以快速便捷地传递信息、分享与获取资源,但这也为黑客提供了多方面的攻击手段.根据CNCERT今年4月发布的《2017年我国互联网网络安全态势综述》显示,CNCERT监测发现境内外约2.4万个IP地址对我国境内2.9万余个网站植入后门.网站后门又被称为WebShell,WebShell危害巨大,如果发现网站被植入了WebShell脚本,则意味着网站存在漏洞,而且攻击者已经利用漏洞获得了服务器的控制权限[1].因此检测WebShell对于及时掌握网络安全态势具有极其重要的意义.1 相关研究1.1 WebShell概述目WebShell是运用主流脚本语言如PHP、JSP、ASP等编写的一种网页脚本木马.攻击者在检测到Web应用存在上传漏洞后,常常将这些脚本木马放置在网站服务器的Web目录中,然后以访问网页的方式访问脚本木马,通过脚本木马获取更高的权限以控制网站服务器,对网站服务器实施文件的上传、修改与下载、访问数据库篡改数据、执行任意程序命令等恶意操作[2].WebShell具备很深的自身隐藏性、可伪装性,它混杂在正常网页中,和正常网页一样通过80端口与服务器或远程主机交换机进行数据传递.这种数据传递属于正常的HTTP协议,传统防火墙无法对其进行拦截,也不会在系统日志中留下服务器管理操作,这给WebShell的检测带来很大的难度.1.1.1 WebShell的特征根据脚本程序的大小和功能,攻击者通常将WebShell分为大马、小马和一句话木马三类[1].不同类型的WebShell不仅具有基本的WebShell特征,又有各自类型的独有特征[3].WebShell的基本特征有:(1)访问特性: WebShell的访问出度和入度、访问IP 较正常网页访问有很大区别;(2)关联特性:WebShell一般是个孤立的网页文件,在页面跳转上存在特殊性;(3)文件特性: WebShell在文件创建时间、文件行数、文件大小上一般具有特殊性[1].在文件大小和文件行数上明显区别于一般合法网页;(4)文本特性:包含敏感函数的调用,或是通过加解密算法(混淆处理)隐藏敏感函数调用.各类WebShell独有特征:(1)大马的文件大小超过70%的合法网页、调用多种系统关键函数、包含开发者的版权信息,如4ngel、wefoiwe、c99shell等;(2)小马文件小,功能单一,存在上传行为;(3)一句话木马长度短、可能嵌入到正常网页中、通过POST方式传递参数.1.2 WebShell的检测和逃逸WebShell检测和逃逸如同一场旷日持久的博弈,脚本语言的灵活多变使得WebShell不断变异躲避检测[4],而检测也从不同角度查杀WebShell.1.2.1 WebShell逃逸技术以PHP语言的WebShell为例,目前常见的WebShell变形技术有:(1)加密算法隐藏敏感特征: 加密的方式非常多,在PHP语言中最常用的是内置的base64,rot13等加密技术,研究WebShell样本可以发现很多的WebShell其实是eaval(base64_decode($_POST[X]))的变形.为了逃逸,有些恶意程序会自定义加密算法,或使用Weevely、phpjm、phpjiami等加密工具加密混淆代码,隐藏特征函数.(2)字符串拆分变形重组技术: 在字符串中插入注释,字符替换,或是通过一些特殊字符的异或运算得到特定字符串,如“$__=("#"^"|").("."^"~").("/"^"‘").("|"^"/").("{"^"/")”,“$__”结果为“_POST”.字母多次自增或自减可以得到任意字母,再利用字符串的拼接特性同样也能得到特定函数,比如“b”可由“a++”表示.(3)隐蔽位置传递参数: 检测未被查杀软件扫描的字段,如“User-Agent”、“Accept-Language”等,利用这些字段传递参数.一些文件的描述信息也常会放置WebShell中需要的数据,如图片的exif信息.此外,还可以将敏感函数名作为文件名的一部分,再在文件中访问文件名得到敏感函数.1.2.2 现有WebShell检测技术目前WebShell的检测,可以大体分为脚本运行前的静态检测,脚本运行后的日志检测,和脚本运行中的动态检测.静态检测: 传统的静态检测是基于特征库的匹配,如WebShell Detector有一个较大的特征库,知名WebShell检测器D盾对静态属性进行匹配.这类基于特征字符的匹配一般通过正则表达式来实现,而正则表达式具有无法完整覆盖风险模型的问题[5],会造成一定的漏报和误报,而且攻击者使用混淆手段很容易躲避这类检测.基于统计学的检测,如开源项目NeoPI[6]提取文件的信息熵、最长单词、重合指数和压缩比检测混淆WebShell,胡建康[7]提取内容属性、基本属性和高级属性作为决策树C4.5的分类特征.这类方法在混淆WebShell检测上有一定的效果,但是近年随着人们产权和安全保密意识的加强,许多开发者也会使用加密技术隐藏自己的代码逻辑,从而呈现出类似的统计特征,这样便增大了统计检测误报的可能性.静态检测不只停留在源码层面,还从词法分析语法角度、语义角度、字节码角度进行恶意代码检测,减小代码注释和混淆变形对检测结果的影响.动态检测: 传统的动态检测主要为分析脚本执行过程中的动态特性检测恶意脚本,包括基于行为的WebShell检测和基于流量的WebShell检测.基于行为的WebShell检测,以时间为索引,从行为模式上分析脚本对文件的、对系统的操作来判断是否为WebShell[8].基于流量的检测方法,在HTTP请求/响应中寻找可疑信息,分析访问的访问特征(IP/UA/Cookie),path特征,payload的行为特征区分WebShell与合法网页.动态的检测方式,不仅能有效检测出已知的WebShell,还对未知的、伪装性强的WebShell有较高的检出率,但只能检测到正在发生上传或访问WebShell的行为,对于网站中已有的且未使用WebShell无法检测,存在工作量大,误报率高等问题,在检测效果上没有特征值检测效果好,还需深入研究.日志检测: 虽然WebShell与合法网页一样通过80端口进行HTTP请求/响应,不会在系统日志中留下记录,但分析Web服务器日志时,可以在页面访问频率、页面关联度、访问IP等日志文本特征中找到WebShell的蛛丝马迹.分析完整的日志上下文,能获取黑客的攻击意图和还原整个攻击过程,有助于发现未知、变种的WebShell脚本.但其缺点也很明显,日志分析技术通常需要通过大量的日志数据来建立HTTP请求异常模型,数据处理起来耗时长、检测速度慢,会影响服务器的性能.而且Web服务器业务功能复杂,存在一定数量的网页很少被外界访问,使得访问次数/频率不能作为明显特征,另外,部分WebShell数据访问时会模拟正常数据库操作,这将对基于数据库访问规则的检测造成干扰从而导致误报.综上所述,基于各种角度的WebShell检测有各自的优点,也存在各自的不足.WebShell的检测困难主要来自如下方面:(1)无差别的检测: 虽然机器学习已经应用到了WebShell检测中,但是可以发现不同类型的WebShell依赖特征不同,特征覆盖不全使得漏报误报问题明显,无差别的检测有待提高.(2)特征不突出: 随着人们对产权和安全保密意识的加强,许多开发者也会使用加密技术隐藏自己的代码逻辑,呈现出类似WebShell的特征,增大了检测误报的可能性.2 基于随机森林的WebShell检测方法要解决以上问题,特征的提取和分类算法的选择至关重要.现有的基于机器学习算法的WebShell检测模型大多从单一层面提取特征,无法覆盖各种类型WebShell的全部特征,具有种类偏向性,无差别的检测效果差,泛化能力弱等问题.对于以上不足,本文提出一种新的基于随机森林的检测模型(其框架如图1所示),创新性地将页面文本层的特征和PHP编译结果层的特征结合,建立组合的WebShell特征集,同时通过特征选择方法解决特征维度过大导致特征冗余、模型过拟合的问题.在分类器上,本文利用组合分类器算法—随机森林,进行模型训练和分类,利用随机森林的强大的泛化能力,提升模型检测准确率.图1 检测模型框架2.1 数据预处由于PHP,ASP,JSP等不同语言编写的WebShell非常相似,且在已知的WebShell 中PHP编写的WebShell占得比重较大,因此本文主要分析用PHP编写的WebShell的数据处理方法.对其提取文本层和编译结果层的组合特征,再进行特征选择,建立降低维度后的数据特征集.2.1.1 特征提取(1)文本层静态统计特征:本文参考NeoPI的检测特征,并加入非字母数字字符占比和基于特征码的匹配结果.经过字符运算转换的混淆WebShell页面其非字母数字字符占比一般大于正常页面.同时传统的WebShell检测是基于特征码匹配的,加入基于特征码的匹配结果能检测出已知的非正常函数调用,如: 关键函数、系统函数、数据库和加解密函数的调用情况.具体的统计特征提取方法如表1所示.表1 统计特征提取方法统计特征方法/公式说明最长字符串长度提取出最长连续字符串记录长度,一般合法页面小于150文件重合指数IC IC=255∑i=ofi(fi-1)i为字符对应的ascii值,n为所有字符个数,为字符i出现的频数信息熵 H=-∑x∈χp(x)log(p(x))χ为样本的所有字符,p(x)表示字符x的概率函数文件压缩比未被压缩的文件大小和压缩后的文件大小之比经过编码混淆的文件其压缩比会变大非字母数字字符占比特殊字符总数和文件字符总数之比经过字符转换、加密混淆的文件非字母数字字符比重比正常文件大特征码匹配正则匹配样本匹配特征码文件中的规则标记为1,否则标记为0 n(n-1)(2)利用N元语言模型进行特征提取1)文本层序列特征WebShell的种类和变形逃逸手段虽然多样,但都离不开shell的基本结构,即数据的传递和执行传递的数据,逃逸手段同样围绕传递参数的隐藏和执行方法的变形展开.目前我们没有非常完善的方法定位数据传递的步骤,但可以比较方便的找到数据执行的位置:“(”(使用小括号并不是代码执行的唯一方法).本文在代码文本层采用一元语法模型(1-gram)切分样本,切分出以左小括号结尾的连续字符串和以及字符串常量,分别作为一个词组,同时统计每个词组在样本中出现的次数,得到文本层基于函数和字符串常量的词频矩阵,将其作为特征向量.2)opcode序列特征opcode是PHP编译结果层的字节码,是脚本编译后的中间语言.PHP脚本在读入脚本程序字符串后,经由词法分析器将其转换为语言片段Tokens,接着由语法分析器从中发现语法结构生成抽象语法树AST,再经过静态编译器便生成了对应的opcode.最后由Zend虚拟机执行每一条opcode得到运行结果.通过PHP的扩展程序VLD可以直接得到脚本对应的opcode文本.本文采用二元语法模型(2-gram)切分opcode文本,将相邻的两个opcode划分到一个词组中,统计该词组在每个样本中出现的次数[9],得到编译结果层基于opcode 序列的词频矩阵,将其作为特征向量.2.1.2 特征选择应用上节的特征提取方法可以得到结合代码文本层和编译结果层的特征集,但是其维度可能非常高,会为后续模型训练带来巨大的计算压力,本文在数据预处理阶段采用特征选择方法,以降低特征维度,降低后期模型训练复杂度,节省数据存储空间.特征选择是机器学习、模式识别领域的研究热点之一,通过从原始的高维特征中筛选出符合要求的特征子集以达到降低特征空间的目的[10].特征选择主要有过滤式和封装式两种框架,也有嵌入式和混合式方法.Fisher线性判别是基于距离度量的过滤式特征选择之一,比基于互信息度量的特征选择方法计算量小、准确率高,可操作性强、节省运算时间,对高维数据在维数约简与分类性能上有很好的效果.因此本文使用Fisher线性判别算法进行特征选择,降低特征维度.Fisher线性判别的思想是: 寻找一个合适的投影轴,使得样本投影到这个轴上时同一类的投影点应可能靠近,不同类的投影点尽可能远离,即类内离散度尽可能小,类间离散度尽可能大.线性判别分析时利用了样本的类别信息,因此是有监督的方法,其目标函数表示为:其中,w为投影方向,Sb类间散布矩阵,Sw为类内散布矩阵,J的值越大,w为的判别能力越强.Fisher特征选择以特征作为投影轴,计算该特征方向的判别值,将每个特征根据其判别值从大到小排序,判别值越大,说明该特征对于分类的有效性越高,该特征也越重要.本文将特征提取后的各个特征根据其Fisher判别值进行从大到小排序,按适当的比例选择出重要特征构成新的特征集,用于之后的模型训练.2.2 模型训练完成对样本的特征提取后,即可将特征矩阵作为输入,将标注结果作为预期输出,训练分类器.在分类器上,本文选择随机森林算法对样本特征数据进行学习.随机森林是集成学习器的一种,具有分析复杂相互作用特征的能力,对于噪声数据和存在缺失值的数据具有很好的鲁棒性,并且具有较快的学习速度[11],被誉为“代表集成学习技术水平的方法”.随机森林模型由多棵CART决策树组成,每一棵CART决策树都是通过两个随机过程进行构建的,其具体生成步骤如下:(1)按照Bagging算法随机从训练样本数据集中有放回地抽取K个训练样本,用于构建K棵决策树;(2)设样本有n个特征,从每个训练样本的特征集中随机抽样m个特征作为每棵决策树的新的特征集(m ≤n);(3)利用随机抽取获得的训练样本集和子特征集进行CART决策树模型的构建,CART决策树根据基尼指数来选择划分属性,进行节点分裂.每棵树最大限度地生长,不做任何剪枝,形成随机森林.(4)数据预测时,利用所有的决策树进行预测,最后以投票的方式决定模型最终的预测结果.3 实验3.1 实验数据本文将PHP语言编写的WebShell脚本作为研究对象,共收集了1000个恶意PHP WebShell样本和来自PHPCMS、WordPress等开源项目的2000个正常PHP样本作为实验数据.实验将样本随机分为4份,任选3份训练模型,剩下的样本用于测试模型的检测能力,最终结果为运算10次后的平均结果.3.2 评估准则在本实验中,WebShell标记为1,正常样本标记为0,分类结果混淆矩阵如表2所示. 表2 分类结果混淆矩阵真实情况预测结果1 0 TP(正真例)FN(假反例)0 FP(假正例)TN(真反例)1为了评估实验效果,本文采用三个指标评估检测方法性能: 准确率、召回率和误报率.准确率(acc)定义为召回率(recall)定义为误报率(error)定义为3.3 实验分析实验分三步进行:(1)将特征提取后的各个特征根据其Fisher判别值进行从大到小排序,分析选择不同比例的重要特征集对随机森林模型检测效果的影响,从中选取适当比例的特征构建新的特征集,其中随机森林决策树的个数为10;(2)根据选取的新特征集,对比决策树数目对随机森林模型检测效果的影响,从中确定取得较好平衡的决策树个数treeNum用于完成本文检测模型的构建;(3)比较基于SVM的检测模型与本文构建的检测模型的检测效果.图2反映了选择不同比例的特征集对随机森林模型检测效果的影响,分析图2可得,在特征根据Fisher判别值排序后,选择前10%特征集训练的模型的准确率可达到97%左右,说明Fisher特征选择可以选择出重要的特征,降低特征维度.当特征选择从10%增加到30%时,检测准确率和召回率逐步上升,误报率降低且稳定在0.6%左右.而此后随着特征增加,模型检测准确率、召回率和误报率都没有明显改善,说明存在较多的冗余特征,因此本文选择前30%的重要特征作为新的特征集.在特征集选定后进行第二步实验,由图3可以得出,决策树数目treeNum从1增加到50时其检测性能也随之逐步提高,当继续增加treeNum时性能提升缓慢,在treeNum=200时准确率最高,之后继续增加treeNum性能反而开始下降,但训练时间却一直不断上升.综合分析,在决策树数目treeNum=200,特征集选取组合特征集的前30%的重要特征时,本论文提出的检测模型达到最好效果.表3对比了3种类型的WebShell检测模型: 文本层基于SVM和静态统计特征的WebShell检测模型、编译结果层基于SVM的检测模型和本文的组合层面基于Fisher特征选择和随机森林的检测模型.可以得出3种检测模型都可以在较短的时间内完成检测任务,综合对比,编译结果层的检测效果优于文本层的基于静态统计特征的检测效果,而本文提出的检测模型在准确率、召回率和误报率上都优于以上两种在单一层面的检测模型,检测时间也小于0.2秒,表明组合层面基于Fisher特征选择和随机森林的检测模型具有更好的拟合能力和更好的对未知样本的检测能力. 图2 选取不同比例特征的检测效果图3 随机森林检测效果对比表3 各种模型检测效果性能文本层基于SVM和静态统计特征的检测模型编译结果层基于SVM的检测模型本文提出的检测模型准确率(%)79.28 94.25 98.69召回率(%)51.08 95.84 96.58误报率(%)9.45 7.41 0.26检测时间(s)0.037 0.0080.1284 结束语本文深入分析了WebShell的基本特征和各种类型的独有特征,以及WebShell逃逸技术,指出现有WebShell检测方法从单一层面提取特征,无法覆盖各种类型WebShell的全部特征,无差别的检测效果差,泛化能力弱的问题.为解决以上问题,本文提出了基于随机森林和组合特征的WebShell检测方法.分别从文本层和编译结果层提取特征构建组合特征集,并引入Fisher特征选择,解决特征集过大特征冗余的问题.在分类器上采用随机森林算法用以提高检测模型的泛化能力.经过实验证明,本文提出的方法具有很好的WebShell检测效果.但是如果将该检测方法应用到实际的工程检测引擎中,其检测效率和效果还得进一步探讨.参考文献【相关文献】1 叶飞,龚俭,杨望.基于支持向量机的Webshell 黑盒检测.南京航空航天大学学报,2015,47(6): 924-930.2 张红瑞.WebShell原理分析与防范实践.现代企业教育,2013,(20): 254-255.[doi:10.3969/j.issn.1008-1496.2013.20.218]3 贾文超,戚兰兰,施凡,等.采用随机森林改进算法的Webshell检测方法.计算机应用研究,2018,35(5): 1558-1561.[doi: 10.3969/j.issn.1001-3695.2018.05.060]4 Mingkun X,Xi C,Yan H.Design of software to search ASP web shell.Procedia Engineering,2012,29: 123-127.[doi:10.1016/j.proeng.2011.12.680]5 Hansen RJ,Patterson ML.Guns and butter: Towards formal axioms of input validation.Black Hat USA,2005,(8): 1-6.6 Tu TD,Cheng G,Guo XJ,et al.Webshell detection techniques in webapplications.Proceedings of the 5th International Conference onComputing,Communications and Networking Technologies(ICCCNT).Hefei,China.2014.1-7.7 胡建康,徐震,马多贺,等.基于决策树的WebShell检测方法研究.网络新媒体技术,2012,1(6): 15-19.[doi: 10.3969/j.issn.2095-347X.2012.06.004]8 Starov O,Dahse J,Ahmad S S,et al.No honor among thieves: A large-scale analysis of malicious web shells.Proceedings of the 25th International Conference on World Wide Web.Montréal,QB,Canada.2016.1021-1032.9 胥小波,聂小明.基于多层感知器神经网络的WebShell检测方法.通信技术,2018,51(4): 895-900.[doi: 10.3969/j.issn.1002-0802.2018.04.028]10 毛勇,周晓波,夏铮,等.特征选择算法研究综述.模式识别与人工智能,2007,20(2): 211-218.[doi:10.3969/j.issn.1003-6059.2007.02.012]11 周屹,冯兆祥,白熙卓,等.基于随机森林算法的数据分析软件设计.黑龙江工程学院学报,2017,31(3): 38-41.。
决策树技术在基于Web入侵检测技术中的应用研究
题,包括数据 防窃听和数据完整性等 ;另一部分是 We b服务器端和 客户端本身的安全性 问题。 前者可 以通过各种安全协议来加强其安全 性;而后者,就需要通过防火墙和入侵检 ̄ ( t s nDeet n技术 U nr i tco ) I uo i
来进 行 防 范 。
一
NTI h w o e S SS o cd P攻击所构造的 U I A RL请求 内容为:ht: t p
进行 检 测 ,应 该遵 循 先 检 测 所 有 入侵 行 为 的共 同特 征 , 次 才 是 个体 其
服务器的保护是不充分的,需要通过入侵检测技术来对其进行防范。
入 侵检 测 通 常 分 为 异常 检 测 和 误 用检 测 。 用 检 测模 型 是 收 集 非 误 正常 操 作 的行 为 特 征 , 立 相 关 的特 征 库 , 监 测 的用 户 或 系 统 行 为 建 当 与库 中 的记 录 相 匹 配 时 , 统 就 认 为这 种 行 为 是 非法 入 侵 。 方 法类 系 该
u i o t n : ”s l c o / h wc d . s : n c s 。 r n e t / e e t rs o o ea p” c o a e
似于病毒检测系统,其检测的准确率和效率都比较 高。 异常检测模型首先总结正常操 作应该具有的特 征( 用户轮廓) ,当
用 户 活动 与 正 常 行 为有 重 大 偏 离 时 即被 认 为 是 入侵 。 常 检 测 系 统 的 异
/at c os ms d l mp e S l t kh t a cSa l s ELECTORI h wc d .s ? o r e ms d / a l / s o o ea p s u c =/ a c S mp e/ . . . ..b o . i a ls.... . o tn |f|f/ i
基于决策树的恶意应用软件检测方法
网络通讯及安全本栏目责任编辑:代影基于决策树的恶意应用软件检测方法龚华堂(广东茂名幼儿师范专科学校,广东茂名525000)摘要:为了能够更精准检测恶意应用软件,保证计算机或个人移动中终端的数据安全以及个人财产安全,需要对传统的恶意应用软件检测方法进行改良,因此基于决策树对恶意应用软件检测方法进行研究。
研究基本的决策树算法,分析得到决策树算法在恶意应用软件检测过程中的两种应用方式,并分别阐述CART 决策树生成算法与CART 决策树剪枝算法的应用原理。
提取数据集中的样本特征、构建相应的样本特征数据集,基于决策树进行相应的样本特征筛选,并研究该算法的训练方法。
最后设计实验,验证基于决策树的恶意应用软件检测方法达成了研究目的,具备算法的优越性和实用性。
关键词:决策树;恶意应用软件;Android 系统中图分类号:TP311文献标识码:A文章编号:1009-3044(2021)12-0049-02开放科学(资源服务)标识码(OSID ):人们在使用手机和电脑时,必然离不开对应用软件的操作,因此由应用软件衍生而来的恶意软件就成了当前互联网和计算机最重要的威胁。
如果放任恶意软件在计算机中运行,很有可能对计算机系统本身造成威胁[1]。
因此想要保证互联网环境的安全性,就需要首先确保个人设备中不会混入恶意应用程序,这就需要相关研发人员对于能够检测恶意应用软件的系统进行研究。
因此本文使用决策树对恶意应用软件检测方法进行研究。
1决策树算法研究本文的决策树主要用于检测恶意应用软件,因此使用CART 决策树作为本文的算法。
CART 决策树是一个树状的结构,通过基尼指数的检验,测试特征的不同,通过根节点逐一分裂,如此在分裂的过程中收集性状特征,逐渐达到子节点[2]。
在检测恶意应用软件时,需要两种对于CART 决策树的应用方式,其一便是在遍历恶意软件时的CART 决策树生成算法,CART 决策树生成算法是CART 回归树中最简单的特征划分算法,使用了最小平方化的原则,以完成二叉树的构建[3]。
基于决策树的病毒检测算法磁
基于决策树的病毒检测算法磁朱俚治【期刊名称】《计算机与数字工程》【年(卷),期】2015(000)006【摘要】如今病毒的智能性,日益突出。
具有当代智能性技术的病毒能够躲避部分杀毒软件的检测。
因此有些病毒,在传统检测算法面前是难以被发现。
为有效检测出采用了新技术的病毒,使得病毒检测算法具有新的智能性是十分必要的。
MMTD算法和决策树算法是两种智能性的算法,该智能性算法在检测病毒上进行应用将有助提高病毒检测算法的智能性。
因此根据当病毒检测时的过程中病毒表现出的特性,论文将M M TD算法和决策树算法结合在一起而提出了一种新的病毒检测算法。
%Today intelligence viruses have become increasingly prominent .Virus with a contemporary intelligent tech‐nologies can evade detection portion antivirus software .Therefore ,some viruses ,in front of the traditional detection algo‐rithm are difficult to be found .To effectively detect the virus ,using a new technology ,virus detection algorithm with a new intelligence is essential .MMTD algorithms and decision tree algorithms are two intelligent algorithms .The intelligent alg o‐rithms for application in the detection of the virus will help to improve virus detection algorithm intelligence .Therefore ,ac‐cording to the time when the process of virus detection virus exhibit characteristics ,this article combines MMTD algorithms and decision tree algorithms together and propose a new virus detection algorithm .【总页数】4页(P1069-1072)【作者】朱俚治【作者单位】南京航空航天大学信息中心南京 210016【正文语种】中文【中图分类】TP309.5【相关文献】1.基于决策树的海上搜救目标检测算法 [J], 陈鹏鹏;冉鑫2.基于模糊模式与决策树融合的脚本病毒检测算法 [J], 张涛;张瀚;付垒朋3.一种基于决策系统和决策树的误用检测算法 [J], 朱俚治4.基于k-means和决策树的混合入侵检测算法 [J], 李鹏;周文欢5.基于改进决策树的入侵检测算法 [J], 平寒因版权原因,仅展示原文概要,查看原文内容请购买。
11-2019年全国大学生信息安全竞赛安徽省赛获奖名单
CLXC
基于国产密码的高保密即时通讯系统
路贺俊,苏丽 陈昌飞,刘对,徐磊,蔡家树 一等奖
3
淮北师范大学 225015
两菜一汤
密码生成管理器设计与实现
张栋冰,于雷
胡晓晗,叶普凡,刁雨豪
一等奖
4
淮南师范学院 227504
贴心锁战队
贴心锁——基于混合加密的大众密码管理系统
施勇
张孟,毕路晨,程子韩
一等奖
5
淮北师范大学 227888
束红,王刚 潘峻岚,王德宝,朱彬彬,杨坤 二等奖
11 阜阳师范大学 222253
Hasa
基于Windows系统下的PE文件结构解析系统
范建中,范国婷 杜家欣,朱明航,张治,陈玥 二等奖
12 淮南师范学院 223863 Flasher-2019-永睿队
基于GPG的简单远程数据备份方案
孟学涛,刘磊 江永旭,李睿轩,伍珍珍,张旭 二等奖
刘新忠,吕洁,马莉莉
一等奖
8
铜陵学院
221474
追梦的鱼
基于机器学习方法的Webshell检测系统的设计与实现
齐平,束红
方磊,吕建国,张宇,疏浩
二等奖
9
滁州学院
221728
三人行
多维度监测的网站安全检测系统
祁辉,郝发婷
王智源,李梦可,王迪
二等奖
10
铜陵学院
222135
FeHH队
基于层次化算法的恶意外链自动检测系统
基于多重加密技术的云保险库系统
侯勇,姚保峰 韩高峰,越缙 邵雪梅,祁辉
李晴雨,张冠一,余杨龙 吴金锁,杜一品
鲍旌,李娜,郑飞翔
三等奖 三等奖 三等奖
36 阜阳师范大学 227710
基于决策树的二维码恶意网址检测方法
基 于决策树 的二 维码 恶意 网址检 测 方 法
赵 刚 王 碰 王 鑫 金 文斌 吴 晓 婷
( 北 京 信 息 科 技 大 学 信 息 管 理 学 院 北 京 1 0 0 1 9 2 )
【 摘 要】 二维码技术应用已经进入大众生活, 同时也逐渐成为恶意软件传播的新途径。 面向二维码中 U R L , 提出二
维码 恶意 网址 决策树 智 能检 测方 法 。利用 恶意 网址 和正 规 网址 , 提取 网址 特征 , 构 建特 征 向量 , 进 而构 建决 策树 。进
一
步对网址特征提取及决策树选择进行了优化 ,实例测试结果表 明系统在对恶意网址识别的响应速度和准确率方
面取得了良好的效果。
【 关键词 】 二维 码 ; 恶 意 网址 ; 智 能检测 ; 决策树
【K e y w o r d s】 wo t . d i m e n s i o n a l b a r c o d e ; m a l i c i o u s u r l ; i n t e l l i g e n t d e t e c t i o n ; d e c i s c t 】 Wi t h t h e e x p a n d i n g a p p l i c a t i o n o f t h e t h e t w o ・ d i m e n s i o n a l b a r c o d e , wo t . d i m e n s i o n a l b a r c o d e h a s g r a d u a l l y b e c o m e a n e w m a l i c i o u s s o f t w a r e
基于决策树算法的盗刷检测技术研究
基于决策树算法的盗刷检测技术研究随着电子商务的快速发展和普及,网上交易的安全问题成为了人们越来越关注的焦点。
随着网上交易的增多,越来越多的人开始利用各种手段进行盗刷。
这种行为不仅会对个人的财产造成损失,还会对整个社会信任和公平竞争秩序造成负面影响。
为了防止盗刷行为的发生,很多电商企业开始投入大量的人力和物力进行技术研发。
其中,基于决策树算法的盗刷检测技术成为了一种较为成熟的技术手段。
一、什么是决策树算法决策树算法是一种分类和回归分析的方法。
通常情况下,人们通过将一个大问题分解成若干个子问题并形成一棵树状结构来解决问题。
这个树状结构称为决策树。
在决策树上,每一个节点代表一个问题或一个决策,每一条边代表一个可能的答案或结果,最终的结果位于树的末端的叶子节点。
二、决策树在盗刷检测中的应用基于决策树算法的盗刷检测技术可以分为两大类,一是基于规则的决策树,另一种是基于数据驱动的决策树。
基于规则的决策树是先人工制定一系列规则,再由计算机编写程序实现对危险行为的检测。
然而,在实际应用中,这种方法的运行效率和代码维护成本都很高,因此越来越多的企业转向了基于数据驱动的决策树。
基于数据驱动的决策树是利用大量的历史交易数据训练模型来识别风险行为。
在这个模型中,统计和数学方法被用来挖掘那些与盗刷有关的特征。
通过对这些特征分析,系统能够对交易行为进行判断、分类和评分。
这个分数可以显示出该笔交易是否存在风险,从而决策是否进行拦截或需要进行身份验证等措施。
三、基于数据驱动的决策树的优势相比于基于规则的决策树,基于数据驱动的决策树具有很多优势。
1. 更全面、更准确的风险识别基于数据驱动的决策树可以通过对大量的数据进行分析,从中挖掘出与盗刷相关的规律和特征,给予用户更全面更准确的风险评估。
而规则决策树在处理复杂问题时,容易对特例产生误判,识别准确性低。
2. 可持续的学习和优化基于数据驱动的决策树可以利用少量的标注数据,进行增量学习,进一步优化模型。
基于决策树的快速网络入侵检测系统的开题报告
基于决策树的快速网络入侵检测系统的开题报告1. 研究背景和意义在当今信息化时代,网络安全问题日益突出。
网络入侵是其中十分严重的问题之一。
网络入侵活动往往会导致网络系统的严重威胁和安全风险,并可能导致敏感信息的泄露、系统瘫痪等严重后果。
因此,如何有效地检测和识别网络入侵成为了网络安全领域的重要研究方向之一。
目前,网络入侵检测主要分为基于特征的检测方法和基于机器学习的检测方法。
基于特征的方法需要手动提取入侵相关特征,且受到攻击者的欺骗性行为的影响比较大,检测效果较差。
而基于机器学习的方法能够自动提取特征,且具有较好的检测效果和准确率,成为了当前网络入侵检测领域的研究热点。
本研究以建立基于决策树的网络入侵检测系统为目标,旨在利用机器学习算法,实现网络入侵检测的自动化与准确性,提升网络安全的保障能力。
2. 研究内容和方法(1)研究内容本研究主要研究内容包括:1)网络入侵检测系统的设计与实现2)决策树算法在网络入侵检测中的应用3)决策树算法参数优化方法的研究4)数据集的选择和建立5)网络入侵检测系统的实验测试和评估(2)研究方法本研究采用以下方法:1)通过文献调研和实践经验,对网络入侵检测领域的相关技术进行深入了解和掌握2)对决策树算法进行深入研究,了解其原理和应用场景3)设计并实现基于决策树算法的网络入侵检测系统4)优化决策树算法参数,提高网络入侵检测的准确性和效率5)选取数据集进行实验测试和评估,对网络入侵检测系统的性能进行评估和验证。
3. 预期成果和意义预期成果如下:1)设计实现了一个基于决策树算法的快速网络入侵检测系统,能够自动地对网络流量进行监控、分析和检测。
2)通过对网络入侵算法的优化和实验测试等手段,提升了网络入侵检测系统的准确性和效率。
3)验证网络入侵检测系统的性能,实现对网络入侵的快速响应、有效防御、及时报警的功能。
本研究的意义在于:提高网络安全的防御能力,为实现信息化时代的安全生产和社会稳定做出积极贡献。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16
网络新媒体技术
2012 年
1 Webshell 机理和特征混淆
1. 1 机理
Webshell 是基于 Web 服务实现对
服务器操作的程序,用户可通过浏览
器远程访问该页面。网页脚本语言是
一种创建动态交互性站点的强有力的
图 2 检测模型框架结构
6期
胡建康 等: 基于决策树的 Webshell 检测方法研究
17
特征抽取引擎,先对已标记的训练网页样本提取特征数据,为应对其混淆技术,该抽取引擎须采用相应 反混淆方法。决策树分类器对特征数据学习并构建数据模型。对测试网页样本的检测,同样,光先通过特 征提取引擎提取特征数据,并输入到决策树分类器中,分类器根据已构建模型对此进行分类判定,最后将检 测结果输出。 2. 1 特征选取
Abstract: Webshell is a kind of backdoors based on web service. The attacker can obtain Web service management authority by Webshell,so as to achieve the goal of Web service penetration and control. There is little difference between malicious webshell pages and normal webpage,and it can easily escape from detection of traditional firewall and anti - virus software. As Webshell has applied various anti - finding techniques to hide its characteristics,it is not effective to use traditional way based on feature matching to detect variant Webshell. This paper discusses the characteristics and mechanism of Webshell,explores its important features,proposes and implements a detection model based on decision tree algorithm. This model is a kind of supervised machine learning system,it can detect variant Webshell by prior training webpage learning,to make up for the defects of traditional detection method based on feature matching. Combined with Boosting,which is a kind of collective learning method,the stability of this model is further enhanced,and the classification accuracy rate is improved as well. Keywords: Webshell,backdoor detecting,decision tree,Boosting
高级属性
1. 文件操作 2. ftp 操作 3. 数据库操作 4. ActiveX 控件调用
2. 2 决策树 C4. 5
决策树算法能够从无次序,无规则的实例集合中归纳出采用属性表示的树形结构分类规则[4]。该树形
结构的非叶子节点都是属性,而叶子节点则为判断该页面是否是 Webshell 的判定结果。
决策树学习构造过程中,每次都会选择信息增益率最高的属性作为当前子树根节点,然后再对样本不
断地递归分割。然而当样本数据中有污染缺失,或者分枝过细的话,虽然对学习页面样本检测完全正确,但
18
网络新媒体技术
2012 年
表 1 Webshell 检测模型的特征选取
层次属性 属性描述
文档属性
1. 单词数量 2. 不同单词数量 3. 行数 4. 平均每行单词数 空字符和空格数量 6. 最大单词长度
基本属性
1. 注释数量 2. 字符操作函数 3. eval,exec,shell_exec,system 函数调用 4. 系统函数调用数量 5. 脚本区块数 6. 函数参数的最大长度 7. 加解密函数调用
含指令如 include 整合。对此需将相关文件包含进来,然后整体检测。
( 5) 多重编码技术。对特征数据进行多重编码,可以轻易地改变数据特征,达到混淆的目的。因而,对
有多重编码的文件不断进行解码还原,然后再进行检测。
2 基于决策树的检测
基于决策树的检测模型是一种监督的机器学习系统,通过对已标记网页数据进行学习,建立一个树形 结构的决策树,然后据此来检测 Webshell,其框架如图 1 所示。
对于该 Webshell 检测模型,选择良好的特征属性集合可以获得更好检测性能。属性选取应该能够很好 地表现出页面的特征,同时应该包含不同层次的页面属性[3]。若我们把页面所有领域特征全部作为机器学 习的输入,那么该模型会因参数纬度太大而变得异常复杂且过于匹配,导致很难检测出特征混淆的 Webshell,其通用性将大大降低。若特征属性过少,那么将导致模型过于简单而降低准确性,所以应该选择一个 粒度适中的属性集合。本文主要从文档属性,基本属性,和高级属性三个层次来抽取特征。文档属性主要 是页面的文档特征,比如文档长度,单词数量等,基本属性主要是页面的语法和函数调用特征,比如注释的 数量,函数等; 高级属性则是页面的行为特征,如文件操作等。本文选取的特征集合如表 1 所示。
减少,那么所减少的值就是该属性 A 的信息增益度( information gain) ,其定义如下:
∑ Gain( S,A)
= Entropy( S)
-
v∈V( A)
| |
Sv S
| |
Entropy(
Sv)
( 2)
式( 2) 中 V( A) 表示属性 A 的值域,Sv 表示 S 中属性 A 值等于 v 的样本集合。而按照该属性 A 进行分割
企图: 通过 Webshell 篡改网页,植入网页木马,在客户访问时即可执行恶意代码; 植入僵尸木马作为僵尸网络控
制跳板或者控制点; ③植入攻击木马作为攻击肉鸡或者攻击站点; 直接窃取服务器敏感信息等。
1. 2 特征Leabharlann 淆目前主流杀软都是基于特征扫描方式检测,这种扫描方式过于依赖特征库。为避免 Webshell 被检测出 来,各种反检测技术手段被用于隐藏其特征[1]。针对其混淆方法,采取相应对策,可以有效提取其特征数
Research of Webshell Detection Based on Decision Tree
HU Jiankang,XU Zhen,MA Duohe,Yang Jing
( State Key Laboratory of Information Security,Institute of Information Engineering, Chinese Academy of Sciences,Beijing,100093,China)
熵( entory) 刻画了样例集的纯度。给定例集 S,假定有 m 个类别,根据不同的类别可划分为 m 个子集
{ S1 ,S2 ,S3. . . Sm} ,那么此样本的熵为:
m
∑ Entory( S) =
- pilog2 pi
( 1)
i =1
式( 1) 中 pi 是子集 Si 在 S 中所占的比率,即:
据。Webshell 有主要下面几种混淆特征的方法。
( 1) 插入注释等无用信息。比如在 PHP 代码中加入形如“/ * …* /”,“/ / …”注释不会影响代码的正常 执行,但会影响杀软检测[2],所以,在提取和注释无关特征时,先将注释内容去除。
( 2) 字符串连接替换技术。Webshell 调用系统控件时,为避免被检测到调用相关控件,会将控件名字拆
随着因特网技术飞速发展和日益普及,服务器安全问题日益严峻,甚至严重威胁到网络服务的正常运 行。因此及时检测发现服务器的漏洞和后门,保证服务器安全是至关重要。Webshell 常被入侵者用作对网 站服务器操作的后门工具,Webshell 大多由网页脚本语言编写,和其他正常的网页运行环境相同,服务端口 相同,因此很容易穿透防火墙和逃避杀毒软件的检测,相对于二进制编码的程序,Webshell 是纯文本文件,变 形简单,脚本使用灵活,很容易将特征码进行混淆或者隐藏,这使得基于特征匹配的检测方法很难快速准确 检测。本文将对 Webshell 的原理和特性,以及混淆方法进行探讨,然后提出并实现基于决策树学习的检测 模型,可以快速检测出 Webshell。
分,然后连接起来,或在字符串里插入空格等特殊字符,然后再替换掉等。因此,需预先对调用控件,函数和
字符处理函数进行检测。
( 3) 使用加解密技术。对于特征数据可预先加密,在调行时动态解密。由于调用解密函数时,其参数内
容就是加密数据,所以参数长度一般都很长。因此需对加解密函数进行检测以及参数特征。
( 4) 化整为散技术。为避免特征过于集中而被杀软检测到,把一个完整的网页拆分成多个网页,再用包
样本的信息增益率是由其信息增益度 Gain( S,A) 和分裂信息度 SI( S,A) 来决定:
GainRatio( S,A)
=
Gain( S,A) SI( S,A)