Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.


23.06.2020

PLNOG Online

PLNOG Online
23.06.2020

Nowe zagrożenie

Ramsay
23.06.2020

Chmurowe kopie

Veeam Backup dla Microsoft Azure
19.06.2020

Nowości w kontenerach

Red Hat OpenShift 4.4
19.06.2020

Analityka bezpieczeństwa

FortiAI
19.06.2020

UPS dla obliczeń edge

Schneider APC Smart-UPS
16.06.2020

Przemysłowe SD

Nowe karty Transcend
16.06.2020

Storage dla SMB

QNAP TS-451DeU
16.06.2020

Pamięć masowa

Dell EMC PowerStore

Audyt zdarzeń w Linuksie

Data publikacji: 25-11-2019 Autor: Konrad Kubecki

Audytowanie poczynań użytkowników oraz zdarzeń zachodzących na serwerach utrzymujących kluczowe aplikacje i dane klientów bywa czasami odbierane jako przesadny nadzór sprawowany nad administratorami. Postrzeganie zmienia się w chwili, gdy zachodzi podejrzenie zaistnienia incydentu bezpieczeństwa. Szczegółowe dane o zmianach w systemie są nieocenionym źródłem wiedzy.
 

Narzędzie auditd jest obecne w systemach linuksowych. Odpowiada za logowanie zdarzeń, które dokumentują aktywność użytkowników. Umożliwia obserwację wskazanych wywołań systemowych oraz plików konfiguracyjnych i wykonywalnych pod kątem ich odczytu, modyfikacji i uruchomienia. Zdarzenia te trafiają do pliku logów, który w dalszej kolejności jest cennym źródłem informacji o tym, co się działo w systemie. auditd umożliwia dogłębną analizę poczynań osób niepowołanych, które dokonały czynności podejrzanych z perspektywy bezpieczeństwa. Trzeba zaznaczyć, że auditd zapisuje zdarzenia, ale nie uruchamia reakcji obronnych. To obserwator dostarczający wiedzy o tym, kto, co, w jaki sposób i kiedy wykonał.

> ZASTOSOWANIA AUDITD

Omawiane narzędzie może posłużyć do obserwowania zdarzeń związanych z wieloma kluczowymi plikami konfiguracyjnymi. Stosowane jest w stosunku do:

 

  • plików zawierających ustawienia sieciowe, /etc/sysconfig/net­work, oraz katalogu /etc/sysconfig/network-scripts,
  • ustawień w statycznej bazie nazw /etc/hosts,
  • plików przechowujących konfigurację kont użytkowników oraz grup: /etc/passw, /etc/group, /etc/shadow, /etc/gshadow i /etc/security/opasswd,
  • konfiguracji zapisanej w pliku /etc/sudoers, katalogu /etc/sudoers.d i użycia polecenia visudo,
  • ustawień mechanizmu SELinux, w tym plików katalogu /etc/selinux,
  • ustawień firewalla,
  • plików konfiguracyjnych usług, takich jak Samba, Apache, Nginx, Tomcat, serwery FTP, Proxy i wiele innych,
  • konfiguracji kluczowej usługi dla zarządzania hostami linuksowymi – SSHD poprzez obserwację plików w katalogu /etc/ssh.


Narzędzie auditd przyda się także do odnotowywania udanych oraz nieudanych prób wykonywania przeróżnych czynności w systemie. Wśród nich są m.in.:

 

  • tworzenie, modyfikacja, kasowanie plików i katalogów – ślady tego typu działań mogą być źródłem informacji o próbach wykonania nieautoryzowanych czynności,
  • zmiana uprawnień i właściciela przy użyciu poleceń chmod i chown,
  • montowanie zewnętrznych zasobów, takich jak udziały sieciowe (Cifs, NFS) lub obrazy ISO,
  • wykonywanie restartów systemu operacyjnego,
  • modyfikowanie (w tym kasowanie) treści logów systemowych,
  • śledzenie, czy administrator nie ingeruje zbyt mocno w zawartość katalogów domowych umieszczonych w /home,
  • obserwowanie zarządzania modułami jądra systemu, w tym ładowanie nowych i usuwanie dotychczas używanych.


Jeszcze innym celem obserwacji dla auditd może być... sam auditd. Binarki należące do grupy narzędzi auditd służą do konfigurowania reguł oraz analizują i raportują zdarzenia istotne z punktu widzenia bezpieczeństwa. Raportowanie ich użycia ma pewne uzasadnienie.

> TWORZENIE REGUŁ

Monitorowanie aktywności w systemie jest możliwe dzięki regułom usługi auditd. Reguły wskazują obiekty lub wywołania systemowe do obserwowania oraz typy akcji, której wystąpienie ma być zaraportowane w pliku logów. W nieco bardziej zaawansowanej postaci reguły mogą ograniczać zakres do wybranych czynności, użytkowników oraz wyników (powodzenie lub brak uprawnień).

Poleceniem, które służy do zarządzania regułami, jest auditctl. Za jego pomocą można tworzyć, usuwać i wyświetlać aktualnie aktywne reguły. Jest to także narzędzie do konfigurowania usługi auditd. Tymczasowe włączanie i wyłączanie działania usługi, ignorowanie błędów podczas wczytywania reguł, wczytywanie reguł z dodatkowego wskazanego pliku i raportowanie statusu to wybrane czynności realizowane przez auditctl.

Przykładowe polecenie, które tworzy nową regułę, może prezentować się następująco:

 

 

Wchodzące w jego skład trzy argumenty to:

 

  • -w – ścieżka do pliku lub folderu, który ma być obserwowany przez auditd. Nie jest wspierane podawanie tzw. wildcardów, którymi można by objąć wiele plików. Każdy przeznaczony do nadzoru plik lub katalog musi być wskazany pełną ścieżką.
  • -p – typ dostępu, który dla wybranego pliku lub katalogu będzie odnotowywany w logu. W powyższym przykładzie jest to wa. Litera w oznacza dostęp do zapisu. Litera a oznacza wykonanie zmiany atrybutów pliku. Istnieją też kolejne dwa parametry: r oznaczający uzyskanie dostępu tylko do odczytu oraz x jako uruchomienie skryptu/programu.
  • -k – służy do określenia filtra – etykiety, jaką będą w pliku logów oznaczane zdarzenia związane z tym plikiem lub katalogiem. Filtry ułatwiają ręczne przeszukiwanie logów oraz korzystanie z odpowiednich narzędzi wspomagających analizę zdarzeń. Tę samą etykietę można zastosować do wielu plików, na przykład podczas tworzenia reguł dla plików mających zbliżoną charakterystykę (pliki konfiguracyjne usług, kont użytkowników, mechanizmów uwierzytelniania, firewalla itp.).


Narzędzie auditd potrafi obserwować i raportować dostęp do wszystkich plików znajdujących się we wskazanym katalogu. Logowanie wszystkich typów zdarzeń (odczyt, zapis, uruchomienie i zmiana atrybutów) można skonfigurować jednym poleceniem:

 

 

Zdarzenia w pliku logów zostaną podpisane etykietą skrypty. Pojawi się ona przy wszystkich wpisach dotyczących zawartości powyższego katalogu. Analogiczną regułę można utworzyć, wykorzystując monitorowanie wywołań systemowych:

 

 

Opcja -a zawiera listę oraz akcję. Dostępne listy to task, entry, exit, user i exclude. Akcje to never (brak logowania zdarzeń) i always (logowanie przy każdym zdarzeniu).

Opcja -F występuje w powyższej regule trzy razy. Opisuje ścieżkę do plików/katalogu, rodzaj operacji oraz filtr. Może ona definiować znacznie więcej: identyfikator grupy lub użytkownika, bezwzględną ścieżkę do obserwowanego programu, identyfikator procesu, identyfikator sesji użytkownika, typ obiektu (plik, katalog, socket, link, fifo itd.) i architekturę procesora. Można zatem utworzyć regułę, która loguje korzystanie z katalogu /opt/skrypty przez użytkownika mającego identyfikator 1002:

 

 

Co więcej, opcja -F nie musi zawierać znaku równości. Można zastosować m.in.: !=, >, <, <=, >=. Poszerza to możliwości tworzenia interesujących reguł, ściśle odpowiadających zamiarom administratora.

Cenną możliwością dotyczącą reguł jest podawanie nazw lub numerów wywołań systemowych, które przez daną regułę będą logowane. Odpowiada za to opcja -S. Może wystąpić wiele razy w ramach tej samej reguły lub zawierać wiele nazw wywołań systemowych:

 

 

Powyższe polecenie tworzy regułę, która odkłada do logów nieudane próby tworzenia plików i katalogów. Podobna reguła, lecz zawierająca listę innych wywołań systemowych będzie raportować nieudane próby zmiany uprawnień:

 

 

Listę wywołań systemowych wraz z ich opisami można uzyskać poprzez polecenie man syscalls. Kompletna lista opcji obsługiwanych przez polecenie auditctl znajduje się w manualu.
 

[...]

 

Specjalista ds. utrzymania infrastruktury i operacji. Zajmuje się problematyką budowy i utrzymania centrów przetwarzania danych oraz zarządzania nimi i koordynowaniem zmian dotyczących krytycznej infrastruktury IT. 

Artykuł pochodzi z miesięcznika: IT Professional

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"