Naucz się audytu systemu Linux za pomocą narzędzia Auditd na Centos/Rhel

Naucz się audytu systemu Linux za pomocą narzędzia Auditd na Centos/Rhel

Audyt systemu po prostu odnosi się do dogłębnej analizy określonego ukierunkowanego systemu: Audyt składa się z badania różnych części, które obejmują ten system, z krytyczną oceną (i testowaniem w razie potrzeby) w różnych obszarach zainteresowania.

Przeczytaj także: Lynis - narzędzie kontroli bezpieczeństwa i skanowania dla systemów Linux

Jeden z krytycznych podsystemów RHEL/CENTOS System audytu Linuksa powszechnie znany jako Auditd. Wdraża środki do śledzenia informacji o bezpieczeństwie w systemie: Wykorzystuje wstępnie skonfigurowane reguły do ​​gromadzenia ogromnych informacji o zdarzeniach, które mają miejsce w systemie, i rejestrować je w pliku dziennika, tworząc w ten sposób próbę audytu.

Może rejestrować informacje, takie jak data i godzina, rodzaj i wynik zdarzenia; Użytkownicy, którzy spowodowali zdarzenie, wszelkie modyfikacje dokonane w plikach/bazach danych; Zastosowania mechanizmów uwierzytelniania systemu, takich jak PAM, LDAP, SSH i inne.

Auditd Rejestruje także wszelkie zmiany wprowadzone w plikach konfiguracyjnych audytu lub wszelkie próby dostępu do plików dziennika audytu oraz wszelkie starania o importowanie lub eksport informacji do lub z systemu oraz wiele innych informacji związanych z bezpieczeństwem.

Dlaczego system audytu Linux jest ważny?

  1. Nie wymaga żadnych zewnętrznych programów ani procesów, aby działać w systemie, co czyni go samowystarczalnym.
  2. Jest to wysoce konfigurowalne, dlatego umożliwia wyświetlanie dowolnych operacji systemowych, które chcesz.
  3. Pomaga w wykryciu lub analizie potencjalnych kompromisów systemu.
  4. Jest w stanie pracować jako niezależny system wykrywania.
  5. Może działać z systemami wykrywania włamań, aby umożliwić wykrywanie włamań.
  6. Jest to istotne narzędzie do kontroli badań kryminalistycznych.

Komponenty systemu audytu Linux

System audytu ma dwa podstawowe komponenty, a mianowicie:

  • Aplikacje i narzędzia/narzędzia użytkowników, oraz
  • Przetwarzanie połączeń systemowych po stronie jądra-akceptuje połączenia systemowe z aplikacji i przestrzeni użytkownika i przekazuje je przez trzy typy filtrów, a mianowicie: użytkownik, zadanie, Wyjście, Lub wykluczać.

Najważniejszą częścią jest przestrzeń użytkownika Demon audytu (Auditd), który gromadzi informacje oparte na wstępnie skonfigurowanych regułach, z jądra i generuje wpisy w pliku dziennika: Domyślny dziennik to /var/log/audyt/audyt.dziennik.

Dodatkowo audispd (Demon dyspozytora audytu) to multipleksor zdarzenia, który wchodzi w interakcje Auditd i wysyła wydarzenia do innych programów, które chcą wykonywać przetwarzanie zdarzeń w czasie rzeczywistym.

Jest wiele przestrzeń użytkownika Narzędzia do zarządzania i pobierania informacji z systemu audytu:

  • AuditCtl - narzędzie do kontrolowania systemu audytu jądra.
  • Ausearch - narzędzie do wyszukiwania plików dziennika audytu dla określonych zdarzeń.
  • Aureport - narzędzie do tworzenia raportów z nagranych wydarzeń.

Jak zainstalować i skonfigurować narzędzie audytu w RHEL/Centos/Fedora

Najpierw upewnij się, że narzędzie audytu jest instalowane w systemie za pomocą polecenia RPM i narzędzia GREP w następujący sposób:

# rpm -qa | Audyt GREP 
Sprawdź narzędzie Auditd

Jeśli nie masz zainstalowanych powyższych pakietów, uruchom to polecenie jako użytkownika root, aby je zainstalować.

# Audyt instalacji mniam 

Następnie sprawdź, czy Auditd jest włączony i uruchomiony, wydaj poniższe polecenia SystemCtl na terminalu.

--------------- Na Centos/Rhel 7 --------------- # SystemCtl IS-obserwowany audytd # Systemctl Auditd # Systemctl start Auditd [start] # Systemctl Enable Auditd [włącz] --------------- Na Centos/Rhel 6 --------------- # Service Auditd Status # Service Auditd Start [Start] # CHKCONFIG AUDITD na [Włącz] 
Sprawdź status narzędzia Auditd

Teraz zobaczymy, jak skonfigurować Auditd Korzystanie z głównego pliku konfiguracyjnego /etc/audyt/audytd.conf. Parametry tutaj pozwalają kontrolować sposób działania usługi, takie jak definiowanie lokalizacji pliku dziennika, maksymalna liczba plików dziennika, format dziennika, sposób radzenia sobie z pełnymi dyskami, rotacją dziennika i wiele innych opcji.

# vi/etc/audyt/audytd.conf 

Z dodatkowego wyjścia poniżej parametry są oczywiste.

Plik konfiguracyjny Auditd

Zrozumienie zasad audytu

Jak wspomnialiśmy wcześniej, Auditd wykorzystuje reguły do ​​gromadzenia konkretnych informacji z jądra. Te zasady są zasadniczo AuditCtl opcje (patrz strona Man), że możesz wstępnie konfiguracyjny zasady w /itp./Audyt/reguły.D/Audyt.zasady plik (w Centos 6, użyj /etc/audyt/audyt.zasady plik), aby były ładowane podczas uruchamiania.

Istnieją trzy rodzaje zasad audytu, które możesz zdefiniować:

  • Zasady kontroli - Umożliwiają one modyfikację zachowania systemu audytu i kilku jego konfiguracji.
  • Reguły systemu plików (zwane także zegarkami plików) - Włącz kontrolę dostępu do określonego pliku lub katalogu.
  • Zasady połączeń systemowych - zezwala na rejestrowanie połączeń systemowych wykonanych przez dowolny program.

Teraz otwórz główny plik konfiguracyjny do edycji:

# vi/etc/audyt/reguły.D/Audyt.zasady 

Zauważ, że pierwsza sekcja tego pliku musi zawierać Zasady kontroli. Następnie dodaj reguły audytu (zegarki plików i reguły połączeń systemowych) w środkowej sekcji, a wreszcie ostatnia sekcja zawiera ustawienia niezmienności, które są również regułami kontroli.

Przykłady reguł kontroli Auditd

-D #Removes wszystkie poprzednie reguły -B 3074 #definicja rozmiar bufora -f 4 #Panic na porażce -r 120 #Create co najwięcej 120 komunikatów audytu na sekundę 

Przykłady reguł systemu plików Auditd

Możesz zdefiniować zegarki plików za pomocą tej składni:

-w/ścieżka/do/plik/lub/Directory -p uprawnienia -K klawisz_name 

Gdzie opcja:

  • w - służy do określenia pliku lub katalogu do oglądania.
  • P - uprawnienia do zalogowania się, R - do odczytu dostępu, w - Do dostępu do zapisu, X - do wykonania dostępu i A - W celu zmiany pliku lub atrybutu dyrektora.
  • -k - pozwala ustawić opcjonalny ciąg do określenia, która reguła (lub zestaw reguł) utworzył określony wpis dziennika.

Te reguły pozwalają na kontrolę zdarzeń, wprowadzając zmiany w tych krytycznych plikach systemowych.

-w /etc /passwd -p wa -k passwd_changes -w /etc /grupa -p -p grupa_changes -w /etc /shadow -p wa -k shadow_changes -w /etc /sudoers -p Wa -k sudoers_changes 

Przykłady reguł połączeń systemowych Auditd

Możesz ustawić regułę połączenia systemowego za pomocą poniższego formularza:

-Akcja, Filtr -s System_Call -f Field = wartość -k Key_name 

Gdzie:

  • działanie - ma dwie możliwe wartości: zawsze lub nigdy.
  • filtr - Określa filtr dopasowywania reguł jądra (zadanie, wyjście, użytkownik i wykluczenie) jest stosowane do zdarzenia.
  • wywołanie systemowe - Nazwa wywołania systemu.
  • pole - Określa dodatkowe opcje, takie jak architektura, PID, GID itp., Aby zmodyfikować regułę.

Oto kilka zasad, które możesz zdefiniować.

-zawsze, wyjdź -f arch = b64 -s adjtimex -s settimeofday -k time_change -a zawsze, exit -s sethostname -s setdomainname -k system_locale 

Następnie na przykład dodaj ustawienia niezmienności na końcu pliku:

-e 1 #Enable Audyt -e 2 #Umieszczaj konfigurację niezmienna -ponowne uruchomienie jest wymagane do zmiany reguł audytu 
Przykładowy plik konfiguracji reguł AUDITD
Plik konfiguracji reguł reguły AUDITD

Jak ustawić reguły AuditD za pomocą narzędzia AuditCtL

Alternatywnie wyślij opcje do Auditd podczas pracy, używając AuditCtl jak w następujących przykładach. Te polecenia mogą zastąpić reguły w pliku konfiguracyjnym.

Aby wymienić wszystkie aktualnie załadowane zasady audytu, przejdź -L flaga:

# auditctl -l 

Następnie spróbuj dodać kilka zasad:

# auditctl -w /etc /passwd -p wa -k passwd_changes # auditctl -w /etc /grupa -p wa -k grupa_changes # auditctl -w /etc /sudoers -p wa -k sudoers_changes # auditctl -l -l 
Dodaj reguły audytu za pomocą audytctl

Zrozumienie plików dziennika Auditd

Wszystkie wiadomości audytu są rejestrowane w /var/log/audyt/audyt.dziennik plik domyślnie. Aby zrozumieć format wpisu dziennika, załadujemy regułę i sprawdzimy wpis logów wygenerowany po wydarzeniu pasującym do reguły.

Zakładając, że mamy tajny katalog tworzenia kopii zapasowych, niniejsza reguła audytu zarejestruje wszelkie próby dostępu lub zmodyfikowania tego katalogu:

# auditctl -w/backups/secret_files/-p rwa -k secret_backup 

Teraz, korzystając z innego konta systemowego, spróbuj przejść do powyższego katalogu i uruchom polecenie LS:

$ cd/backups/secret_files/$ ls 

Wpis dziennika będzie wyglądał tak.

Sprawdź dzienniki audytu pod kątem zmian

Powyższe wydarzenie składa się z trzech rodzajów rekordów audytu. Pierwszy jest Type = Syscall:

Type = Syscall MSG = Audyt (1505784331.849: 444): Arch = C000003e Syscall = 257 Sukces = Tak Exit = 3 A0 = fffffffffffffff9c A1 = 8AD5C0 A2 = 90800 A3 = 0 Pozycje = 1 pPID = 2191 PID = 2680 AUID = 1000 UID = 1000 GID = 1000 EUID = 1000 suid = 1000 fsuid = 1000 egid = 1000 sgid = 1000 fsgid = 1000 tty = pts1 ses = 3 comm = "ls" exe = "/usr/ls" Subj = Unconfined_U: Unconfined_R: Unconfined_R: Unconfined_t: S0-S0: c0: c0: c0: c0: c0.c1023 key = "secret_backup" 

Drugi jest typ = cwd.

typ = cwd msg = audyt (1505784331.849: 444): cwd = "/backups/secret_files" 

A ostatni jest typ = ścieżka:

typ = msg ścieżki = audyt (1505784331.849: 444): item = 0 name = ".„INODE = 261635 Dev = 08: 01 Tryb = 040755 OUID = 0 OGID = 0 rdev = 00: 00 OBJ = Unconfined_u: obiekt_r: default_t: s0 objtype = normalny 

Możesz znaleźć pełną listę wszystkich pól zdarzeń (takich jak MSG, Arch, SES itp.) I ich znaczenia w odniesieniu do systemu audytu.

To wszystko na teraz. W następnym artykule przyjrzymy się, jak korzystać z AUSEARCH do zapytania plików dziennika audytu: Wyjaśnimy, jak wyszukiwać szczegółowe informacje z dzienników audytu. Jeśli masz jakieś pytania, skontaktuj się z nami za pośrednictwem sekcji komentarza poniżej.