- 相关推荐
基于云安全的主动防御系统多引擎检测设计
特征码扫描首先由反病毒厂商获取病毒样本,再提取样本PE文件的关键特征,以下是小编搜集整理的一篇探究云防御系统多引擎检测设计的论文范文,供大家阅读查看。
引言
互联网为恶意软件提供了多样化的传播途径.为了防范恶意软件威胁,反病毒软件是最常用的解决方案.然而反病毒软件广泛使用的基于特征码的恶意软件检测技术无法应对病毒呈现爆炸式增长背景下的安全威胁.
当前,安全防御研究的趋势是利用云计算技术的强大数据处理与存储能力,提升安全服务.
例如,CloudAV通过在云端部署多个反病毒引擎为客户端上传的文件进行扫描,将传统的反病毒转变成对客户端的云安全服务,但CloudAV对10个反病毒引擎独立检测的结果采用了最严格的决策,使得系统的误报率较高.Ether实现了以透明及外部的方式进行恶意代码分析的平台.Ether系统的透明性使它具有很强的脱壳分析能力,此外,它还能有效抵御绝大部分反虚拟机(anti-VM)检测攻击.
但Ether的细粒度检测方式使其性能开销较高.CWSandbox构造了一个自动化的基于行为的恶意代码分析工具,提供细粒度且较完整的监控.Lorenzo等人提出了一种基于行为的恶意代码云端分析框架.它允许云端分析与用户端相配合共同完成恶意代码的行为分析工作.然而,这种方式的分析对用户使用干扰较多,不适于恶意软件实时防御,且恶意软件可能会逃避这种行为分析.
本文所提出基于云安全的主动防御系统主要包括在云端使用多个杀毒引擎独立对上传的文件进行检测,并对各杀毒引擎产生的结果进行综合决策.
同时,结合硬件虚拟化技术,在云端构建基于系统调用序列的恶意代码分析平台.
1云防御系统的多引擎检测设计
1.1常用病毒检测技术
特征码扫描首先由反病毒厂商获取病毒样本,再提取样本PE文件的关键特征,一般是程序的关键性指令集合即一串二进制位信息作为特征码.将特征码保存到特征库发布后,反病毒软件扫描文件时用特征码比对被扫描的程序来辨别该文件是否存在恶意代码.启发式扫描技术利用病毒的一般行为特征和结构特征判断文件是否包含恶意代码.
例如,病毒典型行为包括访问系统引导扇区、对EXE文件执行写操作或未提醒删除硬盘上数据等。主动防御技术使用基于主机的入侵防御系统(host-basedintrusionpreventionsystem,HIPS)完成程序行为的拦截和记录.用户通过制定规则(rule)控制操作系统中本地程序的执行、对注册表的访问和对文件系统的访问.
如果未知程序执行时触发了既定的规则,HIPS会根据规则库释放并清除病毒,当规则库无法识别病毒时会采用联机检测或人工鉴定,同时将新病毒添加到病毒库.
1.2云防御系统多引擎检测设计思想
云防御系统包括客户端和云服务两个组成部分,如图1所示.云防御系统客户端是轻量级的主机防御程序,负责获取本机文件及报警信息并上传给云端检测.云端则包括云端管理、反病毒引擎(Avg,Avast,Duba和ESET4种)、分析引擎和黑白名单库4个模块.其中,云端管理作为云服务的前端模块与客户端直接通信并调用和管理其他模块,反病毒引擎和分析引擎对客户端上传的文件进行扫描和行为分析,黑白名单库存储已被检测过的文件的MD5值及其安全性.云防御系统可以处理常规文件扫描,文件恶意代码分析和网络报警信息.
其研究内容主要包括以下两个方面.
1)由于单个引擎对可疑文件进行检测的检出率不高,云防御系统采用多个不同类型检测引擎进行独立检测.但是,当多种检测引擎对单个可疑文件进行检测时,相互之间得到的结果可能不一致,因此在这种情况下需要对各个检测结果进行综合决策.云防御系统利用D-S证据理论(D-Sevidentialtheo-ry)对4个独立的检测结果进行综合决策,当综合决策的结果超过预定阈值时认定为恶意程序,而低于该阈值时则认为是正常文件.
2)云端对反病毒引擎不能检出的可疑文件进行基于行为的动态分析.很多恶意程序能够检测是否在虚拟环境或调试状态下被执行,从而具备对抗动态分析的能力.为了能充分检测程序的行为,云防御系统结合硬件虚拟化技术,在全虚拟化环境下透明监控可疑程序的执行,根据程序执行的系统调用序列判断程序的安全性.
1.3云防御系统总体设计
云防御系统的客户端采用轻量级主机防御设计,其功能模块如图2所示,客户端程序分为内核层(Ring0)和应用层(Ring3)两个部分.
内核层有进程监控、注册表监控和文件系统监控3个驱动模块分别完成进程活动、注册表访问和文件访问的监控功能.云防御系统的云端管理程序采用了多线程异步通信的网络框架.
系统架构使得云防御系统能够实现高并发能力,并具有很强的可扩展性.
如图3所示,I/O服务用来执行实际的I/O操作,即用TCP/IP读写网络流与客户端直接交互,客户端发送的服务器请求由I/O服务接收.I/O服务接收字节流后转交给I/O过滤器处理,I/O过滤器根据网络通信协议将字节流编码成消息并把消息发送给I/O控制器处理.I/O控制器根据消息类型调用不同的处理模块,比如消息类型是文件请求时,控制器会调用扫描引擎扫描文件.
处理程序处理完毕后则经过与此前过程相反的过程,I/O控制器将处理程序的结果以消息的形式发给I/O过滤器,I/O过滤器则将消息解码为字节流并转发给I/O服务,I/O服务最后将字节流通过网络返回给客户端(如图3).
2云防御系统的多引擎检测实现
2.1多引擎检测的综合决策
证据理论也被称为D-S证据理论,是一种不确定推理方法,用集合来表示命题,将对命题的不确定性描述转化为对集合的不确定性描述,它的主要特点是在证据中引入不确定性,具有直接表达“不确定”和“不知道”的能力.
当各杀毒引擎检测结果不一致时,云防御系统将利用D-S证据理论进行决策,主要描述为:将在由算法计算得到的可信区间中选取一个数值作为对命题的最终信度,所有候选命题中信度最高者即为决策结果.
D-S证据理论的Dempster合成规则如下:【公式】
2.2报警信息聚类与关联
当客户端向服务器端请求报警信息时,服务端从数据库中读取最近一段时间内的报警信息并从中筛选出具有相同源IP地址或目的IP地址的报警信息集合,以此为数据集使用Apriori算法进行关联运算.
利用Apriori算法,挖掘规则集分为两步:
1)找出报警信息数据集中所有的频繁项集.把支持度大于最小支持度的minSupport的项集(Itemset)称为频繁项集(frequentitemset).可以以迭代的方式找出频繁集.算法伪代码如图4所示.
2)挖掘频繁关联规则置信度大于给定最小置信度minConf的关联规则称为频繁关联规则,利用上一步得到的频繁项集,挖掘出全部的关联规则,如果该关联规则的置信度大于或等于最小置信度,则该规则属于频繁关联规则.
通过Apriori算法处理后的报警信息剔除了误报警,更能反映实际攻击的内部逻辑关联.将这些频繁关联规则返回到客户端,同时在服务端由系统管理员分析关联后的报警信息并做出相应决策.
2.3基于行为的恶意代码分析
恶意软件要广泛传播必然要调用Windows系统API,因而其恶意行为可以表现为各种API调用,最后归结为系统调用.
为了保证上述监控系统调用判断程序的安全性,需要预先生成威胁规则库,对程序进行动态分析时将程序的系统调用序列与规则库中的规则匹配以达到自动化分析的目的.
以一个病毒的典型感染过程为例,病毒为了实现感染要实现以下两个功能:
1)病毒要隐藏自己.
病毒在运行时常常将它真正的程序释放到系统文件夹中,并且与系统文件名称类似以避免被删除,此时使用的系统API可能为CreateFileA或Move-FileA;
2)自动运行.病毒为了使自己在开机时随系统启动,会篡改注册表相应的表项,对应的系统API分别为RegCreateKey,RegSetValue等等.将一个系统调用或系统调用序列定义为一条基本规则,一条或多条规则定义为程序的行为.将一条规则定义为下面的4元组(威胁规则):{ID,Threat,Syscall_length,Syscall_squence}
其中每个字段的解释如表1所示.
恶意代码可以使用变形技术轻易逃避系统规则的匹配检测,例如恶意软件只需将自身的系统调用顺序变换或在原有系统调用序列中插入无意义的系统调用就可以改变自己的系统调用序列.
为此,本系统只关注程序与安全相关的特定系统调用,如表2所示,具体包括读写文件,读写注册表,网络活动以及开启或结束进程和服务的系统调用,而且在检测的时候,将程序的系统调用序列也划分为关于文件,注册表,网络及进程的相关系统调用序列,同一类型的系统调用序列只在规则库中匹配相同类型的规则.
监控程序在可疑程序在虚拟机中执行完毕后,利用其记录的系统调用序列完成判定识别恶意程序的过程,包括以下几步:
1)将样本的威胁度赋初值为0;2)从威胁规则库中读取规则,如果读取成功进入步骤3),否则进入步骤6);3)将程序的系统调用序列与规则库中的规则相匹配,只匹配系统调用,如果匹配成功转到步骤4),否则转到步骤2);4)将系统调用的参数与规则库中系统调用参数进行匹配,如果匹配成功进入步骤5),否则进入步骤6);5)进入本步骤表明程序的系统调用与规则库中恶意行为在调用序列和调用参数上都匹配,可以判定该程序为恶意程序;6)如果只存在系统调用序列的匹配,而系统调用参数不能匹配,则将每次匹配的威胁规则的威胁度累加,若超过阈值则判定为恶意程序,否则判定该程序为正常程序.
3系统测试及结果与分析
3.1功能测试
客户端及服务器端的软硬件环境分别如下:
1)云防御系统客户机的软件环境:操作系统WindowsXPSP3,集成开发环境VS2010并安装云防御系统的客户端程序;硬件环境:CPU为奔腾双核E5300,主频2.6GHz,内存2GB,硬盘500GB.
2)云防御系统服务器端的软件环境:操作系统为Fedora8,虚拟机管理器(VMM)Xen3.1,Java运行环境JDK1.6,Tomcat6Web服务器及MySql5数据库;硬件环境:CPU为至强(Xeon)8核E5405,主频2.0GHz,内存8GB,硬盘1TB;虚拟机软件环境:操作系统为WindowsXPSP3,内存512MB,JAVA运行环境JDK1.6,并分别安装A-vast、AVG、金山毒霸和ESET杀毒软件.
在测试云防御系统的病毒检测率时,使用1789个恶意软件样本让云防御系统的客户端程序进行扫描,耗时约3h.
测试结果如表3所示.4种杀毒引擎的单独检测率分别为88.9%,36.6%,48.9%和76.2%,但是云防御系统的综合决策算法利用这4种引擎的的检测结果取得了95.6%的检测率.
云防御系统的病毒平均检测时间达到11s,这是由于综合决策等待所有引擎检测完毕后才开始运算.
可利用改进的策略进行决策,如系统可以先接受Avast的检测结果作为临时的检测结果,然后等待其他引擎检测完毕再进行综合决策,由于Avast的检测率较高,这样使平均检测时间可以大大缩短而对检测结果没有太大影响.
3.2性能测试
对网络延时进行的测试结果如表4所示.
其中,首次提交响应时间是指云端没有现成的病毒样本,从本地上传文件并检测出结果所需的时间.传输时间是指客户端与云端通信传输病毒样本所需的时间.首次提交响应时间包括传输时间和云端扫描响应时间.命中时间是指云端有现成的样本时,通过上传文件MD5值来判断可疑文件所需的时间,由于在云端数据库中已有保存,查询时间很短.
在大规模应用的环境下,由于云端数据库中保存有大量的样本MD5值及其扫描结果,而各个系统的常用软件基本类似,因而在实际使用中,扫描命中的概率可高达90%以上,不会影响用户正常使用程序.
为了测试云防御系统整体性能(见表5),本文使用标准测试集PCMark05,并选取与CPU和内存相关的10项测试作为基准,以原生操作系统作为对比参考,运行了云防御系统的PCMark05,测试结果如表5所示,相比于原生操作系统,云防御系统系统在其中8项测试中的性能损耗都低于1%,PC-Mark05测试结果显示云防御系统客户端整体性能表现较好.
4结论
本文在基于云的主动安全防御上做了初步的探索和尝试,将客户端的主动防御技术与云端安全检测相结合,为用户提供了更全面的安全防御.在服务器端使用多个反病毒引擎独立检测上传的文件,并采用D-S证据理论决策算法进行综合决策,提高了云防御中多引擎的综合检测率.
【基于云安全的主动防御系统多引擎检测设计】相关文章:
基于ASP.NET的计算机安全检测系统03-07
基于DSP的视频检测和远程控制系统设计03-20
基于PLC的闸门监控系统设计03-07
基于PQRM的PACS系统设计与实现03-07
基于PLC的电机调速系统设计12-07
基于DSP的智能座椅系统的设计03-07
基于DSP的语音处理系统的设计11-22