1/1页1 跳转到查看:1117
发新话题 回复该主题

AIDE and CHKROOTKIT 文件系统完整性入侵检测工具

AIDE and CHKROOTKIT 文件系统完整性入侵检测工具

网络安全不论是对公司还是个人都是个长期性的重要问题,这个问题一定要有准确的安全性分析,在这篇文章里,我们来看一下如何正确安全的使用AIDE和chkrootkit。
Chkrootkit
Chkrootkit能够很好的检查系统的每一个部分以试着找到rootkit或LKM木马,我们可以从官方网站下载这个软件包:http://www.chkrootkit.org 。在写在篇文章的时候,最新版本是0.43(译注:我翻译的时候已经是0.44了),包含一些改进,加入了新的rootkit检测(AjaKit和zaRwT),新的CGI后门检测,和一个新参数 "-n" 用来设置NFS加截目录的检测和对一些BUG的修正。在Chkrootkit的主页上有一个可以被检测出来的木马和CGI后台的清单。把软件包下载下来以后需要编译,先让我们解压缩" tar xzvf chkrootkit.tar.gz" 并进入解压出来的目录" cd chkrootkit-0.43/"。运行 "make sense" 编译程序,然后就可以运行 "./chkrootkit" 去马上试试我们的系统了,但是这不是全部,Chkrootkit还有更多有趣的功能,请看图一。

Chkrootkit的所有选项功能列表
事实上它可以控制 ps,tar,ls 二进制文件或其它一些不恰当的东西检查,从而了解网络是否处在模杂模式中而知道我们的网络是不是在被嗅探,我们能以root权限执命令:"./chkrootkit ps tar ls sniffer"。在我们的机器,预装的Linux网络操作系统和2.6.6 的内核,见表一,检查结果已经出来了。
Chkrootkit:
bash-2.05b# ./chkrootkit ps tar ls sniffer
ROOTDIR is `/'
Checking `ps'... not infected
Checking `tar'... not infected
Checking `ls'... not infected
Checking `sniffer'... eth0: not promisc and no PF_PACKET sockets
而且还可以测试任何十进制文件,用 "./chkrootkit -x | more"。这样我们就能对我们的二进制文件进行完整检查。"-p"参数也很有趣,如果你不想检查系统的所有部分它可以只检查一个目录的完整性,你可以用这个命令试试: "./chkrootkit -p /home/:/mnt",用":"号分隔每一个想检查的目录,这个命令就检查了 "/home"和"/mnt"。 检查系统完毕,chkrootkit会输出结果,通过它就可能了解了我们的系统为什么不工作了或运行反常的情况。它很常用,因此,去了解chkrootkit给我们的输出的信息,他们显示在图二。

Chkrootkit的输入信息

AIDE (Advanced Intrusion Detection Environment)
现在这一段是关于AIDE的,一个很强大,并且常用的入侵检测软件,Aide,就像我们能在它的官方网站的Readme页读到的一样,可代替Tripwire并且做文件完整性检查。Aide的功能相对Tripwire做了一些改进,从而成为了一个全新的软件,Aide天生就有文件完整性检查功能,我们将在这一节里看到。首先需要编译软件包,我们先确定这个软件在我们的系统上可用,否则我们就得从http://freshmeat.net下载它们并编译安装:GNU Flex,GNU Bison, GNU Make, ANSI C-Compiler, Mhash library(这里下载:http://schumann.cx/mhash)。
注意:关于LibMhash
在某些系统可能会遇到一些错误虽然已经把Mhash library很好的编译了。这个问题是当我们运行Aide软件包的"./configure"时出现下面的信息:
[Copy to clipboard] [ - ]CODE:
checking for mhash_get_block_size in -lmhash... no configure: error:
You must have libmhash properly installed.
要解决这个问题必须去保证 "/usr/local/lib" 路径在 "/etc/ld.so.conf" 文件中,否则你必须在这个文件的最后插入一行 "/usr/local/lib" 。 保存并运行"ldconfig"。如果这样做还是不行,请检查"config.log"文件,去看看问题到底出在哪里。
译者注:
如果还是configure不过去,重装mhash为静态链接库,配置命令:"./configure --enable-static=yes",然后编译
安装即可。
现在我们准备编译AIDE。下载源文件包然后编译:"tar xzvf aide-0.10.tar.gz", "cd aide-0.10", "./configure","su root", "make install" 。之后AIDE会指定它的配置文件在 "$PREFIX/etc/"目录下,以"aide.conf"命名。现在你可以到这个目录下根据你的需要用你习惯的编辑器去创建并编辑配置文件。
在aide.conf里有三类命令行:

配置命令行 - 用来设置配置参数和定义变量
选项命令行 - 指明哪个文件将被添加到数据库中
宏命令行 - 在配置文件内部定义或取消定义变量

在配置文件中所有指定的系统的部分都会被监控以及被默认的规则设置。
这里列出一些AIDE的功能
p:                权限(permissions)
i:                节点(inode)
n:                链接数(number of links)
u:                用户(user)
g:                组(group)
s:                大小(size)
b:                块数(block count)
m:                创建时间(mtime)
a:                存档时间(atime)
c:                修改时间(ctime)
S:                检查增加大小(check for growing size)
md5:                md5校验
sha1:        sha1校验
rmd160:        rmd160校验
tiger:                tiger校验
R:                p+i+n+u+g+s+m+c+md5
L:                p+i+n+u+g
E:                空组(Empty group)

aide.conf文件
现在我们将一步一步配置我们的aide.conf 并搞清它的功能。我们可以看一下上图的例子。
从AIDE手册可以知道我们已经依照系统需要创建了我们的配置文件,但是很明显,这些规则不适合所有的Linux系统,只是一个示范,你的责任就是彻底了解Aide的主要功能,根据你的系统配置一个更好的。我们将会看到我们已经了解了的规则设置(SAMAGRule= p+i+n+u+g+s+b+m+c+md5+sha1) 允许我们控制的其它选项已经在表2中列出来了,具体的控制如下:权限,链接数,节点,文件大小,md5校验合,最后修改时间,sha1检验和及其它。
配置OK,运行AIDE
去验证我们的系统是不是已经被攻击和系统的每个部分的文件完整性必须先建一个我们所要保护部分的基本信息数据库,Aide可以用 "aide --init" 去创建一个在配置文件中设置的每一个文件的数据库(aide.conf)。最好把aide的数据库放到可移动的备份存储设备上,这样就能保证系统和数据库的安全,之后我们就可以确认我们的系统是安全的至少我们心里有点底了,我们能检查系统每一个被包含在备份数据库的文件的完整性。如果由于某些原因你对系统做了一些修改,就需要把数据库更新一下,用命令:"aide --update", 就像AIDE手册上所写的,根据你的喜好,你可以每10或15分钟使用这个命令或每次系统启动或每个周末运行它。当你对系统做了修改并在确认之后把修改内容包含进你的aide数据库是非常重要的。显然把数据库移到可移动的存储备份设备上好一些,一个更好的安全措施是把"aide --init"生成的数据库在每次系统启动并且我们网络上的主机们把aide 数据库移动到特定的机器存储,在这里,需要检查系统是否完整,就可以运行"aide --compare" 去比较我们的文件和包含在数据库里的信息,万一有什么问题,aide就会让我们知道。
关于作者
Vincenzo Ciaglia - ciaglia#netwosix.org 是项目经理和Linux Netwosiz的主要开发人员,一个强大高效的分布服务器,他对C,Perl,网络安全,网络和操作系统感兴趣,并且是Linux的狂热用户有很高的开发热情。
关于译者
z33 - z33@pig8.com  对PHP和Linux及网络安全感兴趣,英文差,学习inG. 这篇文章翻译的也一踏糊涂,不过本人胆子大,不怕丢人,需要一些冷水和鼓励。

TOP

 
1/1页1 跳转到
发表新主题 回复该主题