Linux中AIDE入侵检测系统的应用

2022-03-19 09:53:39 | 浏览次数:

【摘 要】随着Linux系统在实际生产环境中被应用的越来越广泛,Linux系统的安全性问题也变得越来越重要了。Linux系统提供了非常多的安全机制。本文就目前应用的比较多而且也比较方便的一种系统入侵检测工具AIDE进行了探讨。并举例详细阐述了AIDE在Linux系统中的应用方法,也对这种工具的不足之处做了简单说明。

【关键词】Linux;安全;入侵检测系统;AIDE

1 Linux的入侵检测系统

Linux作为一种开源的操作系统,由于其源代码的开放性,使得这个系统在目前的操作系统市场(特别是服务器领域)所占的份额出现日益增长的趋势。但是任何事物都具有两面性,Linux系统当然也不例外,在它逐渐被人们所接受的同时,系统的安全性问题也变得非常重要了。由于Linux系统的开放性,可以在网络上找到许多程序和工具,这既方便了用户,同时也方便了黑客,他们通过这些程序和工具潜入Linux系统,或者盗取Linux系统内的重要信息。为此,Linux也提供了很多安全机制用于防范和解决各种网络攻击。本文主要探讨Linux的入侵检测系统。

Intrusion Detection System(IDS,入侵检测系统)是指对系统入侵行为的检测,主要通过对计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。

1.1 入侵检测系统的功能

通常,入侵检测系统具有如下几个功能:

(1)监控、分析用户和系统的活动;

(2)检查系统配置和漏洞;

(3)评估关键系统和数据文件的完整性;

(4)识别攻击的活动模式并向网管人员报警;

(5)对异常活动的统计分析;

(6)操作系统审计跟踪管理,识别违反政策的用户活动。

1.2 入侵检测系统的分类

按照技术以及功能来划分,入侵检测系统可以分为如下几类:

(1)基于主机的入侵检测系统:其输入数据来源于系统的审计日志,一般只能检测该主机上发生的入侵;

(2)基于网络的入侵检测系统:其输入数据来源于网络的信息流,能够检测该网段上发生的网络入侵;

(3)采用上述两种数据来源的分布式入侵检测系统:能够同时分析来自主机系统审计日志和网络数据流的入侵检测系统,一般为分布式结构,由多个部件组成。

1.3 入侵检测系统的结构

入侵检测系统的结构如下图所示。

(1)“包抓取引擎”从网络上抓取数据包;

(2)“包分析引擎”对数据包做简单处理如IP重组、TCP流重组,并根据规则库判断是否为可疑或入侵的数据包;

(3)“规则库”是入侵检测系统的知识库,定义了各种入侵的知识;

(4)“响应模块”是当系统发现一个可疑的数据包时所采取的响应手段。

其中,“包分析引擎”是整个系统的核心所在,对入侵特征的检测在这里完成。

图1 IDS系统结构图

2 AIDE入侵检测工具

Linux系统一旦被入侵,应该重装系统,但是,在实际的生产环境中,服务器是不可能重装的,甚至连重新启动都是不可以的!所以,应该为之部署一套入侵检测系统,当装完系统之后,将系统状态备份一份,一旦被入侵,可以及时检测到并采取适当的恢复措施。

2.1 AIDE入侵检测工具简介

AIDE(Advanced Intrusion Detection Environment,高级入侵检测环境)是一个入侵检测工具,主要用于检查文件的完整性。

AIDE能够构造一个指定文件的数据库,它使用aide.conf为配置文件。AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点号(inode number)、所属用户(user)、所属用户组(group)、文件大小、文件最后修改时间(mtime)、文件创建时间(ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文件的检验码或散列号。

2.2 AIDE入侵检测工具的优点

在系统安装完毕,要连接到网络上之前,系统管理员应该建立新系统的AIDE数据库。这第一个AIDE数据库是系统的一个快照和以后系统升级的参照。数据库应该包含这些信息:关键的系统二进制可执行程序、动态链接库、头文件以及其它总是保持不变的文件。这个数据库不应该保存那些经常变动的文件信息,例如:日志文件、邮件、/proc文件系统、用户起始目录以及临时目录。

一旦发现系统被入侵,系统管理员可能会使用ls、ps、netstat以及who等系统工具对系统进行检查,但是所有这些工具都可能被木马程序代替了。可以想象被修改的ls程序将不会显示任何有关入侵的文件信息,ps也不会显示任何入侵进程的信息。即使系统管理员已经把关键的系统文件的日期、大小等信息都打印到了纸上,恐怕也无法通过比较知道它们是否被修改过了,因为文件日期、大小等信息是非常容易改变的,一些比较好的rootkit可以很轻松地对这些信息进行假冒。

虽然文件的日期、大小等信息可能被假冒,但是假冒某个文件的一个加密校验码(例如:mk5)就非常困难了,更不要说假冒所有AIDE支持的校验码了。在系统被入侵后,系统管理员只要重新运行AIDE,就能够很快识别出哪些关键文件被攻击者修改过了。

不过,要注意这也不是绝对的,因为AIDE可执行程序的二进制文件本身可能被修改了或者数据库也被修改了。因此,应该把AIDE的数据库放到安全的地方,而且进行检查时要使用保证没有被修改过的程序。

3 AIDE入侵检测工具在Linux系统中的应用

系统环境:RHEL6.0

软件环境:aide-0.14-3.el6.i686

3.1 安装、配置AIDE程序

(1)安装AIDE软件包

执行命令yum -y install aide

(2)调整aide.conf配置文件,指定要检测的对象

执行命令vim /etc/aide.conf打开配置文件,并在配置文件中按检测的需要作相应的修改。

3.2 建立、更新数据库

(1)执行初始化,生成第一份数据库

执行命令aide - -init生成一个新数据库aide.db.new.gz,接下来需要将就的数据库aide.db.gz替换掉才能正常使用。执行命令mv aide.db.new.gz aide.db.gz将之替换。

(2)对系统所做的正常修改,可更新至数据库

有时,对系统的修改是系统管理员所做的正常修改,而并不是黑客入侵所致,在这种情况下,可以执行命令aide - -update将之更新为新的数据库,同样需要执行命令mv aide.db.new.gz aide.db.gz替换掉旧的数据库。

3.3 执行AIDE入侵检测

(1)查看入侵检测报告

为了测试方便,故意将系统中的文件/bin/ps改名为/bin/ps.1,可以通过执行命令aide - - check检测到发现新增了一个文件(/bin/ps.1),删除了一个文件/bin/ps,改变了一个文件(/bin的哈希值、mtime、ctime均发生了改变)。

(2)保存入侵检测报告

可以将检测结果保存到其他文件,以便日后查看。

3.4 定期执行入侵检测,并发送报告

为防止系统被恶意的不定期的或频繁的入侵,可以写一个计划任务,每隔一段时间就对系统进行一次入侵检测,并将检测报告发送至系统管理员邮箱,以便系统管理员能对系统的安全情况进行实时监控,并采取适当措施。

4 结束语

AIDE入侵检测工具是Linux系统中的一种比较方便好用的系统入侵检测软件,在实际生产环境中得到了广泛应用,但是这种检测方式要求系统要处于“干净”状态时建立或更新数据库,如果在一个已经受到感染的系统中建立数据库,则入侵检测结果将是不可信的。另外,入侵检测的保护对象最好是不经常变动的文件,例如账号列表、服务配置、系统文件等,否则将会给识别哪些改动是入侵所致增加难度。

【参考文献】

[1]李洋.Linux安全技术内幕[M].清华大学出版社,2010,7.

[2]张献忠,主编.操作系统实用教程[M].电子工业出版社,2007,2.

[3]Stalling W.Operating System:Internals and Design Principles[M].Fourth Edition. Prentice-Hall International Inc,1998.

[4]Pfleeger. Security in computing[Z],1997.

[5]Andrew S Tannnaum. Modern Operating System,影印版[M].北京:机械工业出版社,2002.

[责任编辑:周娜]

推荐访问: 入侵 检测系统 Linux AIDE