Jak sprawdzić integralność pliku lub katalogu za pomocą AIDE w systemie Linux?

W przypadku korzystania z wielu systemów operacyjnych idealnym rozwiązaniem jest posiadanie zawsze narzędzi, które pozwalają nam zachować scentralizowaną i bezpośrednią kontrolę nad nim. Jedną z najdelikatniejszych kwestii jest bezdyskusyjnie bezpieczeństwo i integralność plików, ponieważ gwarantuje to dostępność i niezawodność plików.

Dzisiaj Solvetic opowie o praktycznym narzędziu o nazwie AIDE, dzięki któremu będzie można sprawdzić integralność pliku lub katalogu w różnych dystrybucjach Linuksa, a tym samym mieć pewność pełnej niezawodności wybranego pliku.

Co to jest AIDEAIDE ((Advanced Intrusion Detection Environment) to narzędzie do sprawdzania integralności plików i katalogów w środowiskach Linux, które pozwala nam jako administratorom zachować nad nimi określoną kontrolę.
Jego działanie polega na stworzeniu bazy danych zaprojektowanej z reguł wyrażeń regularnych dostępnych w plikach konfiguracyjnych. Po zainicjowaniu tej bazy danych można jej użyć do weryfikacji integralności wymaganych plików.

Atrybuty pliku AIDEAIDE jest odpowiedzialne za budowanie bazy danych z plików określonych w aide.conf, który jest plikiem konfiguracyjnym AIDE. Baza danych AIDE przechowuje kilka atrybutów plików, w ramach których mamy:

  • typ pliku
  • pozwolenia
  • użytkownik i grupa
  • rozmiar pliku
  • mczas, cczas i czas
  • wzrost wielkości
  • liczba linków i nazwa linku.

Ponadto AIDE tworzy kryptograficzną sumę kontrolną lub hash każdego pliku, używając jednego lub kombinacji następujących algorytmów skrótu wiadomości: sha1, sha256, sha512, md5, rmd160, tiger, haval, crc32, a także atrybutów acl, xattr, selinux , a e2fsattrs mogą być używane, gdy są jawnie włączone w czasie kompilacji.

AIDE posiada kilka algorytmów skrótu wiadomości, które są używane do weryfikacji integralności pliku. Wszystkie zwykłe atrybuty pliku można również sprawdzić pod kątem niespójności w nim. AIDE może odczytywać bazy danych starszych lub nowszych wersji.

Funkcje AIDEKorzystając z tego narzędzia mamy następujące cechy:

  • Obsługiwane algorytmy skrótu wiadomości, takie jak: md5, sha1, rmd160, tigger, crc32, sha256, sha512, whirlpool (dodatkowo z libmhash: gost, haval, crc32b)
  • Obsługiwane atrybuty pliku: Typ pliku, Uprawnienia, I-węzeł, Uid, Gid, Nazwa łącza, Rozmiar, Numer bloku, Liczba łączy, Mczas, Cczas i Czas
  • Obsługuje atrybuty Posix ACL, SELinux, XAttrs i rozszerzone atrybuty systemu plików, jeśli obsługa jest skompilowana w postaci zwykłego tekstu i plików konfiguracyjnych bazy danych dla uproszczenia
  • Posiada obsługę wyrażeń regularnych, aby selektywnie dołączać lub wykluczać pliki i katalogi w celu monitorowania
Można skompresować bazę danych gzip, jeśli obsługa zlib jest skompilowana do oddzielnego statycznego pliku binarnego dla konfiguracji monitorowania klient/serwer.

AIDE jest zawarte w następujących dystrybucjach UNIX

  • Debiana
  • Gentoo
  • Porty Mac
  • FreeBSD
  • CentOS / RedHat
  • IPCop
  • OpenSUSE

Ważne jest, aby wyjaśnić, że AIDE nie może zapewnić całkowitego bezpieczeństwa zmian w pliku, ponieważ podobnie jak każdy inny plik systemowy, bazę danych i/lub pliki binarne AIDE można również zmienić przy użyciu odpowiednich narzędzi.

1. Instalowanie AIDE w systemie Linux


AIDE jest dostępne w oficjalnych repozytoriach dla najpopularniejszych dystrybucji Linuksa, w tym celu możemy je zainstalować za pomocą menedżera pakietów zgodnie z wybraną dystrybucją w następujący sposób:
 apt pomoc przy instalacji (Debian / Ubuntu) yum pomoc przy instalacji CRHEL / CentOS) dnf pomoc przy instalacji (Fedora) zypper pomoc przy instalacji (OpenSUSE) emerge pomoc (Gentoo)

W tym przypadku używamy Ubuntu. Tam wpisujemy literę S, aby zaakceptować pobranie i instalację AIDE. Po zainstalowaniu zobaczymy:

Jak widać, głównym plikiem konfiguracyjnym jest /etc/aide/aide.conf. Aby wyświetlić zainstalowaną wersję, a także parametry czasu kompilacji, możemy wykonać następujące czynności:

 adiutant -v

2. Dostęp do pliku konfiguracyjnego AIDE Linux


Możemy uzyskać dostęp do pliku konfiguracyjnego AIDE, wykonując następujący wiersz w żądanym edytorze:
 nano /etc/aide/aide.conf
Zobaczymy:

W tym pliku znajdują się dyrektywy, które definiują lokalizację bazy danych, lokalizację raportu, domyślne reguły, katalogi lub pliki, które mają być zawarte w bazie danych i wiele innych.

3. Jak zarządzać i rozumieć zasady AIDE

AIDE zarządza zasadami, takimi jak:

PUprawnienia - Uprawnienia
nLiczba linków
lub= Użytkownik
gGrupy
sRozmiar (rozmiar)
bLiczba bloków
mmtime
doczas
Cctime
selinuksKontekst bezpieczeństwa Selinux
xattrsWyświetla rozszerzone atrybuty pliku

Z tych reguł będzie można tworzyć własne reguły w pliku konfiguracyjnym AIDE. Na przykład możemy stworzyć następującą regułę:

 PERMS = p + u + g + acl + selinux + xattrs
W takim przypadku reguła PERMS jest zaimplementowana do kontroli dostępu, która wykrywa wszelkie zmiany w pliku lub katalogach na podstawie uprawnień do pliku lub katalogu, użytkownika, grupy, uprawnień kontroli dostępu, atrybutów plików i innych.

Kolejna reguła, którą możemy zaimplementować to taka, która sprawdza tylko zawartość pliku i wybrany typ pliku, na przykład:

 ZAWARTOŚĆ = sha256 + typ f
Jeśli chcemy zweryfikować rozszerzoną zawartość, rodzaj pliku i dostęp możemy stworzyć regułę taką jak:
 CONTENT_EX = sha256 + ftype + p + u + g + n + acl + selinux + xattrs
Reguła, która pomaga nam wykryć zmiany w katalogu tylko na poziomie danych to:
 TYLKO DANE = p + n + u + g + s + acl + selinux + xattrs + sha256
Te reguły należy dodać na dole pliku konfiguracyjnego AIDE:

Zapisujemy zmiany za pomocą klawiszy Ctrl + O i wychodzimy za pomocą Ctrl + X.

4. Jak zdefiniować reguły przeglądania plików i katalogów AIDE?


Dzięki AIDE będzie również możliwe tworzenie reguł dla określonych plików lub katalogów do analizy. W tym celu ponownie uzyskujemy dostęp do ścieżki /etc/aide/aide.conf i możemy utworzyć następujące reguły:
 / root / \… * PERMS (Ta reguła sprawdza uprawnienia w katalogu głównym) / root / CONTENT_EX (Ta reguła sprawdza wszystkie pliki w katalogu głównym przed jakąkolwiek zmianą) / etc / DATAONLY (Ta reguła pozwala nam wykryć każdą zmianę w katalogu /itp)

Zmiany możemy zapisać w pliku konfiguracyjnym AIDE.

5. Jak używać AIDE do weryfikacji plików i integralności katalogów w systemie Linux?


Po zdefiniowaniu reguł, które mają być używane z AIDE, następnym krokiem będzie zbudowanie bazy danych na podstawie sprawdzeń, które zostaną przeprowadzone za pomocą parametru --init.

Za pomocą następującego polecenia zostanie utworzona baza danych zawierająca wszystkie pliki, które zdefiniujemy w pliku konfiguracyjnym AIDE:

 Pomocnik – init

Gdy to zrobisz, przejdź do zmiany nazwy bazy danych na /var/lib/aide/aide.db.gz przed kontynuowaniem, w tym celu możemy użyć następującego polecenia:

 mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db.gz
Zaleca się przeniesienie tej bazy danych w bezpieczne miejsce, ale musimy koniecznie zaktualizować plik konfiguracyjny, aby można było go stamtąd odczytać.

Następnie musimy skompilować nowy plik konfiguracyjny Aide. Wykonujemy następujące polecenie:

 update-aide.conf
Teraz skopiujemy ten nowy plik do katalogu / etc / aide:
 cp /var/lib/aide/aide.conf.autogenerated /etc/aide/aide.conf
Po utworzeniu bazy danych możemy sprawdzić integralność plików i katalogów za pomocą flagi -check:
 adiutant – sprawdź

6. Jak ocenić AIDE


Aby przetestować działanie AIDE, wykonamy następujące wiersze:
 mkdir / root / aide-test touch / root / aide-test / testsolvetic touch / root / aide-test / testsolvetic1
Za ich pomocą tworzymy nowy katalog i pliki w systemie. Później wykonujemy następujący wiersz w celu jego walidacji i weryfikacji:
 Pomocnik - sprawdź
Wynik będzie następujący:

Tam widzimy, że w pliku została znaleziona różnica i wskazuje, jakiego rodzaju była to akcja, dodanie, usunięcie lub zmiana.
W ten sposób AIDE jest użytecznym narzędziem do określania w czasie rzeczywistym zmian, jakie zaszły w systemie.

wave wave wave wave wave