分享
 
 
 

Debian GNU/Linux下的入侵检测系统

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

欢迎转载,请保留作者信息

包子@郑州大学网络安全园

http://secu.zzu.edu.cn

摘要:

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

关于道德方面,我们无能为力,在本文中我将谈谈在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文档,如果你有任何建议或注释,你可以发邮件给我

Alexander Reelsen, Securing Debian How To, version 1.4, 18 February 2001

Anónimo, Linux Máxima Seguridad, Pearson Educación, Madrid 2000

Brian Hatch, Hackers in Linux, Mc Graw Hill 2001

Jim Mellander, A Stealthy Sniffer Detector, Network Security

Antonio Villalón Huerta, Seguridad en Unix y redes, Open Publication License, octubre 2000

CSI FBI Computer Crime and Security Survey, CSI Issues&Trends, Vol.7

Who's Sniffing Your Network?, http://www.linuxsecurity.com/articl...rticle-798.html

Root-kits and integrity: November 2002 Linuxfocus article

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有