追踪技术:破解黑客攻击 让黑客无路可走

2011-01-09 20:21出处:ZDnet作者:佚名我要评论

[导读]  网络是个大舞台,这个舞台中不光有安全人员也有黑客份子所组成。

  网络是个大舞台,这个舞台中不光有安全人员也有黑客份子所组成。芳击与防守自然就成了两者之间相互论辩的话题。对于一些重要的部门,一旦网络遭到攻击,如何追踪网络攻击,追查到攻击者并将其绳之以法,是十分必要的。下面的文章分本地追踪和网络追踪两部份。

  本地追踪方法

  追踪网络攻击就是找到事件发生的源头。它有两个方面意义:一是指发现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的安全日志存在重大缺陷,它不记录事件的源,不可能根据安全日志中的数据追踪攻击者的源地址。为了解决这个问题,可以安装一个第三方的能够完整记录审计数据的工具。

  防火墙日志

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

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

  网络入侵追踪方法

  入侵者的追踪(Intruder Tracing)在区域网路上可能你听过所谓「广播模式」的资料发送方法,此种方法不指定收信站,只要和此网路连结的所有网路设备皆为收信对象。

  入侵者的追踪(Intruder Tracing)在区域网路上可能你听过所谓「广播模式」的资料发送方法,此种方法不指定收信站,只要和此网路连结的所有网路设备皆为收信对象。但是这仅仅在区域网路上能够实行,因为区域网路上的机器不多(和Internet比起来 )。如果象是Internet上有数千万的主机,本就不可能实施资料广播(至于IP Multicast算是一种限定式广播Restricted Broadcast,唯有被指定的机器会收到, Internet上其他电脑还是不会收到)。假设Internet上可以实施非限定广播,那随便一个人发出广播讯息,全世界的电脑皆受其影响,岂不世界大乱?因此,任何区域网路内的路由器或是类似网路设备都不会将自己区域网路内的广播讯息转送出去。万一在WAN Port收到广播讯息,也不会转进自己的LAN Port中。而既然网路皆有发信站与收信站,用以标示信息发送者与信息接收者,除非对方使用一些特殊的封包封装方式或是使用防火墙对外连线,那么只要有人和你的主机进行通讯(寄信或是telnet、ftp过来都算) 你就应该会知道对方的位址,如果对方用了防火墙来和你通讯,你最少也能够知道防火墙的位置。也正因为只要有人和你连线,你就能知道对方的位址,那么要不要知道对方位置只是要做不做的问题而已。如果对方是透过一台UNIX主机和你连线,则你更可以透过ident查到是谁和你连线的。在实行TCP/IP通讯协定的电脑上,通常可以用netstat指令来看到目前连线的状况。(各位朋友可以在win95、Novell以及UNIX试试看(注一),在下面的连线状况中,netstat指令是在win95上实行的,以看到目前自己机器(Local Address处)的telnetport有一台主机workstation.variox.int 由远端(Foreign Address处)连线进来并且配到1029号tcp port.而cc unix1主机也以ftpport连到workstation.variox.int去。所有的连线状况看得一清二楚。(如A、B)

  A.在UNIX主机(ccunix1.variox.int)看netstat

  B.另一端在Windows95(workstation.variox.int)看netstat,

  当然,如果你想要把网路连线纪录给记录下来,你可以用cron table定时去跑:

  netstat>>filename,但是UNIX系统早已考虑到这一个需求,因此在系统中有一个专职记录系统事件的Daemon:syslogd,应该有很多朋友都知道在UNIX系统的/var/adm下面有两个系统纪录档案:syslog与messages,一个是一般系统的纪录,一个是核心的纪录。但是这两个档案是从哪边来的,又要如何设定呢?

  系统的纪录基本上都是由syslogd (System Kernel LogDaemon)来产生,而syslogd的控制是由/etc/syslog.conf来做的。syslog.conf以两个栏位来决定要记录哪些东西,以及记录到哪边去。一个最标准的syslog.conf,第一栏写「在什么情况下」以及「什么程度」。然后用TAB键跳下一栏继续写「符合条件以后要做什么」。这个syslog.conf档案的作者很诚实,告诉你只能用TAB来作各栏位之间的分隔(虽然看来好像他也不知道为什么)。第一栏包含了何种情况与程度,中间小数点分隔。另外,星号就代表了某一细项中的所有选项。详细的设定方式如下:

  1.在什么情况:各种不同的情况以下面的字串来决定。

  auth 关于系统安全与使用者认证方面

  cron 关于系统自动排程执行(CronTable)方面

  daemon 关于背景执行程式方面

  kern 关于系统核心方面

  lpr 关于印表机方面

  mail 关于电子邮件方面

  news 关于新闻讨论区方面

  syslog 关于系统纪录本身方面

  user 关于使用者方面

  uucp 关于UNIX互拷(UUCP)方面

  上面是大部份的UNIX系统都会有的情况,而有些UNIX系统可能会再分出不同的项目出来。

12下一页

本文导航>>

    黑客 黑客攻击 应用追踪技术
    [责任编辑:孙威民]