美国eEye数字
安全公司最近发布了一份安全咨询报告,指出微软Windows XP缺省安装时会引起严重的安全漏洞。微软已经承认了这些漏洞的存在,并于2001年12月20日发布了针对这些漏洞的补丁
程序MS01-509。
这些漏洞是由Windows XP中的通用即插即用(UPnP)服务引起的。在Windows系统中,系统可以检测到即插即用的
硬件设备,比如鼠标、键盘等,微软将即插即用的概念扩展到了
网络,UPnP可以让计算机在网上找到其他的网络设备,比如网络
打印机,并可决定如何使用它们。
系统控制权被盗 UPnP服务的一个组件中包括了一个未被检测的缓冲区,通过一个特殊的UPnP通报指令,可以使该缓冲区溢出,如果该指令恰好是某个特定的值,则可以影响UPnP服务的运行。攻击者可以利用这个缺陷任意改变UPnP服务,来执行各种任务,因为UPnP服务是作为
操作系统的一部分来运行,这使得攻击者可以通过UPnP完全控制另一台计算机。对于这个致命的缺陷,微软也承认它非常严重,虽然它只影响Windows XP的UPnP服务。
遭受拒绝服务攻击
某台计算机在使用网络设备之前,会查看网络设备传送过来的信息,其中会包括一个URL、网络设备能提供的服务列表以及如何调用该设备的指令,计算机只需下载这些设备信息,就可以开始使用该设备。
但UPnP既没有限制下载的设备信息的尺寸,也没有机制确认设备信息和下载地址是否有效。这使它可以很轻易地被用于拒绝服务攻击。这个缺陷将会影响到所有的UPnP服务。
攻击者可以找到一个提供Echo服务的服务器,Echo服务不管有什么发送给它,都会自动回送一个包。如果攻击者向用户系统发送一个通报指令,告知用户该服务器上有一个用户需要的UPnP网络设备,用户系统就会向该服务器发送下载请求,而该服务器自动回复一个包,因为没有设备信息的确认机制,UPnP会认为这是设备信息,并请求更多的信息文件,然后服务器又会自动回复一个包,最终会形成一个死循环。乐观的情况下,可能只是降低了用户系统的运行效率,而最坏的情况是耗尽用户系统的所有资源和磁盘空间。
而UPnP不提供确认下载地址是否有效的机制,使得攻击者可以向多个分布的计算机发送通报指令,将它们与一个第三方服务器连接,如果有足够多的机器同时向该计算机的同一个端口发送下载请求,那这台计算机的速度会急剧下降,并发生数据堵塞。
Windows用户都需警惕 UPnP的这两个缺陷不仅会影响Windows XP用户,还会牵涉到其他安装了UPnP的Windows用户。毋庸置疑,Windows XP用户绝对需要马上下载补丁程序;而Windows Me也带有UPnP服务,不过它不会缺省安装,但在一些OEM的预先安装中,可能会提供UPnP的缺省安装和运行,所以Windows Me用户需要确认自己的系统中是否安装了UPnP;Windows 98/98SE不自带该服务,但如果用户安装了Internet连接共享客户端程序,其中会包括UPnP服务,所以安装了Internet连接共享的用户也需要立即下载补丁程序;Windows NT 4.0和Windows 2000都不支持UPnP服务,所以不存在这类安全漏洞。
安全问题会使用户变节吗? 微软曾声称Windows XP是Windows系列中最为安全的系统,但它推出不到两个月时间,就发现了如此严重的漏洞,这不由得会使支持Windows的用户的信心大大受挫。事实上,众多的Linux厂商一直将Windows系统在安全上的软肋看做自己发展的机会,这次Windows系统暴露的严重缺陷似乎又进一步增强了Linux的信心。长期以来,Linux因为支持它的应用太少而裹足不前,但随着Linux的安全性和稳定性被越来越多的用户认可,支持Linux的应用也越来越多。一直困扰着Windows的安全问题再一次被证实之后,很难说是否会影响用户对操作系统的选择。