linux下的入侵监测系统LIDS文档格式.docx
- 文档编号:20089833
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:16
- 大小:27.18KB
linux下的入侵监测系统LIDS文档格式.docx
《linux下的入侵监测系统LIDS文档格式.docx》由会员分享,可在线阅读,更多相关《linux下的入侵监测系统LIDS文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
lLIDS保护前的准备
1.功能
lCAP_CHOWN
lCAP_DAC_OVERRIDE
lCAP_DAC_READ_SEARCH
lCAP_FOWNER
lCAP_FSETID
lCAP_FS_MASK
lCAP_KILL
lCAP_SETGID
lCAP_SETUID
lCAP_SETPCAP
lCAP_LINUX_IMMUTABLE
lCAP_NET_BIND_SERVEICE
lCAP_NET_BROADCAST
lCAP_NET_ADMIN
lCAP_NET_RAW
lCAP_IPC_LOCK
lCAP_IPC_OWNER
lCAP_SYS_MODULE
lCAP_SYS_RAWIO
lCAP_SYS_CHROOT
lCAP_SYS_PTRACE
lCAP_SYS_PACCT
lCAP_SYS_ADMIN
lCAP_SYS_BOOT
lCAP_SYS_NICE
lCAP_SYS_RESOURCE
lCAP_SYS_TIME
lCAP_SYS_TTY_CONFIG
1.选择你要除区的功能
2.放置一个隐藏命令
3.如何确定安全的启动
l重起系统
l用LIDS工作
n例子:
转换LIDS
网络管理
后台管理
文件管理
l关于这个文档
1.什么是LIDS
LIDS是支持Linux的入侵监测防范系统。
这个就是LIDS-08.1pre1的how-to文档。
但是也适用于LIDS-0.8和0.8pre1,2,3,4。
但是一些功能可能会不能实现。
现在只支持i386体系。
这个东西的目的是保护linux系统不被root入侵,并在它自己的内核禁止一些系统调用。
如果你要管理你的系统,你可以先禁止LIDS保护,再来管理。
首先,要保护LIDS本身不会被root的入侵,我们假定两件事情:
1.系统是安全的(没有后门)直到LIDS第一次运行。
2.你是唯一访问过控制终端的(你可以在lilo上加命令行,可以用急救内核或是启动盘启动).
保护LIDS防止root入侵:
1,禁止模块
2,禁止内存访问(/dev/mem,/dev/kmem,/dev/kcore)
3,禁止磁盘访问(/dev/hdxx,/dev/sdxx)
4,保护每一个文件,包括启动进程(lilo文件,内核映象,后台,简本,模块)
5,禁止I/O端口的访问(/dev/port,ioperm和iopl系统调用)
然后你就会想如何入侵监测,LIDS提供了以下功能:
1.记录机会每一个拒绝的访问
2.用只读或是只能增加来保护程序或是日志不受root攻击。
对于系统的保护,LIDS提供以下功能:
1.锁定你的路由表,防火墙规则。
2.锁定挂载操作
3.保护后台信号
4.还有其他一些保护。
。
编译lidsadm
要编译lidsadm程序,进入目录然后
make
你就会看到当前lids的信息,这些主要是用来调试的目的,因为没有这些功能或是一个正确的系统配置。
没有人能知道LIDS的当前状态。
安装lidsadm
makeinstall
你必须保证你的/etc目录在你的/系统下。
因为LIDS需要读取/etc/lids.conf的文件。
得到一个RipeMD-160加密口令
vmlin1:
~#lidsadm-P
MAKEPASSWD
enterpassword:
Verifyingenterpassword:
RipeMD-160encryptedpassword:
46a1492cc2d43652409abfdbb047e4ae099a62f3
修补一个内核
cd/usr/src/linux-linversion
patch-p1<
lidshome/lids-version-linversion.patch
配置内核
确定你选择了
Promptfordevelopmentand/orincompletecode/drivers
and
Sysctlsupport
for
LinuxIntrusionDetectionSystem-->
toappear.
细节
l选择描述
1.运行无保护程序时发出警告
在没有LIDS保护前(用lidsadm–I–caps…..)运行无保护程序时会发出警告,这个对检测启动序列有很大帮助,但是他不会告诉你哪个模块被加载或是没有被保护。
这个功能还可以警告你是否有程序的弱点加到启动进程里。
,
2.在安装LIDS前不要运行无保护程序
这个功能让LIDS在没有被保护前拒绝一些执行。
要意识到你可以阻止系统在不完全的lids.conf下启动。
3.开启锁定子进程功能
你可以开启这个功能用lidsadm(+LOCK_INIT_CHILDREN)这样就会阻止任何人杀死用LIDS保护的父进程的子进程。
你可以运行lidsadm命令用-LOCK_INIT_CHILDREN然后用+LOCK_INIT_CHILDREN,这样,就灭有人能阻止它(拒绝服务器攻击)或是重新用新的配置文件启动它。
(重起或是kill-HUP).
4.尽量不要让日志溢出
你可以定义相同内容日志出现的次数。
如果在一定时间内有很多相同的日志,就不会在把他们存放到日志里面。
这样能避免日志溢出。
5.允许转换LIDS保护
你可以启动转换LIDS功能的开关。
但是这样会降低安全性。
不过可以方便系统的管理。
具体过程是这样:
lidsadm读取当前的允许标志。
根据你的命令行升级它们,然后问你密码。
把他们配置到LIDS里面。
如果密码正确,允许标准就更新了。
这时候会有一个报警在日志里。
6.要让LIDS识别你的密码。
必须要给他一个RipeMD-160的指纹。
这个会被lidsadm来计算。
这个指纹非常难破解,就算有人访问你的二进制内核,他们也不能得到你的密码。
你可以培植密码错误的次数。
如果超过就会被禁止登陆。
每一次登陆的失败会记录到日志里。
7.允许远程拥护来转换LIDS保护
如果你允许没有登陆控制终端的用户开启启动标志的话,就选定这个功能。
如果你已经访问了控制终端。
你可以禁止这个选项,这样远程的用户就不能关闭LIDS,甚至他有密码。
8.允许任何程序来转换LIDS保护
如果你选定这个功能,你可以允许除了/sbin/lidsadm来操作/proc/sys/lids/locks。
我不认为这个会有什么用处。
9.允许重新引导配置文件
选定这个功能就会编译重新引导配置文件的代码。
每一次运行+RELOAD_CONF参数给lidsadm,LIDS重新引导/etc/lids.conf和重读dev/inode。
如果在重引导的时候出错,内核不会在意,就象它根本就没有启动一样,因为它认为你看到了错误并即使改正了。
10。
隐藏一些已知的进程
这个功能允许你给出一些程序的目录,而这些程序的进程你可以不让它在/proc里出现。
(这样就不会在ps里看出)这不会影响安全。
如果你不明白这是怎么做的,你也不需要知道它。
11.可继承的隐藏功能
隐藏的进程的子进程,也会被隐藏
12。
允许一些已知的进程访问/dev/mem(/xfree,等)
通过这个功能,你可以允许一些在允许进程域下的进程来访问/dev/mem等。
13.允许一些已知的进程访问硬盘设备
如果一些程序因为不能写到磁盘而中断,但是你确实很需要它们。
就可以开启这个功能。
填写可访问的进程表。
14.允许一些已知的进程访问io端口
如果一些程序不能访问io端口而中断,但是你很确实很需要它们,你可以开启这个功能,填写可访问的进程表。
15.允许一些已知的进程卸载设备
如果你需要你的系统可以自动关闭,(如在ups下)你需要允许一些程序来卸载设备。
16.可继承的卸载功能
选定这个选项允许子程序来卸载设备。
17.允许一些已知的进程杀死子进程
如果你用init的子进程锁定功能并且让你的系统平滑的自动关闭,你必须允许一个进程来杀死后台程序,
18.可继承的杀进程功能
选定这个可以允许子程序来杀死锁定的子init进程。
1.补丁填充域
还有一些特殊列表,如:
/usr/local/sbin/loginlog;
/usr/local/sbin/trafficlog;
/sbin/mgetty
或
/usr/X11R6/XF86_SVGA
注意这些有特殊权利的程序可以用LIDS的lidsadm来声明只读来保护。
注意LIDS会在内核启动的时候努力去得到这些文件的/dev/inode数,因此那些没有在根文件系统的程序是不会被LIDS找到的,也就不会得到它们的权限。
有可以用+RELOAD_CONF
选项隐藏它来解决这个问题。
2,如何一起安装UPS
这个问题涉及到平滑的自动关闭的问题,意味着一般的杀死后台程序,卸载设备。
如果你用到锁定init子进程的功能,你必须允许一个进程来杀死她们。
如果你的后台没有被杀死,它可能会让一个设备忙,就不能被卸载。
所以,有两个事实很重要。
我们必须找到一个只用来关闭系统,杀死所有后台或卸载设备的程序。
但是不幸的时候,这些程序是不存在的。
然而,LIDS给你一个杀死进程的继承功能,利用这个功能可以杀死这些进程。
这些程序也可以是/sbin/shutdown的-n选项,它会调用init脚本来停止所有的后台,并卸载设备。
编译内核并安装
如:
makedep;
makeclean;
makebzImage;
makemodules;
makemodules_install;
cparch/i386/boot/bzImage/boot/vmlinuz
lilo
保护一些文件
1.用lidsadm
lidsadm-Z
lidsadm-A-r/boot
lidsadm-A-r/vmlinuz
lidsadm-A-r/lib
lidsadm-A-r/root
lidsadm-A-r/etc
lidsadm-A-r/sbin
lidsadm-A-r/usr/sbin
lidsadm-A-r/bin
lidsadm-A-r/usr/bin
lidsadm-A-r/usr/lib
lidsadm-A-a/var/log
2.用chattr
在ext2文件系统,你也可以用一些ext2的特殊属性,不可变的和只增加的。
Chattr是一个标准程序来做:
chattr+iimportant_stuff
chattr+aimportant_log
用这些属性,没有人(甚至是root)可以修改,删除你的文件。
你必须保证没有人可以删除这些属性,删除CAP_LINUX_IMMUTABLE来实现这个功能。
在启动的时候更新文件
一些文件需要在系统启动的时候写,但是会被LIDS保护,这些文件一般保存在/var目录下,但是也有一些例外:
modules.dep:
你除了增加或是删除模块外,不需要在启动的时候更改,可以禁止它在启动的时候更新,删除/etc/init.d/modutils。
ld.so.conf:
象modules.dep一样,你除了在增加或是改变库文件的时候,不必要在启动的时候更新。
mtab:
用-n的选项在每次启动的时候生成一个从/etc/mtab到/proc/mounts的一个连接。
LIDS隐藏前的准备
细节:
CAP_CHOWN功能:
在一个_POSIX_CHOWN_RESTRICTED功能定义的系统。
这会越过改变系统文件所有者和组所有的权限。
CAP_DAC_OVERRIED功能:
如果_POSIX_ACL定义,就会越过所有的DAC访问,包括ACL执行访问,用CAP_LINUX_IMMUTABLE功能来排除DAC的访问。
CAP_DAC_READ_SEARCH功能:
如果_POSIX_ACL定义,就会越过所有的DAC的读限制,并在所有的文件和目录里搜索,包括ACL限制。
用CAP_LINUX_IMMUTABLE来限制DAC访问。
CAP_FOWNER功能:
越过文件说有的允许限制,如文件的所有者ID必须和用户ID一样,除了CAP_FSETID可用。
它不会越过MAC和DAC限制。
CAP_FSETID功能:
越过当设置文件的S_ISUID和S_ISGID位的时候,用户的ID必须和所有者ID匹配的限制,设置S-ISGID位的时候,组ID必须和所有者ID匹配,用chown来设置S_ISUID和S_ISGID为的功能限制。
CAP_FS_MASK功能:
用来回应suser()或是fsuser()。
CAP_KILL功能:
一个有有效用户ID的进程发送信号时必须匹配有效用户ID的功能会越过。
CAP_SETGID功能:
允许setgid()功能,
允许setgroups()
允许在socket里伪造gid
CAP_SETUID功能:
允许set*uid()功能
允许伪造pid在socket。
CAP_SETPCAP功能:
把所有的许可给所有的pid。
或是把所有的许可删除。
CAP_LINUX_IMMUTABLE功能
允许更改S_IMMUTABLE和S_APPEND文件属性。
CAP_NET_BIND_SERVICE功能
允许绑定1024下的TCP/UDP套接字
CAP_NET_BROADCAST功能:
允许广播,监听多点传送。
CAP_NET_ADMIN功能:
允许配置接口
允许管理IP防火墙IP伪装和帐户
允许配置socket调试选项
允许修改路由表
允许配置socket上的进程的组属性
允许绑定所有地址的透明代理
允许配置TOS(服务类型)
允许配置混杂模式
允许清除驱动状态
允许多点传送
允许读或写系统记录
CAP_NET_RAW功能:
允许用RAW套接字
允许用PACKET套接字
CAP_IPC_LOCK功能:
允许琐定共享内存段
允许mlock和mlockall
CAP_IPC_OWNER功能:
越过IPC所有权检查
CAP_SYS_MODULE功能
插入或删除内核模块
CAP_SYS_RAWIO功能:
允许ioperm/iopl和/dev/prot的访问,
允许/dev/mem和/dev/kmem访问,
允许块设备访问(/dev/[sh]d?
?
)
CAP_SYS_CHROOT功能:
允许chroot()
CAP_SYS_PTRACE功能:
允许ptrace()任何进程
CAP_SYS_PACCT功能:
允许配置进程帐号
CAP_SYS_ADMIN功能:
允许配置安全钥匙
允许管理随机设备
允许设备管理
允许检查和配置磁盘限额
允许配置内核日志
允许配置域名
允许配置主机名
允许调用bdflush()命令
允许mount()和umount()命令,允许配置smb连接
允许root的ioctls
允许nfsservctl
允许VM86_REQUEST_IRQ
允许在alpha上读写pci配置
允许在mips上的irix_prctl
允许刷新所有的m68k缓存
允许删除semaphores
用CAP_CHOWN去代替“chown”IPC消息队列,标志和共享内存
允许锁定或是解锁共享内存段
允许开关swap
允许在socket伪装pids
允许设置块设备的缓存刷新
允许设置软盘驱动器
允许开关DMA开关
允许管理md设备
允许管理ide驱动
允许访问nvram设备
允许管理apm_bios,串口或是bttv电视设备
允许在isdnCAPI的驱动下生成命令。
允许读取pci的非标准配置
允许DDI调试ioctl
允许发送qic-117命令
允许启动或禁止SCSI的控制和发送SCSI命令
允许配置加密口令在回路文件系统上。
CAP_SYS_BOOT功能:
允许用reboot()命令
CAP_SYS_NICE功能:
允许提高或设置其他进程的优先权
允许在自己的进程用FISO和实时的安排和配置。
CAP_SYS_RESOURCE功能:
越过资源限制,设置资源限制
越过配额限制
越过保留的ext2文件系统
允许大于64hz的实时时钟中断
越过最大数目的控制终端
越过最大数目的键
CAP_SYS_TIME功能:
允许处理系统时钟
允许_stime
允许设置实时时钟
CAP_SYS_TTY_CONFIG功能:
允许配置终端设备
允许vhangup()终端
选择你要删除的功能
你必须删除CAP_SYS_MODULE,CAP_SYS_RAWIO和CAP_SYS_ADMIN来保护系统不受小的系统攻击。
最好也要禁止CAP_NET_ADMIN,CAP_SYS_PTRACE,CAP_LINUX_IMMUTABLE,CAP_KILL,CAP_SYS_RESOURCE,CAP_SYS_TIME和CAP_SYS_TTY_CONFIG.
放置密封命令
你必须放置这些命令让它们在启动的时候马上运行,
你可以把它放到rc的脚本里。
(rc.local,/etc/init.c/lids,/etc/rc.d/init.d/lids,等)这个要看你系统的情况。
这些命令是。
lidsadm-I---CAP_SYS_MODULE-CAP_SYS_RAWIO-CAP_SYS_ADMIN-CAP_SYS_PTRACE-CAP_NET_ADMIN+LOCK_INIT_CHILDREN
你必须确定你在启动前已经保护了每个系统的执行,因为一些人可以通过程序更改它,会在功能禁止的时候做一些恶意的行为。
确保启动时的安全
当没有保护程序运行的时候报警LIDS会报警。
选择这个功能,你可以禁止选择防止日志溢出,来确定没有遗漏无保护程序。
然后你就可以启动并在syslog里能看到哪些程序没有被保护。
重新气筒系统
现在你就可以重新启动系统,如果你培植阻止系统启动,你可以在lilo里用security=0来启动内核。
运行LIDS
你可以转换LIDS的开关,
lidsadm-S---LIDS
foo
lidsadm-S--+LIDS
注意,如果你在没有保护的文件上工作或是做一些其他设备的修改,他们不会在启动的时候受到保护的。
不要忘记用lidsadm-S-+RELOAD_CONF.
你也可以本地的转换LIDS。
这表明LIDS只能用lidsadm命令来工作,
lidsadm-S---LIDS_LOCAL
lidsadm-S--+LIDS_LOCAL
例子:
如,如果你要是加一个路由并且锁定网络管理
lidsadm-S--+CAP_NET_ADMIN
routeaddfoo
lidsadm-S---CAP_NET_ADMIN
你可以管理你的后台。
lidsadm-S---LOCK_INIT_CHILDREN
init.d/daemonstop
lidsadm-S--+LOCK_INIT_CHILDREN
运行后台,重新启动,然后保护它。
init.d/daemonstart
你可以保护新文件或是修改保护对象
lidsadm-A-rfoo
cpMyBrandNewXServerMyXServer
lidsadm-S--+LIDS+RELOAD_CONF
or
rmprotected_one
dothings
cpfileprotected_one
lidsadm-U#hereweupdatelids.confas"
protected_one"
#couldhaveadifferentinodenumber
LIDS译本
【原文由chzhuang所发表】
一.LIDS的一些基本概念
1.当前Linux系统的缺陷
文件系统没有保护机制
进程没有保护机制
系统管理没有保护机制
root会滥用职权
系统认证是不可信的
存取控制模型(DAC)是不足的
2.什么是LIDS
一个内核的补丁和管理工具
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 入侵 监测 系统 LIDS