张尚韬
(福建信息职业技术学院物联网与人工智能学院,福建福州 350003)
互联网搜索、网络下载、网络购物、网络支付、网游产业等互联网应用形式多样化,使得浏览网页已经渗透到社会的各个角落.由于系统及应用软件、浏览器插件及网站等的漏洞层出不穷,使得网站挂马活动越来越猖獗[1-5].网页木马不仅威胁到个人信息的安全,甚至可能影响国计民生和国家安全,如何保证网页安全性已经成了安全领域的研究焦点.因此,研究网页木马的检测技术具有显著的现实意义.
网页木马是利用浏览器或浏览器插件的漏洞,向用户机器植入木马的恶意网页脚本[6][7].传统的网页木马检测方法是特征匹配,这种方法不能检测特征码未知的网页木马.本文的主要工作是在研究网页木马行为特征、木马监控技术的基础上,将朴素贝叶斯分类算法应用于网页木马的检测;同时分析了网页木马的代码特征,提出了将链接分析作为基于行为分析的网页木马检测的一个补充;最后给出了一种基于朴素贝叶斯分类算法的网页木马检测模型,完成了检测方案的设计与实现.
在查阅网络上关于网页木马的技术细节的描述,并对网页木马的相关技术进行分析的基础上,本文归纳出网页木马的行为特征如表1.
朴素贝叶斯分类算法[8-11]假定一个属性值对给定类的影响独立于其他属性的值.这一假设称为条件独立,这种假设降低了计算的复杂度,且具有较高的精确度.
贝叶斯分类算法的原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类.朴素贝叶斯分类器的工作过程为:
若样本S有n个特征(A1,A2,...,An),它可看作是n维空间的一个点(X=X1,...,Xn).其中,X1,X2,...,Xn分别为样本特征A1,A2,...,An的取值(n∈N),样本S有m个类别,记为C={C1,C2,...,Ci,...,Cm}(i,m∈N,1 ≤i≤m)。
若给定类别未知数据样本X属于类别Ci,那么分类问题就是决定P(Ci|X),即在获得数据样本X时,确定X的最佳分类.所谓最佳分类,即给定的样本S以及其类别C中不同假设的先验概率的情况下最可能的分类.贝叶斯理论给出了计算这种可能的方法[12-13].
贝叶斯定理基于假设的先验概率,给定假设下观察到的不同数据的概率以及观察到的数据本身,提供了一种计算假设概率的方法,可表示为
P(Ci)表示没有训练数据前,Ci拥有的初始概率,P(Ci)称为Ci的先验概率,反映了所拥有的关于Ci是正确分类机会的背景知识,它应该是独立于样本的.某些情况下,可以简单地将每一候选类别赋予相同的先验概率,通常一般可以表示成训练数据中属于类别Ci的数据个数Si与总的训练数据个数S的比值.P(Ci|X)表示给定数据样本为X时,属于类别Ci的概率:
朴素贝叶斯分类算法假设每个类别相互独立,即各特征的取值相互独立,从而有
贝叶斯分类算法根据计算的后验概率P(Ci|X)的取值大小预测出X的类别,后验概率最大的类别为X所属的类别.
因此,分别计算出X属于每一个类别Ci的概率P(Ci|X),然后选择其中概率最大的类别作为其类别.由此可见,对一个未知类别的样本X,它所属的类别与该样本的特征息息相关.
由于朴素贝叶斯分类算法结合样本的多个特征的取值对样本进行分类,这与将行为分析应用于未知木马判断的原理相吻合.因而,可以将分类算法和网页木马行为分析结合起来判断未知程序是否是网页木马(图1).
图1 为朴素贝叶斯分类算法应用于网页木马判定的流程图
(1)确定应用程序的行为特征
在本文的研究中,确定应用程序主要具有4个特征:注册表中设置启动项;系统目录下拷贝或创建文件;呈现可视化的界面;修改配置文件.
定义:PBC1表示应用程序具有在注册表设置启动项的特征表示应用程序不具有在注册表设置启动项的特征;PBC2表示应用程序具有系统目录下拷贝或创建文件的特征表示应用程序不具有系统目录下拷贝或创建文件的特征;PBC3表示应用程序具有呈现可视化界面的特征表示应用程序不具有呈现可视化界面的特征;PBC4表示应用程序具有修改配置文件的特征表示应用程序不具有修改配置文件的特征.
(2)确定实验数据,分析实验数据是否呈现上述的行为特征
本文选取的实验数据为45个合法程序和37个木马程序,现分析选取的网页木马程序和合法程序是否呈现出上述行为特征.其中网页木马的行为特征是参照权威网站提供的网页木马特征描述确定的;而合法程序的行为特征是将程序运行之后,查看其是否呈现上述特征确定的.
(3)将实验数据分为A组和B组2组数据
A组包含35个合法程序和27个木马程序,其余的合法程序和木马程序归B组.A组作为样本数据,B组用于检验样本A的计算结果.
在35个合法程序中,有11个具有PBC1的特征,3个具有PBC2的特征,28个具有PBC3的特征,6个具有PBC4的特征;在27个木马程序中,有18个具有PBC1的特征,23个具有PBC2的特征,0个具有PBC3的特征,12个具有PBC4的特征.
由式(1.1)和式(1.3)可得
而先验概率P(LP)=35/(35+27)=0.5645,P(T)=27/(35+27)=0.4355.
(5)依据B组的数据验证样本数据的计算结果,得出实验结论
根据贝叶斯分类算法在网页木马判定中的原理,以及上一步计算所得的各项数据,区分B组的合法程序和网页木马程序,并计算漏报率和误报率,以检测贝叶斯分类算法应用于网页木马判定的准确性.
系统共分为4个子模块:管理模块、网页代码分析模块、网页木马进程创建监控模块以及网页木马行为分析模块,如图2所示.各个功能模块的功能如下:
图2 系统结构
(1)管理模块属于界面程序,包括两部分:系统配置和日志查看.系统配置响应用户对系统的控制、配置,如开始、停止、自动配置运行等;日志查看能够将系统产生的日志信息进行提取并查看分析.
(2)网页代码分析模块主要是对网页中的链接和原代码进行分析,抓取网页中的链接,分析链接文件的格式.若是可执行文件,则该网页可能被挂马.
(3)进程创建监视模块对系统进程特别是iexplorer进程中创建的子进程进行监视.
(4)网页木马行为分析模块属于动态监视程序,负责对被锁定的可疑进程进行监视跟踪,搜集程序的实时行为,主要实现对程序是否呈现可视化界面、文件、注册表操作进行监视,进而利用朴素贝叶斯定理进行判定.
管理模块同时启动代码分析模块和进程创建监视模块,在进程监视到可疑的进程创建时,立即启动木马行为分析模块,最后根据判别结果将日志信息写入日志模块中,根据代码分析模块定位被挂马的网页.
系统配置主要为用户提供管理整个系统的接口,包括系统启动、停止和参数配置等功能.当点击开始按钮时,其程序流程如图3所示.
图3 管理模块流程图
当监视功能启动时,启动网页代码分析模块,分析网页中是否有可疑文件,并提取网页中的链接;同时将进程创建检测模块注入iexplore进程中,进程创建检测模块会自动启动监视功能;当发现有进程创建时,加载木马行为分析模块,判断某可疑程序是否是木马程序;最后根据网页代码分析结果和木马行为监测模块的输出判断网页是否挂马,网页代码分析结果从静态方面检测,贝叶斯的网页木马行为分析从动态方面检测,两者结合,增加了判定的准确性.同时,网页代码分析模块对行为分析检测的网页木马进行定位,找出被挂马的网页.
进程创建监视模块主要是对挂接在IE 或系统关键进程中新创建的进程进行检测,一旦可疑的进程创建,立刻通知网页木马行为监视模块对此进程进行监视;同时将可疑的进程创建的子进程当作可疑的木马程序,并通知管理模块,以便检测可疑木马程序是否已经结束,从而能及时释放不必要的资源.进程创建监视模块是以dll形式存在的,由管理模块将该模块注入IE或系统关键进程中,并常驻内存.
运行的流程如图4所示,当进程监视模块被注入IE进程中后,进程创建监视模块会自动实现对监视点函数的挂钩,当进程创建时,拦截此创建进程的信息,并得到新创建进程的信息.
图4 进程创建检测模块流程图
该模块在应用层实现,实现对注册表、文件、可视化界面的创建、修改及访问网络等行为的监视.通过挂钩注册表操作的函数来实现对注册表的监视,由于本文主要对木马程序进行监视,采用API挂钩进行监视,如图5所示.
图5 文件监视模块流程图
该模块主要提取网页中的链接,对直接链接所引用的文件格式进行判断,判断是不是PE文件格式.
直接在当前页下载到本地引用的链接,为直接引用标签.直接引用标签是指当前页下载到本地所引用的标签,含直接引用标签链接的网页会在用户浏览该网页时将标签指定的文件下载到本地的浏览器目录.
间接引用标签是需要用户点击或者执行某些操作,浏览器才会去访问的链接,一般不会直接下载到本地.这些链接通常指向某个新的网页,也有的是提供下载某个文件的链接.网页木马通常是隐藏在多层网页链接之中,因而需要继续分析这些间接引用标签链接所指网页.
该模块流程图如图6所示.
图6 链接分类流程
网页中的文件一般下载到IE临时文件夹中,而网页中的可疑文件通常为PE(可执行)文件.因此,网页中可疑文件的分析原理,就是通过分析待检测文件的格式是否符合PE文件格式,若符合,就是可疑文件.
通过对PE 文件格式的分析,读取PE 文件头的信息,然后判断文件的PE 标志,从而识别出文件是否是PE文件.
本文通过ImageFileType实现,其代码如下:
DWORD ImageFileType(char*lpFile){
CreateFile(…)//打开文件.
CreateFileMapping(…)//创建内存映射文件.
MapViewOfFile(…)//把文件头映象存入baseointer.
bPFiel(…)//判定是否是PE文件
}
(1)测试环境如表2所示
表2 测试环境
测试对象为一个被挂马的网页,即被植入“广外男生”木马的网页木马muma.htm,如表3所示.测试方法分为3步:
表3 测试对象
1)制作网页木马
使用“广外男生”gwboy.exe客户端生成一个Server.exe,漏洞利用工具,生成网页木马muma.htm.
2)上传网页木马
选择表2的操作系统1作为服务器,将网页木马文件上传到服务器的网站目录下,当浏览muma.htm时就会中木马.
3)启动网页木马检测系统
选择表2 的操作系统2 作为客户端,在客户端启动网页木马检测系统,在IE11 访问muma.htm,监视muma.htm的行为,并根据输出日志给出判断结果.
(2)测试结果
(a)网页代码分析结果
网页代码分析模块提取muma.htm网页中的链接,对链接所引用的文件格式进行分析,如图7所示.由图7可以看出,bbs003302.css为可疑文件.
图7 网页代码分析结果
(b)进程创建与行为分析结果
当启动IE11 浏览muma.htm 时,触发Microsoft Internet Explorer 远程任意命令执行漏洞,下载bbs00323302.css和bbs00323302.gif,bbs00323302.css将释放Server.exe文件,Server.exe运行并释放gwboydll.dll,同时设置为开机自启动,该程序执行时并不呈现可视化的界面.图8、图9、图10分别为对进程、文件和注册表操作部分日志.
图8 进程操作日志
由进程创建和行为分析结果可以得出,该程序具有在注册表设置启动项、在系统目录中创建文件的特征,不具有操作配置文件设置启动项和呈现可视化界面的特性,与实验收集到的网页木马行为特征中的“广外男生”的行为特征相符,由本实验收集的木马程序判别结果可以看出,该程序是木马程序.因此,muma.htm是网页木马.
由网页代码分析结果得出,muma.htm被植入了bbs003302.css可疑木马程序.实际上bbs003302.css是由Server.exe伪装而来.
同时利用代码分析模块能够更加准确定位网页木马.对附录中实验收集的B组数据进行测试,测试结果如表4.可见,对木马程序的漏报率为30%,对合法程序的误报率为10%.
表4 B组数据测试结果
由以上的分析可以得出,本文提出的将朴素贝叶斯分类算法应用于网页木马行为的判断,可以检测出网页木马.该检测方法具有误报率低、检测方法简单的特点.但是由于实验数据收集得不完善,影响了分析的准确性.同时,监控技术和参数还有待进一步完善.
本文通过分析网页木马的原理、网页木马植入的一般模型及网页木马的行为特征,提出了基于贝叶斯算法的网页木马的检测模型,并给出了利用该模型进行网页木马检测的设计方案.通过实验数据分析,该方法可以检测出网页木马.由于样本数据收集得比较少,因此影响了判定分析,下一步工作要完善训练集,大幅增加样本数据.