简单4招教你轻松追踪到黑客老巢
来源:中国电子政务网 更新时间:2008-05-25
网络安全是一个综合的、复杂的工程,任何网络安全措施都不能保证万无一失。因此,对于一些重要的部门,一旦网络遭到攻击,如何追踪网络攻击,追查到攻击者并将其绳之以法,是十分必要的。

  追踪网络攻击就是找到事件发生的源头。它有两个方面意义:一是指发现IP地址、MAC地址或是认证的主机名;二是指确定攻击者的身份。网络攻击者在实施攻击之时或之后,必然会留下一些蛛丝马迹,如登录的纪录,文件权限的改变等虚拟证据,如何正确处理虚拟证据是追踪网络攻击的最大挑战。

  在追踪网络攻击中另一需要考虑的问题是:IP地址是一个虚拟地址而不是一个物理地址,IP地址很容易被伪造,大部分网络攻击者采用IP地址欺骗技术。这样追踪到的攻击源是不正确的。使得以IP地址为基础去发现攻击者变得更加困难。因此,必须采用一些方法,识破攻击者的欺骗,找到攻击源的真正IP地址。

  一、netstat命令——实时察看文击者

  使用netstat命令可以获得所有联接被测主机的网络用户的IP地址。Windows系列、Unix系列、Linux等常用网络操作系统都可以使用“netstat”命令。

  使用“netstat”命令的缺点是只能显示当前的连接,如果使用“netstat”命令时攻击者没有联接,则无法发现攻击者的踪迹。为此,可以使用Scheduler建立一个日程安排,安排系统每隔一定的时间使用一次“netstat”命令,并使用netstat〉〉textfile格式把每次检查时得到的数据写入一个文本文件中,以便需要追踪网络攻击时使用。

  二、日志数据——最详细的攻击记录

  系统的日志数据提供了详细的用户登录信息。在追踪网络攻击时,这些数据是最直接的、有效的证据。但是有些系统的日志数据不完善,网络攻击者也常会把自己的活动从系统日志中删除。因此,需要采取补救措施,以保证日志数据的完整性。

  Unix和Linux的日志

  Unix和Linux的日志文件较详细的记录了用户的各种活动,如登录的ID的用户名、用户IP地址、端口号、登录和退出时间、每个ID最近一次登录时间、登录的终端、执行的命令,用户ID的账号信息等。通过这些信息可以提供ttyname(终端号)和源地址,是追踪网络攻击的最重要的数据。

  大部分网络攻击者会把自己的活动记录从日记中删去,而且UOP和基于X Windows的活动往往不被记录,给追踪者带来困难。为了解决这个问题,可以在系统中运行wrapper工具,这个工具记录用户的服务请求和所有的活动,且不易被网络攻击者发觉,可以有效的防止网络攻击者消除其活动纪录。

  Windows NT和Windows 2000的日志

  Windows NT和Windows 2000有系统日志、安全日志和应用程序日志等三个日志,而与安全相关的数据包含在安全日志中。安全日志记录了登录用户的相关信息。安全日志中的数据是由配置所决定的。因此,应该根据安全需要合理进行配置,以便获得保证系统安全所必需的数据。

  但是,Windows NT和Windows 2000的安全日志存在重大缺陷,它不记录事件的源,不可能根据安全日志中的数据追踪攻击者的源地址。为了解决这个问题,可以安装一个第三方的能够完整记录审计数据的工具。

  防火墙日志

  作为网络系统中的“堡垒主机”,防火墙被网络攻击者攻陷的可能性要小得多。因此,相对而言防火墙日志数据不太容易被修改,它的日志数据提供最理想的攻击源的源地址信息。

  但是,防火墙也不是不可能被攻破的,它的日志也可能被删除和修改。攻击者也可向防火墙发动拒绝服务攻击,使防火墙瘫痪或至少降低其速度使其难以对事件做出及时响应,从而破坏防火墙日志的完整性。因此,在使用防火墙日志之前,应该运行专用工具检查防火墙日志的完整性,以防得到不完整的数据,贻误追踪时机。

  三、原始数据包——比较可靠的分析方法

  由于系统主机都有被攻陷的可能,因此利用系统日志获取攻击者的信息有时就不可靠了。所以,捕获原始数据包并对其数据进行分析,是确定攻击源的另一个重要的、比较可靠的方法。

  包头数据分析

  表1是一个原始数据包的IP包头数据。表中的第一行是最有用的数字。第一行的最后8位代表源地址。本例中的地址是0xd2、0×1d、0×84、0×96,对应的IP地址是210。45。132。150。通过分析原始数据包的包头数据,可以获得较为可靠的网络攻击者的IP地址,因为这些数据不会被删除或修改。但是,这种方法也不是完美无缺的,如果攻击者对其数据包进行加密,对收集到的数据包的分析就没有什么用处了。

  表1 一个IP包头数据

  0×0000 45c0 c823 0000 d306 6002 2c06 d21d 8496

  0×0010 22ab b365 c234 0000 0000 4066 dd1d 8818

  0×0020 7034 ecf8 0000 5b88 7708 b901 4a88 de34

  0×0030 9812 a5c6 0011 8386 9618 0000 a123 6907

  0×0040 55c5 0023 3401 0000 5505 b1c5 0000 0000

  0×0050 0000 0000 0000 0000 0000

  捕获数据包

  在一个交换网络环境下捕获数据包比较困难,这主要是因为集线器和交换机在数据交换中本质的不同。集线器采用的是广播式传输,它不支持连接,而是把包发送到除源端口外的所有端口,与集线器相连的所有机器都可以捕获到通过它的数据包。而交换机支持端到端的连接,当一个数据包到达时交换机为它建立一个暂时的连接,数据包通过这个连接传到目的端口。所以,在交换环境下抓包不是一件容易的事。为了获得交换环境下的数据包,可以用下面方法解决:

  1. 把交换机的一个“spanning port”(生成端口)配置成象一个集线器一样,通过这个端口的数据包不再与目的主机建立连接,而是广播式地发送给与此端口相连的所有机器。设置一个包捕获主机,便可以捕获到通过“spaning port”的数据包。但是,在同一时刻,交换机只能由一个端口被设置成“spanning port”,因此,不能同时捕获多台主机的数据包。

  2. 在交换机之间,或路由器和交换机之间安装一个集线器。通过集线器的数据包便可以被捕获主机捕获。

  在用捕获数据包获取攻击者的源地址的方法中,有两个问题需要注意:一是保证包捕获主机由足够的存储空间,因为如果在捕获数据包时网络吞吐量很大的话,硬盘很快会被填满;二是在分析数据包时,可编制一段小程序自动分析,手工分析这么多的数据是不可能的。

  四、 搜索引擎——也许会有外的惊喜

  利用搜索引擎获得网络攻击者的源地址,从理论上讲没有什么根据,但是它往往会收到意想不到的效果,给追踪工作带来意外惊喜。黑客们在Internet上往往有他们自己的虚拟社区,他们在那儿讨论网络攻击技术方法,同时炫耀自己的战果。因此,在那里经常会暴露他们攻击源的信息甚至他们的身份。

  利用搜索引擎追踪网络攻击者的IP地址就是使用一些好的搜索引擎(如搜狐的搜索引擎)搜索网页,搜索关键词是攻击主机所在域名、IP地址或主机名,看是否有贴子是关于对上述关键词所代表的机器进行攻击的。虽然网络攻击者一般在发贴子时会使用伪造的源地址,但也有很多人在这时比较麻痹而使用了真实的源地址。因此,往往可以用这种方法意外地发现网络攻击者的踪迹。

  由于不能保证网络中贴子源地址的真实性,所以,不加分析的使用可能会牵连到无辜的用户。然而,当与其方法结合起来使用时,使用搜索引擎还是非常有用的。