近两年来,很多人已经亲身体验到网络蠕虫的危害,比如2003年8月发作的冲击波(Worm.Blaster)以及2004年5月发作的震荡波(Worm.Sasser)。这两个病毒都属于网络蠕虫,它们利用了Windows服务中的漏洞来进行传播和破坏。冲击波(Worm.Blaster)病毒利用了RPC(Remote Procedure Call,远程过程调用)服务的漏洞,而RPC服务正是windows xp必须运行的服务之一。Blaster病毒发作时,你的机器会在60秒钟内自动关闭。而Sasser病毒则利用了Windows的LSASS(Local Security Authority Subsystem Service,安全性授权子系统服务)服务进行攻击和传染。按照反病毒机构的说法,如果不加以防范,这些网络蠕虫可以在1小时内通过Internet传遍地球上的所有电脑。
问题的关键在于实际上我们离不开这些服务,windows xp的很多功能都是通过这些服务来实现的。简单地讲,你可以把这些服务理解为在后台完成系统任务的程序,比如获取自动更新或者管理打印任务。与一般应用程序的最大区别是它们都是在“后台”运行的,因此你基本上感知不到它们的存在。
为了实现windows xp的各种功能,Microsoft会在安装Windows系统时对这些服务进行自动配置。Windows会把其中的一些服务设置为“开机自动运行”状态,另一些则是在需要时再加载,还有一些服务则只有当用户选择加载时才会加载。绝大多数电脑并不需要运行所有的“开机自动运行”服务,这些不必要的服务会增加系统被攻击的危险,还会占用宝贵的系统资源。如果想看到所有服务的运行状态,你可以依次打开“控制面板” “管理工具” “服务”(如图1所示)。
在图1中,你可以看到每一个服务都有以下几个属性:名称、描述、状态、启动类型、登录身份、依存关系。有些属性没有在图1中显示,你可以用鼠标双击某个服务,就能看到更多的属性。比如Task Scheduler服务的作用是“使用户能在此计算机上配置和制定自动任务的日程。如果此服务被终止,这些任务将无法在日程时间里运行。如果此服务被禁用,任何依赖它的服务将无法启动。”默认状态下,Task Scheduler服务的启动状态是“自动”,它会随着Windows的启动而启动。而在依存关系中,你可以看到它依赖于Remote Procedure Call (RPC)服务。Task Scheduler服务的可执行文件的路径是“C:\WINDOWS\System32\svchost.exe -k netsvcs”,因此它在任务管理器中的进程名就是“svchost.exe”,由于有好几个服务都是用svchost.exe来调用的,因此你会在任务管理器中看到多个“svchost.exe”进程(如图2所示)。
如果你重新安装一份Windows XP Professional Service Pack 2的话,你会发现一共安装了79个系统服务:34个服务会自动运行,38个服务会在需要时启动,只有7个服务没有被激活。如果你安装的是Windows XP或者windows xp SP1,它总共会安装77个系统服务,其中34个服务会自动运行,41个服务会在需要时启动,只有2个服务没有被激活。实际上在多数情况下,有大约20个自动运行的服务是不必非要运行的,关掉它们会提高系统运行效率和安全性。