分享
 
 
 

aide使用手册

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

什么是AIDE

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

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

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

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

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

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

编译

快速安装

如果你已经安装了所有所需的软件,只要输入以下命令,就可以安装好AIDE了。

#tar zxvf aide-版本号.tar.gz

#cd aide-版本号

#./configure

#make

#make install

获取所需的软件

在编译安装AIDE之前,应该首先获取以下软件

ANSI C编译器(例如:GCC)。

GNU Flex

GNU Bison

GNU Make

Aide源代码

如果你想要mhash支持需要安装mhash库。

如果你想使用PostgreSql保存AIDE数据库,需要安装PostgreSql开发库

然后,就可以解压aide源代码包,准备安装了

tar zxvf aide-版本号.tar.gz

配置编译选项

下面,你就可以使用configure脚本对各种编译选项进行配置了。可以输入./configure --help命令获得帮助信息。其中的大部分选项,你不必关心。一般只需要设置以下选项:

--with-mhash

使用这个选项加入mhash的支持。

--with-gnu-regexp

使用GNU正则表达式库

--prefix=

改变默认的安装路径

--with-psql

加入对PostgreSQL的支持

编译安装

输入make命令进行安装,然后输入make install命令将aide安装到指定的目录。

配置

接下来,你需要建立一个配置文件。aide的配置文件是aide.conf,其语法和Tripwire的配置文件极为相似,Tripwire的配置文件tw.conf可以很轻松转换为aide.conf。

aide.conf文件中的内容是大小写敏感的,而且开头和结尾的空格都被忽略。

aide.conf文件中有三种类型的语句:

配置选项

设置配置参数以及定义/取消定义变量。

选择选项

选择加入数据库的文件。

这些选项中,只有选择选项是必须的。以#开头的行是注释行,它们将被忽略。

配置选项

配置选项的一般格式是参数=值。

database

aide要读的数据库。只能有一个,如果定义多个,aide就会使用第一个,默认值是./aide.db。

database_out

要输出的新数据库。只能有一个,如果定义了多个,aide就会使用第一个,默认值是./aide.db.new。

verbose

输出信息的级别。值可以在0-255之间。这个参数只能被定义一次。如果运行aide时,使用了--verbose或者-V命令行,aide就会使用这个参数定义的值。默认是5。在执行--check或者--update操作时,如果这个值是20,aide就会输出额外的报告信息。

report_url

报告信息从哪个URL输出。这个参数可以定义多个事例。aide会把输出送到所有定义的URL。默认值是标准输出(stdout)。

gzip_dbout

是否对输出的数据库进行压缩。有效的值有yes、true、no、false。默认值是no。只有编译时连接了zlib库,这个选项才会生效。

组定义

如果参数不是上面的任何参数,AIDE就认为这是一个组的定义。值就被认作是一个表达式。表达式是如下格式:

<预定义的组>|<表达式>+<预定义的组> |<表达式>-<预定义的组>

请参考DEFAULT GROUPS关于默认预定义组的解释。

有一个特别的组叫作ignore_list。这个预定义组列出不在最后的报告中显示的组。

选择选项

选择选项有三种类型:regular、negative、equals。以/开始就是正则(regular)选择选项;以!开头就是否定(negative)选择选项;以=打头就是等于(equals)选择选项。AIDE将把这些符号之后的字符串看作对文件名(包括目录)进行匹配的正则表达式。要获得更深入的解释,请参考配置选项。

@@define VAR var

把变量VAR的值定义为var。

@@undef VAR

取消VAR变量的定义。

@@ifdef VAR,@@ifndef VAR

@@ifdef是一个if状态的开始,一个if状态必须以@@endif宏结束。@@ifdef和@@endif之间的选项取决于变量VAR是否被定义。如果在@@ifdef和@@endif之间使用了@@else宏,就表示如果VAR变量已经定义就使用@@ifdef和@@else之间的选项;否则就使用@@else和@@endif之间的选项。@@ifndef在逻辑上和@@ifdef相反的,用法差不多。

@@{VAR}

使用VAR变量的值代替@@{VAR}。如果变量VAR没有定义就使用一个空字符串。

@@ifhost hostname,@@ifnhost hostname

用法和@@ifdef类似。检查hostname是否等于运行AIDE的主机名。hostname是主机名,不包括域名。

@@else

if状态else部分的开始

@@endif

if状态的结束

URL

AIDE当前支持的URL如下。注意:输入的URL不能和输出的URL相同,反之亦然。

stdout,stderr

输出到标准输出设备或者标准错误输出设备

stdin

从标准输入设备输入

file://filename

从文件filename输入,或者输出到文件filename。

fd:number

从文件描述符number输入或者输出。

aide的后续版本将会支持更多的URL,例如:email报告,syslog等。

DEFAULT GROUPS

AIDE默认的组有以下这些:

p 权限

inode 索引节点

n 连接数量

u 用户

g 用户组

s 大小

m 最后一次修改时间

a 最后一次访问时间

c 创建时间

S 检查增加的大小

md5 md5校验

sha1 sha1校验

rmd160 校验

tiger tiger校验

R p+i+n+u+g+s+m+c+md5

L p+i+n+u+g

E 空组

> 增长的日志文件p+u+g+i+n+S

如果在编译时,加入了mhash库的支持,还可以使用如下的组:

crc32 crc32校验

haval haval校验

gost gost校验

例子

/ R

将机器上的所有文件都加入数据库。使用md5对文件的权限、索引节点、连接数量、用户、用户组、大小、最后修改时间以及创建时间进行校验。

!/dev

忽略/dev目录

=/tmp$

只把/tmp目录加入到数据库,不包括其子目录。

ALL=p+i+n+u+g+s+m+c+a+md5+sha1+tiger+rmd160

定义了一个新的组。包括所有的属性和所有的md校验功能。

通常,进行配置时,要尽量忽略经常8变动的目录和文件,例如:临时目录、邮件spool目录、日志目录、porc文件系统、用户起始目录、WEB正文目录以及其它经常变动的目录和文件。此外,要尽量包含所有的系统二进制文件、库文件、包含文件、系统源文件。其它一些你不经常注意的文件和目录,例如:/dev、usr/man/*、/usr/包含在内。

注意:如果你只想包含单个文件,就应该在表达式的结尾加$。例如:=/tmp$,表示只把tmp目录加入,而不包括其子目录。

使用

使用AIDE的第一件事当然是建立一个数据库,以便将来检查。这项工作要在系统或者应用程序安装完毕以后,要连接到网络上之前进行。可以使用以下参数启动AIDE完成这项工作:

aide --init

数据库产生后一定要放到一个安全的地方。

aide有两种参数:命令参数和选项参数,以下是aide的命令参数:

--check

检查数据库的一致性。需要一个初始化的AIDE数据库。也是AIDE的默认命令选项。

--init

初始化一个数据库

--update

检查数据库,并且以非交互的方式升级数据库。输入的数据库和输出的数据库必须是不同的。

选项参数:

--config=configfile

指定configfile文件作为配置文件,不使用默认的./aide.conf。如果使用-,aide就从标准输入中读取。

--before=configparameters

在读取配置文件之前,首先处理configparameters指定的配置选项。

--after=configparameters

处理完配置文件设置的配置选项以后,再处理configparameters设置的配置选项。

--verbose=verbosity_level,-V verbosity_level

控制aide信息显示的冗余程度。值在0到255之间。

--report=reporter,-r

指定报告输出的URL。

--version,-v

显示版本号

--help,-h

显示帮助信息

aide是一个Tipwire的替代和扩展软件,它有一些Tripwire所不具备的特征。aide当前具备的特征包括:多种完整性检验算法、把数据库输出到标准输出设备/文件的能力、通过配置文件进行配置以及数据库压缩支持。将来aide会提高更多的特征。

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