古典型”的入侵检测--查出黑客

黑客是网络安全的大敌,关于反黑客的话题已是老生常谈了,但黑客却越来越多。这有很多原因,其中一个很重要的原因,就是一般的企业或部门缺少“抓住黑客”(即查出其位置)的能力,而现行的各种“方案”、“系列工具”也以“防”为主,少有“抓住黑客”的手段。鉴于此,本文从原理上介绍一点“古老”的“查黑客”方法,希望能对企业用户有所帮助。
网络已经成为企业制胜的必由之路。越来越多的企业将自己的关键业务置于网络之上,并取得了卓越的成绩。然而,越来越多的网络黑客(或者称之为网络盗贼)也以企业为目标,通过网络肆意侵入企业的计算机,盗取重要资料,或者破坏企业网络,使其陷入瘫痪,给企业造成巨大的损失。

黑客攻击的案例见诸报道已经屡见不鲜,美国包括Yahoo、AOL 在内的多家企业遭到黑客攻击的事件曾经成为人们谈论的焦点。国内也有很多类似的事件发生。内部工作人员的疏忽或故意破坏带来的损失也非常巨大,例如去年发生的银行职员通过网络盗窃的案件。现在社会的竞争越来越激烈,竞争对手通过网络非法获取内部信息的事件也已经屡见不鲜了。在企业网上仅靠被动的防御,已经难以抵挡黑客的进攻了。

一、当今网上防护的“正规”招数及其缺点

防范网络攻击最常用的方法就是防火墙,从技术理论上看,防火墙已经成为一种先进和复杂的基于应用层的网关,不仅能完成传统防火墙的过滤任务,同时也能够针对各种网络应用提供相应的安全服务。利用防火墙技术,经过仔细的配置,通常能够在内外网之间提供安全的网络保护,降低网络安全的风险。但事情并不像看起来那么简单,仅仅使用防火墙保障网络安全是远远不够的,就像深宅大院虽有高大的院墙,却不能挡住小老鼠甚至是家贼的偷袭。因为入侵者可以寻找防火墙背后可能敞开的后门;另外,“防火墙完全不能阻止内部袭击”,对于企业内部心怀不满的员工来说,防火墙形同虚设;而且,由于性能的限制,防火墙通常不能提供有效的入侵检测能力。因此,以为在Internet入口处部署防火墙系统就足够安全的想法是不切实际的。

能否成功阻止网络黑客的入侵,保障计算机和网络系统的安全和正常运行,已经成为各个企业能否成功发展的关键性问题。入侵检测“系统”是近年出现的新型网络安全技术,但入侵检测“手段”却是一种“古老”的检测“访问者”的有效方法。它之所以重要,就是因为它可以弥补防火墙的不足,为网络安全提供有效的入侵检测及采取相应的防护手段,如记录证据用于跟踪和恢复、断开网络连接等。

与军事上的攻防相似,单纯地“防范”黑客并不能完全有效地防止黑客的入侵,有时候还需要坚决地进攻—把“入侵”的黑客查出来(并绳之以法)。这种“查出黑客”的能力就是一种对黑客最有效的进攻。军人们都知道:“进攻是最效的防御”,这种军事思想也完全适用于网上。

二、当前入侵检测的三种类型

当前入侵检测有三种手段:基于主机的入侵检测系统、基于网络的入侵检测系统和“古典型”查找方法。三种入侵检测手段都具有自己的优点和不足,互相可作为补充。

基于主机的入侵检测系统可以精确地判断入侵事件,并可对入侵事件立即进行反应,还可针对不同操作系统的特点判断应用层的入侵事件,其缺点是会占用主机宝贵的资源。

与基于主机的入侵检测系统相比,基于网络的入侵检测系统只能监视经过本网段的活动,并且精确度较差,在交换网络环境难于配置,防入侵欺骗的能力也比较差,但是它也可以提供实时网络监视,并且监视粒度更细致。

严格地说,如果要使网络得到高水平的安全保护,就应该选择更加主动和智能的网络安全技术。完备的网络安全系统应该能够监视网络和识别攻击信号,能够做到及时反应和保护,能够在受到攻击的任何阶段帮助网络管理人员从容应付。但目前只靠以上两种方法还难以构造有效的防御,因为它们都不能实施有效的进攻—准确地查出入侵者。所以我们还必须掌握“古典型”查找方法,这才是黑客们最害怕的武器。这是本文介绍的重点。

三、如何追踪入侵者

1.追踪入侵者是完全可能的

你可能听过在局域网上的所谓“广播模式”的资料发送方法,此种方法不指定收信站,只要和此网络连接的所有网络设备皆为收信对象。但这仅能在局域网上实行,因为局域网上的机器不多(和Internet相比)。而Internet上有数千万的主机,根本就不可能实施资料广播(至于IP Multicast算是一种限定式广播(Restricted Broadcast),只有被指定的机器才会收到,Internet上其他电脑则不会收到)。假设Internet上可以实施非限定广播,那随便一个人发出广播信息,全世界的电脑皆受其影响,岂不天下大乱?因此,任何局域网内的路由器或是类似的网络设备都不会将自己局域网内的广播信息转送出去。万一在WAN Port收到广播信息,也不会转进自己的LAN Port中。

而既然网络皆有发信站与收信站,用以标示数据发送者与数据接收者,除非对方使用一些特殊的封包封装方式或是使用防火墙对外连线,那么只要有人和你的主机进行通讯(寄信或是telnet、ftp过来都算)你就能知道对方的网址,如果对方通过某种防火墙来和你通讯,你至少也能知道防火墙的网址。也正因为只要有人和你连线,你就能知道对方的网址,那么要不要知道对方网址只是个做不做的问题而已。换句话说,就是“根据网络联接的理论,网上的任何访问者都能被查出来”。

最简单的查找:如果对方是通过一台UNIX主机和你联系,则你完全可以通过ident查到是谁和你联系的。

在采用TCP/IP通讯协议的电脑上,通常可以用netstat指令来看目前连线的状况(各位读者可以在Windows 95、Windows NT、Novell及UNIX上试试看,注1),所有的连线状况都看得一清二楚。

虽然是不同的操作系统,但netstat却很相像。以下是在Windows NT下执行NetStat时的一个局域网内的实例:

Active Connections

Proto Local Address Foreign Address State

TCP jsj04:80 LL:1672 TIME_WAIT

TCP jsj04:80 LL:1674 TIME_WAIT

TCP jsj04:80 LL:1680 TIME_WAIT

TCP jsj04:80 LL:1682 ESTABLISHED

TCP jsj04:80 KTYS03:1103 TIME_WAIT

TCP jsj04:1032 localhost:1033 ESTABLISHED

TCP jsj04:1033 localhost:1032 ESTABLISHED

2.记录访客情况的方法

当然,如果你想要把网络连线情况给记录下来,你可以用cron table定时执行:

netstat >>filename

但UNIX系统早已考虑到这一需求,因此在系统中有一个专职记录系统事件的Daemon: syslogd,大家都知道在UNIX系统的/var/adm下面有两个系统记录文件:syslog与messages,一个是一般系统的记录,一个是核心的记录。那么这两个文件是从哪里来的,又该如何设定呢?

系统的记录基本上都是由syslogd(System Kernel Log Daemon)来产生,而syslogd的控制是由/etc/syslog.conf来做的。syslog.conf以两个栏位来决定要记录哪些东西,以及记录到哪里去。下面是一个Linux系统所附上的syslog.conf文件,这也是一个最标准的syslog.conf写法。

格式一点也不复杂,第一栏写“在什么情况下”及“什么程度”。然后用TAB键跳到下一栏继续写“符合条件以后要做什么”。这个syslog.conf文件的作者很诚实,告诉你只能用TAB来作各栏位之间的分隔(虽然看来好像他也不知道为什么)。

第一栏包含了何种情况与程度,中间用小数点分隔。另外,星号就代表了某一细项中的所有选项。详细的设定方式如下:

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

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

cron 关于系统自动排序执行(Cron Table)

daemon 关于背景执行程序

kern 关于系统核心

lpr 关于打印机

mail 关于电子邮件

news 关于新闻讨论区

syslog 关于系统记录本身

user 关于使用者

uucp 关于UNIX互拷(UUCP)

以上是大部分UNIX系统都会有的情况,而有些UNIX系统还可能会再分出不同的项目。至于基于Windows及Windows NT的网站服务器,则另有一套格式的日志文件。

(2)什么程度才记录:下面是各种不同的系统状况,依轻

Published At
Categories with 网络技术
comments powered by Disqus