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
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.confZobaczymy:
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 + xattrsW 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 fJeś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 + xattrsReguła, która pomaga nam wykryć zmiany w katalogu tylko na poziomie danych to:
TYLKO DANE = p + n + u + g + s + acl + selinux + xattrs + sha256Te 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.gzZaleca 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.confTeraz skopiujemy ten nowy plik do katalogu / etc / aide:
cp /var/lib/aide/aide.conf.autogenerated /etc/aide/aide.confPo 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 / testsolvetic1Za 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.