3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

W poprzednich artykułach zapoznaliśmy się nieco z zestawem ELK oraz konfiguracją pliku konfiguracyjnego Logstash dla parsera logów, w tym artykule przejdziemy do najważniejszego z punktu widzenia analityki, czyli tego, co chcecie zobaczyć z systemu i dla czego całe to zostało stworzone — to wykresy i tabele połączone w dashbordy. Dziś bliżej zapoznamy się z systemem wizualizacji Kibana, omówimy, jak tworzyć wykresy, tabele, a na koniec stworzymy prosty dashbord na podstawie logów z zapory ogniowej Check Point.

Pierwszym krokiem w pracy z Kibana — jest stworzenie wzoru indeksu, który logicznie jest podstawą indeksów zgodnych z określonym zasadą. Oczywiście jest to wyłącznie ustawienie, aby Kibana mogła wygodniej wyszukiwać informacje we wszystkich indeksach jednocześnie. Ustalamy go na podstawie dopasowania ciągu, np. „checkpoint-*” i nazwy indeksu. Na przykład „checkpoint-2019.12.05” będzie pasować do wzoru, a po prostu „checkpoint” już nie. Osobno należy wspomnieć, że w wyszukiwaniu nie można jednocześnie szukać informacji według różnych wzorów indeksów, trochę później w kolejnych artykułach zobaczymy, że zapytania API wykonuje się albo według nazwy indeksu, albo właśnie według jednego wzoru, obrazek jest klikalny:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Po tym sprawdzamy w menu Discover, czy wszystkie logi są indeksowane, a parser jest skonfigurowany poprawnie. Jeśli pojawią się jakiekolwiek niezgodności, na przykład konieczność zmiany typu danych z ciągu na liczbę całkowitą, należy edytować plik konfiguracyjny Logstash, w wyniku czego nowe logi będą zapisywane poprawnie. Aby stare logi po zmianie przyjęły oczekiwany format, pomocny jest tylko proces reindeksacji, w kolejnych artykułach ta operacja będzie omówiona bardziej szczegółowo. Upewnimy się, że wszystko jest w porządku, obrazek jest klikalny:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Logi są na swoim miejscu, więc możemy przystąpić do budowy dashbordów. Na podstawie analityki dashbordów z produktów bezpieczeństwa można zrozumieć stan bezpieczeństwa informacji w organizacji, wizualnie zobaczyć słabe punkty w bieżącej polityce i w przyszłości opracować sposoby ich eliminacji. Stworzymy mały dashbord, wykorzystując kilka narzędzi wizualizacji. Dashbord będzie składał się z 5 komponentów:

  1. tabela do obliczania łącznej liczby logów według blade’ów
  2. tabela według krytycznych sygnatur IPS
  3. wykres kołowy dotyczący zdarzeń Zapobiegania Zagrożeniom
  4. wykres najbardziej popularnych odwiedzanych stron
  5. wykres użycia najbardziej niebezpiecznych aplikacji

Aby stworzyć wizualizacje figur, należy przejść do menu Wizualizuj, i wybrać odpowiednią figurę, którą chcemy zbudować! Przejdźmy krok po kroku.

Tabela do obliczania łącznej liczby logów według blade'ów

W tym celu wybierzemy figurę Tabela danych, przechodzimy do narzędzia do tworzenia wykresów, po lewej stronie ustawienia figury, po prawej to, jak będzie wyglądać w obecnych ustawieniach. Najpierw pokażę, jak będzie wyglądać gotowa tabela, a następnie przejdziemy przez ustawienia, obrazek jest klikalny:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Bardziej szczegółowe ustawienia figury, obrazek jest klikalny:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Zajmijmy się ustawieniami.

Początkowo ustalamy metrykę, to wartość, według której będą agregowane wszystkie pola. Metryki są obliczane na podstawie wartości wydobytych różnymi sposobami z dokumentów. Wartości zazwyczaj wydobywane są z pól dokumentu, ale również mogą być generowane za pomocą skryptów. W tym przypadku ustawiamy w Agregacja: Liczba (łączna liczba logów).

Następnie dzielimy tabelę na segmenty (pola), według których będzie liczona metryka. Tę funkcję wykonuje ustawienie Buckets, które z kolei składa się z 2 opcji ustawienia:

  1. split rows — dodawanie kolumn i następnie dzielenie tabeli na wiersze
  2. split table — dzielenie na kilka tabel według wartości określonego pola.

W buckets można dodać kilka podziałów, aby stworzyć kilka kolumn lub tabel, ograniczenia są raczej logiczne. W agregacji można wybrać, w jaki sposób będzie odbywało się dzielenie na segmenty: ipv4 range, date range, Terms itp. Najciekawszym wyborem jest właśnie Terms i Significant Terms, podział na segmenty odbywa się według wartości określonego pola indeksu, różnica między nimi polega na liczbie zwracanych wartości i ich wyświetleniu. Ponieważ chcemy podzielić tabelę według nazw blade'ów, wybieramy pole — product.keyword i ustalamy rozmiar na 25 zwracanych wartości.

Zamiast wierszy w Elasticsearch używane są 2 typy danych — text i keyword. Jeśli chcesz wykonać pełnotekstowe wyszukiwanie, musisz użyć typu text, co jest bardzo wygodne przy pisaniu własnej usługi wyszukiwania, na przykład, szukasz wzmianki o słowie w konkretnym znaczeniu pola (tekście). Jeśli chcesz tylko dokładne dopasowanie, musisz użyć typu keyword. Typ danych keyword powinien być również używany dla pól, które wymagają sortowania lub agregacji, czyli w naszym przypadku.

W rezultacie Elasticsearch liczy liczbę logów w określonym czasie z agregacją według wartości w polu product. W Custom Label określamy nazwę kolumny, która będzie wyświetlana w tabeli, ustawiamy czas, za który zbieramy logi, uruchamiamy wizualizację — Kibana wysyła zapytanie do Elasticsearch, czeka na odpowiedź i następnie wizualizuje otrzymane dane. Tabela gotowa!

Wykres kołowy dotyczący zdarzeń Threat Prevention

Określone zainteresowanie budzi informacja, jaki procent reakcji w ogóle występuje detect i prevent na incydenty bezpieczeństwa w aktualnej polityce bezpieczeństwa. W takim przypadku bardzo dobrze nadaje się wykres kołowy. Wybieramy w Visualize — Pie chart. Także w metryce określamy agregację według liczby logów. W buckets ustawiamy Terms => action.

Wydaje się, że wszystko jest poprawnie, ale w rezultacie pokazują się wartości dla wszystkich blade'ów, trzeba przefiltrować tylko te blade'y, które działają w ramach Threat Prevention. Dlatego koniecznie konfigurujemy filtrowanie w celu wyszukiwania informacji tylko o blade'ach odpowiedzialnych za incydenty bezpieczeństwa — product: („Anti-Bot” OR „New Anti-Virus” OR „DDoS Protector” OR „SmartDefense” OR „Threat Emulation”). Obrazek jest klikany:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

I dokładniejsze ustawienia, obrazek jest klikany:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Tabela zdarzeń IPS

Następnie bardzo ważne z punktu widzenia bezpieczeństwa jest przeglądanie i weryfikacja zdarzeń według blade'a IPS i Emulacja zagrożeń, które nie są blokowane aktualną polityką, aby w przyszłości albo przekształcić sygnaturę w prevent, albo jeśli ruch jest ważny — nie weryfikować sygnatury. Tabelę tworzymy w taki sam sposób jak w pierwszym przykładzie, z tą różnicą, że tworzymy kilka kolumn: protections.keyword, severity.keyword, product.keyword, originsicname.keyword. Koniecznie konfigurujemy filtr w celu wyszukiwania informacji tylko o blade'ach odpowiedzialnych za incydenty bezpieczeństwa — product: ( „SmartDefense” OR „Threat Emulation”). Obrazek jest klikany:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Bardziej szczegółowe ustawienia, obrazek jest klikany:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Wykresy dotyczące najpopularniejszych odwiedzanych stron

Aby to zrobić, tworzymy figurę — Vertical Bar. Metrykę również używamy count (oś Y), a na osi X jako wartości będziemy używać nazw odwiedzonych stron — “appi_name”. Tutaj jest mały trik, jeśli uruchomimy ustawienia w bieżącej wersji, wszystkie strony będą zaznaczane na wykresie jednym kolorem, aby zrobić je wielokolorowymi, używamy dodatkowego ustawienia — “split series”, które pozwala podzielić już gotową kolumnę na jeszcze kilka wartości, w zależności od wybranego pola, oczywiście! To dzielenie można używać jako jedną wielokolorową kolumnę w trybie stacked lub w trybie normalnym, aby stworzyć kilka kolumn dla określonej wartości z osi X. W tym przypadku używamy tej samej wartości, co na osi X, co pozwala uczynić wszystkie kolumny wielokolorowymi, a po prawej stronie u góry będą one oznaczane kolorami. W filtrze ustawiamy — product:«URL Filtering», aby zobaczyć informacje tylko o odwiedzonych stronach, obrazek klikalny:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Ustawienia:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Wykres dotyczący wykorzystania najbardziej niebezpiecznych aplikacji

Aby to zrobić, tworzymy figurę — Vertical Bar. Metrykę również używamy count (oś Y), a na osi X jako wartości będziemy używać nazw używanych aplikacji — “appi_name”. Najważniejsze jest ustawienie filtra — product: «Application Control» AND app_risk: (4 OR 5 OR 3) AND action: «accept». Filtrujemy logi po blędzie Application control, bierzemy tylko te strony, które są skategoryzowane jako strony z ryzykiem Krytycznym, Wysokim, Średnim i tylko w przypadku, gdy dostęp do tych stron jest dozwolony. Obrazek klikalny:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Ustawienia, klikalnie:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Panel kontrolny

Przeglądanie i tworzenie paneli kontrolnych znajduje się w oddzielnym punkcie menu — Dashboard. Tutaj wszystko jest proste, tworzy się nowy panel kontrolny, dodaje się wizualizacje, układa wszystko na miejscach i tyle!

Tworzymy panel kontrolny, na podstawie którego będzie można zrozumieć podstawową sytuację stanu bezpieczeństwa informacji w organizacji, oczywiście tylko na poziomie Check Point, obrazek klikalny:

3. Elastic stack: analiza logów bezpieczeństwa. Dashbordy

Na podstawie tych wykresów możemy zrozumieć, które krytyczne sygnatury nie są blokowane na zaporze, dokąd chodzą użytkownicy, jakie najbardziej niebezpieczne aplikacje wykorzystują.

Podsumowanie

Zbadaliśmy możliwości podstawowej wizualizacji w Kibana i stworzyliśmy pulpit nawigacyjny, ale to tylko mały ułamek. W dalszej części kursu osobno omówimy konfigurację map, pracę z systemem Elasticsearch, zapoznamy się z zapytaniami API, automatyzacją i wieloma innymi zagadnieniami!

Więc śledźcie aktualizacje (Telegram, Facebook, VK, Blog TS Solution), Yandex.Zen.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster