网路安全公司 Foundstone一年之中总会有几次将公司内部几位最优秀的专家外派出去,现场教导他人如何入侵电脑系统。
别误会,他们并不是想鼓励这种恶行。事实上,这家公司正是靠防堵骇客攻击来谋生的。其实,他们授课的目的是为了向网路警察(cybercops)揭示他们日常面临到的问题,以及如何遏止骇客入侵他人的电脑系统。
我们和这些电脑安全人员一起度过了四天的时间,这些家伙感觉都非常好,也难怪,谁叫他们都是一等一的好手呢?
第一天我见到了我的同班同学。他们可不是甚麽泛泛之辈,大部份都是系统管理员或工程师,专门从事跟网路防护、防范骇客入侵的相关工作。他们大多任职於联邦航空管理局、美国空军以及如 Genuity 或 Fidelity 等线上经纪服务公司等。只有极小部分的人和我一样,是 Unix方面的专家,对网路系统(Networking)却不是很在行。
Kevin Mandia 是今天的讲师,他曾经是位美国空军调查员。
骇客高手当然会隐藏自己入侵电脑的蛛丝马迹。但是他们要躲避的对象是谁呢?是系统管理员吗?或许是吧!接着 Mandia 提到了一件让人感到不安的事情。
他一再的说:「一个 CEO(执行长)会知道自己的网站曾遭受到攻击吗?不可能吧!只有技术人员才能确保公司其它同仁免遭骇客的袭击。
这说法令我很吃惊,原来系统管理员并非只要看管好系统而已,严格说起来,他们本身其实就是公司的防堵系统!
但是,他们一直以来都做得不是很好。Mandia 提起 1999 年 CD Universe (音乐天地)所发生的事件。骇客进入该音乐网站的伺服器,设法收集了成千上万个信用卡帐号。每一个人都知道这个事件,但是当该网站的技术人员去击退骇客的攻击时,他们竟然没有将受到攻击的硬碟做备份。他们将这些入侵者击退之後,硬碟上却没有留下足够的证据来提交给法庭。
他说,这次的事件给我们的教训就是,先切断伺服器与外界的连结,好把所有被(骇客)更动的资料拷贝下来,这样就可以复制所有已被修改过的数据。
在整整四天的时间里,授课的老师不断重申「应对计画」(response plans)的重要性,以及被攻击的网站在成为被攻击对象之前为何非得拥有它不可。当然,我们上课的主要内容是环绕在检测骇客的行踪上,有时甚至还要乔装骇客攻击电脑系统。
我们大家仔细的研读 Unix 日志档,这些文字都清楚的纪录了在电脑上所执行的一切动作。担心系统安全的系统操作人员应该确保 Unix 日志档经已启动。但是实际情况常常并非如此。
我观察了一下。虽然我的经验并不丰富,但我也看出这个家伙是利用冒充系统主要管理员的方式来掌控这台机器的。问题是,电脑中并没有详细的讯息可以让我了解这些情况,因为这些日志档的主要目的是向技术人员说明他们的系统是如何工作的。我有点困惑了,很明显的,我们这位访客是用一个陌生的使用者名称登录系统的,而且现在正从别处下载软体呢。那他是在下载跟骇客有关的工具吗?我看着我的同学,我想他们肯定会知道的。
但是他们当中有许多人并不知道答案。经过半小时的解码工作和种种猜测,我们得到一个结论:这位骇客是用窃取的、或猜测的密码进入网站,然後源源不断地给伺服器灌上很多资料,数量之大远远地超出了它的处理能力,然後引发了一个回应,允许他在机器上执行任何的程式。在短短的几分钟後,他就成为经授权的、可以为所欲为的「超级使用者」。
他建立起自己的日志档,打算记载其他人使用系统的纪录。他也很聪明,从硬碟上清除了做这个工作所使用的软体。
第二天
昨天,我们使用普通的 Unix 命令来观察到底是谁在入侵我们的系统。今天,我们自己使用同样的命令来尝试入侵系统的行为。
我们连接到网路上的一台电脑,它就和许多电脑一样的「门户大开」,无论外来访客知不知道密码,都可以轻易的上去访问。
我们使用了每一个 Unix 和 Linux 系统都有的标准命令。首先,同学们先快速浏览了我们锁定的这台目标机器,很快的便找到了它能够提供的网路服务-网路拨接、电子邮件等。事实上,也有一台网路伺服器正在运作中,我们便向这台伺服器灌了几个事先包装好的、常见的程式脚本。
许多像是这样的程式指令都在网路上流传着,而它们几乎都可以攻破任何有安全漏洞的网路主机。
根据我们先前对目标电脑路径的观察,我们得到了一个经常使用该系统的使用者名称。我们的讲师告诉我们密码是星球大战里头一个角色的名字,有人在 30 秒钟内,连自动猜测密码程式也没用就猜到了。
同学们对 Linux 的基本知识都了如指掌,更知道如何处理和使用它。还好这目标伺服器和我们在同一个房间,将它恢复到先前的状态也就很容易:但是在短短的几分钟入侵时间内它就惨遭破坏。
到目前为止,这些日志档或多或少告诉了我们一些事件的来龙去脉。而其他的 Linux 指令则告诉我们,目前有哪些程式正在伺服器上执行着,包括一些骇客的工具。但是执行了 Knark之後,电脑就无法告诉我们所发生的任何事项了。要获得一个电脑系统管理员的密码-其实并非经常都那麽困难-你可以安装这些恶意的骇客相关程式。它可以非常彻底地隐藏所发生的任何事件。事实上,真的非常彻底,你不得不使伺服器离线,并深入到电脑内部去一探究竟。但我们却没有这麽做。
第三及第四天
我们今天继续讨论应对策略-「当你的电脑遭到攻击时应该保护什麽,如何保护它」之类-这是电脑管理员与骇客在法庭上较量时所必备的基本证据。
我们也学习到了很多有关骇客们隐藏行踪的方法,他们甚至可以将目录名称隐藏,连系统管理员下达显示档案的指令时,都无法显示。
但是这一次我们并非只是纸上谈兵,遭殃的是我们自己的笔记型电脑。我们的讲师 Will Chan 老师将课堂上一半的电脑硬碟换成被骇客入侵的硬碟,然後叫我们去看到底发生了什麽事。
我的搭档对 Linux 似乎已经有点生疏了,所以当他操作电脑的时候,我便负责记笔记。看起来好像有个 Hansolo 在电脑要求它输入使用者名称和密码的时候,透过向这台 PC 灌入大量资讯的方式来突破我们的防线。实际上,他先源源不断地向系统传送一些无意义的东西,然後再向它发灌入大量资讯,使它无法执行。
这个安全漏洞被称为缓冲区溢出(buffer overflow),攻击这个漏洞十分奏效。程式设计师们刚刚修补了这个特别的漏洞,但是我们正在使用的作业系统却有很多地方没有更新过这样的安全漏洞。
Hansolo 潜入了电脑,取得了一些进入系统的密码,然後使用另一个使用者的帐号。之後,他下载了一些叫做「deathstar」的程式。看起来他是使用这个工具来攻击我们的电脑,他传输了一些档案,这一切仅在几分钟内完成。
他获得了些什麽呢?这个程式将对我们的电脑又有何影响?谁也不知道。他就像其他骇客高手一样,牢牢地控制住这部电脑:在入侵的过程中,任何电脑所可能促成的错误讯息均被立即删除。我们找不到太多的证据,而且他也将电脑日志档删除的乾乾净净。我们无法得知他在入侵电脑後都做了些什麽。就我们所了解,这情况在这个领域而言,也并不是甚麽了不起
的事。
下午和翌日早上的学习内容大致相同,但是这次我们追踪了针对在 Windows NT 系统上的攻击事件,而不是 Linux 系统。
我们看到网站代管公司如何让骇客轻易入侵,因为它们让使用者在主页上使用 Microsoft 的脚本语言。同样的,我们也见识到了骇客们可以利用来攻击伺服器的许多非 Windows 脚本程式。
Windows 的工具名称与众不同,我们看到日志档有其他的名称,Windows 整体的安全系统不
如其它作业系统,但是它们有一个共同之处:我们的基础架构到处都是安全漏洞,略懂技术
的人都可以侵入我们的电脑。至於它们能造成多大的损失,主要还是看你花上多少时间和资
源将骇客们拒於千里之外。
後记
讽刺的是, 我们的老师花了这麽多力气在原本应该是自动作业的流程上。
在这四天当中,我们从严苛但乐於助人的 Keith Jones 讲师身上学到了很多有用且宝贵的知
识。他很愿意和我谈话,但是却又常常欲言又止。他说,他对这个行业有些毛骨悚然的感觉。要教人做好事,你必须先教他们如何做邪恶的坏事。
怪不得这些家伙那麽的喜欢星球大战