Integracja logów audytu Sycope z SIEM w celu zwiększenia zgodności i monitorowania

Jedną z najlepszych praktyk w zakresie bezpieczeństwa jest przechowywanie i analizowanie tych informacji w centralnym miejscu, takim jak SIEM.

Author: Marcin Kaźmierczak
Obecnie logi audytu są niezbędne do spełnienia wymagań dotyczących bezpieczeństwa i zgodności w niemal każdej organizacji, a jedną z najlepszych praktyk w zakresie bezpieczeństwa jest przechowywanie i analizowanie tych informacji w centralnym miejscu, takim jak SIEM.

Eksportowanie logów audytu do SIEM za pomocą NQL i API

Wszystkie informacje w Sycope dotyczące zarówno zebranych danych z NetFlow, jak i alertów modułu Security, powiadomień systemowych oraz logów audytu są przechowywane w zastrzeżonej bazie danych Sycope, podzielonej na osobne kolekcje zwane strumieniami danych (data streams). Dane w ramach strumienia danych mogą być dostępne za pomocą zastrzeżonego języka zapytań – NQL. Korzystając z API, na przykład za pomocą Postman lub zewnętrznego skryptu wykorzystującego Pythona, możemy użyć NQL do żądania danych ze strumienia danych o nazwie „audit log”, który przechowuje informacje o działaniach systemowych i użytkownika i wysłać je na adres IP SIEM jako plik json.

Aby przygotować taką integrację, należy wykonać 3 stosunkowo proste kroki:

  1. Utworzenie użytkownika do wykonywania zapytań NQL,

  2. Przygotowanie funkcji, która uwierzytelni użytkownika,

  3. Przygotowanie funkcji, która wykona zapytanie NQL dla strumienia danych audit log, wzbogaci i wyśle wyeksportowane logi audytu do SIEM.

Utworzenie użytkownika do wykonywania zapytań NQL

Jako pierwszy krok, zgodnie z najlepszymi praktykami bezpieczeństwa, zdecydowanie zaleca się utworzenie użytkownika dedykowanego wyłącznie do tego rodzaju integracji. Powinniśmy utworzyć użytkownika lokalnego oraz rolę, która określi jego dostęp do zasobów systemowych. Dzięki funkcji RBAC w Sycope możemy utworzyć rolę, która nie będzie miała dostępu do elementów interfejsu Web UI oraz z dodatkowymi ograniczeniami dla wszystkich strumieni danych oprócz niezbędnego logu audytu. W tym przykładzie użytkownik lokalny utworzony na potrzeby integracji nazywa się auditor, a rola, której używa, to Auditor.

Do uwierzytelniania użytkownika oraz wykonywania zapytania NQL używamy dwóch endpointów API:

Pierwszy: https://<sycope_ip>/login for authentication\ for auth and cookie generation,

Drugi: https://<sycope_ip>/pipeline/run for query execution.

Korzystając z endpointu login, uzyskujemy cookie sesji używane do uwierzytelnienia kolejnych żądań do endpointu pipeline/run. Dane logowania (nazwa użytkownika i hasło) muszą być podane w treści żądania HTTP POST. Zwrócone cookie musi zostać zapisane i użyte w nagłówku każdego kolejnego żądania. Poniżej znajduje się przykład funkcji stworzonej w Pythonie, która wykonuje żądanie logowania.

Przygotowanie funkcji, która uwierzytelni użytkownika

Następnie powinniśmy przygotować treść żądania HTTP, które będzie zawierało zapytanie NQL do wykonania, w celu pobrania wpisów logów audytu. Przykład takiej treści znajduje się poniżej.

Czas rozpoczęcia i zakończenia musi być zmiennymi, których wartości w formacie epoch będą obliczane jako poprzednia minuta przy każdym wykonaniu skryptu integracyjnego. Zapewni to, że uzyskujemy dostęp do najnowszych komunikatów i nie powielimy wpisów, które już zostały wyeksportowane do SIEM.

Poniżej znajduje się propozycja funkcji opartej na bibliotece requests w Pythonie, która wykona nasze żądanie z dołączonym zapytaniem NQL.

 

Przygotowanie funkcji, która wykona zapytanie NQL dla strumienia danych audit log, wzbogaci i wyśle wyeksportowane logi audytu do SIEM

Ostatnim krokiem jest przetworzenie pobranych logów, wzbogacenie ich o dodatkowe informacje, które mogą być wymagane przez administratorów SIEM, oraz wysłanie ich na docelowy adres SIEM.

Najbardziej odpowiednim sposobem uruchamiania tego typu integracji jest użycie Crontab lub Harmonogramu zadań, z ustawieniem wykonywania skryptu co minutę. Powinno to zapewnić, że skrypt będzie eksportował komunikaty logów z poprzedniej minuty i nie powieli komunikatów w systemie docelowym.

 

Podsumowanie

Podsumowując, znaczenie logów audytu w dzisiejszym krajobrazie bezpieczeństwa organizacyjnego nie może być przecenione. Jako podstawowy element praktyk w zakresie bezpieczeństwa i zgodności, przechowywanie i analiza tych krytycznych informacji w scentralizowanym miejscu, takim jak system SIEM (Security Information and Event Management), stało się najlepszą praktyką.

W Sycope wszystkie istotne informacje, w tym dane z NetFlow, alerty modułu Security, powiadomienia systemowe oraz logi audytu, są dokładnie przechowywane w zastrzeżonej bazie danych Sycope. Dane te są zorganizowane w odrębne kolekcje znane jako strumienie danych (data streams), dostępne za pomocą zastrzeżonego języka zapytań – NQL. Wykorzystanie NQL za pośrednictwem API, narzędzi takich jak Postman lub zewnętrznych skryptów, takich jak Python, umożliwia ekstrakcję i przesyłanie danych z logów audytu na wskazany adres IP systemu SIEM w formacie JSON.

This week top knowledge
Ta witryna jest zarejestrowana pod adresem wpml.org jako witryna rozwojowa. Przełącz się na klucz witryny produkcyjnej na remove this banner.