标题：aide
高级入侵检测环境
AIDE(Advanced 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会提高更多的特征。 
以上内容由 华夏名网 收集整理.作者：ChinaUnix博客
Android集成开发环境
AIDE是一个Android Java集成开发环境，可以在Android系统内进行Android软件和游戏的开发。它不仅仅是一个编辑器，而是支持编写-编译-调试运行整个周期，开发人员可以在Android手机或者平板机上创建新的项目，借助功能丰富的编辑器进行代码编写，支持实时错误检查、代码重构、代码智能导航、生成APK，然后直接安装进行测试。[1]
这款软件还完全兼容现有的Eclipse项目，只需要将源代码复制到你的设备中然后打开，你就可以继续开始进行代码工作。