(一)恶意代码的发展趋势
经过分析总结,新型恶意代码的发展趋势有以下五种,这也是对通信网络恶意代码进行研究分析的重点内容。
1.抗分析病毒技术
这种恶意代码综合采用了两种技术:一是反跟踪技术,恶意代码在运行过程中的抗动态跟踪能力;二是加密技术,加密恶意代码,使其无法在静态环境下进行阅读分析。
2.插入性病毒技术
PE(Portable Executable)病毒是Win32病毒的重要组成部分,其隐藏技术也是病毒技术的重要部分。分片插入机制是PE病毒隐藏技术中有效的技术之一,根据PE文件每个节空隙的大小,将病毒程序进行分片,然后将碎片插入每个节空隙中,在运行病毒测试程序前,需要通过引导程序对病毒碎片进行重组,并加载到预先申请的内存中。使用分片插入机制可以躲避大部分杀毒软件的检测,从而达到很好的隐藏效果。
3.隐蔽性病毒技术
恶意代码隐藏不被发现的时间越久,它的破坏力就越大。恶意代码主要使用两种隐藏技术:一是通信隐藏,主要包括通信信息、网络流量、端口号、通信信道等内容的隐藏,既可以隐藏通信信息,也可以隐藏通信信道的隐蔽通道技术,这是通信隐藏的关键技术;二是本地隐藏技术,主要包括文件隐藏、进程隐藏、Rootkit隐藏、编译器隐藏和自身加密隐藏。
4.多态性病毒技术
多态变换技术使得恶意代码能够对抗动态反汇编和静态分析技术。实现多态变换技术主要有两种方式:一是基于加密技术的策略,对恶意代码的主要程序进行变换,恶意代码在运行时首先需要解密操作,而后才能执行恶意代码的主要程序体;二是基于变换的策略,在保持程序逻辑功能不变的情况下,利用相同功能指令、指令位置交换、无用的花指令等手段,将恶意代码变换成表现形式各异的程序。
5.病毒自动生产技术
病毒自动生产技术是针对病毒的分析技术而言的,它可以根据设定的条件,变换出不同算法类型、表现形式多样的恶意代码。这种病毒采用内置病毒源代码和编译器的方法,可以随机对恶意源代码进行改动,并编译成新特征码的病毒程序,从而迷惑基于特征码的杀毒软件。
(二)恶意代码应急响应-检测技术
针对未知恶意代码的自动检测技术是恶意代码防范技术的研究热点,目前主要有两大类型的方法,即静态分析技术和动态分析技术。
1.恶意代码静态分析技术
首先,将可执行的恶意代码进行反汇编,即将二进制代码转换成相应的汇编代码;其次,通过使用控制流和数据流分析技术,从而得到源程序的功能。恶意代码如果使用模糊变换技术,将使得反汇编变得非常困难,琳恩(Linn)提出了一种新颖的二进制代码技术,可以对恶意代码自动模糊变换,即使在已知生成方法的情况下也很难破解。恶意代码如果使用不变常量机制,把一个常量加载到一个处理寄存器上,但这个寄存器的值不易静态判断出,也会影响到恶意代码的静态分析。
罗伯特(Robert)、阿纳布(Arnab)等学者总结了目前使用机器学习方法对恶意代码中提取出的静态特征样本进行检测的研究进展。其中,文件特征提取法包括N-gram属性、PE属性等,只考虑样本的静态属性,不考虑其行为特征;特征选取方法,如Gain Ratio,Fisher core,Hierarchical Feature Selection等,旨在降低特征向量的维度,提高特征向量的紧凑程度;分类算法,包括在分类器中,如ANN,DT,KNN等。
2.恶意代码动态分析技术
拜尔(Bayer)等人开发了一种能动态分析Windows恶意代码的软件TTAnalyze,通过在模拟环境中运行未知恶意代码样本,同时记录在运行过程中Windows的本地系统调用和程序调用的Windows API函数。当然,该分析方法需要安装PC模拟软件,由于在模拟环境中运行速度慢,因此会被某些恶意代码利用,从而表现出对抗虚拟环境的特性。此外,由iDefense实验室开发的动态分析恶意代码软件SysAnalyzer,可以实时监控恶意代码的系统、进程、端口、注册表的情况。需要注意的是,TTAnalyze和SysAnalyzer都只能用于分析Windows操作系统下的恶意代码样本。里克(Rieck)等人提出,融合恶意代码行为分析和监督学习的动态检测方法是检测恶意代码运行行为的发展方向。若泽(Jose)等人提出了利用操作序列匹配和状态频率两种模型,从而检测出恶意代码运行时的复制行为。
3.Rootkit检测的方法
针对Rootkit的检测比较困难,目前比较成熟的检测方法有四种:①Rootkit签名检测法,首先对已知的Rootkit进行分析,而后进行签名,Rootkit检测工具采用签名技术模式匹配系统的关键区域。如果存在已知的Rootkit,这种检测是很快的,但对于未知的Rootkit则无能为力。②交叉视图检测法,对Rootkit的几个特定段通过获取任意两个点的信息,进行比较并判断两种信息是否一样,如果不一致,则认为遭到Rootkit的攻击。Sysinternal公司的Rootkit Reavealer就是采用这个方法进行检测的。③完整性检测法,针对文件感染型恶意Rootkit代码的检测技术,应计算出系统标准文件的Hash值,并放入安全的数据库中,在检测时将当前的文件与标准文件进行比对,若匹配,则为正常文件;反之,断定系统被Rootkit攻击。④虚拟机检测法,这是一种新的Rootkit恶意代码检测手段,虚拟机检测技术可实现自动脱壳,虚拟机从文件入口处一条一条地取指令执行,直至解密段指令执行完成为止。其优点是可以有效地检测加密变形的Rootkit攻击。
笔者总结了各种Rootkit检测方法的特点,见表3-3。基于以上分析,提出基于模糊识别和支持向量机(Support Vector Machine,简称SVM)的联合恶意代码动态检测技术,一方面可以提高检测的准确率,另一方面也可以动态检测未知的恶意代码。
表3-3 各种Rootkit检测方法的特点比较
(三)恶意代码应急响应-效果评估
通信网络恶意代码及其防范有效性量化评估是网络安全评估中一个重要并具有挑战性的问题。对于恶意代码攻击评估方面的研究,目前已有的网络攻击模型技术有:基于流量攻击判定的网络安全评估模型,基于系统安全层次分析的安全评估技术层次分析法(Analytic Hierarchy Process,简称AHP),基于指标分析的网络攻击效果评估技术。
1.基于流量攻击判定的网络安全评估模型
它是以攻击流量的种类作为判定依据的网络安全评估模型。其基本原理是:首先,运用Hurst参数建立模糊优先选择决策模型;其次,通过与已知类型的网络流量进行对比,根据比对结果来决定网络攻击的类型;最后,综合考虑网络中路由器遭受攻击的次数、攻击具有的属性、攻击流量的权值等因素,从而对网络流量安全性进行量化评估。
2.基于系统安全层次分析的安全评估技术
该模型分为目标子层、准则子层和指标子层。根据实际情况确定各层次对应的安全准则,可进一步划分为多个安全子准则,而每个安全子准则又对应由多个安全指标来量化描述。其中,可以通过建立两两比较判断矩阵来进行安全指标的量化。
3.基于指标分析的网络攻击效果评估技术
应用排队论,基于整个网络的各类型测量指标,建立网络攻击评估模型。测量指标包括网络信息传输延迟、关键节点信息传输延迟、网络抖动延迟、网络和节点的吞吐量、节点路由表的更换周期、系统服务响应时间、系统恢复时间等因素。当然,在建立攻击效能评估模型时,应根据具体的网络对象、网络承载的业务、网络提供服务的偏重等差别,进行对应的调整和修正。
对以上三种模型的分析及优缺点比较见表3-4。效果评估需要建立评估指标体系,针对攻击的不同阶段,考虑漏洞关联性、攻击的交互流量、攻击属性、攻击的破坏权值等因素,综合运用最优化理论、网络熵理论等技术手段确定各个指标之间的关系,使评估结论更加科学合理。
表3-4 现有网络攻击评估方法的分析优缺点比较
(四)恶意代码应急响应—免疫技术
1.计算机免疫是人工免疫的概念
计算机免疫是人工免疫(Artificial Immune System,AIS)是计算机科学的一个分支,也是继神经网络、模糊系统、进化计算等之后的又一研究热点。AIS已在不同的领域得到了应用,如机器学习、模式识别和分类、计算机病毒检测、异常检测、优化和机器人等。由于AIS具有独特性、自我/非我、区别性、学习和记忆性等特点,因此它非常适合于模式识别领域。从目前应用和提出的模型可以看出,免疫系统特别倾向于解决分布式和动态的环境问题。
目前,基于免疫程序已经产生了一些计算算法,并且这些算法已经得到了应用。其中,一些算法还结合了免疫系统的多个不同进程。基本AIS算法的主要类别有三种,及基于总体的算法、基于网络的算法和进化计算方法。
(1)基于总体的算法
该算法使用的是阴性选择理论、肯定选择理论、克隆选择理论等方法。其中,阴性选择理论提出以替代办法进行模式识别,常见的方法是从存储的信息中进行模式识别,其重点是异常检测,如计算机和网络入侵检测;肯定选择理论是由塞登(Seiden)和切拉达(Celada)提出的细胞自动机模型,该算法保留了与自体匹配的免疫细胞;克隆选择理论使用了与克隆选择有关的基本过程,最初提出这种算法是用于模式识别,后来通过调整得以解决多模态优化任务。阴性选择理论和克隆选择理论已被广泛应用于测试AIS应用的识别能力。
(2)基于网络的算法
该算法利用的是免疫网络理论的概念。其思想来源是:认为免疫细胞的一部分抗体分子表现出类似抗原的性质,能够被其他免疫细胞识别。目前有两种方法,一是连续的基于网络免疫模型,采用微分方程来进行模拟;二是离散的基于网络免疫模型,更加适合采用基于自适应的迭代算法。资源限制人工免疫网络(Resource limited Artificial Immune Network,RAIN)学习算法就是一个典型的应用。
(3)进化计算
目前,在免疫技术中主要包括遗传算法、进化规则两种方法。其中,遗传算法是用于解决搜索和优化的自适应方法,是经典的进化计算方法;进化规则算法是基于两代之间的显性关系,通过采用变异算子,使得在多样性的个体之间保持两代行为的相关性,研究集中于模式识别、自动控制等领域。
2.人工智能免疫算法
(1)基本的人工智能算法
从已公开发表的应用程序和相关论文研究的模型可以看出,免疫系统对解决分布式和动态环境问题特别感兴趣。免疫系统的特点,如独特性、分布性、病原体识别、检测不完善性、强化学习和记忆,都非常适合具有动态的、分布式的、自组织式的、自主发展的系统,具有很高的应用价值。
生物免疫系统是一项具有很大研究价值的议题,因为其具有强大的信息处理能力,特别是它能够理解记忆;具有自我宽容性,以及在分散控制机制方面的分布式特性;能够建立计算模型。在AIS领域中,最近的发展成果在现有的模型中得到了广泛的应用和研究,从免疫学角度出发的新思想(如危险理论)正被逐渐利用起来。尽管AIS技术取得了很多成果,但仍存在着一些问题,最重要的是需要确定每个模型的独特性和实用性,且其扩展性不强。
(2)基于免疫理论的未知病毒检测
基于免疫理论的未知病毒检测能够自动生成低误判率的特征码,其最大特点是具备自主学习能力。基于特征规则的入侵检测系统不能识别未知的入侵方法,即使是事先已知的入侵手段,若改变其表面特征,便能够欺骗入侵检测系统。使用免疫系统的检测机制可以有效地解决这个问题。
有实验表明,该方法可以检测出已知病毒,并且可以识别一些未知的病毒变种,提高了抗体的覆盖率,减少了误报率和漏报率。其不足之处是该技术的理论基础尚未成熟。(www.xing528.com)
(3)基于密码学的恶意代码免疫
从本质上说,安全操作系统实现的恶意代码防范策略均是基于访问控制的逻辑隔离,该防范技术存在两方面不足之处:首先,可信计算基础(Trusted Computing Base,简称TCB)的引用验证机制可能被旁路;其次,由于访问控制存在局限性,限制了其对恶意代码的防范能力。文献中提出了基于密码隔离的控制机制,建立了恶意代码免疫模型,解决了逻辑隔离技术自身的不足;同时,还证明了如果系统的初始状态安全,并且在密钥安全的情况下,系统中任何时刻均不会有恶意代码传播和执行的可能,从而实现对恶意代码的免疫。该技术的缺点是算法复杂度太高,而且只有理论推导,没有实验验证。
(4)基于危险理论的自动入侵响应
基于网络实时危险的自动入侵响应系统模型(Automated Intrusion Response System model based on Danger Theory,简称AIRSDT模型)首先通过计算出实时网络危险和被攻击强度,判断是否进行响应,具有响应速度较快的特点,对拒绝式服务具有一定的抵抗能力;其次,可以与防火墙实现联动,具有协同性较强的优点;最后,在网络实时危险低时,可以自动进行响应回滚,因此具有资源利用率高等特点。但是,根据网络信息系统的重要程度,所采取的自动入侵响应策略有待进一步完善。由此可见,算法处于尚未成熟的研究阶段。
笔者对上述四种免疫技术进行了简单的比较,见表3-5。
表3-5 四种免疫技术的简单比较
3.基于网络的计算机免疫技术模型研究
计算机网络的应用问题与生物免疫系统存在相似性,近年来,计算机免疫技术在各个领域取得了越来越广泛的应用。目前,基于网络的计算机免疫技术是相关研究中的热点,笔者总结了基于网络的计算机免疫技术的最新发展,具体如下:
(1)基于代理技术
采用技术:动态采集多个系统的关键值,包括早期白细胞代理间具体交互,以及后期持续的刺激和感染值,用于研究病毒感染时的紧急响应。
关键技术:树突代理为免疫网络的枢纽代理,T细胞和B细胞代理进行交互,当仿真中B细胞代理交互超过阈值时,则输出成功的结果。
应用场景:动态通信网络环境。
模型特点和不足:使用移动代理,缺乏透明性和可移植性。
(2)QML-Ai Net
采用技术:使用免疫启发算法作为搜索策略,用于定量模型学习。使用Morven形式化模型进行表示,JMorven平台进行验证。
关键技术:采用基于OPT-AiNet技术作为其核心搜索策略和基于QML-CLONALG技术。
应用场景:QML-CLO NALG实验床。
模型特点和不足:不如原来的CLONALG算法结果好,只适合离散值优化。
(3)HFNIN ME
采用技术:联合神经网络理论学习矢量量化和模糊集理论的多表位免疫网络模型,先对网络体系进行粗略训练,然后通过优化训练将抗原归集到最佳位置。
关键技术:能够识别抗原区中同种抗原决定簇的抗体彼此相互关联,这些关联构成网络抗体之间的抑制作用。这种抑制力随着抗体的成熟,最终构建出抗体的最佳集合。
应用场景:实验样本是基准分类问题。
模型特点和不足:两种类型的联合关系不清晰,并且连接复杂度高。
(4)AIRN
采用技术:将原始数据的矩阵看作抗原,数据项的特征值视为抗体,抗体通过彼此交互形成网络,其目的是使用网络揭示原始数据的模式。
关键技术:免疫网络包括多个数据项,每个数据项包含数据值和仿真值,数据项之间是否联系取决于彼此的相似度,再通过网络训练聚合成稳定状态。
应用场景:机器学习数据库UCI和Iris数据集。
模型特点和不足:该模型只是测试了两个数据集,其通用性有待考虑。
(5)NetTRIIAD
采用技术:该模型结合人工免疫系统和常规信息安全的方法,使用免疫启发异常检测进行网络威胁识别,NetTRIIAD模型与误用检测模型、网络监控应用一起作为先天免疫。
关键技术:从先天免疫和自适应免疫系统启发而来,免疫系统分为先天层和自适应层。其中,先天层负责NetTRIIAD的外部数据采集,自适应层模拟免疫系统T细胞和树突细胞的交互。
应用场景:实验在自行开发的原型系统模型中。
模型特点和不足:原型系统与NIDS的接口不清晰。
(6)EINN
采用技术:基于可拓学的免疫神经网络模型,该模型可解决免疫系统中抗体识别和记忆抗原的问题。这个模型在神经细胞激活和控制方面可以做出正确判别。
关键技术:目标函数作为抗原输入,抗体对应于神经网络的结构,计算每个抗体的浓度,从而可以通过激活或者控制抗体来计算抗体和抗原的亲和力,并进行交叉和变异操作。
应用场景:通过Matlab实验,数据来源于非线性函数。
模型特点和不足:优化了INN结构,但是其复杂度高,没有考虑其适用的场景。
(7)CCINM
采用技术:基于协同进化的免疫网络模型,该模型提供电力系统的产生、负荷调度和安全评估的预测,适用演化结构和参数,实现基于实际电力数据的负荷预测。
关键技术:该模型将网络优化目标函数定义为抗原,将单个神经元视为抗体,抗原和抗体的亲和度由目标函数决定,并且使用这个亲和函数来评估和选择最终的问题解决方案,抗体与抗原之间的相互刺激改善了在最佳点附近搜索的效率,从而保证了局部最优解决方案。
应用场景:预测中国东部地区电力短期负荷。
模型特点和不足:基于RBF设计,没有明确的推理提论,而且隐含层的基函数选取存在问题。
(8)AINM
采用技术:提出了一种基于免疫的网络监控模型,建立了自体、抗原、动态取证、免疫耐受、检测器的生命周期,以及免疫记忆的动态模型,给出了相应的递推方程。
关键技术:建立了免疫部件(如自体、抗原、检测器等)随时间变化的递推方程,提出了一种基于免疫的动态取证技术,利用抗原提呈,在免疫应答时即时取证,实时存档。
应用场景:对网络系统中40多台计算机进行监控。
模型特点和不足:只能初步判断系统可能受到了攻击,但对具体遭遇攻击的类型不明确。
由此可知,目前,基于网络的计算机免疫技术主要应用在实现样本聚类、数据预测、实时监控等方面,主要来源于人工智能、移动代理、克隆技术、否定选择、可拓学等技术的拓展,并选择合适的抗原和抗体标识对象。笔者在研究中发现,这些模型主要是对输入的抗原和抗体的表示进行讨论,对其关键技术基本上都是对抗原与抗体之间的亲和力的阈值判定,从而得到免疫的结论,但是没有对输出结果的不确定性进行任何修正。在免疫输出的结果中,肯定免疫应答只占极少数,即只有很小的输出数据是作为免疫应答输出的。所以,免疫输出的结果数据明显存在不确定性和不平衡性,需要对免疫的输出加以修正,从而可以得到更为正确的免疫输出结果。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。