Intrusion Detection Software - wykrywanie zmian w plikach przy użyciu AIDE

OS: RHEL 6.x / CentOS 6.x

Instalacja pakietów

AIDE nie jest domyślnie kompilowanym pakietem, dlatego jeśli chcemy go wykorzystywać, niezbędna będzie jego instalacja.

[root@server ~]# yum -y install aide

Konfiguracja

Przed pierwszym uruchomieniem inicjalizującym bazę danych narzędzia konieczna jest jego konfiguracja. Sprowadza się ona do zdefiniowania obiektów, które chcemy weryfikować, oraz parametrów, które mogą ulegać zmianom. Obiektami mogą być zarówno pliki jak i całe katalogi wraz z zawartością.
Konfiguracji dokonujemy w pliku /etc/aide.conf, który po instalacji zawiera predefiniowane reguły, gotowe do wykorzystania.
Nic nie stoi na przeszkodzie, abyśmy utworzyli własne reguły spełniające nasze wymagania. Definicja taka ma postać NAZWA = wartosci
Nazwa definicji jest dowolna, a parametry które może przyjmować dodajemy oddzielając je znakiem +.

Możliwe wartości to:
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
acl:           Access Control Lists
selinux        SELinux security context
xattrs:        Extended file attributes

oraz kilka sum kontrolnych:
md5:    md5 checksum
sha1:   sha1 checksum
sha256:        sha256 checksum
sha512:        sha512 checksum
rmd160: rmd160 checksum
tiger:  tiger checksum

Dla wyjaśnienia składni przyjrzyjmy się jednej ze zdefiniowanych reguł:

PERMS = p+i+u+g+acl+selinux

W tym przypadku monitorowane będą uprawnienia do pliku, inode, użytkownik, grupa, ACL-e oraz konteksty SELinuxowe. W przypadku zmiany któregokolwiek z tych warunków, AIDE zaraportuje ten fakt przy skanowaniu.

Wskazanie pliku lub katalogu do monitorowania odbywa się poprzez przypisanie mu konkretnej reguły:

/etc/passwd   PERMS

co oznacza, iż plik /etc/passwd będzie monitorowany pod kątem zniamy jego uprawnień.

W przypadku monitorowania katalogów możemy użyć trzech formatów definicji:
/etc   GRUPA, który będzie monitorował katalog /etc wraz z zawartością,
=/etc  GRUPA, do monitorowania samego katalogu bez podkatalogów i plików w nim umieszczonych,
!/etc, który wyłączy katalog i wszystko co w nim zawarte z jakiegokolwiek monitorowania.

Inicjalizacja bazy

Po skonfigurowaniu odpowiednich parametrów oraz katalogów i plików, które mają być monitorowane należy zainicjalizować bazę AIDE:

[root@server ~]# aide --init

AIDE, version 0.14

### AIDE database at /var/lib/aide/aide.db.new.gz initialized.


Inicjalizacja zbiera dane z serwera zgodnie z zadaną konfiguracją i umieszcza je zgodnie ze zwracaną informacją w pliku /var/lib/aide/aide.db.new.gz. Zbieranie danych trwa dłuższą chwilę, więc nie należy się niecierpliwić.

Po poprawnym wygenerowaniu pliku z bazą konieczna jest jeszcze jedna operacja. AIDE jako podstawowej bazy używa pliku /var/lib/aide/aide.db.gz, dlatego konieczna jest zmiana nazwy utworzonego właśnie pliku.

Weryfikacja / Monitorowanie zmian

Sprawdźmy, czy nasza konfiguracja działa poprawnie.
Zgodnie z konfiguracją plik /etc/fstab posiada następująco skonfigurowane parametry:

/etc/fstab    NORMAL

Oznacza to, że będą monitorowane m.in. uprawnienia do pliku, user oraz grupa, rozmiar, mtime, ctime, ACL-e, konteksty SELinuxa, dodatkowe atrybuty xattr oraz sumy md5, rmd160 i sha256 tego pliku - ulegają zmianie podczas zmian w samym pliku.  Dokonajmy takiej zmiany i zweryfikujmy poprawność zadziałania AIDE.

[root@server ~]# echo "##" >> /etc/fstab

Teraz należy porównać stan faktyczny serwera z bazą danych zebraną przez AIDE podczas inicjalizacji. W rezultacie otrzymamy informację o zaimprowizowanej przez nas zmianie.

[root@server ~]# aide --check
AIDE found differences between database and filesystem!!
Start timestamp: 2015-08-10 23:35:12

Summary:
  Total number of files:        56609
  Added files:                  0
  Removed files:                0
  Changed files:                1


---------------------------------------------------
Changed files:
---------------------------------------------------

changed: /etc/fstab

--------------------------------------------------
Detailed information about changes:
---------------------------------------------------


File: /etc/fstab
  Size     : 924                              , 927
  Mtime    : 2015-07-12 17:49:52              , 2015-08-10 23:34:46
  Ctime    : 2015-07-12 17:49:52              , 2015-08-10 23:34:46
  MD5      : x6t5hL4nV3fQ5v4b31mPbg==         , jsxyXOkUTsEP5ObC0NQu7Q==
  RMD160   : jE5gysjxumgzCvnqmgJI+4ig8Vc=     , Pf8tiSA5u8mItw2Erz9Kk4yuA1s=
  SHA256   : zWSw4e7mHi24grfHjY3ykcycOJs3Ri8E , 3es8pI9l3Nuu6n407tmCpULFhZ+fn03m

Zmiana konfiguracji domyślnej plików

Domyślnie AIDE przechowuje swoją bazę danych w pliku /var/lib/aide/aide.db.gz, a log w pliku /var/log/aide/aide.log.
Zmiana tej konfiguracji polega na zmianie predefiniowanych ścieżek w pliku /etc/aide.conf:

@@define DBDIR /var/lib/aide
@@define LOGDIR /var/log/aide

Brak komentarzy:

Prześlij komentarz