大家一定对 Autorun 病毒恨之入骨吧?是的,这种病毒在学校、办公室等场所传播迅速,且不易防范。对一般用户来说,中毒之后也不易清除,往往重装系统之后病毒还会死灰复燃。此文将介绍 Autorun 的原因,分析网上流传的传统治疗 Autorun 病毒的方法,并提出一种新思路,彻底防治包括 Autorun 系列在内的所有 U 盘病毒。
一、Autorun 的介绍及 Autorun 病毒的原理
Autorun 病毒是一种专门针对 Windows 系列操作系统的病毒,它是依靠 Windows 的 Autorun/Autoplay 功能发作传播的。这个功能的目的是在电脑上插入闪存盘等可移动设备或是光盘之后,自动执行一系列的指令。在 Windows XP 之前, Autorun 和 Autoplay 指的是同一个功能,但是在 Windows XP 之后,这两个单词指不同的功能。在中文版的 XP 里,前者被翻译为“自动运行”,而后者叫“自动播放”。其中自动运行是指:
- 对光盘来说,放入光盘后,自动执行
autorun.inf
文件中规定的程序。 - 对其它可移动设备来说(闪存盘、移动硬盘等),当双击盘符时,自动执行
autorun.inf
文件中规定的程序。
而自动播放则是在一些 XP 系统上经常见到的类似下面的图片的窗口:(这是微软官方的图片)
这就是自动播放。
区分了自动运行和自动播放之后,我们也就不难发现,前者就是病毒发作的依附物,而后者,对我们其实是没有威胁的基本没有威胁的。
下面说说自动运行的主要文件,就是 Autorun.inf
文件。
关于这个文件,完整的语法说明及相关知识介绍可以见 MSDN 的这个页面 。由于我们只讨论它的自动运行功能,所以以下是一个简约版的 Autorun.inf
文件,只包含两条常用命令:
[autorun] icon=virus.exe,0 open=virus.exe
在这个小巧的只有三行的文件里,已经包含了使 U 盘“中毒”的所有信息。第一行是 inf 读取时所需要的,可以看作是正常“礼节”,第二行规定了 U 盘的图标,这只是为了吸引点击,其实是可以省略的。第三行则是规定 open 这个动作。如上面所说,当这个文件存在于 U 盘和存在于光盘中的效果是不同的。如果这个文件在 U 盘中,则双击 U 盘盘符的时候就会运行 virus.exe
这个程序,而如果在光盘中,则光盘一放入光驱,就会运行 virus.exe
。这就是为什么有些光盘(驱动程序光盘、游戏光盘等)一放到光驱里就有程序弹出来。
有了这样一个小文件及一个配套的 virus.exe
,那么这 U 盘就已经算是“中毒”了。当这个 U 盘插入到一台新的电脑上的时候,不明真相的用户双击 U 盘盘符——好了,病毒已运行。这个病毒就寄生在电脑里,等待下一只未感染的 U 盘插入,再把这两个文件复制到 U 盘里,再去感染更多的电脑。Autorun 病毒就这样传播开来了。
但为什么重装系统后这个病毒还会死灰复燃呢?那是因为病毒不仅在 U 盘里放了这两个小文件,也在你的每个硬盘分区(C 盘、 D 盘、 E 盘、 F 盘……)里都复制这两个文件。当你重装系统后, C 分区里的病毒被清除了,但是其它分区的病毒依然存在,当你去双击它们的盘符时——好了,病毒已运行。一切照旧。
二、如何拯救已中毒的 U 盘、硬盘
首先你需要把病毒的已运行实体清除。最好的清除方法当然是从启动项等方面来手工清除,但是最方便的方法莫过于用杀毒软件扫描一遍。最有效的方法则是重装一遍系统了,推荐用之前备份的 Ghost 镜像重装系统。重装系统之后千万不要打开“我的电脑”去双击盘符,而是应该点击“工具”→“文件夹选项”→“查看”选项卡,把“显示所有文件这个选项”勾选。如图:(微软官方截图)
这个选项勾选之后,按“确定”保存设置。
此时有关键一步,那就是按工具栏上的“文件夹”按钮,调出左侧的树状目录,从左侧单击进入 C 分区的根目录,你应该会看到两个半透明的隐藏文件,一个是 autorun.inf
,一个是 xxx.exe
,其中 xxx 代表一些奇怪的单词,比如“Recycle”“Install”“Run”等等。不要犹豫了,删除。注意不要删错了……然后 D 分区、 E 分区、 F 分区等,以及你的 U 盘等,也如此操作。千万注意,只能从左侧的树状目录单击进入,不能双击盘符。否则前功尽弃。
当然,如果你对 Windows 命令行比较熟悉的话,还有一种比较方便的操作方法,这里简单介绍一下:
Microsoft Windows [Version 6.1.7600] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\wzyboy>f: F:\>attrib A F:\10G.vdi A F:\Auto-Sign.zip A H F:\autorun.inf A H F:\virus.exe A H F:\virus2.exe A H F:\virus3.exe A H F:\virus4.exe F:\>more autorun.inf [autorun] open=virus3.exe F:\>attrib autorun.inf -s -h -r F:\>del autorun.inf F:\>attrib virus3.exe -s -h -r F:\>del virus3.exe
这段命令的意思列出所有 F 分区根目录的文件并显示其属性,然后用 more
命令查看 autorun.inf
文件中指定的病毒是哪一个(否则万一有多个exe文件,你怎么哪个是病毒?),再去掉它们的隐藏属性,最后删除它们。
每个盘符都这样处理过之后,病毒在内存里的实体和在分区根目录里的残留物就都已经清除了。那么,如何防止再次感染这种病毒呢?
三、传统防治方法及其缺陷
由于 360 (国家)安全卫士和瑞星杀毒软件在中国大陆的流行,有一种防治方法也得到了普及,但是这种方法并不好。
这种方法的原理是利用在文件系统里同名的文件不能覆盖文件夹的原因,也就是在每个盘符的根目录都创建一个名为 Autorun.inf
的文件夹。由于同名的文件是不能覆盖文件夹的,所以病毒自然就不能创建相应的文件了。但是这种方法一方面太武断,会把一些自定义 U 盘里“不作恶”的 Autorun 文件也删除(注:U 盘换图标等也是通过这个文件来完成的,无害,不是病毒);更重要的是,并不是每台电脑上都有这样的软件,所以总有一些 U 盘是没有经过这样的处理的,所以电脑依然会中毒。
还有一点,则是除了 Autorun 系列病毒,还有一种伪装文件夹的病毒,它并不依靠 Autorun 文件,而是依靠伪装文件夹,这种病毒也能在重装系统后死灰复燃,但是用这种传统的防治方法是对它一点效果也没有的(因为它不需要用到 Autorun)。
另一种“防治方法”则是宣传通过组策略里的“关闭自动播放”策略,来达到禁用 Autorun 的目的。但是,认真看过上文的读者就会发现,这是“自动播放”,而不是“自动运行”,所以,这只是一个伪技巧,完全不能达到任何防治作用。
四、用本地安全策略彻底防治
下面介绍一种彻底防治 U 盘病毒的方法,不仅能防 Autorun 系列病毒,也能防伪装文件夹的病毒,且一劳永逸,对任意 U 盘都有效。看图:(图是我自己电脑上截的)
第一步,打开“本地安全策略”。在“运行”窗口中输入 secpol.msc
然后回车就可以了。
需要注意的是,“路径”当中填的 J:\*.exe
是因人而异的,看看你的 U 盘插在电脑上的盘符是多少,就用相应的相符代替“J”,如果你要插多个 U 盘,就按照上面第三步的方式多建几个规则,如果你想所有的盘符都防治的话,只要建一个就行了,路径填写为 *:\*.exe
,不过这样的副作用是一些用光盘安装的游戏可能会无法运行。
此方法的原理就是通过 Windows 内置的本地安全策略,限制 U 根目录里 exe 文件的执行。如果以后再有带毒的 U 盘插入到你的电脑上,当你习惯性地双击盘符时,你就会看到这样的一个图标:
这是那条安全策略在起作用,它告诉你,这个 U 盘是带毒的,请不要打开它了。
五、养成一个好习惯
微软在桌面上放了一个“我的电脑”(Windows Vista 之后叫“计算机”),这没啥,关键问题是“我的电脑”默认是不显示左侧树状目录的。树状目录很重要吗?是的,它很重要。细心的读者一定发现了,当我说病毒已运行的时候,都强调了“双击盘符”。的确,这种以 Autorun 为首的 U 盘病毒只有当双击盘符的时候才会发作。所以,双击这个动作是充满危险的。
那么右击→“打开”呢?这也是危险的。如果读者仔细看上文提到的那篇 MSDN 的文章,就会发现 autorun.inf
的功能是很丰富的,包括可以自定义右键菜单,病毒的制作者完全可以在这个文件里添加几条命令,使得右击 U 盘的时候除了“打开”“格式化”“属性”这一类常规命令外,再出几条“你好”“再见”之类的命令。同样他也可以做一个假冒的“打开”命令。当你点击它的时候,不幸就发生了。
那么最好的习惯是什么呢?从左侧树状目录点击。你可以记忆一个快捷键: Win+E ,按下这个快捷键,打开的是一个类似“我的电脑”的窗口,但是它的真实名字叫“资源管理器”,它默认就是有左侧目录的,可以直接点击。如果你还是习惯点击桌面上的“我的电脑”的话,那千万记得先把树状目录开出来(“文件夹”按钮点一下),再进盘符。
养成一个好习惯,不用任何策略都能防治 U 盘病毒。当然,如果你的单用户账户电脑要借给别人的话,还是用安全策略吧,你不能保证别人也有像你这样的好习惯。^_^