网络安全 频道

当心希腊人的礼物 解读特洛伊木马

记得历史上特洛伊木马的故事吗?希腊人围困特洛伊城长达九年的时间。然后在某一天早上,他们似乎是退却了。希腊人站在城墙上望去,看到的不是希腊军队,而是一件礼物——一匹巨大的木马。由于马是特洛伊人的圣物,所以他们费力地将木马拖入城内,没有发现隐藏在其中的希腊士兵。希腊人进入特洛伊城后,耐心地等待黄昏的来临,然后钻出马外。他们杀死了看守城门的士兵,并打开了城门。最后,特洛伊城陷落了,这正是一句著名谚语“当心希腊人的礼物”的由来。

这只是一个历史故事吗?并不完全是。除非你小心谨慎,否则木马仍有可能造成您的网络的崩溃。本月,一种名为“Brown Orifice HTTPD”(BOH)的新木马,以及另外几种名字恶心的木马——比如Back Orifice(BO)和Deep Throat——开始变得为世人所知。这种程序的危险性在于,一旦进入您的系统的“城墙”,它们就会绕过您的Firebox的检测——除非您在第一时间禁止它们的安装。我们将建立一个秘密连接(尤其是这种连接可以依附在另一种许可的协议上面)的能力称为tunneling(隧道化)。

木马:精心的伪装

与历史上的特洛伊木马相似,大多数木马软件都能对自己进行精心的伪装。一个臭名昭著的例子是NetBus(www.netbus.org),它是一个在Windows NT上使用的远程系统管理工具。是的,NetBus确实提供了远程管理功能,但它的早期版本为知道主机密码(master password)的任何人都额外提供了管理员权限(只需在密码和任何命令后面附加;1)。

Back Orifice(BO)起初只能在Windows 95/98系统上工作,现在也移植到了NT平台。BO隐藏了原本不该提供给普通用户的能力。一个聪明的黑客可以使用BO来弹出或关闭别人的CD-ROM托盘,或者打开麦克风,甚至打开一个摄像头,在远程进行收听和/或监视。BO允许黑客远程运行程序、上传/下载文件、和用户交谈以及关闭计算机。

您或许会问,谁这么笨,会在他自己的计算机上安装如此危险的东西呢?这其实并不怪用户。看见木马时,用户一般看不到它的本来面目。有许多途径都能够传播木马。例如,木马可能成为一个病毒的一部分,甚至成为另一个程序的一部分。一个名为BO Sniffer的程序声称能检查系统中的BO,然后告诉您系统中没有BO,但它实际上会安装并运行BO。一个游戏程序(Bopper)也能在您启动游戏的时候安装BO。

WatchGuard经常向LiveSecurity订户发送安全警告,提醒大家留意排名前十的、处于“野生形态”的病毒和木马。“野生形态”意味着病毒和木马软件不仅在实验室中发现,还在人们的办公和家用电脑中发现。木马所造成的风险是实际存在的,而非只是理论上的东西。正如这些报告所指出的,如果您运行安装了最新更新的病毒扫描软件,那么应该能检测到已知的病毒和木马版本。

最脆弱的地方:城市“大门”

Microsoft产品在木马面前尤其脆弱。Microsoft于过去两年发布了大量警报,它们涉及Internet Explorer、Outlook以及Outlook Express的多处安全漏洞。利用这些漏洞,远程攻击者能在受害者的系统上执行恶意程序。换言之,用户仅仅访问一下网页或者接收一下电子邮件,就可能在不知不觉间下载一个恶意程序,允许远程攻击者在用户的系统上执行指令。

针对Windows 9x和NT系统,存在着大量木马程序。每天都会出现新的木马。及时更新病毒扫描软件,有助于维持一个无木马的系统。除此之外,您还可以采取其他对策:

§使用netstat程序(NT和UNIX系统自带)来列出当前打开的端口地址;检查以前没有见过或者无法辨识的新服务

§在Windows 9x、NT和2000系统上,大多数木马程序都会在安装时修改一个注册表项。在Run和RunService项中(具体位于注册表的Start\Run\type "regedit"\ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion文件夹中),包含了每次电脑开机时会运行的一系列程序。有的程序是固定在此处列出的(其中一部分由Microsoft安装,另一部分由其他厂商安装,其中包括WatchGuard)。在这些注册表项中,请注意来路不明的新值。木马甚至可能利用RunOnce项,或者像system.ini这样的文件。

§Lsof是一个有用的工具,它能将一个开放的端口同一个服务关联起来(在Unix中,使用lsof -i tcp:port或者udp:port)。Lsof在许多UNIX系统上都是自带的;另外,只需低廉的费用,就可以获得在Windows NT和2000系统中使用的类似程序(或者免费获取,具体参见本文最后的“参考资源”)。

虽然Microsoft软件的bug平均一周就会被发现一个,但大多数bug都无法利用来执行代码(通常,只能利用这些bug读取文件或者使软件崩溃)。无论如何,您最好每次在Microsoft出公告的时候安装最新的Microsoft更新,或者避免使用Microsoft软件来访问Web或者读取电子邮件。不过,即使其他厂商的产品,目前也暴露出了许多脆弱性。


Netscape、Java和UNIX的脆弱性

2000年8月的第一周,一位名叫Dan Brumleve的黑客发布了一个示范性的利用漏洞的软件,名字叫做Brown Orifice(BOH)。它是一个会影响Netscape Communicator 4.04~4.74的Java小程序。您可能在不知不觉中下载一个版本的BOH并运行它,或者在访问别人的网页时,不小心运行下载到您的系统上的一个木马程序。

一旦加载BOH,它就会像一个Web服务器那样工作,允许远程Web浏览器显示您的系统上的任何文件。但是,WatchGuard Fireboxes将它变成一个本地网络问题,因为Firebox禁止从外到内的、到任意服务器的连接。换言之,BOH漏洞只能向Firebox内部的其他网络用户开放您的系统。如果您信任“城门后面”的人,这个问题就不是太大。

但是,BOH同时提供了源代码,任何人都可以轻松地下载Java小程序并修改它。通过配置BOH,可以打开从受害者的系统回到攻击的一个连接。此时的危险在于,您的Firebox通常没有配置成禁止系统建立从内向外的连接。即使您的Firebox配置非常严格,修改过的BOH也能使用HTTP来连接攻击者的系统,这是大多数Firebox配置所允许的。攻击者的系统不会像一个真正的Web服务器那样运行。相反,它是采取隧道化(tunneling)技术,作为伪装成Web服务器的一个工具来使用,能通过远程控制来操纵修改过的BOH。

只要您的浏览器启用了Java功能,那么安全风险总是存在的。对安全问题非常在意的用户一般会在Netscape Navigator中禁用Java(选择Edit/Preferences/Advanced/unset Enable Java)。所以,对于这部分人来说,这个问题并为严重。除非确实有必要(例如,您访问的网站要求使用Java,或者您使用的一个软件要求Java支持,比如WatchGuard远程身份验证),否则就应该禁用Java功能。即使需要启用Java功能,也最好是在需要完成一个特定的任务时启用Java功能,在完成任务后再将其禁用。

Unix系统也可能感染木马,虽然这种情况较为少见。UNIX使用一个不同的系统在每次重新启动时启动服务。在配置文件/etc/inetd.conf中,包含了要启动的部分服务。其他程序是通过脚本来启动的(/etc/rc*,或者/etc/rc.d目录中的其他脚本)。当黑客成功入侵一个UNIX系统后,通常要修改这些脚本或者inetd.conf,所以你应该注意这些文件,使用像tripwire(www.tripwire.com)这样的工具来检测对它们的更改。


总结:全面考虑

木马和隧道为网络保护带来了严峻的挑战。除了尽量将攻击者阻挡在外,还必须在他们成功入侵后检测到他们的存在。能够防患于未然总是最好的,所以您应该:

§及时更新病毒扫描软件

§及时更新Microsoft软件(如有必要,每周都进行更新)

§不要执行电子邮件的附件

§使用netstat检查新的网络服务

通常,应该时刻警惕系统和网络中的异常行为——当心带礼物的希腊人。

参考资源:

UNIX系统下的Lsof源码(以及一些预编译的版本):

http://freshmeat.net/projects/lsof

NT下的Lsof相似产品:

Administrator's Pak 4.0可以列出哪些进程容纳着开放的端口:

www.winternals.com

由Arne Vidstrom/ntsecurity.nu提供的另一款lsof for NT(免费): http://ntsecurity.nu/toolbox/inzider/

部分Windows木马程序使用的端口地址列表(您可以使用netstat来检查)

http://anti-trojan.virtualave.net/page61.html

作者简介:

Rik Farrow 独立顾问,CSI委员会中倍受尊重的一位技术顾问,曾撰写《UNIX 安全系统》一书。从1982开始对Unix系统的进行研究,从1987起从事有关网络安全的教育工作。

0
相关文章