APP下载

基于BP神经网络的软件行为评估系统

2014-06-06欧阳博宇

计算机工程 2014年9期
关键词:隐层权值危险

徐 婵,刘 新,吴 建,欧阳博宇

(湘潭大学a.信息工程学院;b.智能计算与信息处理教育部重点实验室,湖南湘潭,411105)

基于BP神经网络的软件行为评估系统

徐 婵a,b,刘 新a,b,吴 建a,欧阳博宇a

(湘潭大学a.信息工程学院;b.智能计算与信息处理教育部重点实验室,湖南湘潭,411105)

针对当前国内信息安全领域对于恶意软件的判断智能化程度较低的现状,分析不同类型的恶意软件,提取典型的危险行为特征,对这些行为进行整合并建立一个行为映射库,将软件行为映射成数据,设计算法将其转换成可用于实际神经网络训练的数据。通过反复实验,给出一个适用于训练该类型样本的BP神经网络,并确定其中各个算子和参数值。通过训练该神经网络,建立一个判断可疑软件是否为恶意软件的行为评估系统。实验结果证明了上述设计的正确性,系统的漏报率和误报率仅为1%和3.7%。

信息安全;智能;危险行为;恶意软件;BP神经网络;行为评估

1 概述

随着互联网技术的迅猛发展,各式各样不同功能的软件不断涌现,推进了数字化时代的发展进程。但是在软件发展同时,安全隐患也越来越大,越来越多的病毒、木马、间谍软件(以下简称恶意软件)严重威胁国家、单位、个人的隐私和财产安全。《2012年中国互联网网络安全态势综述》[1]报告显示,我国网站被植入后门等隐蔽性攻击事件呈增长态势,2012年,国家互联网应急中心共监测发现中国境内52 324个网站被植入后门,其中政府网站3 016个,较2011年月均分别增长213.7%和93.1%。2012年,国家互联网应急中心共监测发现针对中国境内网站的钓鱼页面22 308个。网络钓鱼日渐猖獗严重影响在线金融服务和电子商务的发展,危害公众利益。利用病毒实施的可持续攻击活动频现, 2012年,我国境内至少有4.1万余台主机感染了此类特征的木马程序,对国家和企业的数据安全造成严重威胁。

这些恶意软件通常会伪装成正常软件,甚至会具备一定的正常功能,从而达到隐藏恶意行为的目的。因此,软件安全专家必须通过各种方法来发现这些隐藏的恶意行为。由于恶意软件数目增长太快,仅靠有限的人力难以承担,研究一种快速而准确的自动分析技术成为了目前的热点问题。因此,本文使用BP神经网络对软件行为进行自动分析,根据实际需要建设病毒行为库,通过实验结果选择合适的算子并反复调整神经网络中的各个因子,最终得到一个可用的软件行为评估系统。

2 现有方法

目前对于恶意软件代码分析的研究,在专家级别层面,主要采用的是动态分析法。动态分析法,是指让软件在真实或者虚拟环境中运行,观察其行为动作,从而判断其是否包含恶意代码[2-3]。动态分析[4-5]有2类方法,一种白盒跟踪法,即由分析人员逐条跟踪程序运行情况,并予以记录。这种跟踪方法最准确,但却完全依赖分析人员的专业水平,这种手工分析的方法,效率很低;另一类是黑盒分析法,即只记录程序运行的结果,而不考虑这些结果是由何种代码产生。在如何获取程序运行结果的方式上,又有两类方法,其一是在可疑程序运行前后对系统分别取快照,比较两者的不同。但是当恶意代码的行为是非持久性动作时,如读取某些文件内容并将其发送出去,或是将本机设置为临时服务器,这类行为不会对系统造成永久的改变,因此,这种方法具有失效的可能性。另一种是介入到可疑程序运行的过程中,监视其调用的系统API函数,将行为记录结果与行为特征库进行比对,当样本行为的特征类似于病毒行为特征时,就判定该样本存在恶意代码。这种方法可以完全实时地检测到恶意代码运行过程中的全部行为,因此,被称为基于行为的动态检测方法。

这种基于行为的动态检测法易于实现自动化分析,其难点主要集中于对捕获的行为进行综合分析上。目前主流的方法是利用行为规则库来匹配一个软件是否存在危险行为[6-7],从而进一步判断是否为恶意软件。然而不同的危险行为,对于系统的危害等级存在着较大的差别,如同为危险行为,在系统目录下写一个普通的文本文件与写PE文件相比,对于系统的危害程度差别很大。并且某些危险行为仅由一个动作完成,而有些危险行为却需要很多个动作的协同合作,才能达到破坏系统或者窃取隐私的目的。而且即便是某些正常的软件也可能存在一些对系统有危险的行为,典型的例子就是各类安全软件。这种差异导致单纯通过分析一个软件是否具有某一单一的危险行为来判断整个软件是否为恶意软件存在较大的误差。比较稳妥的办法是对所有捕获的危险行为进行综合评定打分,最后给出评判结果,这一过程完全要模拟安全专家的人工分析过程,这需要较高的人工智能水平,目前仍处于研究阶段。

本文通过查找已有的研究资料,使用现有的行为抓取工具,建立了一个较为完善的危险行为特征库。然后结合BP神经网络的相关知识,建立了一个软件行为评估系统,通过对已知样本的训练达到对于未知软件是否为恶意软件的判断。

人工神经网络是由大量简单的处理单元连接组成的非线性系统,由于其具有良好的非线性映射能力,自学习能力以及泛化性,在模式识别、智能控制等领域得到了成功的应用[8]。BP神经网络是应用最广泛的神经网络之一,其学习过程分为前向传播与反向传播两部分[9],采用梯度下降算法调整系统参数。前向传播使输入信息在相应权值、阈值与激活函数的作用下传递到输出层,当输出结果与期望值的误差大于指定精度时,将敏感性进行反向传播,逐级修正各层的权值与阈值;如此反复迭代。最后使误差达到指定精度。BP神经网络是多层结构,由网络节点和节点之间的连接组成,整个神经网络由一个输入层,一个输出层和至少一个隐层组成,每层包含若干个节点,其中隐层节点以及输出层节点都有对应的阈值,网络间各节点之间具有连接权值。整个BP算法的过程,就是通过误差函数计算实际输出与样本期望输出之间的误差,以此进行反向传播,通过反复调整权值和阈值,使误差达到可接受范围。

3 危险行为特征库的设计

定义1 危险行为

针对病毒,蠕虫,木马的特点,将在系统关键位置进行添加或者删除项操作,调用、注入系统特殊进程,打开特定端口,监控键盘鼠标消息,修改、替换或删除系统文件,修改可执行文件路径,向特殊地址发送系统文件等行为,划分为危险行为。

定义2 恶意软件

具有一个或多个危险行为,通过这些危险行为的组合或者叠加最终达到破坏系统,窃取系统用户信息,监控用户动作的目的的软件。

根据危险行为的定义,将软件可能对系统产生危害的动作分为8大类,包括注册表操作、文件操作、进程创建或关闭、系统函数调用、服务操作、网络操作、消息截取、键盘鼠标等设备监控。其中,注册表的操作分为特殊注册表项的删除,更改,添加;文件操作分为特殊文件的创建,读,写,删除操作;函数调用为系统API函数的特殊调用;服务操作分为服务的创建、关闭和删除;网络操作分为恶意网站的访问、打开特殊端口、特殊链入、链出;特征属性主要有添加自启动、创建、修改、添加、删除注册表项、在系统文件夹创建文件、删除系统文件、更改系统文件、注入系统进程、创建、替换、删除、关闭系统进程、打开特定网络端口、访问特殊网站、向特定网站传送文件、关闭或删除服务、开启鼠标键盘钩子等。

3.1 行为归纳

本文利用WSyscheck,SReng,Regmon,Filemon等行为捕获工具,跟踪了数千个恶意软件,采集到大量的危险行为。通过综合分析与去重,最后归纳为602项典型的危险行为,其中注册表行为93项,文件行为191项,函数调用行为56项,hook行为2项,消息行为5项,网络行为25项,进程行为155项,服务行为75项。这602项行为中的某些行为项还代表具有相同特征的一类行为。

在将这些行为整合建立了一个危险行为特征库后,为了方便将软件的各行为表示成一个样本,本文建立了一个映射表,映射表中的每一项代表一种行为动作,整个映射表包含得到的总共602项行为以及这8类行为的正常表示,总计有610项。这样对于任意一个软件,其任一行为都可以通过映射表中的某项来表示,由于篇幅的限制,本文只给出部分行为的特征映射,如表1所示。

表1 部分行为映射

以上行为特征均以XML语言描述,具体的描述方法将另文详述。

3.2 映射算法

取具有代表性的恶意软件和正常软件,当一个软件运行时,捕获该软件的所有行为,对应行为映射表,保存相应的行为所对应的值。为了能够准确表示正常软件的行为权值,在映射表中对于每类行为项设计了一个正常情况下的映射值。例如,若某一软件没有文件项的操作或无危险文件操作行为,则置样本文件项值为映射表第95项的值。对于同样类型的行为具有多项的软件,将这几项行为一起映射成训练样本,对于多次出现同一种行为的,只取一次。通过以上方法的使用,每一个软件,都可以由一组数字表示成一个样本。

对于任何一个软件,将其行为转换成样本所用的映射算法如算法1所示。

算法1

(1)分析软件的行为数目N。

(2)根据定义2,对于每一个行为Ti(1≤i≤N),分析Ti是否为恶意行为。若是恶意行为,保存其对应的映射表中的数字,i←i+1。

(3)重复步骤(2)直到i>N。

(4)分析保存的数字,若不存在映射表中某一类行为所对应区间的数字,保存该行为区间初始值。如:若不存在文件行为或无恶意文件行为,即保存的数字中不存在一个96~286之间的数字,则保存一个数字95,表示文件项的行为为正常行为。其他区间分别表示如下:注册表(1~94),文件(95~286),网络(287~312),hook (313~315),函数调用:(316~372),服务(373~448),进程(449~605),消息(606~610)。

(5)输出保存的数字所对应的映射项的初始权值,将其作为样本值保存。

(6)对于为正常软件,置期望输出为0,对于恶意软件,置期望输出值为1。

3.3 样本训练

通过样本采集算法,运行具有代表性的各类软件,得到的样本的映射数据,由于篇幅限制,本文给出部分样本映射数据,如表2所示。

表2 部分样本映射数据

得到样本数据后,再通过算法2将其转化成样本集合。

算法2

(1)读取样本个数N。

(2)定义一个N行610列的数组StudyData,将数组元素值初始化为0。(3)对于样本S1到SN,执行步骤(4)~步骤(6)。(4)从样本文件中读取样本Si(1≤i≤N)的映射数据个数m。

(5)对于数据a1~am,执行以下步骤:

1)对于Si中读取的第j个数据aj,将其转化成数字numj。

2)将样本数组的第i行第numj列的数字赋值为1。

3)跳转到步骤(5.1),直到j大于numj。

(6)跳转到步骤(4),直到i大于N。

通过上述算法,N个样本全部存在了数组StudyData中,每行就是一个样本。

3.4 神经网络的构建

根据参考文献[10-12]的介绍,本文结合实际应用情况,建立一个如图1所示的BP神经网络。该神经网络由一个输入层、一个隐层、一个输出层组成。其中,输入层元素个数为610,隐层元素个数为610,输出层元素数目为1,其中,Vkl(k=1,1≤l≤610)表示隐层各节点与输出层的权值;Wij(1≤i≤610,1≤k≤610)表示输入层各节点与隐层各节点的连接权值。

图1 BP神经网络结构

3.5 BP神经网络中各参数的选择

采用BP算法来训练样本时,BP神经网络的正向传播通过输出转换函数来调整,反向传播通过权值阈值调整实现。权值调整由式(1)、式(2)来调整[10]。

其中,pl为学习过的样本集次数;x″和x′分别为隐层至输出层的输出函数与输入层与隐层的输出函数的导数;η为调整因子。在本文中,输出层至隐层的转换因子由a表示,隐层至输入层转换因子用b表示。3.5.1 输入层到隐层的输出函数选择

根据参考文献[11-12],本文采用了Sigmoid函数:f(x)=1/(1+e-x)。

3.5.2 输出函数的选择

由于没有可供借鉴的输出函数选择方式,对于输出函数的选择只能通过实验获得。对于同样的样本,训练30 000次后,实验得出数据如表3所示。其中,f(x)=1/(1+exp(-x))为Sigmoid函数,其余均为线性函数。

表3 输出函数选择实验数据

综合以上实验数据,最终选择了线性函数y= 1.0+x/5 000。

3.5.3 调整因子的选择

输出层至隐层的调整因子为a,隐层至输入层调整因子为b,对于已经选择好的输出函数,在设置收敛到总误差为0.75(选取该误差能较快看到实验效果)时,所用时间的单位选择秒(s)时,收敛所用时间的实验结果如图2和图3所示。

图2 调整因子a对收敛时间的影响

图3 调整因子b对收敛时间的影响

实验结果显示,在取a=1.6,b=1.2时,收敛速度最快。

4 实验结果及分析

对于所取的具有代表性的805个样本,经过多次实验,在取参数a=1.6,b=1.2时,能最好地满足训练不趋于最小化的同时误差在预期范围内。得出如输入层与隐层之间对应的权值如表4所示,隐层到输出层的权值如表5所示,隐层阈值如表6所示,输出层阈值为-14.276 027。限于篇幅,均只列出部分有代表意义的数据。

对于所得到的神经网络,从国内某著名安全网站的病毒样本区[13]选取493个样本作为测试样本(不与实验样本中的样本重复),样本类型及数目如表7所示。

将163个正常软件与上述样本混合,利用本神经网络进行测试,误报6个,误报率为0.037;仅漏报5个,漏报率为0.01。说明本BP神经网络设计是成功的。另外,在大多数文献中,反向调整因子b的取值应在0.1~0.9之间,但笔者通过反复实验发现该值为1.2时效果反而最好,具体原因还有待进一步分析。

表4 输入层与隐层权值(用二维数组存储)

表5 隐层至输出层权值(用一维数组存储)

表6 输出层阈值(用一维数组存储)

表7 恶意软件汇总

5 结束语

本文尝试将BP神经网络应用于信息安全领域。先将软件行为映射成可以用于训练的样本,设计并实现了一个以软件行为为输入神经元的BP神经网络,该神经网络能较准确地通过软件的行为自动评估该软件是否为恶意软件。同时编制了一个恶意软件行为自动分析系统,分别实现了对软件行为的抓取和对行为的分析部分。其中的行为分析部分即利用本文所述方法实现。目前该系统已用于某安全部门的实际工作中,用户反映情况良好,具有较高的实际应用价值。但自动分析结果与技术人员人工分析结果相比,准确性上仍然有一定的差距,下一步将尝试应用其他人工智能算法(如SVM,KNN,ELM等)来探索恶意行为的自动分析方法。

[1] 国家互联网应急中心.2012年中国互联网网络安全态势

综述[EB/OL].(2013-03-19).http://VVV.cnnic.net. cn/gjymaqzx/aqzx-hydt/201303/t20130322_39118.htm.

[2] Moskovitch R,Feher C,Elovici Y.Source Unknown Malcode Detection——A Chronological Evaluation[C]// Proc.of IEEE International Conference on Intelligence and Security Informatics.[S.l.]:IEEE Press,2008:267-268.

[3] Yu Wei,Boyer C,Chellappan S,et al.Peer-to-Peer System Based Active Worm Attracks:Modeling and Analysis[C]//Proc.of ICC'05.[S.l.]:IEEE Press, 2005:295-300.

[4] 敬 锐.恶意代码检测系统的研究与实现[D].成都:电子科技大学,2010.

[5] 李 明.基于网络行为分析的未知恶意代码检测系统的研究与实现[D].成都:电子科技大学,2009.

[6] 李舟军.基于沙盒仿真的可执行程序恶意代码检测工具的研究与实现[D].长沙:国防科学技术大学,2008.

[7] 张小康.基于数据挖掘和机器学习的恶意代码检测技术研究[D].合肥:中国科学技术大学,2009.

[8] 谭 骏.基于自适应BP神经网络的网络流量识别算法[J].电子科技大学学报,2012,41(4):580-585.

[9] Sedki A,Ouazar D,Mazoudi E E I.Evolving Neural Network Using Real Coded Genetic Algorithm for Daily Rainfall-runoff Forecasting[J].Expert Systems with Applications,2009,36(3):4523-4527.

[10] 冯 定.神经网络专家系统[M].北京:科学出版社,2006.

[11] 胥小波.基于并行BP神经网络的路由查找算法[J].通信学报,2012,32(2):61-68.

[12] 贾立山.基于随机参数调整的改进反向传播学习算法[J].同济大学报,2011,39(5):751-756.

[13] 卡饭论坛.病毒样本[EB/OL].http://bbs.kafan.cn/ forum-31-1.html.

编辑 金胡考

Software Behavior Evaluation System Based on BP Neural Network

XU Chana,b,LIU Xina,b,WU Jiana,OUYANG Bo-yua
(a.College of Information Engineering;b.Key Laboratory of Intelligent Computing& Information Processing,Ministry of Education,Xiangtan University,Xiangtan 411105,China)

In current,since judging the malware in information security area in China has relatively low intelligence,this paper analyzes a large number of malicious softwares,and extracts the typical characteristics of dangerous behavior,then integrates these acts and builds a mapping library for these behaviors,which is used for transfering the behavior into data. It also designs an algorithm to make the data can directly be used for training.Through myriads of experiments,a BP neural network suitable for training type is designed,and each operator and parameter are determined.By training the neural network,this paper establishes a system to judge whether the suspicious one is a malware.Experimental result shows that this idea is right,and the false alarm rate and false negative rate are 1% and 3.7%.

information security;intelligence;risk behavior;malware;BP neural network;behavior evaluation

1000-3428(2014)09-0149-06

A

TP309

10.3969/j.issn.1000-3428.2014.09.030

湖南省自然科学基金资助项目(12JJ3066);教育部重点实验室开放课题基金资助项目(2013IM02);湖南省“十二五”重点学科建设基金资助项目。

徐 婵(1988-),女,硕士,主研方向:信息安全;刘 新(通讯作者),副教授、博士;吴 建、欧阳博宇,硕士。

2013-07-24

2013-10-28E-mail:liuxn_new@163.com

猜你喜欢

隐层权值危险
基于RTD可编程逻辑门的n变量函数实现算法
一种融合时间权值和用户行为序列的电影推荐模型
CONTENTS
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
喝水也会有危险
基于权值动量的RBM加速学习算法研究
基于多维度特征权值动态更新的用户推荐模型研究
拥挤的危险(三)
话“危险”
BP神经网络隐层单元数确定方法