O tym, jak ważne dla bezpieczeństwa oraz administracji IT jest posiadanie centralnego systemu zbierającego logi, czyli tak zwanego kolektora logów, nie trzeba nikogo przekonywać. Zwykle do tego celu wykorzystuje się centralny serwer Syslog. Na rynku są jednak dostępne znacznie lepsze rozwiązania. W SNP (aktualnie All for One Poland), administrując systemami własnymi oraz naszych klientów, wykorzystujemy Graylog.
 

Graylog to scentralizowane rozwiązanie do zarządzania logami, zbudowane według otwartych standardów opensource. Rozwijane od 2009 r. narzędzie jest wykorzystywane do przechwytywania, przechowywania i analizy logów w czasie rzeczywistym. Służy do gromadzenia i analizy logów z różnych źródeł: systemów operacyjnych, serwerów aplikacji, firewalli sprzętowych i programowych. Może być stosowane do monitorowania stron internetowych, aplikacji webowych i wielu innych obszarów infrastruktury informatycznej.

Tym, co odróżnia Graylog od centralnego serwera Syslog, jest wykorzystanie bazy danych Elasticsearch do przechowywania oraz indeksowania dokumentów. Baza ta umożliwia przeszukiwanie milionów rekordów z logami w czasie poniżej sekundy. To imponujący wynik w porównaniu ze zwykłym przeszukiwaniem logów poprzez linuxowy grep czy wykorzystanie ctrl+F w notepadzie.

Identyfikacja logów

W czasie odbierania wiadomości Graylog dokonuje jej rozdzielenia na mniejsze pola. Poniżej przedstawiamy przykładowy podział logów z serwera Nginx.

Przykładowy podział logów z serwera Nginx

Dzięki podziałowi łatwo można wyszukać wszystkie logi wygenerowane przez pojedynczy adres IP, zakończone kodem 200, bez pisania zaawansowanych wyrażeń regularnych.

Graylog jest zintegrowany z takimi usługami jak:

  • AlienVault Open Threat Exchange (OTX),
  • Spamhaus DROP/EDROP lists,
  • ch Ransomware Tracker blocklists.

Integracja pozwala każdy adres IP i każdą domenę oceniać pod względem ich reputacji i dodać odpowiednią informację w logu, jeśli reputacja danego adresu IP/domeny jest niska. W ten sposób uzyskamy informację o ruchu przychodzącym z mało wiarygodnych adresów.

Możemy także zintegrować Grayloga z bazą GeoIP2 i dopisywać koordynaty geograficzne do każdego adresu IP, jaki pojawi się nam w logach, a także wyciągać dane z bazy WHOIS i dopisywać te informacje do każdego adresu IP. Taka identyfikacja może być przydatna nie tylko w administracji i monitoringu infrastruktury IT. W wielu firmach takie dane o logowaniu są na wagę złota dla działów marketingu, sprzedaży i bezpieczeństwa.

Jednakże samo przechowywanie logów w centralnym repozytorium, bez ich praktycznego wykorzystywania na co dzień, nie ma dla przedsiębiorstwa żadnej wartości. Dobre narzędzie do analizy logów musi udostępniać mechanizmy pozwalające na łatwy dostęp do statystyk i trendów, a także alarmujące o pojawiających się nieprawidłowościach.

Przydatne dashboardy

Pierwszą czynnością administratora, który chce w pełni korzystać z danych z logów, powinno być przygotowanie w Graylogu ekranu kontrolnego (dashboardu), który pozwoli na przejrzystą prezentację informacji oraz zaawansowanych statystyk. Dobrze przygotowana wizualizacja danych zgromadzonych w logach pozwali nam szybko i łatwo ocenić, co się dzieje z naszymi systemami.

Przykładowy ekran kontrolny logów w Graylog

Dobrze zbudowany, spersonalizowany pod konkretne potrzeby dashboard w znacznym stopniu upraszcza codzienną pracę. Prezentacja na ekranie tylko najważniejszych danych w postaci czytelnych wykresów, diagramów czy alertów na pierwszy rzut oka pozwalają rozeznać się w sytuacji. Na przykład dedykowany ekran dla zespołu HelpDesk może zawierać istotne z jego punktu widzenia dane:

  • kto w ostatnim czasie niepomyślnie się logował,
  • kto ostatnio zablokował swoje konto w domenie,
  • jaka grupa ostatnio zmieniła swoich członków.

Wydobycie powyższych informacji bezpośrednio z logów w sposób manualny byłoby zadaniem karkołomnym i czasochłonnym, gdyż wymagałoby przeszukiwania milionów logów, by znaleźć jeden istotny rekord.

Warto też podkreślić, że wysyłając logi do Graylog, tworzymy ich kopię w dodatkowym i niezależnym miejscu. Nie musimy się już obawiać, że ktoś je nam skasuje z systemu źródłowego lub utracimy je wskutek awarii.

Jak już zostało to wspomniane na wstępie, za przechowanie danych dla Grayloga odpowiada popularne i znane rozwiązanie o nazwie Elasticsearch. Ta wyspecjalizowana baza danych dostarcza bardzo wiele możliwości dostępu do danych w różnych konfiguracjach poprzez zintegrowane z nią aplikacje (integracja poprzez API). Jedną z bardziej użytecznych jest Grafana. To kolejne opensourcowe narzędzie jest szeroko wykorzystywane przez tysiące firm jako pomoc w monitorowaniu infrastruktury IT i aplikacji (ale nie tylko, jest też pomocne np.  w zarządzaniu infrastrukturą przemysłową, turystyce, marketingu i wielu innych branżach).  Grafana pozwala wyszukiwać, wizualizować i ostrzegać, a także dogłębnie eksplorować i rozumieć dane, bez względu na to, gdzie są przechowywane.

Klastry, formaty danych, uprawnienia

Wróćmy jednak do Elasticsearch i Grayloga. Jedną z dużych zalet tych rozwiązań jest możliwość prostego klastrowania. Dzięki temu można równomierne rozkładać obciążenie i uzyskać wysoką dostępność aplikacji oraz najważniejszych logów poprzez składowanie ich na kilku węzłach Elasticsearch. Wielkość zbioru danych przechowanych przez Elasticsearch w pełni zależy od nas, gdyż mamy pełną kontrolę nad ich retencją. Do dyspozycji są trzy kryteria usuwania danych: wielkościowe, ilościowe i czasowe. Możliwe zatem jest usuwanie zgromadzonych danych, do wyboru: po wielkości zbioru (usuwa najstarsze po przekroczeniu zadanej wielkości), liczbie rekordów lub wieku (starsze niż).

Graylog posiada bardzo rozbudowane oraz dobrze opisane API. Efektem jego wykorzystania może być np. informacja o liczbie błędów aplikacji, które pojawiły się w ciągu ostatnich 5 minut, zamieszczona w centralnym systemie monitującym (np. Zabbix). Dzięki temu monitoring systemów obsługiwany jest w jednym systemie.

W narzędziu dostępny jest również rozbudowany system powiadamiana (alertowania).  Alerty można wysyłać w formie powiadomienia mailowego, wiadomości na Teams/Slack lub wysyłać je do systemu agregującego alerty, jakim jest Alerta. Zdarzenia można agregować z różnych źródeł, jak choćby z Active Directory i firewall, w celu np. wykrycia próby skanowania portów w sieci lokalnej lub próby nieudanego logowania na nasze systemy.

Graylog obsługuje sporo formatów odbieranych danych:

  • Syslog (TCP, UDP, AMQP, Kafka),
  • GELF (TCP, UDP, AMQP, Kafka, HTTP),
  • AWS – AWS Logs, FlowLogs, CloudTrail,
  • Beats/Logstash,
  • CEF (TCP, UDP, AMQP, Kafka),
  • JSON Path from HTTP API,
  • Netflow (UDP),
  • Plain/Raw Text (TCP, UDP, AMQP, Kafka).

Jeżeli chodzi o metody przesyłania danych z systemów źródłowych do Graylog, to dostępne są:

  • wysyłanie logów poprzez Syslog,
  • wysyłanie logów w formacie GELF poprzez http API,
  • wykorzystanie rozwiązań zbierających logi i transportujących bezpośrednio do Graylog:
    • NXLog,
    • Filebeat,
    • Audibeat,
    • Winlogbeat.

Powyższe metody umożliwiają czytanie plików płaskich, przekazywanie logów z Windows Event Log lub integrację własnych aplikacji z Graylog, aby wysyłały logi bezpośrednio do niego.

Jeśli Graylog ma pełnić rolę centralnego systemem do gromadzenia i zarządzania logami, ważnym aspektem jego działania jest system nadawania uprawnień. Także i w tym zakresie rozwiązanie posiada bardzo rozbudowane możliwości. Można go zintegrować z AD/LDAP, tworzyć odpowiednie role i nadawać szczegółowe uprawnienia. Role możemy połączyć z grupami użytkowników w AD/LDAP, tak by w jednym miejscu zarządzać nadawaniem uprawnień. Same uprawnienia możemy ograniczać do pojedynczego widoku logów (np. tylko logi z danej grupy systemów albo tylko logi związane z naszym AD), widoku dashboardów czy też ich edycji.

Graylog Marketplace

Wokół Graylog utworzyła się rozbudowana społeczność programistów i użytkowników. Wiele osób publikuje opracowane przez siebie rozwiązania na oficjalnym Graylog Marketplace (marketplace.graylog.org), gdzie można znaleźć i pobrać:

  • gotowe dashboardy,
  • gotowe filtry danych i ekstraktory (dzielenie wiadomości na pola),
  • rozszerzenia funkcjonalności (np. integracje ze Slackiem/Teams).

Niezależnie od wielkości organizacji, wdrożonych systemów, czy też liczby wykorzystywanych aplikacji, możemy w Graylog gromadzić wszystkie logi. Gromadzić i odpowiednio wizualizowań, a tym samym pomóc administratorom w codziennej pracy, a menedżerom dać więcej przystępnie zaprezentowanej wiedzy o tym, co aktualnie dzieje się w ich środowisku. Należy jednak pamiętać, że mimo iż Graylog posiada funkcjonalności Threat Inteligence, nie jest to w pełni zautomatyzowany system SIEM (Security Information and Event Management).

Szerokie możliwości integracji z innymi rozwiązaniami, a także duża elastyczność to największe zalety Graylog. Jako narzędzie do przechowywania i agregowania logów sprawdza się doskonale.