Debian GNU/Linux下的入侵检测系统
日志分析
日志检测是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告诉我们的网卡是否处于混杂模式。(完)