第10章病毒机理分析2本章概要本章将主要讨论病毒攻击与清除问题,主要讨论以下方面:病毒自启动技术;病毒传播技术;可疑系统分析;可疑文件的查找;受感染系统的清理。3课程目标通过本章的学习,读者应能够:了解病毒的工作原理;掌握可疑文件的搜集方法;对被感染的系统有清理的能力。410.1病毒传染机制通常,病毒的行为会经历这样一些步骤:首先,通过一定的传播渠道进入目标系统;其次,修改系统设定,以帮助自身在系统启动时执行;最后,执行自身设定的功能,如发起自身的传播、感染文件、发起ddos攻击等。下面针对病毒在这个过程中所采用的一些手段进行讨论。作为病毒或恶意程序,如果要感染一个系统,必定需要通过一定的传播渠道进入系统,以最终完成传播的目的。通常病毒有以下几种传播渠道:电子邮件网络共享P2P共享软件即时通信软件系统中程序的漏洞缺陷510.1.1电子邮件传播方式电子邮件作为一种相当便利的信息通信手段在现代社会中被广泛使用。病毒可以使用电子邮件的快捷传播特性作为传播渠道,html格式的信件正文可以嵌入病毒脚本。而邮件附件更是可以附带各种不同类型的病毒文件。虽然在原理和传播方法上并无特别,但该类型使用电子邮件作为传播手段的病毒在传播时往往会造成可见的危害和现象。通常会造成系统运行速度的缓慢,网络运行受到影响(网络中产生大量病毒生成的邮件)。由于很多病毒运用了社会工程学,发信人的地址也许是熟识的,邮件的内容带有欺骗性、诱惑性,意识不强的用户往往会轻信而运行邮件的带毒附件并形成感染。6部分蠕虫的病毒邮件还能利用IE漏洞,可使用户在没有打开附件的情况下感染病毒。此类病毒的代表有WORM_NETSKY、WORM_BAGLE、WORM_MYDOOM系列等。以下以WORM_mYDOOM.A为例说明病毒通过电子邮件传播的过程。WORM_MYDOOM.A发送的邮件所使用的地址为从被感染的系统中收集,收集的来源有两种:a.从默认的Windows地址簿(WAB)中收集邮件地址;b.从WAB,ADB,TBB,DBX,ASP,PHP,SHT,HTM,TXT等类型的文件中收集邮件地址。7病毒发送邮件使用自身的SMTP引擎,而所使用的SMTP服务器名称系从收集到电子邮件地址中提取。例如收集到的邮件地址为user@sample.com。WORM_MYDOOM.A会从该邮件地址中提取出域名的部分,然后加上一些前缀(如mx.,mail.,smtp.,mxl.,mxs.,maill.,relay.,us.,gate.等)尝试作为邮件的发送服务器地址。除了以上方法外,获得用来发送邮件的SMTP服务器的方法还有多种,例如,通过使用获得的电子邮件地址进行DNS查询的方式等。8当然,病毒仅仅通过电子邮件将自身发送出去是远远不够的,病毒伴随着邮件到了目标系统之后只有被执行,才能真正实现对目标系统的感染。正如前述,病毒发送的邮件或者使用邮件客户端的漏洞,自动执行发送到目标系统的邮件中的自身副本;或者使用社会工程学的手法,诱使收到病毒邮件的用户,自行执行邮件中的附件。WORM_MYDOOM.A正是利用了社会工程学的手法,将自身伪装为无法正常发送的邮件,以吸引用户打开邮件中的附件,如下页图10.1所示。9同时,为了让收到邮件的用户进一步确信打开附件是安全的,附件使用了文本文件的图标进行了伪装,如下页图10.2所示。图10.1通过电子邮件附件传播病毒10图10.2利用文本文件图标伪装11防范措施:这种病毒基本上可以通过技术手段解决:使用网络邮件防毒网关,如趋势的IMSS对邮件附件进行过滤;在现有的Exchange或是Domino服务器上安装邮件防毒产品,如趋势科技的Scanmail;在客户端(主要是Outlook)限制访问附件中的特定扩展名的文件。可以被设置阻止运行的附件类型包括:.adeMicrosoftAccess项目扩展名;.adpMicrosoftAccess项目;12.basMicrosoftVisualBasic类模块;.bat批处理文件;.chm已编译的HTML帮助文件;.cmdMicrosoftWindowsNT命令脚本;.comMicrosoftMS-DOS程序;.cpl控制面板扩展名;.crt安全证书;.exe可执行文件;.hlp帮助文件;.htaHTML程序;13.inf安装信息;.insInternet命名服务;.ispInternet通讯设置;.jsJavascript文件;.jseJavascript编码脚本文件;.lnk快捷方式;.mdbMicrosoftAccess程序;.mdeMicrosoftAccessMDE数据库;.mscMicrosoft通用控制台文档;.msiMicrosoftWindows安装程序包;14.mspMicrosoftWindows安装程序补丁;.mstMicrosoftVisualTest源文件;.pcd照片CD图像,MicrosoftVisual编译脚本;.pifMS-DOS程序的快捷方式;.reg注册表项;.scr屏幕保护程序;.sctWindows脚本组件;.ShbShell碎片对象;.shsShell碎片对象;.urlInternet快捷方式;.vbsVBScript文件。1510.1.2网络共享传播方式病毒通过网络共享进行传播,主要是通过搜索局域网中所有具有写权限的网络共享,然后将自身进行复制进行传播。更进一步,病毒还可自带口令猜测的字典来破解薄弱用户口令,尤其是薄弱管理员口令。对于采用这种方式传播的病毒,需要技术和管理手段并行的方式进行。防范措施:对于支持域的内部网来说,需要在域控制器的域安全策略上增加口令强度策略,至少需要保证长度最小值为6,并开启密码复杂度要求。开启密码过期策略对防护此种攻击作用不大。16定期对网络中的登录口令进行破解尝试,可以使用一些免费工具进行检查,发现可能存在的弱口令。存在弱口令的主机必须及时通知使用者修改,未及时关闭者将限制网络访问。使用共享扫描工具定期扫描开放共享,发现开放共享的主机必须及时通知使用者关闭,未及时关闭者将限制网络访问。1710.1.3系统漏洞传播方式系统漏洞是操作系统的一些缺陷,这些缺陷可以导致一个恶意用户通过精心设计,利用该漏洞执行任意的代码。此类病毒就是通过这种方式对某个存在漏洞的操作系统进行漏洞的利用,达到传播的目的。防范措施:强制要求配置WindowsUpdate自动升级(仅对Windows2000/XP、且能够与互联网联通的系统有效),无互联网连接的网络可以考虑安装使用微软的sus服务器进行补丁程序的更新。18定期通过漏洞扫描产品查找存在漏洞的主机(可能存在部分漏洞无法通过扫描的方式进行确定),对发现存在漏洞的用户,要求强制升级。当安全服务商紧急公告发布时(通常是严重漏洞),及时向内部人员发布安全通知,告知处置方法。使用域环境的网络,可以在域控制器上设置自动登录脚本,当用户登录时,强制安装安全补丁后重新启动,以帮助非技术用户尽快安装补丁。1910.1.4P2P共享软件传播方式P2P软件的出现,使得处于互联网不同位置的人员,进行文件的共享成为可能。常见的P2P文件共享客户端通常都会设置一个本地的文件夹放置共享的文件,由该P2P文件共享软件共享出去。使用传播此种手段的病毒,往往在生成自身拷贝时使用一些吸引人或是容易被人搜索到的名称,以获得被他人下载的机会。例如WORM_MYDOOM.A生成如下的文件名称就很具有欺骗性:nuke2004,office_crack,rootkitXP,strip-girl-2.0bdcom_patchers,activation_crack,icq2004-final,winamp5。防范措施:建议企业使用技术手段,在防火墙上设置禁止P2P软件的使用。2010.1.5即时通信软件传播方式目前被广泛使用的即时通信软件,无疑大大地提高了人与人之间交流的便捷性,而多数的即时通信软件都带有文件的传输功能,导致病毒可以利用这一功能,将自身快速地在即时通信软件之间快速传送。当然伴随着文件的发送,可能病毒也会同时发送一些欺骗性的文字,使得接收方确信是发送方发送的文件,从而接收并打什。以WORM_BROPIA.F为例,在接收方接收文件后,显示的窗口如下页图10.3所示。21防范措施:建议企业使用技术手段,在防火墙的设置中,对企业内部所使用的即时通信软件的一些端口进行阻挡,以禁止此类即时通信软件的文件传送功能。图10.3即时通讯软件传播病毒2210.2病毒触发机制病毒触发的可触发性是病毒的攻击性和潜伏性之间的调整杠杆,可以控制病毒感染和破坏的频度,兼顾杀伤力和潜伏性。过于苛刻的触发条件,可能使病毒有好的潜伏性,但不易传播,只具低杀伤力。而过于宽松的触发条件将导致病毒频繁感染与破坏,容易暴露,导致用户做反病毒处理,也不能有大的杀伤力。计算机病毒在传染和发作之前,往往要判断某些特定条件是否满足,满足则传染或发作,否则不传染或不发作,这个条件就是计算机病毒的触发条件。实际上病毒采用的触发条件花样繁多,从中可以看出病毒作者对系统的了解程度及其丰富的想像力和创造力。23目前病毒采用的触发条件主要有以下几种:(1)日期触发:许多病毒采用日期作为触发条件。日期触发大体包括:特定日期触发、月份触发、前半年后半年触发等。(2)时间触发:时间触发包括特定的时间触发、染毒后累计工作时间触发、文件最后写入时间触发等。(3)键盘触发:有些病毒监视用户的击键动作,当病毒预定的键被击时、病毒被激活,进行某些特定操作。(4)感染触发:大部分病毒感染需要触发条件,而相当数量的病毒又以与感染有关的信息反过来作为破坏行为的触发条件,称为感染触发。它包括:运行感染文件个数触发、感染序数触发、感染磁盘数触发、感染失败触发等。24(5)启动触发:病毒对机器的启动次数计数,并将此值作为触发条件称为启动触发。(6)访问磁盘次数触发:病毒对磁盘I/O访问的次数进行计数,以预定次数作为触发条件。(7)调用中断功能触发:病毒对中断调用次数计数,以预定次数作为触发条件。(8)CPU型号/主板型号触发:病毒能识别运行环境的CPU型号/主板型号,以预定CPU型号/主板型号作为触发条件,这种病毒的触发方式奇特罕见。被计算机病毒使用的触发条件是多种多样的,而且往往不只是使用上面所述的某一个条件,而是使用由多个条件组合起来的触发条件。25在病毒完成了自身的传播行为后,如果不能保证自身在下一次的系统启动时被再次执行,那病毒的生命期就会大大缩短。因此病毒会利用系统中一些可以用以自动执行程序的设定以保证自身可以被自动执行。通常病毒通过以下几种方式保证自身的启动:修改系统注册表;修改系统配置文件;添加自身为系统服务;系统启动文件夹;其他方式。以下依据病毒使用各种不同的自启动方式进行讨论2610.2.1只通过修改系统注册表自启动在Windows的注册表中,所有的数据都是通过一种树状结构以根键和子键的方式组织起来,就像磁盘文件系统的目录结构一样。每个键都包含了一组特定的信息,每个键的键名都是和它所包含的信息相关联的。以下简述了注册表最顶层的五个根键所代表的含义:HKEY_CLASSES_ROOT管理文件系统。根据在Windows中安装的应用程序的扩展名,该根键指明其文件类型的名称,相应打开该文件所要调用的程序等信息。HKEY_CURRENT_USER管理系统当前的用户信息。在这个根键中保存了本地计算机中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码。在用户登录Windows时,其信息从HKEY_USERS中相应的项复制到HKEY_CURRENT_USER中。27HKEY_LOCAL_MACHINE管理当前系统硬件配置。在这个根键中保存了本地计算机硬件配置数据,此根键下的子关键字包括在SYSTEM.DAT中,用来提供HKEY_LOCAL_MACHINE所需的信息,或者在远程计算机中可访问的一组键中。这个根键里面的许多子键与System.ini文件中设置项类似。HKEY_USERS管理系统的用户信息。在这个根键中保