aide

aide

檢查文檔完整性的檢測工具
AIDE(Adevanced Intrusion Detection Environment,高級入侵檢測環境)是個入侵檢測工具,主要用途是檢查文檔的完整性。aide當前具備的特征包括:多種完整性檢驗算法、把數據庫輸出到标準輸出設備/文檔的能力、通過配置文檔進行配置連同 數據庫壓縮支持。AIDE數據庫能夠保存文檔的各種屬性,包括:權限(permission)、索引節點序号(inode number)、所屬用戶(user)、所屬用戶組(group)、文檔大小、最後修改時間(mtime)、創建時間(ctime)、最後訪問時間(atime)、增加的大小連同連接數。aide的配置文檔是aide.conf,其語法和Tripwire的配置文檔極為相似,Tripwire的配置文檔tw.conf能夠很輕松轉換為aide.conf。aide會把輸出送到任何定義的URL。@@ifdef和@@endif之間的選項取決于變量VAR是否被定義。[1]
  • 中文名: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能夠很輕松地對這些信息進行假冒。

雖然文檔的日期、大小等信息可能被假冒,但是假冒某個文檔的一個加密校驗碼(例如:md5)就很困難了,更不要說假冒任何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會提高更多的特征。

相關詞條

相關搜索

其它詞條