荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: liujy.bbs@bbs.qxntc.edu.cn (E梦天空), 信区: Linux
标  题: [译文]Debian GNU/Linux下的入侵检测系统
发信站: 笔山书院_BBS (Wed Mar 30 21:02:39 2005)
转信站: SZU!news.szu.edu.cn!news.uestc.edu.cn!QXNTC


[译文]Debian GNU/Linux下的入侵检测系统

摘要:


今天,许多信息都是存储在计算机系统中,因此很容易通过计算机网络远程访问他们并获取
数据,无论是财政,行政,军事,工业还是金融信息。不幸的是,这些数据很容易被一些恶
意的人获取并摧毁,因为他们不知道什么叫道德。

关于道德方面,我们无能为力,在本文中我将谈谈在Debian GNU/Linux系统使用一些工具来
发现和跟踪入侵者。



介绍
当我们选择了Linux系统之后,我们得考虑在那么多个发行版中到底使用哪个版本,他们许
多都是基于RedHat,例如Conectiva (巴西), Hispa source(西班牙), Mandrake (法国),
SuSE (德国), Caldera和其他的版本都使用RPM 包管理器,而Slackware更象传统的Unix尽
量使用.tgz包,他们几乎都是商业公司开发的,但Debian例外。 Debian提供了一个叫DPKG
的包管理器帮助我们自动在Internet上查找和升级软件,检查信任关系,这样使系统管理更
加简单并且可以及时的打上安全补丁。

为什么使用Debian GNU/Linux ?
Debian也有一些很重要的功能:

1) 他不包含商业意图并且不按照市场规则运作。
2) 他有一个非常优秀的漏洞跟踪系统,问题将在48小时内得到解决。
3) 他从一开始就是想开发一个完善和可信的操作系统。
4) 他是由全球的志愿者一起开发的。

每个新的版本都对一些新的硬件体系提供支, 现在他支持Alpha, ARM, HP PA-RISC,
Intel x86, Intel IA-64, Motorola 680x0, MIPS, MIPS (DEC), Power PC, IBM S/390,
Sparc并且可以工作在Sun UltraSparc和Hitachi SuperH。他是Linux系统中支持硬件体系最
多的平台。

在现有的Debian发行版中,有很多实时入侵检测工具可以帮助我们检测到恶意的连接。他有
两种类型,一个是监视整个网络的(NIDS),另外一类是监视单个主机的(HIDS)。

主机工具
我们使用PortSentry来发现端口扫描,TripWire来检测系统完整性和使用LogSentry做日志
分析。第一个和最后一个工具都是Psionic Technologies的TriSentry套件。

端口扫描检测
PortSentry监视我们系统的端口,当他发现一个非正常的连接请求的时候,他可以采取一些
行动(一般是阻拦)。

他的主页在http://www.psionic.com/products/portsentry.html 同时PortSentry也支持
Solaris, BSD, AIX, SCO, Digital Unix, HP-UX, and Linux系统.

在Debian中,输入下面的命令就可以把他装上了:

apt-get install portsentry

有三种不同的模式可供选择:基本模式,隐蔽模式和高级模式。他的配置文件在
/usr/local/psionic/portsentry/portsentry.conf file

他的主要参数如下:

TCP_PORTS,这里你定义在基本模式或者隐蔽模式下需要控制的端口,作者按照不同的控制级
别提供了三个端口列表,最大的端口数量是64个。

UDP_PORTS,和上面的相似,不同的只是UDP端口

ADVANCED_PORTS_TCP, ADVANCED_PORTS_UDP, 在高级模式中可能会用到高端口检测,最大可
以定义到65535,但是建议不要超过1024,以免误报。

ADVANCED_EXCLUDE_TCP, ADVANCED_EXCLUDE_UDP,提供了一个排除列表,在高级模式中,里
面的端口将不会被监视。在这里,你可以写上你提供特殊服务的端口,但不要是真正的服务
,例如: ident

IGNORE_FILE, 在这里我们可以写上需要忽略IP的文件的位置,在这里可以找到回环地址,
你同样可以在这里添加一个本地地址。

KILL_ROUTE,在这里我们可以添加一个命令来阻拦恶意的主机,例如: iptables -I INPUT
-s $TARGET$ -j DROP,$TARGET$指的是恶意主机.

KILL_RUN_CMD, 在阻拦恶意主机之前执行的命令.

SCAN_TRIGGER, 定义超过多少次攻击才启动报警.

PORT_BANNER, 在端口被连接之后显示的banner信息

在配置完之后,你最好使用下面的参数执行其中的一中模式:TCP是使用-tcp (基本模式),
-stcp (隐蔽模式)和-atcp (高级模式);UDP就相应的改为 -udp, -sudp, -audp.

完整性检查
可以使用TripWire进行系统完整性检查,他的主页在http://www.tripwire.org他的linux版
本是免费的而Windows NT, Solaris, AIX and HP-UX的版本则是商业化的.

在Debian中,我们使用下面的命令安装他:

apt-get install tripwire

保存信息需要两个密钥: 第一个是"site key",他是用来加密策略和配置文件的,另外一个
是"local key"是用来加密检测的信息的。

一个准备好的配置文件在/etc/tripwire/twpol.txt ,你可以使用下面的命令初始化他:

twadmin -m P /etc/tripwire/twpol.txt

我们使用下面的命令创建一个当前文件系统初始的数据库:

tripwire -m i 2

检测系统完整性就使用下面的命令:

tripwire -m c

使用下面的命令删除配置文件,以免被入侵者发现了你改动了什么文件:

rm /etc/tripwire/twcfg.txt /etc/tripwire/twpol.txt

如果你需要重新创建配置文件,你可以使用下面的命令:

twadmin -m p > /etc/tripwire/twpol1.txt twadmin -m f > /etc/tripwire/twcfg.txt


日志分析
日志检测是LogSentry的一部分,他以一个非常有效的方法分类和产生可读性强的活动和错
误报告。他分为忽略,忽略异常,异常活动,入侵四种不同的日志等级。

他的主页在http://www.psionic.com/products/logsentry.html. 他可以很好的运行在
Solaris, BSD, HP-UX和Linux系统中。

在Debian中,我们使用下面的命令安装他:

apt-get install logcheck

logtail程序被安装在/usr/local/bin,下面相应的程序也被安装:

Logcheck.sh,
日志检测脚本

Logcheck.hacking,
入侵的规则文件

Logcheck.ignore,
忽略的规则文件

Logcheck.violations,
异常的规则文件

Logcheck.violations.ignore,
忽略异常的规则文件


你可以使用cron让他每小时执行一次: 0 * * * * /bin/sh /usr/local/etc/logcheck.sh


网络工具
我们使用Snort来发现网络攻击,他的主页在http://www.snort.org他同样可以很好?..低成
希˙SD, Solaris, AIX, Irix, Windows, MacOS X和Linux.
在Debian中,我们使用下面的命令安装他:

apt-get install snort

他有三中工作模式:包括嗅探模式,包记录模式和入侵检测模式。

他有下面的几个主要的参数:

-l 日志的存放目录
指定日志存放的目录。

-h IP
指定需要监控的IP地址。

-b
使用TcpDump的格式输出。

-r 文件
处理一个TcpDump的格式的文件。

Snort的嗅探和包记录模式
在嗅探模式,他读取任何流过网络数据并把他输出到终端,而包记录模式就会把数据记录到
一个目录中。

Snort -v

显示IP头信息

Snort -dv

以TcpDump的格式详细输出

Snort -dev
以TcpDump的格式详细输出并显示第二层头信息



Snort的入侵检测模式
在这个模式中snort将检测端口扫描, DoS (拒绝服务攻击), exploits, etc. 他由位于
/usr/local/share/snort的规则决定,你可以从他的网站得到最新的规则库。

配置他很简单,只须对snort.conf做一些小小的修改,比如网络信息和工作目录等,下面先
改变IP设置:

var HOME_NET IP

简单的执行Snort只须输入:

snort -c snort.conf

日志文件在/var/log/snort,我们可以在这里看到攻击者的IP地,当然这绝对不够,我建议
可以认真的看看他的说明,绝大多数的组织,杂志和安全小组都把他评价他为各种系统下最
好的入侵检测系统并且强烈推荐他,并且有象Silicon Defense,Source Fire和GUIs这样的
商业公司开始提供对他更广泛的软件支持。

有时一些紧急事件的发生需要强大的分析器,这┪侍庖话闶怯扇肭终哂捎谀承┰虺⑹苑欠
ǚ梦饰颐堑姆窕蛘咂渌姆衿鳎蘼凼且蔚幕故敲飨缘模蛘呤前沧耙桓鲂崽狡魃踔
潦堑玫礁痈叩娜ㄏ拊斐傻摹?


其他有用的工具

嗅探器检测
嗅探器就是一个可以把网卡的设置成混杂模式的工具,并且监听整个网络的信息,使用
ifconfig程序可以得到详细的网络接口信息:

eth0 Link encap:Ethernet HWaddr 00:50:BF:1C:41:59
inet addr:10.45.202.145 Bcast:255.255.255.255 Mask:255.255.128.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7180 errors:0 dropped:0 overruns:0 frame:0
TX packets:4774 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:8122437 (7.7 MiB) TX bytes:294607 (287.7 KiB)
Interrupt:10 Base address:0xc000

但是如果ifconfig程序被篡改或者嗅探器工作在网络中的其他机器,你必须进行更深一步的
检查,例如发封邮件给“陌生”的用户或者尝试查找嗅探器的记录。

有一个叫neped由一个西班牙黑客组织设计的工具,他可以发现整个网络的接口工作模式是不
是被设置成了混杂模式,但是现在他并没有被移植到Debian中,我们可以在这里下载
ftp://apostols.org/AposTools/snapshots/neped/neped.c
注意:这个服务器似乎几个星期之前就当掉了.

这个程序的执行结果会产生下面的输出:

neped eth0
----------------------------------------------------------
> My HW Addr: 00:80:F6:C2:0E:2A
> My IP Addr: 192.168.0.1
> My NETMASK: 255.255.255.0
> My BROADCAST: 192.168.1.255
----------------------------------------------------------
Scanning ....
* Host 192.168.0.2, 00:C2:0F:64:08:FF **** Promiscuous mode detected !!!
End.

当我们从191.168.0.1发送IP包到192.168.0.2的时候,我们需要知道他的MAC地址,我们可
以通过发一个广播包来查询我们所需要IP对应的MAC地址,所有的机器都会接到这个包,但
是只有“真正”的机器才会响应。

neped不通过广播,而是使用一个不存在的IP查询网络中的每个IP, 这样只有处于混杂模式
的接口才会响应这个包。



Rootkits检测
rootkits可以让入侵者得到更高的权限,一般情况下,他通过覆盖一些系统二进制程序来达
到目的。 这就是我们要检测我们的程序是否被篡改的原因。 我们可以这样安装他:

apt-get install chkrootkit

他的网站在www.chkrootkit.org并且他检测下列文件:

aliens, asp, bindshell, lkm, rexedcs, sniffer, wted, z2, amd, basename, biff,
chfn, chsh, cron, date, du, dirname, echo, egrep, env, find, fingerd, gpm, grep,
 hdparm, su, ifconfig, inetd, inetdconf, identd, killall, ldsopreload, login,
ls, lsof, mail, mingetty, netstat, named, passwd, pidof, pop2, pop3, ps, pstree,
 rpcinfo, rlogind, rshd, slogin, sendmail, sshd, syslogd, tar, tcpd, top,
telnetd, timed, traceroute, w, write

可以使用下面的命令启动他:

chkrootkit

他检测上面的文件,查找嗅探器和rootkits,还有其他的工具检查日志警告(chkwtmp和
chklastlog)并且ifpromisc告诉我们的网卡是否处于混杂模式

参考文献
很有必要读一读上面软件的man文档
--


 你的到来会让我更美丽&欢迎进入E梦天空
|:::|  http://gzem.kmip.net  |:::|
※ 来源:.笔山书院 BBS http://bbs.qxntc.edu.cn [FROM: 220.172.245.*]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店