近两年来,很多人已经亲身体验到网络蠕虫的危害,比如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:WINDOWSSystem32svchost.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个自动运行的服务是不必非要运行的,关掉它们会提高系统运行效率和安全性。
潜在危险
也许你对Windows服务所带来的安全性危险还没有足够的认识,由于这些服务与系统的核心相关并拥有各种权限,因此一旦被不法份子掌握,很可能造成操作系统崩溃。为了尽可能地保护你的电脑不受侵害,关闭那些不需要的服务是很有必要的。而这样做还能减少系统资源占用,提高系统运行效率,何乐而不为呢?让我们先利用一个工具来查看一下哪些服务是可以从外部访问到的,来自www.nmap.org(现在已改为www.insecure.org)的nmap工具可以对端口进行扫描(如图3),从而检查出某台机器上对外开放的服务。另一款免费扫描工具SuperScan v4.0(http://www.foundstone.com/resources/freetools.htm)也可以帮助你(如图4)。
新安装的Windows XP通常有5个开放端口,SP1也是如此,到了SP2,Microsoft加强了对端口的保护,你只能找到三个开放端口(如果没有启动防火墙的话)。而如果你打开