恶意代码检测

2024-08-19

恶意代码检测(精选七篇)

恶意代码检测 篇1

长期以来,内核态Rootkit针对操作系统内核进行攻击,对系统安全构成了严重威胁。由于其运行在系统内核层,并拥有最高的系统控制权限,可以通过对内核进行一些特定的修改,并在其中添加恶意模块,实现在系统底层为恶意代码的运行提供后门和保护机制,从而成为了一种隐蔽性和破坏性极强的恶意程序。

为了应对这种新的威胁,自从这种恶意程序出现以来,学界针对其进行检测和预防的相关研究在不断深入,对内核代码和数据结构的完整性保护方法也在持续更新。为了提高隐蔽效果,近几年来,内核态恶意代码进一步发展,出现了通过对系统的启动过程进行劫持来加载自身的恶意代码。这种恶意代码把自身存放在操作系统之外,例如BIOS以及其他主板插件的ROM、硬盘主引导区 ( MBR) 等,能够在操作系统启动之前获得运行权,规避操作系统的防护措施,顺利进入并破坏系统,从而提高了其隐蔽性。其部分遵循了传统内核态Rootkit的原理并沿用了实现技术,通过实现操作系统启动劫持,在隐蔽性和破坏力上有了进一步的提高。本文将这种恶意代码称为启动型恶意代码。近几年来出现的一些流行的恶意代码如Stoned Bootkit、 TDL系列、鬼影系列、BMW等都具有启动型恶意代码的特点。

目前针对这种新型恶意代码的研究已经开展,文献[1]介绍了通过修改硬盘MBR对Windows操作系统进行启动的Bootkit,文献[2]介绍了一种通过修改NTLDR系统文件对Windows操作系统进行启动劫持的方法,文献[3]研究了计算机硬件后门的可行性并通过对主板网卡ROM进行修改实现了一个启动劫持的后门原型。这些研究主要针对一些使用特定启动劫持手段的恶意代码如Bootkit进行单独研究,没有对启动型恶意代码作为整体进行分析,在研究思路上也只对专注于其启动劫持方式,没有对这种恶意代码的存储模式、生命周期等进行分析。本文在以上研究的基础上,深入分析了几种典型的启动型恶意程序,重点研究其生命周期的运行原理和技术特点,进一步揭示了启动型恶意程序运行的一般规律和整体视图,并在此基础上对目前检测方法的研究现状和不足进行了分析,提出了改进建议。

1 启动型恶意程序的发展历史

本节将对启动型恶意程序出现背景和发展历史进行简要介绍,通过了解其发展脉络,有助于对其进行整体上的把握。

1. 1 早期雏形( 1990 年以前)

启动型恶意代码出现的历史要远远久于恶意程序,1988年出现的PAKISTANI BRAIN病毒和1989年的Stoned病毒是最早的启动型恶 意代码。这两种病 毒通过感 染硬盘的 引导区 ( MBR) 来感染整个操作系统,但并没有对系统进行后续的破坏。从现在的角度来看,这两种病毒很容易被检测和清除,但它们劫持操作系统启动的特性为后来出像的恶意代码提供了技术思路。

1. 2 发展阶段( 1990———2000 年)

在这一阶段出现了破坏力很强的恶意程序,如1992年的MICHEANGELO和1998年的CIH。这类恶意程序除了利用操作系统MBR进行启动劫持之外,在劫持成功之后还运行了致命性的承载程序对系统进行了破坏,如清除掉系统硬盘数据等。 从技术上来说,由于在此阶段还没有出现恶意程序相关技术,这种恶意程序相比前一阶段虽然在功能上有所增强,具有较大的破坏力,但在隐藏性上并没有较大的改进,仍然不难被检测和清除。

1. 3 Bootkit 阶段( 2000———2010 年)

2000年以后,内核Rootkit和使用Rootkit技术的恶意程序大量出现,Rootkit的隐藏特性使得它成为了操作系统完整性的破坏者。在此期间,出现了结合内核Rootkit和操作系统启动劫持的恶意程序,即Bootkit。这种恶意程序结合了Rootkit出色的隐藏能力、对操作系统内核拥有的高权限和先于操作系统运行自身的能力,凭借这些优势,Bootkit对操作系统安全构成了严重威胁。这一阶段出现的Bootkit有很多,如2009年黑帽大会上由Peter Kleissner展示的stoned Bootkit,2008—2011年欧美国家爆发的TDL系列魔影病毒以及2010年在中国大陆流行的鬼影病毒等。这类程序的共同特点是针对操作系统引导区( MBR) 进行感染; 通过感染MBR进一步感染操作系统启动文件,实现对操作系统的劫持; 通过对操作系统的劫持隐蔽加载恶意程序驱动,从而在操作系统安全机制起作用之前完成恶意程序的加载和运行。这类恶意程序能够有效绕过操作系统的安全机制, 而且,由于其能够对操作系统内核进行修改,甚至破坏恶意软件检测系统赖以生存的系统环境,导致整个操作系统处于一种不可信的状态,使得在线检测方法无法对其进行有效应对。目前针对Bootkit较为有效的检测手段大都采用离线式检测方法。

1. 4 固件 ROM 阶段( 2010———)[4]

由于Bootkit的启动劫持通过感染MBR来实现,使得检测系统可以着重对MBR进行完整性保护来防止感染。在2010年前后,又陆续出现了新的启动型恶意程序,感染目标更加底层化,指向了BIOS ROM、网卡ROM等主板固件ROM。在2009年的黑帽大会上,Rafal Wojtczuk和Alexander Tereshkin展示了如何通过堆溢出漏洞利用程序绕过Inter BIOS的数字签名验证, 对BIOS进行刷新。2011年出现的BMW病毒通过连续感染BIOS ROM、MBR和Windows系统启动文件来获得操作系统控制权,被感染主机在不对BIOS进行处理的情况下无法将其彻底清除。除了BIOS之外,主板上的扩展ROM也是潜在的被利用对象,在系统启动的POST自检阶段,BIOS对各个扩展ROM进行检查,将其中存放的内容复制到内存中,并执行这些ROM中的初始化代码,对扩展ROM进行感染可以获得与感染BIOS同样的攻击效果,并且更加爱隐蔽和难以清除。文献[3]研究了对主板网卡ROM进行感染进而在主机启动阶段对其进行初始化之际感染MBR和操作系统。

目前,在对固件ROM的利用方面,存在的一个前提条件是如何对固件ROM进行刷新。从棱镜门事件中我们可以看出完成这些步骤虽然比较困难,但仍然是可行的,因此利用固件ROM的恶意程序将对操作系统安全构成很大的挑战。

2 启动型恶意程序实现原理

根据启动型恶意程序的运行于活动方式,将其生命周期划分为四个阶段: 操作系统启动劫持、启动中劫持、加载恶意程序驱动以及启动后活动,分别分析每个阶段的实现原理,并在此基础上分析总结其使用的关键技术。

2. 1 启动前劫持

启动前劫持是指恶意代码在计算机加电启动到MBR开始引导操作系统这段时间内获取执行权,对计算机的控制行为。 包括第一阶段对BIOS ROM或其他固件ROM的劫持和第二阶段对MBR以及其它引导程序的劫持,在这两阶段中,计算机运行在实模式下,依靠BIOS中断来执行关键功能。首先,我们对计算机从开始启动到引导操作系统这一过程进行分析。图1展示了计算机启动过程中从BIOS到MBR的引导过程。

在这一引导过程中,包含了两个重要的实模式中断INT 13h和INT 19h。BIOS通过19h中断从软盘、光盘或硬盘MBR中选择一个启动分区,然后使用13h中断将启动分区中的引导程序Bootloader加载到内存中,最后由Bootloader继续引导系统启动。 启动型恶意程序利用系统这一启动方式的特点,采用逐级中断挂钩的方式对计算机在这一阶段的启动进行劫持,其大致的步骤如下:

1) 首先通过某种方式( 如ISA模块) 将恶意模块刷写到BIOS ROM或者其他主板固件ROM当中,替换掉计算机启动时BIOS或主板固件ROM中需要在POST自检阶段运行的正常代码。

2) 系统重启时将运行固件ROM中的恶意代码,恶意代码挂钩BIOS 19h中断,用定制的中断向量替换BIOS原有19h中断向量。

3) 恶意代码将系统控制权交还给BIOS,并由其继续引导计算机正常启动。

4) BIOS在选择启动分区时引发19h中断,被恶意代码定制的中断向量截获。

5) 在新的19h中断处理程序中,恶意代码挂钩BIOS 13h中断,使用定制的13h中断处理程序替换原有13h中断向量,并在新的中断处理程序中加入若干个特征码搜索匹配功能模块。

6) 恶意代码把系统控制权交还给BIOS,并由其继续加载MBR等启动分区中的Bootloader继续引导系统启动。

图2展示了前面所述的劫持步骤,使用这种劫持方式的典型恶意程序是Ice Lord Bootkit,它通过在BIOS ROM中植入恶意模块依次劫持19h和13h中断,进而在操作系统启动之前获得执行权,并通过对13h中断进行挂钩,在挂钩程序中加入了代码特征搜索匹配模块,在下一阶段BIOS通过13h中断加载操作系统文件时,可以再次获取系统控制权并对操作系统内核进行修改。

对主板上其他固件如网卡ROM的利用原理与利用BIOS ROM类似,恶意程序开发者通过将ISA模块刷写到固件ROM, 并替换固件原有的初始化代码,BIOS在POST自检阶段会调用主板上各固件ROM中的初始化程序,这时恶意程序就可以像Ice Lord Bootkit一样获取系统控制权并执行一系列后续操作。

2. 2 启动中劫持

启动中劫持是指从引导程序Bootloader加载操作系统启动文件到系统内核启动完成这一过程中进行劫持。操作系统的启动贯穿了实模式和保护模式,这一阶段之后计算机的运行和操作系统密切相关,并受到操作系统保护。目前出现的启动型恶意程序绝大多数基于Windows系列操作系统,因此在后续的讨论中主要以目前主流的Windows vista/7 /server 2008等Windows Vista family操作系统为例进行启动中劫持分析。

如图3所示,左边的实线流程表示操作系统正常启动的流程,右边的虚线流程表示被恶意程序劫持后系统的启动流程。

在正常的启动流程中,操作系统的启动始于Bootloader加载操作系统启动文件,此时处理器仍然处于实模式,对硬盘的读写依赖BIOS的13h中断处理程序。首先,Bootloader通过13h中断读取操作系统第一个启动文件Bootmgr到内存。Bootmgr由一个16-bit的stub和一个32-bit的PE可执行文件Osloader两部分构成,其中stub运行在实模式下,用于把处理器切换到32-bit的保护模式,并且提供了访问16-bit实模式的接口。当Bootmgr被加载到内存后,首先运行stub,stub读取操作系统的启动配置数据( BCD) ,再跳转到Osloader执行,同时处理器模式切换到保护模式。接着,Osloader加载操作系统的第二阶段启动文件Winload. exe和Ntoskrnl到内存,并跳转到Winload. exe执行。Winload. exe进行系统初始化,然后跳转到Ntoskrnl继续执行初始化。Ntoskrnl是PE格式的操作系统内核映像,系统正是通过Nkoskrnl完成了操作系统启动的大部分工作,加载并运行系统运行所需要的各驱动程序,直到系统启动完成。

启动型恶意程序对于操作系统启动中的劫持,就是在操作系统正常启动的流程中插入实现特定功能的目标代码,通过系统的正常启动,将恶意代码如木马、病毒等以驱动程序的形式, 在不被管理员发现的情况下随着系统正常驱动程序一起加载并运行。而图3右半部分的虚线流程是一种典型的劫持方法, stoned Bootkit就使用了这种方法,大致分为以下几个步骤:

1) Bootloader调用13h中断读取Bootmgr,而13h中断在前述的启动前劫持中已被挂钩,调用13h中断将会使恶意代码获得控制权。

2) 在挂钩的13h中断处理程序中,首先调用正常的13h中断流程把Bootmgr读取到内存中,通过内存特征码查找技术把一段预先选定的特征码替换成call Entry指令,Entry处存放有恶意程序下一阶段运行所需要的一系列代码。

3) 将系统控制权交还给Bootmgr,系统开始正常运行,由stub跳转到Osloader执行,并把处理器切换到保护模式。在保护模式下,系统加载Winload. exe到内存。

4) Osloader在跳转到Winload. exe之前执行到前面的特征码位置,此时特征码已被替换为call Entry指令,因此Osloader跳转到恶意程序的入口地址Entry继续执行。

5) Entry处的恶意代码从Osloader开始的内存地址处通过查找特征码的方式搜索Winload. exe的地址,对Winload. exe进行挂钩,挂钩代码首先执行正常的Winload. exe,将Ntoskrnl加载到内存,然后在内存中查找Ntoskrnl的地址,对Ntoskrnl进行代码修补。

6) 被代码修补后的Ntoskrnl继续引导系统启动,对Ntoskrnl中用于加载驱动的关键函数和内核数据结构进行修改, 利用Ntoskrnl的执行把恶意的驱动程序和系统正常的驱动程序一起加载并运行。

整体上看,操作系统在这一阶段的启动分为实模式和保护模式两个阶段,启动型恶意程序在实模式阶段通过2. 1节中挂钩的13h中断处理程序对这一阶段加载的启动文件进行代码修补,为保护模式阶段再次劫持系统提供入口。在保护模式阶段, 恶意程序对这一阶段加载的启动文件根据需要依次进行代码修补,从而在系统正常启动中再次获取操作系统控制权。恶意程序在对操作系统启动中的整个劫持过程,每一阶段都遵循先读取启动文件,再对其在内存中的映像进行劫持,这一过程的劫持方式可以是挂钩,也可以是代码修补。最后通过Ntoskrnl的运行,将恶意驱动与系统正常的驱动程序一起加载运行。

2. 3 加载恶意程序驱动

在操作系统PE格式的内核映像文件Ntoskrnl开始执行时, 系统执行的实际上是内存中被代码修补过的Ntoskrnl映像。在这个被代码修补过的Ntoskrnl映像中,恶意程序驱动和其他正常的系统驱动一起被加载到了内存,并添加到驱动列表Ps Loaded Module List中,从而通过Ntoskrnl的运行,恶意程序驱动也得以执行。这个过程的关键部分是Hook_Winload对Ntoskrnl进行代码修补,其大致流程如图4所示。

Hook_Winload通过调用内核映像Ntoskrnl中的一系列导出函数,将恶意程序驱动加载到内存,并将其与正常的系统启动驱动链接到一起,从而在Ntoskrnl运行时和系统启动驱动一起被执行。

2. 4 启动后活动

当操作系统启动完成时,恶意程序驱动也随之启动并运行, 该驱动可以具有一个完整运行态恶意程序的全部功能,也可以作为一个临时加载器。通过它来加载其他的恶意程序运行,大体上讲,它可以完成以下几种功能:

1) 作为恶意程序对恶意程序以及自身的活动( 进程、文件、 端口等) 进行隐藏;

2) 进行键盘击键记录等隐蔽行为;

3) 对恶意程序检测系统所依赖的操作系统执行环境进行破坏;

4) 作为加载器引导其它恶意程序加载运行。

2. 5 启动型恶意程序关键实现技术

在前四小节中,对启动型恶意程序按照其在操作系统启动中不同阶段的活动,简要介绍了其主要的执行流程,在每一阶段中,恶意程序都使用了一些特定的技术,其中有些技术是从早期恶意程序就开始大量使用的成熟技术,如挂钩和代码修补,另外一些技术是启动型恶意程序出现以后才开始运用的。

1) 挂钩技术

挂钩技术是从恶意程序出现早期就有的成熟技术,它对内核中的重要函数指针、系统调用入口地址进行替换,从而当这些函数被调用执行时,跳转到其他的地址去执行,而这些地址是恶意程序恶意代码所在的地址。通过挂钩技术,实现了对系统控制流的劫持。启动型恶意程序多处利用了该技术,如实模式下对13h中断的劫持、保护模式下对Winload. exe的劫持等。

2) 代码修补技术

与挂钩不同,代码修补技术不对函数地址直接进行替换,而是在函数体内部对其代码进行修改,使其跳转到恶意程序定制的代码序列执行。需要注意的是,在不了解函数内部工作机理的情况下,代码修补技术和挂钩技术通常在劫持了系统控制流并执行了定制的代码序列之后,还要执行原有的函数,完成系统正常的功能。这是因为恶意程序对操作系统控制流的劫持是有选择性、有目的的劫持,为了实现恶意代码的隐藏,恶意程序只对和自身相关的控制流进行劫持和重定向,而不破坏系统正常运行的功能。启动型恶意程序大量使用了代码修补技术,如实模式下对Bootmgr的修改以及保护模式下对Ntoskrnl的修改等。

3) 内存特征码扫描与定位

启动型恶意程序在操作系统启动阶段为了持续获得执行权,对操作系统启动中加载各启动文件采用挂钩或代码修补方式进行了多级劫持。能够进行这种劫持的一个重要前提就是能够在内存中对劫持点进行定位,如挂钩需要定位内核中函数的地址,代码修补需要在内存的代码块中选择和定位修改点。启动型恶意程序采用了内核特征码的扫描与定位的方法来解决这一问题。

4) 内核导出函数地址提取

为了使恶意的恶意程序驱动能够和正常的系统驱动程序一起随着操作系统启动被加载执行,需要对Ntoskrnl进行代码修补,利用其一系列导出函数将恶意程序驱动加载到内核内存,将驱动文件中的符号重定位并将恶意程序驱动链接到Ps LoadedModule List链表上。完成这些工作首先需要找到Ntoskrnl中各相关导出函数的地址,由于Ntoskrnl是PE格式的文件,因此可以定位其导出表的内存地址,并按照导出函数的哈希值在导出表处进行查找并定位。

5) 代码存储与访存

表1展示了近几年的几个典型的启动型恶意程序在操作系统启动阶段的存储和访存方式,表的第2和第3列分别启动型恶意程序在实模式和保护模式下存储空间的选择,第4和第5列分别表示其在实模式和保护模式下访存方式的选择,第6列表示其访存层次。

启动型恶意程序在存储和访存方式上,主要考虑了三方面的问题: 一是可用空间的大小和方便性的问题,理论上计算机的所有存储空间包括硬盘空间和固件ROM等都是可以利用的, 但实际上固件ROM的存储空间有限且刷写困难,因此启动型恶意程序大都会利用硬盘空间。另外,实模式下计算机的访存依赖13h中断,在保护模式下的访存依赖特定的文件系统。这也限制了恶意程序的访存方式。二是存储和访存的隐蔽性问题。理论上,在保护模式下,由于文件系统的存在,启动型恶意程序可以利用操作系统文件系统存储并使用系统调用来访存, 但为了提高其隐蔽性,启动型恶意程序往往没有采取这种简单直接的方式,而操作系统对硬盘空间的利用往往不够充分,为恶意代码提供了一些可利用的保留空间。例如在Windows操作系统中,硬盘前53个扇区、硬盘最后一个分区结束位置到硬盘最后一个扇区之间都有保留的空间。因此,启动型恶意程序通常选择硬盘的保留空间来存储其文件,并通过实现一个自定义的文件系统来访问。三是单级访存与多级访存的选择问题。为了适应固件ROM和硬盘保留空间大小的限制,启动型恶意程序通常把后续的功能模块的访存安排在恶意驱动启动完成之后, 也就是恶意程序启动完成后的运行阶段,只把启动直接相关的功能模块放在固件ROM和硬盘保留空间当中,采取两级或多级的访存和加载方式,在启动完成之后,再由恶意程序驱动来加载其他的恶意功能。表1展示的几种典型启动型恶意程序存储和访存方式的选择印证了这一点。

3 对启动型恶意程序的检测

目前针对启动型恶意程序检测的研究已经逐渐开展并取得了一些成果。下面对目前已知的检测方法进行简要介绍,主要包括ISA模块完整性检测、MBR完整性检测、中断向量表检测、 基于可信计算的检测等。

3. 1 ISA 模块和 MBR 完整性检测[5]

ISA( Industral Standard Architecture) 是一种旧的系统总线标准,目前已经被PCI( Periphearl Component Internect) 总线标准所替代,但是为了保持与旧主板的兼容性,目前的BIOS仍然保留了对ISA标准的支持,而目前的针对BIOS ROM的启动型恶意程序就是以ISA模块的方式存在于BIOS ROM当中。因此,目前的检测方法根据ISA模块是否存在于BIOS ROM当中来判断BIOS ROM是否被修改。而MBR完整性检测则是针对MBR Bootkit的,主要是采用了传统的完整性检测方法,对系统原始MBR进行备份,然后采用一些完整性检测算法进行判断。

3. 2 中断向量表检测[6]

中断向量表( IVT) 存储了所有中断处理程序入口地址,由于其功能的特殊性,启动型恶意程序多次对其进行了修改,如攻击BIOS ROM的恶意程序修改了INT 13h和INT 19h中断,其中INT 13h被恶意程序用于在实模式下对数据的存取操作,INT 19h中断被用于在BIOS将启动权交给Bootloader时进行劫持。 对中断向量表的检测方法有很多种,例如完整性检测、地址范围的检测等。

3. 3 基于可信计算的检测[7,8]

可信计算的思想是在主板上增加一个名为TPM( Trusted Platform Module) 的芯片,通过TPM芯片,计算机能够在启动过程中从BIOS开始,对启动中的所有引导文件或代码进行完整性检测,并通过检测依次向后传递系统的信任链,通过逐级传递的方式确保之后启动的硬件和运行的代码都是安全可信的。而启动型恶意程序不可避免地要对一些计算机长期存储的代码或文件进行永久性修改和破坏,可信计算正是通过这种思想对启动型恶意程序进行检测。

但是,目前针对启动型恶意程序的检测仍然存在一些问题。 例如ISA模块检测只能对采用ISA方式破坏BIOS ROM的攻击进行检测,目前的BIOS已经开始逐渐被UEFI BIOS所替代,而针对UEFI的攻击也已经出现,目前的检测方法对其无效。从根本上说ISA模块检测方法只关注了BIOS ROM的刷写方法, 依赖和恶意程序无关的工程方法,没有从启动型恶意程序挂钩13h和19h中断的原理入手,无法对其进行准确定位。针对MBR的完整性检测只能针对MBR Bootkit,无法应对针对BIOS ROM等固件ROM的攻击,中断向量表检测和基于可信计算的检测也面临同样的问题。总体上讲,在启动型恶意程序技术特点鲜明的情况下,目前的检测技术没有对这些特点进行准确把握和应对,大都采用了完整性检测这种相对粗放式的应对策略, 具有较大的改进空间。

另外,目前检测方法普遍存在的一个突出问题是过于依赖在线检测,而由于恶意程序可以对操作系统进行任意的修改,因此检测系统其检测手段所依赖的系统调用、中断处理程序、内核数据等都有可能是被恶意程序修改过的,检测结果不够准确,粗放式的完整性检测与在线检测的不可信一起造成了目前针对启动型恶意程序检测效果不够理想。

4 结 语

本文主要分析了近年来出现的基于操作系统启动的恶意程序实现原理、技术特点,按照其在操作系统启动不同阶段的活动进行了较详细的论述,并对目前检测技术的现状和不足进行了简要分析。

从恶意代码检测现状来看,内核恶意程序仍然是目前网络和系统安全的重要威胁,长期以来,在成熟的商业产品中,对于恶意程序的检测一直依赖于类似传统病毒的特征码检测方法,这种方法无法应对功能强大的新型0day恶意代码。目前,基于操作系统启动阶段劫持的恶意程序已经成为了安全领域的最新威胁,其先于操作系统和安全软件启动并绕过系统安全机制; 根植于硬件ROM当中难以引起用户注意,发现后也难以清除; 具有传统恶意程序藏身于操作系统内核、破坏内核数据的隐蔽性。 所有这些特性使其成为了一个难以应付的敌手,并且已经被近几年的一些功能强大的其他恶意程序广泛使用,如何有效应对这种威胁是安全领域面临的一个亟待解决的问题。

根据目前的分析,启动型恶意程序检测难点主要集中在两处: 一是其能够劫持操作系统并先于系统启动,从而根据需要随意修改内核代码并绕过操作系统的安全机制; 二是其根植于操作系统内核,具有和系统内核一样的权限,使得普通的在线检测模式无法拥有一个可信的运行环境。针对第一点,目前Windows 8操作系统有效利用UEFI BIOS和操作系统的签名验证机制,相对于之前的系统有了很大的进步。虽然针对UEFI BIOS的攻击仍然存在,但有效提高攻击者的代价和难度仍然是安全领域取得的进步,并且安全厂商对此仍在不断改进。另外,针对启动型恶意程序的技术特点我们可以对传统的检测手段做出改进,例如启动型恶意程序很大程度上依赖固件ROM和硬盘保留空间的存储,并且在实模式下依赖BIOS的中断处理程序,检测系统可以在相对地对固件ROM、硬盘保留空间加强监控和保护,以提高检测效果。针对第二点,目前在线检测无法保证检测效果的可信,因此,检测系统应该尽量采用离线检测的方式并结合蜜罐、沙箱等虚拟执行环境对其进行隔离培养,通过离线的静态分析与虚拟隔离环境下的动态执行,能够比传统的检测手段提供更好的检测效果。

摘要:内核态恶意代码作为破坏操作系统内核,隐藏其他恶意代码的一种恶意程序,已经成为了操作系统安全的重要威胁。近年来出现的一种新的伴随操作系统启动加载的恶意程序通过对计算机启动过程进行劫持,在操作系统启动完成之前实现自身的加载和运行。其结合了普通内核级恶意代码特点和优先于操作系统启动并根植于系统硬件等优势,比普通内核级恶意代码具有更强的隐蔽性和破坏性。分析这种新型恶意代码。首先对其技术发展进行梳理,然后重点针对Windows下典型的启动型恶意代码,分析其在操作系统启动过程的不同阶段中环环相扣的实现技术原理。最后分析了目前检测技术现状,指出现有的检测方法过于依赖在线检测和完整性检测,从两方面提出了改进建议。

恶意代码检测 篇2

网络的普及为恶意代码传播带来了巨大的方便。通过网络, 恶意代码容易实现大规模的传播, 给网络安全带来巨大威胁。如果能通过对网络传输包的分析, 检测出恶意代码的传播, 对预警恶意代码的大规模爆发具有重要意义。

目前流行的恶意代码检测方法, 主要有基于行为的和基于特征码的恶意代码检测方法, 以及混合型的检测方法。传统的反病毒软件, 大多基于特征码, 其主要思路是, 通过静态扫描文件内容, 将文件内容和特征库中的特征进行匹配。因此, 特征码的提取是这种检测方法的技术核心, 一般通过对恶意代码进行逆向分析, 提取具有恶意代码特征代码段的方法获得。特征码检测方法的优点是, 对特征库中存在的恶意代码具有非常高的检测成功率, 能精确地检测出恶意代码的类型甚至是恶意代码的具体名称, 能在恶意代码首次进入计算机的时候而不是恶意代码运行以后进行检测。其缺点也很明显, 需要频繁更新特征库, 不能检测未知和变形的恶意代码, 对于恶意代码的每一种变形, 都需要在特征库中加入相应的特征, 才能检测对应的恶意代码, 导致特征库过于庞大。另一类基于行为的恶意代码检测方法, 是在程序代码运行期间, 监视其行为, 当程序的行为触发预定义规则的时候, 发出警报并挂起恶意行为。这种检测方法的优点是能检测未知和变形的恶意代码, 不需要频繁的检测规则库更新, 但是它的误报率和漏报率相对特征码检测方法要高, 且必须恶意代码运行在系统中以后才能检测。由于基于特征码检测方法在检测效率和准确率等方面的优势, 相对于基于行为的检测方法得到了更广泛的应用。

由于恶意代码在网络中传播的时候, 与正常网络通信行为无任何差异, 并不会表现出任何恶意行为, 所以基于行为分析的检测方法不能用于检测在网络上正在传播中的恶意代码。特征码检测方法可以用于检测通过网络传播中的恶意代码, 但是在大流量网络中对网络数据包进行还原, 存在时间和空间开销问题, 而且传统的特征提取方法提取的特征往往过长, 在网络传输中, 这些特征很容易被分割到多个网络数据包中, 导致检测失效。另外, 现在的恶意代码的种类层出不穷, 数量越来越多, 导致特征库也越来越庞大, 特别是在对网络数据包检测时, 匹配特征库花费的时间过长, 要么会影响网络的吞吐量, 要么会导致丢包率过高, 漏报率提升。

本文提出非包还原恶意代码检测的特征码提取方法 (Non-Packets-Reducing Based Malware Signature Extraction Method, 以下简称NPR恶意代码特征提取方法) , 采用了自动化与人工相结合的恶意代码分类方法、基于片段的恶意代码特征提取, 以及基于覆盖范围的特征码筛选技术, 在一定程度上解决了上述问题, 实验结果表明, 效果较好。

2 NPR恶意代码特征码提取方法

NPR恶意代码特征提取方法, 其基本思想是对恶意代码样本库中的恶意代码进行分类, 然后对每一类恶意代码提取若干能表征此类恶意代码的特征码, 最后对提取到的特征码进行筛选, 选择满足条件的特征码来构建特征库, 如图1所示。这种方法的优点是, 能显著减小特征库的规模, 明显减少匹配特征库的时间花费, 同时有效降低特征码因为文件被分割被截断的概率, 降低漏报率。

2.1 自动化与人工相结合的分类

对恶意代码样本按相似性进行分类, 这是NPR特征码提取方法的第一步, 也是关键步骤, 只有对恶意代码进行准确的分类, 后面才能提取得到同一类恶意代码的共同特征。

对于恶意软件的相似性, 即分类准则, 我们采用 (加载方式、自身的隐藏、对硬件和系统注入、复制与传播、危害系统功能) 五个方面进行表征, 对于不存在某一或某些方面功能的情况, 该项可以空缺。

具体实施的时候, 如果采用人工方式进行分类, 可以准确掌握恶意软件的功能和技术特点, 实现对恶意软件的精确分类。但是由于恶意代码的数量巨大, 这样做工作量巨大, 需要大批训练有素的工程人员, 成本较高。也可以采用开发自动分类系统, 进行自动化分类, 但是由于自动分类缺乏对代码语义的解析, 可导致分类不够精确。我们采用机器辅助人工分类的方法。为了提高分类的效率, 借助了开源虚拟机进行开发。自动分类系统先对开源的虚拟机进行裁剪, 去掉不必要的功能, 以提高虚拟机的运行效率, 然后在虚拟机中安装相应的操作系统, 将内核模式的监控程序加载到操作系统内核, 以监控恶意软件加载和运行过程的特征, 最后让恶意软件在虚拟机中运行起来, 把具有相似特征的恶意软件归为疑似同一类恶意软件。采用这种方法实现对恶意软件进行自动分类的技术优势是分类速度很快, 同时通过监控虚拟机可以获得程序执行时底层的信息, 准确性相对较高。最后分析人员对自动分类系统的结论进行核实, 实现恶意软件的准确分类。

2.2 基于片段的特征码提取

传统方法提取的恶意软件特征码, 是在恶意软件的整个空间范围内寻找能唯一标识的该恶意软件的字段, 这些字段构成了其特征码。因此, 采用这种方法得到的恶意软件的特征码具有全局性, 在使用特征码进行匹配时, 匹配的范围要求使用整个恶意软件。

基于NPR特征码提取方法与此不同, 它是对恶意软件的片段进行特征码提取。对于提取到的较长片段恶意软件特征码, 由于获得的信息比较全面, 因此误报率相对较低, 但进行检查时也要求使用较长的恶意软件片段, 否则其漏报率将显著提高;相对的, 对于提取到的较短片段恶意软件特征码, 由于要求的信息较少, 因此误报率相对较高, 但在检测时不需要获得恶意软件的完整样本, 在只能获得较短的恶意软件片段时也能获得较好的检测效果。

基于片段的特征码提取思路是, 按照前述恶意软件分类方法, 同一类的恶意软件必定有相似的代码段片段, 或者相似的特殊指令的调用。这种NPR特征码提取方法采用静态启发式技术来进行特征码的提取, 主要是因为静态启发式技术能进行代码级的分析, 对未知的恶意软件也有一定的检测能力。

因此, 可以对每一类恶意软件的特征代码段采用静态启发式分析技术进行代码级的分析, 模拟代码执行逻辑, 提取若干条特征码。由于是对每一类恶意软件相类似的代码段进行特征提取, 这样的特征码具有通用性, 在一定程度上避免了为每一个恶意软件提取一个或多个特征, 导致特征库过于庞大的问题。采用代码静态启发式分析技术提取的特征码视为某种语义行为的操作序列, 可以是连续的代码序列, 也可以是由通配符连接的多个代码序列。

为了更好地在漏报率和误报率之间做好平衡, 使其误报率、漏报率和检测成功率都控制在合理的范围之内, 需要在为NPR特征提取方法获得的特征码中引入采用传统方法提取的特征码中没有的参考量, 即特征码在恶意软件中的跨度。本文使用特征码的覆盖范围的概念, 来精确表示每条采用NPR特征码在恶意软件中的跨度。所谓特征码的覆盖范围, 是指在采用NPR特征码提取方法获得的特征码的第一条指令和最后一条指令在恶意软件中的实际间隔长度, 单位用字节表示。特征码覆盖范围的信息需要在构建特征库的同时进行收集, 并取每一条特征所对应的恶意软件片段的最大值。

2.3 基于覆盖范围的特征码筛选

最后一步是对提取到的每一类恶意软件的通用特征码进行筛选。如果提取到的特征码的覆盖范围越小, 在恶意软件通过网络传输时或者将本身代码分段注入到其他系统文件中时被分割的几率就越小。

因此筛选的最重要的依据是特征码的覆盖范围。特征码的覆盖范围表示了特征码在理想状况下能够识别恶意软件所需要的最短的片段长度。特征码的覆盖范围越小, 说明它工作需要的特征码片段的长度越短, 在实际应用中该特征码被分割的可能性也越小, 检测的成功率越高。因此在提取特征码和筛选特征码时要尽量挑选覆盖范围小的特征码。在对每一类恶意软件提取到的通用特征中选择特征码覆盖范围小特征码来构建特征库;在特征码覆盖范围相似的情况下, 可以优先选择特征码长度相对较小的特征码来构建特征库。这样不仅可以有效降低特征码被分割概率, 也能在一定程度上减小特征库的规模, 提高匹配特征库的效率。

3 实验设计与实验结果分析

为了测试NPR恶意代码检测的特征的性能和效果, 从恶意软件样本库中随机选择1000个恶意软件样本, 大小为3GB的文件组成测试样本, 设计两个实验来测试检测效果。

3.1 不同特征码的覆盖范围

本节统计了基于恶意软件分类的检测引擎使用的特征库中, 恶意软件的加载方式、自身的隐藏、对硬件和系统的注入、复制与传播、危害系统功能的五大类型特征码的覆盖范围的分布情况, 结果如图2所示。

由图2可以发现, 随着样本覆盖范围的增加, 五大类型的特征码覆盖比例也在增加。除恶意软件危害系统功能类的特征码外, 其他四种类型的特征码中, 覆盖范围小于400字节的特征码占该类特征码总数的比例均超过10%。覆盖范围小于800字节时, 除恶意软件危害系统功能类的特征码外, 其他四种类型的特征码均超过总数的30%。恶意软件危害系统功能类特征码的覆盖范围较大, 覆盖范围小于1400字节的特征码超过了该类特征码总数的40%。

覆盖范围只是理想状态下进行检测的理论上最小的恶意软件片段的大小, 在实际工程应用中, 由于恶意软件的片段长度过长, 有效的恶意代码段可能被分割, 导致检测失败。对于实时性要求高的系统, 为了提高运行效率, 需要确定多长的恶意软件片段才能进行有效检测。对实时性要求不高的应用可以将引擎接受的恶意软件片段的最小长度设为特征库中覆盖范围最小的特征码的覆盖范围。为此, 需要统计恶意软件样本库中的样本在分割成小片段情况下的检测情况, 为获得实际应用环境下, 能有效检测恶意软件片段的最小长度提供实验支持。

3.2 不同特征码长度的漏报率

本文采取的获得有效检测恶意软件片段的长度下限的方法是将恶意软件样本库中的样本均匀的分成较小的片段, 然后使用对应的特征码对其进行检测, 统计每一类特征码在目标片段大小不同时的漏报情况, 以此来为检测引擎最小有效识别片段大小的设置提供依据。在实际应用中, 应该以对检测的实时性要求和实际可以截获的恶意软件片段的长度等实际情况来设置检测引擎读取恶意软件片段的最小长度。统计的实际情况如图3所示。

从图3中可以发现, 随着恶意代码片段的增加, 漏报的情况逐渐降低。以加载方式类特征码漏报率降低最为明显, 危害系统功能类特征码漏报率降低最不明显。以硬件和系统注入类的特征码为例, 在将恶意软件样本按顺序划分为大小为800字节的多个片段时, 漏报率最低的, 其漏报率接近80%;片段大小为600字节时, 其漏报率超过85%;片段大小为400字节时, 其漏报率超过97%。

因此, 对于特征码检测引擎所接受的恶意软件片段的最小长度, 需要根据具体的使用环境和对实时性的要求确定。综合分析表明, 根据具体使用环境及对实时性的要求, 基于NPR的检测所设置的恶意软件片段要求, 最小不少于512个字节, 如果片段长度短于512个字节, 检测引擎应丢弃该片段并返回进行下一目标片段的检测。

4 结束语

本文提出的基于NPR的特征提取方法, 在一定程度上解决了传统的特征码检测方法缺乏对小段恶意软件片段的识别能力, 和特征库过于庞大而导致的检测效率低的问题, 对小段恶意软件片段具有一定识别能力, 但同时也增加了漏报的可能性。因此还需进一步研究如何继续提高对小段恶意软件片段的识别能力和降低漏报率的方法。

参考文献

[1]李晓勇, 周丽涛, 石勇, 郭煜.虚拟行为机制下的恶意代码检测与预防.国防科技大学学报, 2010年1期.

[2]陈洪泉.恶意软件检测中的特征选择问题[J].电子科技大学学报, 2009, 38:53-56.

[3]金庆, 吴国新, 李丹.反病毒及特征码自动提取算法的研究[J].计算机工程与设计, 2007, 28 (24) :5863-5866.

[4]陈健, 范明钰.一种基于恶意软件分类的特征码提取方法.计算机应用, 2011.

[5]王蕊, 冯登国, 杨轶, 苏璞睿.基于语义的恶意代码行为特征提取及检测方法.软件学报, 2012年, 23 (2) .

[6]DAI Jian Yong, GUHA R, LEE J.Efficient Virus Detection Using Dynamic Instruction Sequences[J].Journal of Computers, 2009, 4 (5) :3-6.

[7]Levine John, Grizzard Julian, Owen Henry.A methodology to detect and characterize kernel level rootkit exploits involving redirection of the system call table[J].Proceedings-Second IEEE Information Assurance Workshop, 2004:107-125.

[8]Levine John G, Grizzard Julian B, Owen Henry L.Detecting and categorizing kernel-level rootkits to aid future detection[J].IEEE Security and Privacy, 2006, vol (4) :27-32.

恶意代码检测 篇3

关键词:恶意代码,异常检测,关联分析,架构设计

在日趋紧张的互联网恶意代码泛滥的时代, 各类检测工具和安全产品相继问世, 但层出不穷的恶意代码依然不能完全被检测出来, 并且恶意代码特征的检测会导致系统的处理速度越来越慢, 影响了检测工作的效率。针对这一问题, 本文提出了以异常检测规则精炼特征检测的方式, 打破了传统的一条或者多条规则对应一条恶意代码的检测模式, 从而形成优质化的检测规则, 提高了处理效率。

1 系统的需求分析

1.1 需求分析的原则

在检测系统进行需求分析的前期工作中, 要遵循三点原则: (1) 理解用户需求并将需求清楚地表达, 用户的需求是基于业务活动的需要, 为实现更好的效果, 通常采取活动图等措施来进行业务流程的阐述; (2) 要建立行为描述以及模型场景, 实现业务流程和场景之间的有效联系并采取图例描述策略更加直观地增强用户体验; (3) 分解活动模型, 为形成可操作性的鲁棒图, 需要以一定的逻辑原则来对用户业务工作进行分解。

1.2 需求分析的范围

在检测过程中, 关联分析和提取工作是两个最重要的用户需求, 首先要对检测规则进行更新, 建立有效的规则库, 检测符合规则的特征分析结果并开始分析活动, 同时要对新获取的恶意代码结果进行更新;在检测阶段, 通过采集数据、预处理数据、模式匹配数据三个步骤, 如果检测结果与规则库具有关联性, 则对恶意代码的结果进行报警。

1.3 需求分析的场景

需求分析的场景可分为对特征检测的升级场景、对异常检测的生成场景以及对恶意代码的检测场景。其中, 对特征检测的升级场景, 主要是由管理员手动或设定系统自动更新检测规则库, 如制定定时自动更新升级时间周期的参数;对异常检测的生成场景, 主要是以手工操作的方式对新生成的特征检测规则进行关联运算, 最终挑选具有检测价值的规则导入检测规则库;对恶意代码的检测场景, 主要是经过数据采集、数据预处理和模式匹配三个过程的关联分析, 最终对恶意代码输出告警的工作。

2 系统的架构设计

2.1 概要设计

概要设计分为:逻辑概要设计、物理概要设计以及运行概要设计三个方面, 本文从这三个方面描述系统架构的逻辑结构、各部分的物理拓扑组成和整体的运行条件, 与详细设计中的开发接口设计和数据通讯存储设计衔接。

(1) 逻辑概要设计:本系统的逻辑架构分为三层, 首先是担任信息输出展示的用户界面层, 其次是对恶意代码进行检测的分析处理层, 最后是建立外部数据通讯的通讯层。

(2) 物理概要设计:本系统由检测引擎、客户端、规则库服务器、交换机四个物理组件组成, 内网放置客户端, 外网放置规则库服务器, 内外网均可放置的是检测引擎和交换机。

(3) 运行概要设计:在用户界面层中, 负责执行技术操作人员的指令, 输出分析处理层的返回信息;在分析处理层中, 负责用户界面层和通讯层之间的信息传递, 并作关联分析处理;在通讯层中, 负责将分析处理层的执行指令运行之后返回呈现, 并实现外部网络环境的数据交互。

2.2 详细设计

(1) 开发设计。开发设计包括数据采集模块设计、数据预处理模块设计、规则库组件设计以及关联算法和模式匹配的引擎设计。数据采集模块和数据预处理均由C++编写, 经编译形成可执行文件。其中数据采集模块需具备调用Libpcap和Winpcap库的功能, 数据预处理模块需具备调用PCRE库和fstream库的功能;规则库组件的可由Java编写, 为具备规则库手工和自动升级、恶意代码检测等控制功能, 需利用java.lang.Runtime实现;关联算法和模式匹配的引擎设计分别使用Java和Perl语言编译, 关联分析利用Apriori算法, 需调用weka包。模式匹配的预处理数据读取工作需使用到File::Tail和IO::File包, 恶意代码的写入工作需使用DBI包。

(2) 数据设计。数据设计是针对恶意代码的储存设计, 包括恶意代码数据库管理、检测规则库升级配置和检测规则库。恶意代码数据库采取My SQL作为管理系统, 定义恶意代码事件的发生时间、网络协议名、发生源和目标的IP地址、发生源和目标的传输层端口;对于检测规则库升级配置, 采取XML格式的文件, 自动以升级功能的开关标签、特征检测规则的升级服务器IP地址、自动升级的时间规则和周期说明;检测规则库包含着数个代表着检测规则的ASCII字段。

3 结语

恶意代码攻击原理剖析 篇4

随着计算机技术的发展, 恶意代码开发技术和网络防范技术也在不断升级。研究恶意代码的设计技术, 掌握恶意代码的行为模式, 成为网络安全防范的基础工作, 也是网络安全防范重要工作之一。恶意代码技术和网络防范技术的研究是相辅相成的两项工作, 通过掌握恶意代码的关键技术, 熟悉恶意代码的工作原理和工作流程, 可以提高对恶意代码分析工作的效率, 进而可以更快更全面对系统进行维护, 对恶意代码进行查杀。

1 恶意代码概述

恶意代码是一种可以中断或破坏计算机及网络的程序或代码。一些恶意代码可以将自己附在宿主程序或文件中, 而另外一些恶意代码则是独立的。虽然一些恶意代码破坏力很小, 但大多数恶意代码可能造成主机系统崩溃, 敏感信息泄露, 消耗主机资源造成系统性能下降, 也可能阻塞网络影响正常工作, 或为攻击者创造条件, 使其绕过系统的安全程序。根据这一定义, 恶意代码可分为病毒、特洛伊木马、蠕虫、逻辑炸弹、恶作剧程序和流氓软件等, 相关描述如表1。

恶意代码行为表现各异, 破坏程度千差万别, 但基本作用机制大体相同, 攻击过程不相同, 如表2所示。

随着恶意代码技术的发展, 各种恶意代码之间的界线已不那么明显。一个恶意代码程序可以具有双重或多重特征, 有些恶意代码可能既是蠕虫又是木马或既是病毒又是木马, 或者同时是病毒、蠕虫和木马的特点。比如CodeRedn就是一个蠕虫木马双特征恶意代码, 它首先采用蠕虫技术, 利用微软IIS的漏洞感染目标计算机, 然后把一个木马程序下载并植入到目标计算机中。多种恶意代码技术相互结合是恶意代码发展的趋势, 这类恶意代码往往具有更大的破坏性, 防范难度也更大。

2 恶意代码实现入侵的相关技术

随着计算机技术的发展, 恶意代码的实现技术也在不断更新和升级, 防护和查杀难度也变得越来越大。其技术主要集中在尽量的隐蔽, 这样才能达到不断的实现预定的破环行为的目的, 归纳起来主要涉及渗透技术, 自启动技术, 自我保护技术, 隐蔽通信, 攻击技术等。

2.1 渗透技术

渗透技术的任务是保证恶意代码能够植入到目标主机中, 可以通过如下方式:感染可执行程序、分区表和数据文件 (如:宏) ;通过移动介质;通过人、社会工程方式;借助于系统和软件漏洞;通过电子邮件、Web网站和网页、P2P文件共享、即时通信工具和ARP欺骗方式等。

2.2 自启动技术

自启动技术的任务是保证恶意代码在受害主机下一次开机启动后也被激活。自启动的方法有很多, 归纳起来主要有:通过服务启动、通过添加注册表启动项启动、通过文件关联启动、通过修改系统配置文件启动、作为其他程序插件启动、通过文件绑定方式启动六种。

2.3 自我保护技术

自我保护技术是使常用的检测工具无法检测到恶意代码的存在, 或者即使检测到存在也无法对代码进行分析和清除。通过自我保护技术可以延长恶意代码的生命周期, 使其入侵的范围和破坏程度增大, 自我保护技术可分为三大类:

2.3.1 反静态分析

(1) 自身隐藏在注册表、重要文件或系统文件夹等隐蔽性很强的位置, 躲避反恶意代码软件的检测。

(2) 加壳/多态技术:是通过一系列数学运算, 将病毒代码或动态链接库进行压缩或加密, 以达到体积变小和加密的目的, 有的恶意代码甚至使用不同的加壳软件进行多次加壳或使用随机密码进行加密, 使加壳前后的恶意代码各不相同, 使反恶意代码软件无法通过特征码识别, 从而加大恶意代码分析的难度。

(3) 变形:恶意代码传播到目标后, 其代码本身或结构在空间上、时间上具有不同的变化, 使同一种恶意代码不同个体各不相同。恶意代码变形发展有四个阶段, 在这四个阶段当中加密病毒阶段、单变形和准变形阶段都是恶意代码在结构或相对位置进行变换基础上使用了加密技术, 而全变形阶段实现了恶意代码真正意义上的变形, 无论代码本身还是代码结构都有变化, 使它的变体之间都各不相同。

2.3.2 反动态跟踪

(1) 进程隐蔽技术

(1) 线程插入:是将要实现的功能程序做成一个线程, 并将此线程插入到合法进程中, 使之作为此进程的一个线程来运行。

(2) 写入动态连接库:把任务代码写入动态连接库文件中, 并把这个动态连接库装载进合法的目标进程当中, 当目标进程执行时, 会调用该动态连接库执行恶意代码设定的任务。

(3) 操作系统是由内核 (kernel) 和外壳 (shell) 两部分组成的, Windows操作系统内核运行于ring 0级, 通常被称为核心级, 拥有最完全最底层的管理功能, 负责一切实际的工作, 包括cpu任务调度、内存分配管理、设备管理、文件操作等;外壳运行于ring 3级, 通常被称为用户级, 是基于内核提供的交互功能而存在的界面, 它负责指令传递和解释。

用户级Rootkit:API函数是WINDOWS提供给应用程序与操作系统的接口, 运行于ring3级, 为了实现系统服务钩挂, 可以修改API导出的函数, 插入跳转指令, 使之执行某个特定函数后转回, 也可以禁止原函数的调用。

核心级Rootkit:代码控制权限达到和内核一样的运行级别, 甚至进入内核空间, 拥有了和内核一样的访问权限, 因而可以对内核指令进行修改, 甚至篡改API, 这样用户级检测无法发现内核操作被拦截。

(4) 阻止或监控系统对进程的检测, 以此来避开检测。

(2) 动态端口:目前, 大多数杀毒软件通过在系统中搜索被打开的端口号, 并与已知的恶意代码的特征端口号加以比较来判断是否有恶意代码正在活动。这种方法对付使用静态端口号的恶意代码十分有效, 但是新出现的一些恶意代码为了躲避反恶意代码软件的检测, 使用了一种动态端口号技术, 这种技术允许恶意代码的使用者自行指定工作端口号, 这就使静态检测端口号的方法无法有效检测出。

2.3.2 反制

为了对抗反恶意代码软件, 有的恶意代码首先对反恶意代码软件系统进行攻击, 使反恶意代码软件无法正常运行或使特征库无法更新。

2.4 隐蔽通信

很多恶意代码都是在控制者的远程控制下执行指定的在特定的时间和环境下的命令, 其远程控制的实质是被控主机 (服务器端) 和控制端 (客户端) 之间传送控制命令和命令执行结果, 为了实现远程控制, 最关键的问题是隐蔽通信, 即怎么通过隐蔽的方式接受命令和发送执行结果, 其实现可以通过以下几种方式:

(1) 直接使用套接字 (socket) 进行通讯控制。一种方式是服务器端侦听, 客户端连接, 这种通讯方式不但容易被发现某一端口被一可执行文件侦听, 并且当客户端连接到服务器端时, 很容易引起防火墙报警。但这种通讯方式要求服务器端必须具有合法的全局IP地址, 这也在很大程度上限制了恶意代码的活动范围。另一种方式是客户端侦听, 服务器端连接, 当服务器端去连接客户端还是要引起防火墙报警, 可以通过线程注入的方式解决。

(2) 隐蔽通道是为了和恶意软件进行通讯, 攻击者必须建立一条非常隐蔽的通信通道。为此, 攻击者常常将通讯端口建立在一些非常常用的通信协议端口上, 像HTTPS或者SSH。

(3) ICMP隧道, 利用ICMP_ECHO和ICMP_ECHOREPLY两种报文, 因为这两种报文中数据段很少被检查, 而且ICMP协议不涉及到端口的概念。从而使得木马在不开端口的情况下就可以进行通行, 加强了木马的隐蔽性。

(4) 使用第三方交互服务进行通讯, 所谓第三方交互通讯服务是指能够提供信息收发和临时存储的服务, 常用的有email和即时通讯服务, 比如IRC等, 这种方式和协议隧道技术非常相近, 不同的是, 它不需要控制者自己提供控制服务, 而是直接使用其他服务提供商提供的服务, 因此这技术能够从更大程度上保护控制者。

(5) 通过ARP欺骗或DHCP欺骗等网络代理木马欺骗方式。

2.5 攻击技术

攻击技术是指一切试图跨越系统安全边界危害受害主机的可用性、可靠性、数据完整性、或者消耗受害主机的系统资源以及利用受害主机危害他人的所有行为。归纳起来, 主要包括拒绝服务攻击、信息窃取、数据破坏、修改系统配置等四个方面。

3 冰河的入侵和攻击过程

冰河木马是国内比较有名的一个木马, 从1999年开发到现在已经被不同的开发者不断改进, 因此出现很多版本, 无论哪个版本, 其执行的主要任务是远程访问和控制, 随着版本的增高功能不断增多, 入侵行为如下:

记录各种口令信息:包括开机口令、屏保口令、共享资源口令等, 随着版本的升高, 它所能够记录的口令信息会增加;

获取系统信息:主要包括计算机名、当前用户、系统路径、操作系统版本、物理及逻辑磁盘信息等多项系统数据;

远程文件操作:可以创建、上传、下载、复制、删除文件;文件压缩、远程打开文件等多种文件操作功能;

限制系统功能:远程关机、远程重启机器、锁定鼠标、热键等功能;

发送信息:向被控端发送短信息;

注册表操作:包括对主键的浏览、增删、复制等操作;点到点通讯:以聊天室的形式同被控制端进行在线交谈。冰河3.0之前通信方式是通过服务端在宿主机器上开一个T C P端口 (默认端口是7 6 2 6, 可以另设置, 一般范围在1024~32768之间) , 然后等待客户端的连接, 在通过对客户端的认证后, 客户端就可以控制服务端的方式, 在3.0版本之后多数是采用替代系统功能的方法 (改写驱动程序或动态链接库) 。一旦木马的控制端向被控端发出特定的信息, 隐藏的程序就立即开始执行。

冰河会更改注册表, 使服务器端程序启动与exe文件或txt文件相关联——无论运行什么exe文件或打开txt文件, 冰河就开始加载, 启动后执行入侵操作, 当服务器接入Internet, 会自动向事先设定好的邮箱发送执行结果。

为了增强自身的隐蔽性, 有很多版本是通过对服务器端代码进行修改并重新加壳后制作出来的, 并且现行的加壳软件有很多种 (ASPack、ASProtect、UPXShell、Petite等) , 甚至使用不同的加壳软件进行多次加壳, 这样增强了反恶意代码软件甄别的难度。

4 结论

恶意代码技术飞速的发展, 恶意代码变化多端, 层出不穷, 由于恶意代码技术发展的不可预见性, 所以只有紧跟恶意代码技术发展的步伐, 才能及时的采取相应的应对措施, 使传播范围限制在最小, 损失降到最低。

摘要:本文介绍了恶意代码的渗透、自启动、自我保护、隐蔽通信、攻击等相关技术, 通过这些技术可以对恶意代码入侵有更深刻的认识, 并以冰河为例简单介绍了实现入侵的整个过程。

关键词:恶意代码,反静态分析,反动态跟踪,隐蔽通讯,冰河

参考文献

[1]石志国, 薛为民, 尹浩.计算机网络安全教程.清华大学出版社.2007.

[2]米佳, 侯丽波, 黄波.公共信息网络安全管理教程.大连理工出版社.2008.

[3]潘勉, 薛质, 李建华, 李生红.基于DLL技术的特洛伊木马植入新方案.计算机工程.2004.

[4]张勐, 杨大全, 辛义忠, 赵德平.计算机病毒变形技术研究沈阳工业大学学报.2004.

智能手机恶意代码防范技术综述 篇5

随着3G时代的悄然临近,人们的手机也从传统的GSM、TDMA数字手机转向了拥有能够处理多媒体资源、提供网页浏览、电话会议、电子商务等多种信息服务的智能手机(Smartphone)或者掌上电脑(pocket PC)。而其所带来的最直接影响就是语音业务的比重骤然减少,以及相应数据业务与网络应用的急速上升。

然而,伴随功能强大的智能手机一同而至的,是品种日益繁多的手机恶意代码攻击,以及形势日益严峻的个人数据安全问题。据统计,目前网络安全专家发现的手机病毒已经超过500种,并且其恶意代码也越来越具针对性,直指软硬件存在的漏洞,这些都已经严重危害到手机的系统安全和信息安全。

然而,纵观全球手机安全领域,众杀毒产品各自为战,诸防范技术鱼龙混杂,手机产业亟需建立一套系统的漏洞修补及安全防范机制本文通过对当下智能手机安全防范技术做出归纳与总结,使读者能对该领域产生一个系统全面的认识,并希望为今后手机安全发展敬上绵薄之力。

鉴于此目的,本文将从当下流行恶意代码攻击技术说起,并针对其攻击技术,基于途径分类,综合阐述现今主流及最新智能手机恶意代码防范技术,并最终转向与用户关系最密切的终端产品防范技术中。

1 手机恶意代码攻击技术

智能手机的恶意代码与流行于PC机上的恶意代码十分类似,类型有病毒、木马、蠕虫、逻辑炸弹等。所以其攻击方法与PC机上的恶意代码也有相同之处。不过,智能手机相比PC机,还有其独特的应用环境与背景,主要是:

(1)可以连通电信网络(Telecom networks)。

(2)主要通过无线(wireless)的方式连接英特网(Internet)。

(3)通常要与普通的PC机进行文件同步、下载程序等操作。

这就使得智能手机恶意代码的行为模式与攻击对象有其独特之处。本文分别以智能手机恶意代码的攻击目标与攻击途径来阐述其具体的攻击技术与方法。

1.1 攻击目标

1.1.1 手机终端

智能手机恶意代码的攻击目标首当其冲便是手机终端。

(1)通常利用手机固化程序或操作系统的漏洞来实施攻击。比如年前国内许多山寨机MTK平台打开某条短信时会发生一直震动的事件,其原因就是利用了一个早期的国际标准IMY的漏洞,而联发科技的芯片恰好支持这种标准。操作系统与应用软件的漏洞由于设计复杂,难免有逻辑出错,从而引入漏洞。文献[1]中提及的WinCE.Dust.A病毒就是利用文件API的漏洞而开发的。恶意代码还能通过木马远程控制受害手机等。

(2)另外,恶意代码还通常使用诱骗的方式使用户将其触发,从而导致感染。这种社交工程学的攻击方法本身技术含量并不高,但是效果十分明显,通常可以以此达到骗取用户信息,非法窃听等目的。

1.1.2 网关

智能手机恶意的另一攻击目标是网关。与PC机不同的是,手机终端不仅能连到Internet,还能攻击电信网络。文献[2]中提到了一种消耗电信网络频带资源的攻击,攻击者同时让多台傀儡机向外部建立通话连接,从而耗尽该蜂窝的频带空间。另外,通过电信网的远程监听也是常见的攻击方式。还可以进行身份欺骗、DDos等常见的针对因特网的攻击。

1.2 传播途径

1.2.1 终端-终端传播

由于智能手机的无线入网功能十分丰富,而这些入网的信道也恰恰成了传播手机病毒的天然载体。通常手机的联网方式有Wi-Fi,红外,蓝牙等,这些近距离的联网使得恶意代码在终端-终端之间传播有了可能。著名的Cabir就是不断寻找附近开启蓝牙连接的手机,并尝试发送自身的拷贝。文献[3]与[4]还专门通过建模来讨论蠕虫通过蓝牙的传播速度与范围。

1.2.2 终端-网关-终端传播

恶意代码还能通过网络或电信网传播,从而利用网络资源实现大规模覆盖。最常见的就是短信息(SMS)、彩信(MMS)。MMS由于支持丰富的多媒体业务,漏洞较多,上述的Cabir的变种也可以通过MMS传播。另外,由于智能手机支持TCP IP协议栈,所以收发E-mail、网络浏览等也可成为感染途径。

1.2.3 PC(计算机)-终端

由于智能手机通常要与PC机连接同步,所以在此过程中恶意代码也有可能乘虚而入。有些手机病毒能附着在PC机上,还有一些PC机版本的病毒能通过交叉编译生成手机平台的恶意代码,一旦手机与PC机同步时,便能感染手机。当然也可能有病毒依附于手机上去感染PC机的。比如Windows Mobile平台,由于开放的API与高层语言的.net的运行环境,使得某些用.net精简库写的恶意代码不用通过交叉编译就能在PC机与手机之间传播运行。

2 防范技术

根据上节所提到的攻击技术,能清晰看到恶意代码在攻击与传播时的几个关键节点:移动终端、网关以及个人PC。以下内容就将对在上述三个关键节点上应用的防范技术作详细的阐述与说明。

2.1 终端防范

纵观现有的手机恶意代码,除了攻击网关的少数恶意代码外,现有恶意代码大都仅仅能影响特定品牌,特定型号,特定系统的手机。也就是说,终端防范相比较其他两类防范技术,将成为攻防双方的众矢之的,显得尤为重要。

可以这样说,移动终端的安全防范既是对恶意代码防范的第一道屏障,也是最后一道防线。说其是第一道屏障,是因为移动终端的防范技术可以在病毒试图向外传播时,将病毒检测出来并进行删除或者隔离工作,避免病毒感染其他终端。而说其是最后一道防线,是因为在数据或者短信息即将进入手机之前,移动终端安全设备若未能检测出恶意代码,那么手机就会被感染,成为新的受害者。在这两者之间,其实存在着一种数据输出与输入的对应关系。而下文即将提到的终端检测与终端监控技术就是基于此做出的分类。

2.1.1 终端检测技术

终端检测技术主要针对数据输入安全,对所有进入终端的数据进行检测,其实现主要由两个部分组成:特征代码库和扫描算法。

其中特征代码库主要保存病毒特征码。可以根据特定机种进行库更新,既减少存储容量,又具极强针对性然而也不排除今后手机恶意代码的发展趋同于PC机般丰富多变,所以笔者也建议可以采取中心服务器更新的方式,集中管理,集中维护。

而对于扫描算法,其时间空间复杂度是恶意代码扫描引擎关注焦点。动态串的扫描算法有两个思路:单模式匹配算法和多模式匹配算法。单模式匹配的经典算法有KMP(Knuth-Morris-Pratt),QS(Quick Search),BM(Boyer-Moore)等算法,其中,BM算法被广泛应用于现有商业杀毒软件中。经典的多模式匹配算法是AV.Aho提出的基于有限自动机的DFSA(Deterministic Finite State Automata)算法,该算法在匹配前对模式串集合进行预处理,转换成树型有限自动机,然后只需对待匹配动态串进行一次扫描即可找出所有的模式串,其时间复杂度为O(n)。

纵观现有的几大杀毒厂商,TREND Micro Corporation、Kaspersky Lab、Symantec、金山、瑞星等纷纷在智能手机杀毒领域推出了自己的产品。对其中几款做了测试,发现基本都以文件扫描为主要查杀形式,只有少数几款(如瑞星)拥有进程查杀功能。可见,对于终端检测技术,全面的特征代码库和高效的扫描算法将是关键。

2.1.2 终端监控技术

终端监控技术主要针对数据输出安全,这里所谓的数据输出可以广义地理解为移动终端的一切对外行为,包括进出互联网络、信息服务、蓝牙、红外线等接口的数据,以及恶意代码对如蓝牙、无线等设备或资源的异常调用等等。

下面解释下异常调用问题。比如:Radmilo Racic[5]等撰文描述了一个通过大幅提高设备耗电速度进而加速终止设备工作的漏洞。针对这个漏洞的攻击可以分两步进行。第一步,通过分析MMS通知信息,攻击者编辑一个手机设备列表,包括蜂窝数量、IP地址和模型信息。第二步,通过不停地发包以及信道连接等工作,耗费电量。这个例子中长时间不间断的调用连接进程就可以看做是异常调用。

本文在文末也提到,防火墙是解决此类问题的最佳手段。Edina Arslanagic[6]在其硕士论文中理论性地描述了个人防火墙对于手机安全的作用及其设计思路。文献以普通PC上的防火墙为参考,在分析了手机的特定功能(WAP、P2P)以及连接类型(GPRS、WLAN、Bluetooth)弱点后,指出了手机防火墙的必要性,并详细分析了防火墙实现的优缺点。

而针对本文所述的终端监控技术,可由以下几大功能组成,包括监控短信息、监控数据流、监控进程以及监控连接设备(主要是蓝牙、无线和红外)。在对几款手机安全软件的测试中,也发现它们基本都包含有上述这几项监控措施下面将一一做简要的介绍:

(1)监控短信息

将与短信息相关的异常行为的监控作进一步论述。

Teck Sung Yap[7]等几位国外研究者对此给出了一种非常有效的解决方案。他们提出了一种基于行为(Behaviour)的病毒监控模型。认为手机行为特征是非常有限的,因此,行为特征检测将非常有效。分析手机的信息类型模块(MTM Message TypeModule)可以发现,无论任何程序何时想使用短信息功能,它都必须建立一个和信息服务器之间的会话检测程序可以监视所有与信息服务器之间的会话,并且监视该会话中的所有信息事件,以此来监控进出手机的短信数据流。

因此,通过对信息服务器的监控,可达到监控关于短信息的异常行为,从而在必要时向用户发出警报,或者直接实施必要的防护手段。

(2)监控数据流

与(1)相同的,本节将要讨论的是关于数据异常行为的监控,而非数据流中恶意代码的扫描检测下面就对比较常见的几种异常行为予以总结:

(1)数据量异常

就如上文提到的Radmilo Racic等给出的漏洞攻击中,其攻击手段的一个明显特征就是数据包的持续大面积流入,这就属于数据量的异常行为,应该被防火墙在第一时间屏蔽掉。

(2)数据调用异常

如陈雅娴等[8]在分析由蠕虫病毒引起的异常行为时提到,正常的消息传送行为对数据项的操作只根据用户行为进行操作,不会在短时间内频繁对数据项操作。而蠕虫的异常行为有创建带自身病毒的MMS、调用打开或删除MMS函数接口的行为频繁发生。所以对于某些数据的频繁调用就可以判定为一种行为异常,并由防火墙发出警报,通知用户。

(3)敏感数据异常

指的是在非正常用户操作下,敏感数据(如联系人电话等)被非法引用至短信息或者邮件中。这在文献[8]中描述蠕虫病毒行为时也有提及:蠕虫会不断有调用访问电话薄数据库函数查找、复制联系人等函数接口的行为。需要指出的是,防火墙对于敏感数据的监控将远远严格于一般数据。例如,若对于一般数据每分钟20次的访问频率被判定为异常,则对于敏感数据阈值可能就为每分钟2次了。

(3)监控进程

防火墙进程的监控主要由以下两部分组成:

监控由已知恶意代码产生的进程

大部分蠕虫、木马在感染手机终端之后,都会自动启动一些特定进程,用于盗取敏感信息或者开启后门等,所以防火墙可以与上文2.1.1中提到的特征代码库相关联,形成恶意进程特征库,检测方式既可以基于进程名也可以基于进程行为特征,从而达到双管齐下的效果。

(2)监控由未知恶意代码产生的进程

毋庸置疑,要监控未知恶意代码产生的进程远比监控已知进程困难得多。目前在智能手机领域还处于一片空白。但李闻等人在其论文[9]中提出了一种在PC平台基于进程异常场景分析的代码注入攻击自动分析和响应系统。该系统根据进程异常场景自动分析攻击载荷句法,并生成面向漏洞的攻击特征,由该攻击特征可以识别和阻断基于同一未知漏洞同种利用方式的各种代码注入攻击的变形。相信在不久的将来智能手机安全领域也会有类似的监控技术出现。

(4)监控连接设备

监控对外连接也是基于异常行为的检测机制。

以蓝牙为例,如在文献[8]中所述,只要用户打开蓝牙设备,正常情况下,蓝牙设备是不会自动搜索附近的蓝牙手机,或经过用户许可后搜索频率也有限。而蠕虫会频繁调用Rsokect函数接口,不断扫描附近的蓝牙设备并进行通信。鼎鼎大名的手机病毒鼻祖Cabir病毒就具有类似的行为特征。

具体监控方案可以将所有与外围连接设备相关联的函数(如Rsocket)一同组成一个集合,当防火墙检测到在这个集合中的某个特定函数或者某些特定函数在一定时间范围内被频繁地调用甚至被修改时,即可发出警报或启动终端杀毒软件。其实,这一方案对于进程监控以及数据流监控也有一定的帮助。

2.2 网关防范

正如文献[10]中所述,在移动网络设备处(例如GGSN,彩信网关,WAP网关等)对网络行为和信息内容采用安全审计、深度报文检测等技术可实现对敏感信息和有害行为的及时发现和过滤,确保传送的内容安全可靠,并及时封堵攻击来源,把危害降到最低。

然而可惜的是,文献[10]中并没有谈到具体实现方案。在查阅其它相关文档时,也发现了类似只介绍想法却没有具体实现的现象。所以下文将结合现今已经成熟应用的专利技术做更进一步的分析阐述。

关于移动通信网关的防范可以归纳为以下几类:

2.2.1 基于身份认证的网关防范

通过对用户身份的合法性认证,保证可信用户数据的安全传输,以及对非认证用户的服务拒绝,这样既可防止非法用户在网内传播恶意代码,又可保证合法用户的服务质量,最大限度地提供数据传输的安全性以及可靠性。

通过检索中国专利信息数据库可以发现,芬兰诺基亚有限公司于2006年4月12日发布了专利公开号为CN1758598,名为“用于通过网关认证移动用户的方法和系统”的专利。这是一种通过网关使客户端和服务器彼此认证的方法,其中客户端使用自己和网关之间的第一个加密协议并且服务器使用自己和网关之间的第二个加密协议,该方法包括以下步骤:在服务器上设置网关是被信任的认证机构;网关发行数字证书认证客户端;服务器验证数字证书以便向自己确认该数字证书来自被信任的认证机构。

在多达1200多条关于网关专利的检索过程中,还发现了另外两项类似的专利,同样是应用在网关认证上的,它们分别为:

专利公开号为CN1529531,名为“一种移动用户接入安全网关的方法”的专利。该发明公开了一种移动用户接入安全网关的方法,针对移动用户采用预共享密钥的方式来实现接入认证时的实现方法,包括接入认证方式的配置、安全策略的配置和管理以及安全联盟的生成和维护等方面内容。

专利公开号为CN1946023,名为“用于接入网关的认证和授权体系结构”的专利。电信体系结构通过安全接入网关将电信服务暴露给第三方。接入网关提供安全、标准化和受控的用于暴露服务的接入平台,并处理与这样的接入相关联的技术问题。

由此可见,基于用户认证的网关防范技术已经在实际中得到了初步的应用,但从相关专利数量而言,确实也只能称其为初步的应用,因此,该方向的防范技术运用仍需要继续完善与实践。

2.2.2 基于数据流的网关防范

基于认证的网关防范可以鉴别非法用户,阻止其传播恶意代码,然而却无法防止合法用户在受感染不知情的情况下传播恶意代码。所以,这必将导致第二种网关防范,也就是基于数据流的网关防范技术的出现。

例如,专利公开号为CN101252576,名为“利用DFA在网关处进行基于网络流的病毒检测方法”的专利。该发明涉及利用DFA在网关处进行基于网络流的病毒检测方法,其病毒检测过程是:首先在协议栈中将网络数据包重定向到病毒检测程序;病毒检测程序按照网络流组织网络数据包病毒检测程序将网络数据包输入DFA引擎;DFA引擎按照预先编译好的病毒特征库进行病毒检测,如果检测到病毒,病毒检测程序向网络终端发出病毒告警,并中断网络流,如果未匹配到病毒,则放行网络数据包。

而专利公开号为CN101119373,名为“一种网关级流式病毒扫描方法及其系统”的专利,则首先对会话数据包组织成数据单元队列,然后分析数据单元内的数据类型是否支持流式扫描,根据数据类型对数据进行文件式扫描或流式扫描;该发明所提出的网关级流式病毒扫描方法和系统,在保证了对数据进行有效准确的病毒检测的同时,提高网关对于客户端的响应速度,并节省了网关的存储资源。

上述两项基于数据流的网关防范专利技术,主要针对网络数据流,所以本节所述网关,也都是基于网络层的,这也映合了当今智能手机越来越趋向于网络化,信息化的发展态势。

2.2.3 基于短信息的网关防范

鉴于手机所特有的短信息功能,以及短信息在无线网络中强大的传播生命力,所以基于短信息的网关防范也已经在实践中得到了广泛应用,甚至追溯历史可以发现,对于短信息的过滤拦截,是最先使用的网关防范技术。

短信网关(InternetShortMessage Gateway)位于服务提供商SP(Service Provider)与短信中心之间,作用是为SP与短消息中心之间数据交换提供一条安全、快捷的通道,以便手机用户利用短信方式与SP双向通信,接收SP提供的信息服务,同时完成相应计费采集工作。

所以,在含有恶意代码的信息进入短信中心进行交互之前,必须将其拦截下来,现在比较通用的做法基本都是在短信网关处添加防火墙,对短信网关内部其它相关模块进行保护,实现针对内外访问的信息恶意代码检测和包过滤。

下面将介绍一种现在较新的,基于GSMModem设备的短信息系统技术[11],它利用认证方式和信息加密方式保证系统安全性,具有处理信息可靠传递,系统集成成本可控制等特点,而其中的安全接入网关将负责核心工作,这些工作由各个模块承担,包括串口通信模块、收发消息模块、认证模块,加解密模块、消息处理模块、请求响应模块和数据库操作模块。

也就是说,与传统安全网关相比,这种技术已经不仅是检测恶意代码了,他甚至为短信报文提供了加密服务,保障信息的机密性以及完整性。这虽然与本文主题略有偏出,却必将是未来的一大趋势。短信息的明文传输以及无线网络本身的不安全性是导致短信息极端不安全的根本症结所在所以要将手机安全带上一个更高的台阶,类似文献[11]这样的技术改革势在必行,并且远远不限于短信息,也包括上节中提到的网络数据流,只是出于篇幅以及主题限制,未在上节中详细论述。

综上所述可以看到,当下基于网关的手机恶意代码防范的解决方案已经初具系统化:在对用户实行认证的前提下,对网络数据与短信息进行分析检测,实行必要的过滤隔离,同时在过程中将对数据加密,避免窃听、重放攻击,防止信息(数据)中心接收来自受信用户的被恶意篡改信息(数据)。从而使防范解决方案更立体更有效。

2.3 PC套件的防范

本节所谓的PC套件防范并非一般意义上所理解的用于防范PC与智能手机同步时的交叉感染,尽管这也是相当重要的。

本节重点要讲述的PC套件防范,指的是能够通过与PC相连,对智能手机进行恶意代码的检测与查杀,通俗地讲,就是用PC查杀手机病毒。之所以要着重强调此类非终端性质的恶意代码检测技术,是基于以下几方面的考虑:

(1)当手机终端在受感染已无法通过自身实行恶意代码检测时(比如出现开机30秒即自动关机等情况),用户只能借助PC套件对手机终端进行恶意代码查杀工作。

(2)考虑到未来智能手机恶意代码的发展趋势必然越来越趋向于PC病毒,即病毒种类更加丰富,病毒变异更加多样,这势必造成上文中所提到的特征代码库和恶意进程特征库的规模越来越庞大,而手机终端的内存容量又有限,所以将其放置在PC套件中将是一个不错的选择。

(3)由于现今智能手机的安全防范技术毕竟只属于刚刚起步阶段,许多方面还很不完善。而运用于PC机的安全防范技术早已系统化体系化。因此PC套件可以提供更加专业的技术支持,以及更加全面的安全服务。

以上三点也可以解释为是PC套件相比较终端防范技术的优势所在。纵观国内外的众多知名杀毒软件厂商,目前只有BitDefender的手机杀毒软件拥有自身的PC套件。该软件主要包括两个独立的模块:病毒查杀模块和自动更新模块。其中自动更新模块就运行于PC机上,用来安装配置移动设备上的病毒查杀模块,同时提供病毒库更新功能。其主要特征是:实时保护,病毒扫描和清除,容易更新以及专业技术支持。

当然,PC套件防范的非实时性可能就是它相比终端套件的最大劣势所在然而基于上述三个原因,智能手机PC安全套件的发展必然也是将来智能手机恶意代码防范体系中一个不可或缺的重要分支。

3 非技术类防范与防范意识

除了第2节中的所述的各类基于途径的防范技术外,还有一些其他非技术类的方法以及设想中的方案,这些方案大多与安全防范意识相结合,正所谓“三分技术,七分管理”,可以说也是相当重要的,现介绍如下:

国内的研究大多从用户的角度来建议如何从手机终端进行防范,例如文献[10]中提出的防范方法是:提高手机用户的防范意识、在手机上安装杀毒软件和防火墙等安全软件,过滤收到的信息和下载的文件等,并建议手机厂商在发布的产品中就预装杀毒软件。文献[1]中提出的方法也是要求用户及时升级、安装进程查看器、警惕蓝牙、Wi-Fi信息、经常备份等。

文献[2]中认为虽然智能手机追求功能的扩展,但仍然可以通过功能限制来增强智能手机的安全性。比如大部分时间许多功能特性是用不到的,所以默认的情况下将这些复杂的功能关闭就可以减少被攻击的风险。另外,手机的操作系统也应该提供更多的与安全相关的API接口,使得应用程序能够更安全地被开发。最后是硬件方面的加强,它们设想利用SIM卡的安全特性,将程序都加载到SIM卡中去执行,这样就无需额外的芯片了。

4 结束语

以上提供了各种各样的防范途径,但本文认为恶意代码的防范焦点最终还是应该落实到手机终端上。原因如下:

(1)手持设备的功能越来越丰富,尤其是PC机上的功能不断被赋予到智能手机上,从而导致运行在其上的应用程序以及服务等变得十分复杂,甚至连运行时环境都采用诸如Java、net架构的高层语言平台。其中的漏洞当然在所难免,而这正是大量恶意代码攻击的目标。

(2)随着硬件技术的发展,智能手机的计算能力得以大大加强,从而使得其运行一些监护程序成了可能。诸如杀毒软件对硬件资源消耗可以得到很大的改善,从而实现智能手机像PC机一样在本地就能检测出恶意代码,而不用耗费珍贵的网络流量通过网络检测了。

(3)智能手机用户的安全意识仍然十分薄弱,所以很多的恶意代码就是利用用户的误操作而进行破坏。因此手机操作系统以及应用程序的设计就应该多从用户角度考虑必要时提出告警使得终端对用户具有安全可靠性。

(4)由于无线网络的发展,今后的网络将以自组网的形式出现。在自组网中,通常没有中心服务器,所以移动节点的防御能力完全是靠自身的,无法求助于中心服务器。另外,在文献[2]中,作者还提出未来智能手机有可能直接与家中的冰箱、微波炉组网,从而控制这些物理设备。如果手机遭到攻击,被恶意操控,将涉及到物理方面的安全。所以手机必须有自己的检测防御系统。

(5)许多杀毒软件厂商纷纷推出了针对不同操作系统的手机版病毒查杀软件,这些软件在功能强大的同时,又考虑到嵌入式系统的内存、运算速度限制,使得手机杀毒软件能做到高效运行,从而使手机终端挂载独立的恶意代码检测系统成为现实。

因此,综上所述可以发现,对于智能手机的恶意代码防范,可以从终端防范开始,结合网关防范、PC套件防范以及用户防范意识,多管齐下,形成立体有效的防御工事。只有这样才能形成统一完整的智能手机恶意代码防范体系,减轻对智能手机以及电信网络的攻击,并在当今手机病毒日益肆虐的恶劣环境中保护我们的手机免受恶意代码的侵袭破坏

参考文献

[1]刘小林,刘克胜.WindowsMobile手机恶意软件的原理分析及防护措施研究[J].网络安全技术与应用,2008(9):41-43.

[2]ChuanxiongGuoHelen J,WangWenwu Zhu.Smart-Phone Attacks and Defenses[M]Proc.ACMHotNets 2004.

[3]XIA Wei,LI Zhao-hui,CHEN Zeng-qiang,et al.The Influence of Smart Phone's Mobility on Bluetooth Worm Propagation[C].The 3rd IEEE International Conference on Wireless Communications,Networking and Mobile Computing(WiCom2007),September 21-23 2007.

[4]Chris Fleizach,Michael Liljenstam,Per Johansson,GeoffreyM.Voelker,andAndrás Méhes.Can You Infect Me Now?Malware Propagation in Mobile Phone Networks[J]WORM'07 Proceedings of the 2007 ACMworkshop on Recurring malcode,2007:61-68.

[5]Radmilo Racic,DenysMa,Hao Chen.ExploitingMMS Vulnerabilities to Stealthily ExhaustMobile Phone's Battery[C].Second International Conference onSecurity and Privacy in CommunicationNetworks.Baltimore,2006(8).

[6]Edina Arslanagic,Faculty of Engineering and Science.Personal firewall in mobile phone[D].Agder Unibersity,2004(5).

[7]Teck Sung Yap,Hong Tat Ewe.Faculty of Information Technology,Multimedia University,Malaysia A Mobile Phone Malicious Software Detection Model with Behavior Checker[J].Lecture Notes in Computer Science 2005,3597:57-65.

[8]陈雅娴,袁津生,郭敏哲.基于行为异常的Symbian蠕虫病毒检测方法[J].计算机系统应用,2008(11):49-52.

[9]李闻,戴英侠,连一峰,等.基于异常诊断的代码注入攻击自动分析和响应系统[J].软件学报,2008(19):1519-1532.

[10]孙其博.手机病毒与移动通信安全[J].电信网技术,2008(7):1-5.

智能手机的恶意代码防范研究 篇6

在通信技术高速发展的今天,智能手机变得越来越普及,人们在享受智能手机强大功能的同时,也受到来自手机恶意代码的侵扰。为有效遏制手机恶意代码的快速发展势头[1],相应的分析防御方法已相继提出,各种手机杀毒软件也随之应运而生。目前主流的手机恶意代码防御方法[2]主要参照计算机恶意代码的分析防御技术,包括传统的恶意代码防御技术(如基于恶意代码特征匹配的扫描技术和启发式经验规则等)及行为阻断技术;主流手机杀毒产品[3]基本能做到有效地实时扫描及监控、病毒处理和查杀、病毒库及软件更新,其配套的通信基础设施也在逐步完善当中。

各种杀毒工具都是基于恶意代码的特征码实现,在恶意代码出现到特征码被提取出的这段时间足以让恶意代码实现破坏力,而杀毒工具对此却无能为力[4]。尽管手机网络可以借鉴互联网的防范技术,但由于智能手机和计算机软硬件上的本质差别,如何有效防范智能手机的恶意代码正越来越受到人们的关注。对此,本文研究开发了智能手机恶意代码防范系统,以实现在手机终端、网关、服务器及PC产品等层面上对智能手机恶意代码的立体防范。

1 智能手机恶意代码防范模型

针对智能手机的恶意代码问题,本文提出了智能手机恶意代码防范模型,并详细介绍了该模型各个层次的功能,为智能手机恶意代码防范提供理论依据。

图1是本文提出的智能手机恶意代码防范模型,该模型以当前的计算机病毒防范为参考,从5个层次规划智能手机恶意代码防范模型,其目标是为实际的智能手机恶意代码防范系统提供理论指导。按对智能手机的防范能力,可以把整个模型划分为恶意代码检测层、备份恢复层、实时监控层、漏洞管理层、数字免疫层等5个层次。此外,为了支持模型5个层次的运行,模型中还包括核心数据模块。核心数据模块包含5个层次所要求的数据(例如,恶意代码特征库、防范策略、免疫信息等)以及获得这些数据需要的支持模块(例如,恶意代码分析等)。

接下来,以5个层次为序分别简要描述模型的内容。

1.1 恶意代码检测层

恶意代码检测层主要指恶意代码检测引擎,它由两个部分组成:特征代码库和扫描算法。组织合理的特征代码库和高效的扫描算法是恶意代码扫描引擎的两个核心部分。其具体将研究特征代码库的组织方法,使特征代码库尽量节省空间;提高扫描算法的执行效率,降低扫描算法的空间复杂度,以适应智能手机设备的特定硬件需求。

1.2 备份恢复层

在智能手机安全领域,由于存在与计算机的重要区别,因此,可以用恢复技术来恢复被感染对象的功能。这些区别主要表现在:计算机不仅运行应用程序,而且还是程序员编制程序的工具,因此,时时刻刻都有新的应用程序出现在计算机中。而智能手机则完全不同,用户不会在智能手机上编制新的应用程序。即使下载安装了其他应用,也是非常有限(可枚举)的集合。因此,备份恢复层功能是把智能手机领域用到的应用都备份到一个公共平台上,当发现用户的手机中有部分对象遭到破坏时,采用从公共平台恢复的手段来恢复被感染对象。

1.3 实时监控层

实时监控层的功能是监控手机的数据出入口,起到安全预防的功能。在实际环境中,Internet访问、短消息服务、Email服务、信息共享(蓝牙、红外、PC、USB、存储卡)、WAP、GPRS/CDMA/GSM是病毒入侵智能手机的途径[5]。实时监控工具预防恶意代码通过这些途径入侵智能手机。部署在手机上的实时监控工具将监控进出互联网络、信息服务、蓝牙、红外线等接口的数据,实现预防恶意代码入侵,防止用户信息被窃取的功能。

1.4 漏洞管理层

智能手机系统漏洞管理层主要有两层含义。在客户端,表现为一个工具软件,用于探测已知的漏洞或脆弱性,提醒用户安全事项。另一个层次的含义是设计一个公共的协议,让众多的手机厂商、手机软件开发商遵循。厂商可以通过该协议发布漏洞补丁,便于用户下载安装。

1.5 数字免疫层

就传统的计算机系统安全而言,现有的防范计算机病毒的技术都是权宜之计。尽管这些防范技术都取得了非常好的效果,但在新病毒不断出现的情况下,没有一劳永逸的基础架构可以解决计算机病毒防范问题。

本文将在数字免疫层研究在智能手机领域解决恶意代码的问题,并采用“免疫”技术来实现智能手机领域的长远防范方法。数字免疫基础设施包含多层意思:首先,它不是局限于某个软件、某个系统的狭隘免疫思想(该方法已被证明为不可行),而是着眼于所有智能手机及其相关服务领域的宏观免疫思想;其次,与其说它是一个系统,还不如说它是一个基础设施,这就预示着其建设过程将非常艰巨;最后,免疫的对象不是某个程序,而是一个系统(智能手机),这也更加贴近生物领域的免疫概念。

除了5个层次之外,核心数据模块包含5个层次所要求的数据(例如,恶意代码特征库、防范策略、免疫数字等)以及获得这些数据需要的支持模块(例如,恶意代码分析等)。

恶意代码样本采集和分析技术是防范技术的前提。与计算机病毒防范类似,如果要成功防范移动终端恶意代码,就必须获得其样本,分析恶意代码样本的运行机制,从中得到防范方法。这部分的关键技术点在于:恶意代码样本采集及特征码提取技术。

2 智能手机恶意代码防范系统

以智能手机恶意代码防范模型为指导,本文研究开发了一个智能手机恶意代码防范系统。该系统严格按照防范模型进行构建,系统各个层次采取的具体方案详细描述如下。

2.1 恶意代码检测层实现方案

恶意代码检测是防范已经入侵到智能手机内部的恶意代码的有效方法。与计算机病毒检测技术类似,如果要成功检测出已经入侵到智能手机里的恶意代码,就必须开发一个恶意代码检测引擎,该引擎主要由两个部分构成,它们是恶意代码特征库和扫描算法。

(1)恶意代码特征库:

恶意代码的有效检测取决于相关特征码数据库的采集与及时更新。恶意代码通常包括引导、传染和表现3大功能模块[6],特征码是从恶意代码源代码中不同位置提取的一系列字节,检测层通过不同的提取方法和提取工具采集智能手机中最新流行的特征码,并及时更新特征库。

(2)扫描算法:

扫描算法的时间空间复杂度是恶意代码扫描引擎关注点。对于动态串的扫描算法有两个思路:单模式匹配算法和多模式匹配算法。单模式匹配的经典算法有KMP(Knuth-Morris-Pratt),QS(Quick Search),BM(Boyer-Moore)等算法,其中,BM算法被广泛应用于现有商业杀毒软件中。经典的多模式匹配算法是AV.Aho提出的基于有限自动机的DFSA(Deterministic Finite State Automata)算法[7],该算法在匹配前对模式串集合进行预处理,转换成树型有限自动机,然后只需对待匹配动态串进行一次扫描即可找出所有的模式串,其时间复杂度为O(n)。

2.2 备份恢复层实现方案

恶意代码检测层提供了判断程序或数据是否感染了恶意代码的方法,备份恢复则是对其做出的响应。而由于智能手机不会像PC机一样成为编制程序的工具, 手机上的应用程序数量有限,可以枚举出来,所以智能手机不需像在传统计算机病毒防治领域那样,把清除病毒并恢复被感染者的功能作为首选策略,而是把智能手机领域用到的应用都备份到一个公共平台上,当发现用户的手机中有部分对象(例如,应用程序)遭到破坏时,采用从公共平台下载的手段来恢复被感染对象。

可以看出备份恢复层的难点是应用程序的枚举。就手机目前状态和长远发展而言,智能手机上的应用还是可枚举的。如果能够解决应用程序与功能模块的枚举问题,那么关于备份恢复层的核心问题也就可以解决了,以下是几点关于此模块的要点:

(1)必须组建一个具有权威性的全球机构来创建以及维护能提供数据备份与恢复服务的公共平台,实现对应用程序集合的更新管理。

(2)联合全世界的知名手机软件尤其是系统软件企业,加入到该公共平台建设与维护中,保证手机功能模块的恢复。

(3)在厂商参与形式上,既可以采取分层模式,即由该专业机构授权参与此联盟的下属厂商提供相关产品的备份恢复服务,也可以由该专业机构统一整合管理并提供。分层模式对于用户而言较为麻烦,而统一模式又容易造成单点失败,各有利弊。

(4)在有厂商参与的同时,也不排斥个人行为的参与,这类似于iphone应用与软件交易平台AppleStore的模式,所不同的仅仅是在这里个人行为的参与需要经过该专业机构的严格审查与认证。

(5)而对于众多的应用程序与功能模块的集合管理,可按操作系统、功能或手机品牌等进行分类[8]。

当然,在本层中,不仅是应用程序的备份恢复,对于用户数据,如个人通讯录、重要短信息等的备份也是十分必要的,鉴于这部分仅仅只涉及数据,而并没有涉及程序的安装使用等,所以可以采取与PC同步的方式完成。

2.3 实时监控层实现方案

实时监控层将监控进出互联网络、信息服务、蓝牙、红外线等接口的进出口数据,实现预防恶意代码入侵,防止用户信息被窃取的功能。具体内容详述如下:

(1)监测输入数据流

监测输入流量是监控工具的一个重要功能,包括有害信息(即病毒)流入与非法行为入侵。与计算机中个人防火墙的这一功能相同,也类似于PC上的入侵检测系统(IDS, Intrusion Detect System),尤其是其中的网络入侵检测系统(NIDS),因为对智能手机而言,网络流量是其最大的数据流输入部分,NIDS的分析方法有:统计分析、模式匹配、数据重组、协议分析、行为分析等。

监测流量的另一个方法是仅允许某些可信服务器发送数据流给移动用户。这需要对服务器进行验证并保护那些在服务器和无线网络间进行的传输。

(2)监测输出数据流

为了防范木马攻击,监控工具的设计原理是监测应用程序的联网请求,然后,根据应用程序是否可信来决定是否允许数据流的流出。有些间谍程序通过把自己改为可信程序名以逃避过滤规则。所以,移动终端防火墙的限制规则应是基于整个应用程序的校验和而不是仅仅根据名称。

(3)黑白名单

黑白名单可以体现在SIM卡号码、域名、Email地址等多个方面。在智能手机设备使用WWW、WAP信箱服务时,不必经过对数据流监测算法,直接通过黑白名单决定是否允许连接请求。同样,黑白SIM卡号码是决定是否允许来自特定终端设备的数据流和服务的规则。

2.4 漏洞管理层实现方案

智能手机的潜在漏洞主要来自于三类:嵌入式操作系统、运行时环境、应用程序。嵌入式操作系统的漏洞指的是由于智能手机所采用的操作系统本身的脆弱性造成的漏洞。典型的操作系统漏洞是蓝牙网络连接,Cabir病毒[9]就是利用该漏洞进行传播的。手机的运行时环境包括JAVA、.NET等运行时支持库,它们具有脆弱性,也可能被用户滥用,从而形成运行时环境漏洞。Vxer(病毒制造者)可以利用这些漏洞访问本地文件、获取权限、开放共享等。智能手机上的应用软件可谓多种多样,它们的脆弱性也是不计其数。嵌入WML(Wireless Markup Language)文件的恶意脚本代码是应用软件类漏洞的典型代表。

漏洞防范主要靠更新有关的软件开发厂商的补丁程序。关于补丁发布方式,可以参照计算机领域操作系统漏洞发布机制来制订智能手机领域的漏洞发布方式。

2.5 数字免疫层实现方案

基于大多数恶意代码来源于互联网络的现实[10],本文设计了一个能够阻止来自网上恶意代码入侵的原型系统,即智能手机数字免疫系统。所有面向智能手机的应用程序(例如手机游戏等)、免疫信息都将被数字免疫系统采集。任何智能手机从任何途径获得应用程序时,都推荐使用数字免疫系统作为中间代理来验证所获得的程序的完整性。数字免疫系统可以有效防止寄生了恶意代码的宿主程序入侵手机终端。对于未登记应用程序,该系统将不允许其进入手机终端。

如图2所示,数字免疫基础设施由免疫信息采集网络、免疫信息中心、免疫信息验证平台3个子系统组成。图中虚线部分是手机终端获取各种软件的不安全途径。数字免疫系统的安全数据流程如下:

免疫信息采集网络分布于尽可能广的范围,拥有尽可能多的节点,采集应用于智能手机各种应用程序的免疫信息(例如数字签名,名字,版本号,大小,开发商,应用平台等)。免疫信息中心存放采集网络采集下来的各种信息,管理免疫信息。当手机用户需要下载安装软件时,免疫信息验证平台利用免疫信息中心存储的免疫信息验证下载的软件是否完整(有没有成为恶意代码的宿主),如果完整则允许安装到用户终端上,如果不完整则拒绝安装请求。

3 结束语

随着智能手机的大众化,其功能与设备越来越贴近人们的生活,而与之相关的恶意代码正处于快速增长期。为使智能手机的恶意代码对人们生活的影响降到最低,建立一套完善的防范体系模型显得尤为迫切,手机制造商、网络运营商、反病毒软件商等正在努力构建这一平台,从安全目标、安全威胁、安全机制、安全防护系统及安全管理等方面出发逐步实现对智能手机恶意代码的立体防御。

参考文献

[1]Mikko Hypponen.Malware goes mobile[J].Scientific American,2006(11).

[2]刘丁.手机恶意代码分析与预防[J].重庆科技学院院报:自然科学版,2007(6).

[3]几款主流手机杀毒产品[R].计算机世界(CSO&信息安全),2006(7).

[4]Szor P.The art of antivirus research[J].Wiley Publishers,2005.

[5]Amit Vasudevan.MalTRAK:Tracking and Eliminating Unknown Mal-ware[C].IEEE 2008 Annual Computer Security Application Confe-rence.

[6]刘毅,陈泽茂,沈昌祥.恶意代码的机理与模型研究[J].计算机工程与设计,2008(11).

[7]Aho A V,Corasick M J.Efficient string matching:An aid to biblio-graphic search,Commun[J].ACM,1975,18(6):333-340.

[8]BERGINSIGHT.Smartphone operating systems.[EB/OL].[2007-05].http://www.berginsight.com/ReportPDF/Summary/BI-SOS-SUM.pdf.

[9]F-Secure.F-Secure Virus Information Pages:Cabir[R/OL].http://www.f-secure.com/v-descs/cabir.shtml.

等级保护中的恶意代码防范 篇7

1 等级保护中恶意代码防范的基本要求

恶意代码防范主要涉及信息系统的网络、主机和应用三个层面。

1.1 网络恶意代码防范

绝大多数的恶意代码是从网络上感染本地主机的, 因此, 网络边界防范是整个防范工作的重点, 是整个防范工作的“第一道门槛”。如果恶意代码进入内网, 将直接威胁内网主机及应用程序的安全。防范控制点设在网络边界处。防范需对所有的数据包进行拆包检查, 这样会影响网络数据传输效率, 故其要求的实施条件比较高。在不同等级信息系统中的要求也不同, 如表1所示。

1.2 主机恶意代码防范

主机恶意代码防范在防范要求中占据着基础地位。一方面是因为网防范的实施条件要求较高;另一方面因网络边界防护并不是万能的, 它无法检测所有的恶意代码。因各等级信息系统都必需在本地主机进行恶意代码防范。

主机恶意代码防范有以下三条要求: (1) 应安装防恶意代码软件, 并及时更新防恶意代码软件版本和恶意代码库; (2) 主机防恶意代码产品应具有与网络防恶意代码产品不同的恶意代码库; (3) 应支持防恶意代码软件的统一管理。

不同等级信息系统的恶意代码防范要求如

1.3 应用程序的恶意代码防范

在等级保护基本要求中, 对应用程序的恶意代码防范没有提出具体的要求。结合日常使用应用程序时在安全方面出现的问题, 应用程序的恶意代码防范应要求在应用程序使用前应先对应用程序进行漏洞检测、黑白盒测试等, 确保应用程序中不存在可被恶意代码利用的漏洞、不存在编程人员插入的恶意代码或留下的后门。

2 恶意代码防范的工作要点

在等级保护安全测评工作中, 具体的测评项和测评方法在测评标准中已经有较详细的规定。根据实际工作经验, 我们提出防范恶意代码要取得显著成效, 应注意的工作要点。

2.1 风险评估应全面考虑系统的脆弱性和风险性

风险评估应全面衡量信息系统在应用和数据方面的脆弱性, 预估这些脆弱性衍生出安全风险的概率;然后结合系统已部署的安全措施对风险的影响进行全面分析

2.2 注重全网防护, 防止安全短板

对系统的恶意代码防护部署要做到多层次、多角度, 确保在所有恶意代码入口对恶意代码进行检测、阻止、清除。因此, 在部署恶意代码防范系统时要做到覆盖全部终端和网络边界, 防止由于ARP或冲击波这样的恶意代码感染系统内部分主机而导致整个网络不可用。

2.3 在全网范围内部署统一的安全管理策略

在等保中, 低级别安全域的威胁可能会影响到高级别安全域。为避免出现这种风险, 可以在逻辑隔离区边界配置访问控制策略, 限制通过网络对高级别安全域的访问;还可以将网内不同级别安全域的配置统一为最高级别安全域的恶意代码防范要求, 防止低级别安全域中因防范策略过低感染恶意代码后对基础架构造成威胁。

2.4 应注重对网络安全状况的监控和多种保护能力的协作

这主要是从管理和运维的角度对等保提出的要求。要求人员能随时监控系统安全状况, 了解本网内信息系统发恶意代码入侵事件, 做到风险可视、行为可控;要求系统安全隐患进行预警、排除, 对紧急情况进行应急处理。

3 结语

恶意代码防范是信息系统安全等级工作的重要部分, 网络、主机和应用三个层次。恶意代码的分析方法分为静析和动态分析。恶意代码的检测技术包括特征码扫描、虚拟机检测、启发式扫描、完整性控制、丰动防御等。在分析、检测和防范三者中, 分析是基础、检测是关键、防范是目标。提高风险意识、注重全网防护、实施统一管理、协调多种能力, 才能抵御不断演化的恶意代码的攻击。

参考文献

[1]李向东, 刘晓, 夏冰, 郑秋生.恶意代码检测技术曼其在等级保护工作中的应用[J].信息网络安全, 2012 (8) :164-166.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【恶意代码检测】相关文章:

恶意代码攻击05-15

恶意软件检测07-31

恶意应用检测08-26

代码安全检测06-05

规制恶意串通之恶意诉讼的立法借鉴与重构09-11

恶意抢注05-30

恶意07-31

恶意行为06-12

恶意诉讼问题06-21

恶意节点识别07-15

上一篇:产业生态链下一篇:吐音技巧