【IT专家网独家】近来,Windows暴露了许多严重的安全漏洞,如冲击波蠕虫在2003年利用的MS03-026安全漏洞和2006年8月Mocbot/Wargbot蠕虫利用的MS06-040安全漏洞。利用这些安全漏洞的恶意软件数量正在迅速增长。大多数蠕虫都有许多变体,大多数bot系列蠕虫的变体比其本身的数量还要多,例如,Agobot、Phatbot和Sdbot等等。众所周知,bots是僵尸计算机的集合体,用于组成恶意的僵尸网络。
安全专家在今年早些时候的报告中声称:在4个月的时间里,我们收集了15,500个独特的恶意软件样本代码,大约1400MB数据。同时提供了四种不同杀毒引擎新的检测率为73%至84%。从这些数据中我们不难看出,依靠杀毒软件始终不适用于每一个用户。
如何才能更加彻底解决恶意软件的威胁呢?利用干预率很低的蜜罐平台检测恶意软件被广泛认可,通常蜜罐系统广泛的被运用于病毒样本的收集,但这个蜜罐也能够捕捉恶意软件并帮助隔离及清除感染。
扫描蠕虫的IDS警报
最近几年发现的破坏性巨大的蠕虫几乎都是利用Windows服务安全漏洞进行破坏的。例如,冲击波、Sasser、Welchia和Slammer等蠕虫,给全球企业带来了巨大的损失。
入侵检测系统(IDS)厂商拥有已知的这些蠕虫的特征数据,配合端口扫描功能能够发现新的蠕虫。2003年的冲击波蠕虫,每一个被感染的主机每秒钟要向135/tcp端口发送大约10个数据包,这足以引起Snort软件报警,有些工具甚至能够在冲击波蠕虫特征数据创建之前就能够发现这个问题。
僵尸网络的一些问题
僵尸计算机(肉鸡)与蠕虫的主要区别是僵尸计算机有一个中央控制通道,向被感染的计算机发送指令,这通常是通过IRC完成的。当进行扫描时,这些僵尸计算机可能会出现类似蠕虫的行为。但僵尸计算机它们仅根据指令进行扫描。在这种情况下,IDS系统能够检测到C&C(指挥与控制)通讯并报告为:
| [SCAN]: Exploited yyy.yyy.123.45. |
总的来说,僵尸计算机在接到命令扫描一个特定的网络之前通常是非常安静的:
| #(4 - 1329104) [2005-03-25 03:39:49.297] [snort/2001372]
BLEEDING-EDGE IRC Trojan Reporting (Scan)
IPv4: yyy.yyy.231.32 -> zzz.zzz.163.59
hlen=5 TOS=0 dlen=168 ID=18140 flags=0 offset=0 TTL=127 chksum=56572
TCP: port=3023 -> dport: 8000 flags=***AP*** seq=1483308911
ack=501861482 off=5 res=0 win=64331 urp=0 chksum=51363
Payload: length = 128
000 : 50 52 49 56 4D 53 47 20 23 61 73 74 72 6F 20 3A PRIVMSG #astro :
010 : 5B 53 43 41 4E 5D 3A 20 52 61 6E 64 6F 6D 20 50 [SCAN]: Random P
020 : 6F 72 74 20 53 63 61 6E 20 73 74 61 72 74 65 64 ort Scan started
030 : 20 6F 6E 20 yy yy yy 2E yy yy yy 2E 78 2E 78 3A on yyy.yyy.x.x:
040 : 34 34 35 20 77 69 74 68 20 61 20 64 65 6C 61 79 445 with a delay
050 : 20 6F 66 20 35 20 73 65 63 6F 6E 64 73 20 66 6F of 5 seconds fo
060 : 72 20 30 20 6D 69 6E 75 74 65 73 20 75 73 69 6E r 0 minutes usin
070 : 67 20 32 30 30 20 74 68 72 65 61 64 73 2E 0D 0A g 200 threads... |
还有一种僵尸计算机利用Google搜索潜在的安全漏洞,这就意味着寻找这种目标不需要进行端口扫描。这种分析结果同样是在IRC上提出的:
| "PRIVMSG #ch :[GOOGLE] Trying to exploit http://www.example.com/index.php" |
僵尸计算机并不总是像扫描蠕虫那样容易被发现,因为它可以长时间处于休眠状态,只有在接到指令向其它计算机传播的时候才能引发IDS警报。
使用蜜罐发现僵尸电脑
在大多数蠕虫和僵尸计算机进行扫描的过程中,许多通讯是指向外部的。在这些情况下,你应该能够在你的IDS记录中找到大量的扫描信息,有时候也将扫描内部网络,来寻找更容易感染的漏洞系统。
本文基于Nepenthes蜜罐平台来介绍。Nepenthes蜜罐平台是根据一种名叫“猪笼草”的植物命名的。Nepenthes在Unix服务器上运行,提供足够的通用Windows服务的仿真技术以欺骗多数自动的攻击。Nepenthes将自动下载恶意的负载并选择把它自动发送给检测机构。通常不久,用户的收件箱将收到关于这个恶意软件样本特征的详细介绍。
通常在用户计算机上运行Nepenthes,将很快发现许多恶意软件在网络上流动(当然这里是指接入网络中的)。有许多僵尸蠕虫,杀毒软件并不能很好的检测出来。虽然很多时候僵尸计算机并不会轻易的向用户发起攻击,但加入这些恶意软件存在于你的网络中,危害可想而知。
安装和设置Nepenthes
安装过程不是本文的重点,这里就不详细介绍,使用使用Debian Linux的用户,拥有预装的软件包。其它系统的用户可以阅读详细介绍建立这个软件包的说明书。
Nepenthes软件安装完毕之后,用户可以编辑/etc/nepenthes/nepenthes.conf配置文件,增加“submitnorman.so”、“submit-norman.conf”等文件以便使用Norman sandbox。
submit-norman.conf文件的内容如下:
|
submit-norman
{
// this is the adress where norman sandbox reports will be sent
email "my.email@example.com";
}; |
将把恶意软件信息发送到Norman的在线沙箱(sandbox),这个沙箱将进行实时分析并且用电子邮件发出分析的结果。这将为你提供有关恶意软件代码的详细信息,使管理员不必在自己的虚拟机中运行和跟踪这个恶意软件代码,有些用户爱好逆向工程,在有了Sandbox以后,将可以更快的得到病毒的详细信息。
当你安装和运行Nepenthes的时候,它应该能够监听大量的通用TCP/IP端口,如下所示:
|
#lsof -i
nepenthes 25917 nepenthes 6u IPv4 162588 TCP *:smtp (LISTEN)
nepenthes 25917 nepenthes 7u IPv4 162589 TCP *:pop3 (LISTEN)
nepenthes 25917 nepenthes 8u IPv4 162590 TCP *:imap2 (LISTEN)
nepenthes 25917 nepenthes 9u IPv4 162591 TCP *:imap3 (LISTEN)
nepenthes 25917 nepenthes 10u IPv4 162592 TCP *:ssmtp (LISTEN)
|
使用Nepenthes
一旦出现要感染Nepenthes传感器的企图,Nepenthes将设法下载这个恶意软件副本并将这个副本传送到Norman沙箱。下面是关于一个IRC僵尸计算机报告的一部分:
| [ Network services ]
* Looks for an Internet connection.
* Connects to xxx.example.net on port 7654 (TCP).
* Sends data stream (24 bytes) to remote address xxx.example.net, port 7654.
* Connects to IRC Server.
* IRC: Uses nickname xxx.
* IRC: Uses username xxx.
* IRC: Joins channel #xxx with password xxx.
* IRC: Sets the usermode for user xxx to ... |
管理员可以直接看到IRC服务的详细信息,这为用户跟踪或者进行逆向工程分析节省了很多时间。一些恶意软件,如Agobot,有反调试代码,阻止沙箱进行有用的分析。在这种情况下,用户可以使用杀毒软件。如果这样做还不行,你可以把这个下载的二进制代码发送给在线多引擎扫描(网址是:www.virustotal.com),它能够向你提供多种主流杀毒软件产品关于恶意软件样本代码的报告。
捕捉的二进制代码是根据其md5和校验码命名的。这些代码在/var/lib/nepenthes/binaries这个目录中:
| # ls /var/lib/nepenthes/binaries/
01a7b93e750ac9bb04c24c739b09c0b0 547765f9f26e62f5dfd785038bb4ec0b
99b5a3628fa33b8b4011785d0385766b 055690bcb9135a2086290130ae8627dc
54b27c050763667c2b476a1312bb49ea ... |
这个记录文件还指出每一个二进制代码是如何和在什么地方获得的:
| # tail -1 /var/log/nepenthes/logged_submissions
[2006-07-05T20:37:52]
ftp://ftp:password@xxx.info:21/host.exe eb6f41b9b17158fa1b765aa9cb3f36a0 |
如果用户的杀毒软件还不能识别这个威胁,只有通过提交样本给反病毒公司,来迫使他们更新其病毒特征库。这样做的目的只有一个,确保蠕虫大面积爆发时,可以迅速进行清除工作。
使用Nepenthes结果
新西兰蜜罐计划安装一个Nepenthes蜜罐,这个系统监视255个IP地址,在5天时间里,它收集了74个不同的样本,其中48个样本被杀毒产品识别为恶意软件。在已知的样本中,大多数为蠕虫,如Korgo、Doomjuice、Sasser和Mytob,其余各种为IRC bot,如SDBot、Spybot、Mybot和Gobot。读者可以根据需要对这些样本进行进一步的分析。
结论
微软发布的大量的Windows补丁,修复远程可利用的安全漏洞。即使有一个良好的补丁管理系统,由于配置错误、用户使用错误等原因,某些用户的内部主机也许会漏掉一些补丁。有大量不同的恶意二进制代码能够利用这些安全漏洞获得访问这些计算机的权限。由于黑客拥有这些恶意软件的源代码,因此将会出现许多变体,普通的杀毒软件不会检测到所有的恶意软件。
所以使用交互率较低的蜜罐程序可以更及时的为管理员提供有价值的信息。在与入侵检测系统一起使用时,可以获得关于恶意软件行为、数据包捕捉和恶意二进制代码本样本分析等真正实用的信息。 |