1.2 木马的检测与防护
在信息安全领域,特洛伊木马(简称木马)是一种后门程序,是黑客为了盗取计算机用户的个人信息、甚至远程控制对方的计算机而加壳制作的,然后通过各种途径传播或诱骗用户执行该程序,从而达到盗取账号密码等各种重要数据资料的目的。木马程序技术的发展非常迅速,在数据传递技术和进程隐藏方面都有了很大改进。现在比较高级的是驱动级木马,这种木马使用了大量的Rootkit技术来达到深度隐藏的目标,并且深入到内核空间,增加了查杀难度。摆渡木马是一种新出现的特种木马,专门针对内网环境,体现了木马发展的专攻性。有攻就有防,与此同时,木马检测技术也在不断进步,由传统的特征码技术逐渐发展到目前流行的入侵防御技术。
1.2.1 特种木马的基本特征
作为涉密信息系统,在信息处理方式、应用环境设置、安装软件类型、用户操作行为等方面都有其特殊性和代表性。例如,被处理信息的内容多以文本类、图片类电子文件为主,同时包含部分视频以及音频文件。
从目前涉密信息系统的建设情况及安防措施来看,作为一个封闭式的涉密信息系统管理模式,其与外界进行数据交互的方式十分单一,且要求严格,即中间机、光盘、涉密专用存储介质3类。因此,能够进入涉密信息系统的特种木马也必然具有其特有的静态特征与动态特征,这些特征在特种木马生命周期(植入、传播、隐藏、启动、窃取、发送)的各个环节都有具体体现。
摆渡木马是一种摆渡类的特种木马。2006年4月国外某杀毒厂商截获了一种专门针对移动存储介质的木马,这种木马隐藏于U盘、光盘等移动存储介质中,当感染了此木马的移动存储介质连接到内网中的计算机后,就将木马植入被接入的计算机中,木马搜索该计算机中的文件数据并收集感兴趣的目标文件,随后打包并悄悄发送到U盘。这一切都是在用户没有察觉的情况下进行的,可见摆渡木马的隐藏功能足够强大。一旦该移动存储介质接入外网,就会将其收集到的文件、数据等信息通过互联网向外界发送。由于此种木马的攻击方式就像摆渡人通过渡船把乘客摆渡到河对岸,因此被形象地称为“摆渡木马”。这里,U盘、光盘等移动存储介质就是“渡船”,窃取的信息就是“渡客”。
以摆渡类特种木马为例,其全生命周期运行流程如图1.2所示。在U盘、光盘为摆渡载体的情况下,该类型木马包含了植入、隐藏、自启动、数据搜索、文件发送以及自我销毁等核心环节。
图1.2 摆渡木马运行的生命周期
系统在设计上充分结合涉密信息系统所采用的操作系统平台、应用软件种类、用户行为方式以及涉密信息系统管理守则,制定符合涉密信息系统特点的特种木马静态生存特征。
采用逆向推理手段,面向特种木马生存需求环境,针对特种木马生命周期中的各个环节,分析木马侵入涉密信息系统的动态行为特征。同时,采取主动跟踪方式,搜集和捕捉特种木马动态行为特征。
1.2.2 特种木马隐藏技术
众所周知,一个病毒木马进入计算机系统的首要任务是保护自己不被杀毒软件、防护系统或用户所发现,即使被发现了也要想办法使自己不被查杀掉,只有存活下来,才有机会实现窃取信息的任务。所以对木马的隐藏以及免杀的研究是非常重要的工作。
前些年比较常见的木马文件隐藏方式是将木马病毒伪装成本地文件。木马病毒将可执行文件伪装成图片或文本,在程序中把图标改成Windows的默认图片图标,再把文件名改为.JPG或.EXE。由于Windows默认设置是不显示已知的文件后缀名,文件将会显示为.JPG,不注意的人一点击这个图标就在无意间启动了木马程序[2,3]。
利用配置文件的特殊作用,木马很容易就能在计算机中运行。如autoexec.bat 和Config.sys。像DOS在启动会自动运行autoexec.bat文件,一般我们在里面装载每次必用的程序,如:path(设置路径)、smartdrv(磁盘加速)、mouse(鼠标启动)、mscdex(光驱连接)、doskey(键盘管理)、set(设置环境变量)等,当然也可以添加自己木马程序。特别是系统配置文件msconfig.sys中的系统启动项——system.ini、window.ini是众多木马的隐藏地。Windows安装目录下system.in的[boot]字段中,正常情况下为boot=“Explorer.exe”,如果后面有其他的程序,如这样的内容:boot=“Explorer.exe file.Exe”,这里的file.exe可能就是木马程序。再有system.ini中的[drivers],[drivers32],[mci]这3个字段,也起到加载驱动程序的作用,因此也是增添木马程序的好场所。
木马病毒就利用系统里那些不会危害到系统正常运行而又经常会被调用的程序文件,像输入法指示程序INTERNAT.EXE。让动态链接库可以像程序一样运行的RUNDLL32.EXE.等。木马程序会替换原来的系统文件,并把原来的系统文件名改成只有它自己知道的一个偏僻文件名。只要系统调用那个被替换的程序,木马就能继续驻留在内存。木马作为原来的程序被系统启动时,会获得一个由系统传递来的运行参数,木马程序就把这个参数传递给被改名的程序执行[4,5]。
进程隐藏有两种情况:一种隐藏是木马程序的进程仍然存在,只是不在进程列表里,采用APIHOOK技术拦截有关系统函数的调用实现运行时的隐藏,替换系统服务等方法导致无法发现木马的运行痕迹;另一种方法是木马不以一个进程或者服务的方式工作。将木马核心代码以线程或DLL的方式插入到远程进程中,由于远程进程是合法的用户程序,用户又很难发现被插入的线程或DLL,从而达到木马隐藏的目的。在Windows系统中常见的真隐藏方式有:注册表DLL插入、特洛伊DLL、动态嵌入技术、远程线程插入和调试程序插入等[6]。
有些木马在运行时能够删除自身启动运行及存在的痕迹,当检测到操作系统重新启动,再重新在系统中设置需要启动自身的参数,这类木马存在的问题是当系统失效时(如断电、死机时)无法再次恢复运行。内核模块隐藏,使木马程序依附到操作系统部件上,或成为操作系统的一部分。通常做法是用木马DLL替换系统DLL,DLL中的函数实现木马功能,并转发到原系统DLL中调用相关函数。
软件开发商可以在软件的原始分发中植入木马。其主要思想是:修改编译器的源代码A,植入木马,包括针对特定程序的木马(如login程序)和针对编译器的木马。经修改后的编译器源码称为B。用干净的编译器C对D进行编译得到被感染的编译器D。删除B,保留D和A,将D和A同时发布。以后,无论用户怎样修改login源程序,使用D编译后的目标login程序都包含木马。而更严重的是用户无法查出原因,因为被修改的编译器源码B已被删除,发布的是A,用户无法从源程序A中看出破绽,即使用户使用D对A重新进行编译,也无法清除隐藏在编译器二进制中的木马。
相对其他隐藏手段,原始分发的隐藏手段更加隐蔽。主要包括通信内容、流量、信道和端口的隐藏。木马常用的通信隐藏方法是对传输内容加密,隐藏通信内容。采用网络隐蔽通道技术隐藏通信信道。在TCP/IP协议族中,有许多信息冗余可用于建立网络隐蔽通道。木马可以利用这些网络隐蔽通道突破网络安全机制,比较常见的有ICMP畸形报文传递、HTTP隧道技术,自定义TCP/UDP报文等。采用网络隐蔽通道技术,如果选用一般安全策略都允许的端口通信,如80端口,则可轻易穿透防火墙和避过入侵检测系统等安全机制的检测,从而具有很强的隐蔽性。通信流量的隐藏,当存在其他通信流量时,木马程序也启动通信。当不存在任何其他通信流量时,木马程序处于监听状态,等待其他进程通信。有些木马为了能更好地实现隐藏,达到长期潜伏的目的,通常融合多种隐藏技术,如采用多线程方式,线程间相互实时保护,一旦一方被删除,另一方可以通过备份恢复并远程启动。或通过一个木马程序(称为“主木马”),在局域网内部繁殖生产“子木马”,统一协调完成工作。各子木马根据主木马分派的任务,各自负责一独立任务,达到相互之间的保护,同时可以分散传输数据量,达到目的地址接收数据,增大了追查源地址的难度。而且主木马和子木马寄生于不同主机,并且相互联系,增强了木马的抗查杀能力[7]。
1.2.3 特种木马的免杀
免杀,顾名思义就是逃避杀毒软件的查杀,目前用得比较多的免杀方法有加壳、修改特征码和加花指令3种,通常木马编写者会针对不同的情况来运用不同的免杀方法。下面详细介绍目前最流行的病毒木马免杀技术。
想要了解病毒木马免杀技术的原理,首先要了解杀毒软件的工作方式。杀毒软件的工作方式一般是特征码匹配杀毒,通过分析病毒的特征码来判断病毒。而病毒只有逃避过杀毒软件的查杀,才能顺利实现其入侵系统、盗取用户私密信息的目的,“免杀”病毒则应运而生。
免杀技术之一:加花指令。加花是病毒免杀常用的手段,加花的原理就是通过添加加花指令(一些垃圾指令,类型加1或减1之类的无用语句)让杀毒软件检测不到特征码,干扰杀毒软件正常的检测。加花以后,一些杀毒软件就检测不出来了,但是有些比较强的杀毒软件,像360杀毒软件,还是会检测出并杀掉病毒。这可以算是“免杀”技术中最初级的阶段[8]。
免杀技术之二:加壳。举例来说,如果说程序是一张烙饼,那壳就是包装袋,可以让你发现不了包装袋里的东西。比较常见的壳一般容易被杀毒软件识别,所以加壳有时候会使用到生僻壳,壳也可以加多重壳,让杀毒软件看不透。举一例,如果你看到一个袋子上面写着干燥剂、防腐剂之类的字样,但里面也许装的是牛肉,这就是伪装壳,把一种壳伪装成其他壳,干扰杀毒软件正常的检测。
免杀技术之三:修改特征码。病毒加壳虽然可以逃过一些杀毒软件的查杀,但是却逃不过杀毒软件的内存杀毒,因为病毒终究是要加载到内存中运行的。因此修改特征码成为逃避杀毒软件内存查杀的唯一办法。举例来说,如果程序是一张烙饼,那特征码就像上面的芝麻,每一张饼上面的芝麻位置是不同的,所以每个程序包括病毒特定位置上面的字符也是不同,这粒用来识别是不是病毒的“芝麻”就是特征码。
要修改特征码,就要先定位杀毒软件的病毒库所定位的特征码,这个有一定难度,需要有经验的黑客才能做到。但是现在网络上有很多现成的工具可以定位出特征码,黑客们只需简单修改就能完成“免杀病毒”的制作。
1.2.4 木马检测与防护的技术要求
1)安全性与可靠性
对于系统设计来说,设计目标就是要确保系统能够具有很好的适应性,对于外部干扰具有较强的顽健性,确保系统健康稳定地运行。系统具有操作日志的监控功能,能够记录系统的操作日志。同时,系统采取MD5算法,内置超大数据量校验功能,能够对未知程序进行合法性校验。在应用程序与驱动程序通信的处理上,系统采取底层动态链接库的方式,降低外部干扰,提高通信私密性。
本系统采用大量驱动程序开发技术,为此,本系统需进行严格测试,主要测试系统兼容性,尤其是与杀毒软件、防火墙的兼容性。
为了提高系统的可靠性,为系统设计了自我保护功能。系统运行时能够阻止任何用户或进程对自身的中止动作;对系统的卸载需采取权限控制,需通过UKey授权;防止非卸载状态下,任何禁止对与本系统关联的程序文件、数据文件、注册表等进行重命名、删除等操作。
在应用程序与驱动程序通信过程中,对于任何企图阻碍和破坏程序运行的动作,都能够执行预警和主动拦截操作。
系统具有操作日志监控功能,对于与系统关联的程序文件、注册表信息,都将对其进行安全标记并实时监控,任何非授权的改动、删除等操作,都将被拦截,并记录到系统操作日志内。
2)开放性和独立性
为了实现与多种数据库的直接数据交换功能,系统提供了标准的数据接口、开放接口、代码及开发手册,提供用户再开发、新增功能的支持。
此外,系统具备特征库的独立导入/导出设置,不需借助第三方工具,方便快捷地进行特征库扩充和动态更新。支持与其他数据库的直接数据交换能力,包括各种桌面数据库以及文本文件。
3)先进性和实用性
系统的设计必须要考虑到未来软硬件环境的变化,特别是对于摆渡木马防护与检测系统来说,如何避免与安全防护系统产生冲突,是必须要考虑的先进性设计问题;同时,对于驱动级的开发来说,确保消息拦截、驱动开发的实用性是必须首先考虑的问题。
4)兼容性和可扩展性
目前的计算机硬件更新迅速,计算机操作系统升级更新速度极快,从Windows XP、Windows7到Windows8操作系统,系统应用环境、底层驱动信息都发生了革新式的变化,如何做到最好的适应性,满足安全、开放和互联的要求,是必须确保的问题。
1.2.5 特种木马的关键行为特征
除了具有一般木马的危害性之外,摆渡木马具有自身的特征如下。
1)自启动性。摆渡木马隐藏于U盘等移动存储介质中,由于Windows操作系统的自动播放功能或者双击盘符,木马文件就会自动运行。和大多数U盘病毒的启动方式一样,摆渡木马自启动的实现是通过U 盘根目录下的autorun.inf 文件。现在变种的摆渡类木马也会在植入涉密机后修改注册表的自启动项或系统配置文件,以达到在系统下次启动的时候木马自动启动的目的。
2)隐蔽性。摆渡木马启动后,利用各种进程隐藏技术,使木马自我复制以及搜索文件、发送文件的进程都不被察觉,并且木马运行时占用资源少,用户也完全感觉不到它的执行对内存的影响。或者即使使用工具发现木马存在于系统中,也无法确定它的具体位置,即无法删除木马文件以及清除木马。
3)针对性。摆渡木马是一种间谍人员专门针对涉密内网环境定制的特种木马,考虑到政府军工部门都会组建单位内部的涉密网络,不与互联网连接,那种远程控制的依赖于网络连接的木马就失效了,因此设计出这种依靠U盘、光盘等移动存储介质传播的木马,完成把敏感数据文件从内网摆渡到互联网黑客处的功能。摆渡攻击是为了窃取国家军事政治机密,一般只感染特定的军用计算机。
4)功能特殊性。摆渡木马的目标是窃取涉密机上的重要文件数据等资料,对国家的信息安全和经济利益有很大的威胁,而不是像传统木马那样关注普通用户的机器口令、账号密码等个人隐私信息,或者有些黑客为了炫耀自己的实力而远程控制用户的电脑。因此摆渡木马具有自动搜索感兴趣的文件、自动存储打包、自动发送回U盘的功能。
摆渡木马与互联网中常见的木马主要有以下几点区别。
1)运行环境不同。一般木马运行于网络环境中,而摆渡木马攻击的目标机器是没有网络连接的,在完成摆渡攻击的最后一个步骤——将U盘中窃取到的信息发送到攻击者处的时候才需要依赖于互联网,使用SMTP协议传送。
2)控制方式不同。大部分木马程序都是C/S模式,由服务器端和客户端两部分构成。服务器端运行在被攻击机器上,客户端(也称为控制端)则运行在黑客的机器上。因此一般木马可以远程控制植入木马的机器,如管理文件资源、监控对方屏幕、锁定鼠标、控制键盘输入、击键记录、远程执行程序、开关机、对注册表进行操作等[9]。而摆渡木马不存在这种C/S控制模式,也就决定了攻击者不能实时地监控、操作和控制被攻击的机器,只能在木马原型中指定位置,窃取到秘密文件的U盘在获取网络环境后将文件发送到攻击者所在位置。
3)传播途径不同。一般木马的传播方式有电子邮件、文件下载、网页挂马、ARP欺骗等。此外,点击MSN、QQ、电子邮件等即时通信软件中的网址链接,浏览被黑客攻击的网站,也会导致感染木马。摆渡木马采用U盘、光盘等移动存储介质作为传播工具,U盘与计算机之间会交叉感染,比如U盘在植有摆渡木马的计算机上使用时,木马就会悄悄复制到U盘中,然后被感染的U盘插到别的计算机上,摆渡木马又会传播到该计算机上。