“2003蠕虫王“病毒详细情况及解决方案
突如其来的"SQL"蠕虫,不亚于让人们不能忘怀的"9。11"事件。
2003年1月25日,互联网遭遇到全球性的病毒攻击,此病毒的病毒体极其短小,却具有极强的传播性。
此病毒利用Microsoft SQL Server的漏洞进行传播,由于Microsoft SQL Server在世界范围内都很普及,因此此次病毒攻击导致全球范围内的互联网瘫痪,在中国80%以上网民受此次全球性病毒袭击影响而不能上网,很多企业的服务器被此病毒感染引起网络瘫痪。而美国、泰国、日本、韩国、马来西亚、菲律宾和印度等国家的互联网也受到严重影响。这是继红色代码、尼姆达,求职信病毒后又一起极速病毒传播案例。
所以"SQL"蠕虫的出现,应该成为一个传奇。
目前此病毒不具有破坏文件、数据的能力,主要影响就是大量消耗网络带宽资源,使得网络瘫痪。
目前江民病毒应急处理中心截获的此病毒。由于江民反黑王默认设置是将1434端口关闭,使用江民反黑王的用户不会受到次病毒的影响,建议SQLserver用户安装SQL Server漏洞补丁和SP3。
补丁下载地址:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=40602
微软针对此安全漏洞的安全补丁:
http://download.microsoft.com/download/SQLSVR2000/Patch/Q323875/W98NT42KMeXP/EN-US/Q323875_SQL2000_SP2_en.EXE
"SQL" 杀手病毒 技术分析报告:
"SQL"蠕虫病毒是一个极为罕见的具有极其短小病毒体却具有极强传播性的蠕虫病毒。该蠕虫利用Microsoft SQL Server 2000缓冲区溢出漏洞进行传播,详细传播过程如下:
该病毒入侵未受保护的机器后,取得三个Win32 API地址,GetTickCount、socket、sendto,接着病毒使用GetTickCount获得一个随机数,进入一个死循环继续传播。在该循环中蠕虫使用获得的随机数生成一个随机的ip地址,然后将自身代码发送至1434端口(Microsoft SQL Server开放端口),该蠕虫传播速度极快,其使用广播数据包方式发送自身代码,每次均攻击子网中所有255台可能存在机器。
易受攻击的机器类型为所有安装有Microsoft SQL Server 2000的NT系列服务器,包括WinNT/Win2000/WinXP等。所幸该蠕虫并未感染或者传播文件形式病毒体,纯粹在内存中进行蔓延。 病毒体内存在字符串"h.dllhel32hkernQhounthickChGet"、"Qh32.dhws2_f"、"etQhsockf"、"toQhsend".该病毒利用的安全漏洞于2002年七月被发现并在随后的MS SQL Server2000补丁包中得到修正。
病毒特征:
该蠕虫攻击安装有Microsoft SQL 的NT系列服务器,该病毒尝试探测被攻击机器的1434/udp端口(江民反黑王默认设置是将1434端口关闭,使用江民反黑王的用户不会受到次病毒的影响),如果探测成功,则发送376个字节的蠕虫代码。1434/udp端口为Microsoft SQL开放端口。该端口在未打补丁的SQL Server平台上存在缓冲区溢出漏洞,使蠕虫的后续代码能够得以机会在被攻击机器上运行进一步传播。
该蠕虫入侵MS SQL Server系统,运行于MS SQL Server 2000主程序sqlservr.exe应用程序进程空间,而MS SQL Server 2000拥有最高级别System权限,因而该蠕虫也获得System级别权限。
受攻击系统:未安装MS SQL Server2000 SP3的系统
而由于该蠕虫并没有对自身是否已经侵入系统的判定,因而该蠕虫造成的危害是显然的,不停的尝试入侵将会造成拒绝服务式攻击,从而导致被攻击机器停止服务瘫痪。
该蠕虫由被攻击机器中的sqlsort.dll存在的缓冲区溢出漏洞进行攻击,获得控制权。随后分别从kernel32以及ws2_32.dll中获得GetTickCount函数和socket以及sendto函数地址。紧接着调用 gettickcount函数,利用其返回值产生一个随机数种子,并用此种子产生一个IP地址作为攻击对象;随后创建一个UDP socket,将自身代码发送到目的被攻击机器的1434端口,随后进入一个无限循环中,重复上述产生随机数计算ip地址,发动攻击一系列动作。
"SQL" 杀手病毒解决方案:
我们建议所有运行Microsoft SQL Server 2000和近期发现网络访问异常的用户按照以下解决方案操作:
1、在打开江民反黑王并确认阻塞外部对内和内部对外的UDP/1434端口的访问。
如果该步骤实现有困难可使用边界防火墙或者路由器上或系统中的TCP-IP筛选来阻塞对本机UDP/1434端口的访问。
2、找到被感染的主机
在边界路由器(或者防火墙)上进行检查,也可启动网络监视程序(譬如Sniffer Pro)进行检查,找到网络中往目的端口为UDP/1434发送大量数据的主机,这些主机极为可能感染了该蠕虫。
如果不能确定,则认为所有运行Microsoft SQL Server 2000 而没有安装补丁程序的机器都是被感染的机器。
可以使用端口扫描程序对UDP/1434端口进行扫描来找到运行Microsoft SQL Server 2000的主机,但是由于UDP端口扫描并不准确,可以扫描TCP/1433端口找到运行SQL Server的主机。但需要注意的是,只有SQL Server 2000才会受到此蠕虫的感染。
3、拔掉被感染主机的网线。
4、重新启动所有被感染机器,以清除内存中的蠕虫。关闭SQL Server服务以防止再次被蠕虫感染。
5、插上被感染机器的网线
6、为被感染机器安装最新的Microsoft SQL Server 2000 Service Pack:
虽然Microsoft SQL Server 2000 SP2( http://www.microsoft.com/sql/downloads/2000/sp2.asp )就已经解决了该问题,但考虑到在SP2之后又出现了一些严重安全问题,强烈建议安装Microsoft SQL Server 2000 SP3( http://www.microsoft.com/sql/downloads/2000/sp3.asp )。
或者至少应该下载针对该漏洞的热修复补丁:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=40602
注意:如果由于某种原因无法从网络下载补丁进行安装,因此可以在其他未被感染的主机上下载补丁,刻录在光盘或者保存在其他移动介质上,然后再到被感染的主机上进行安装。