
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:
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:
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:
- tabela do obliczania łącznej liczby logów według blade’ów
- tabela według krytycznych sygnatur IPS
- wykres kołowy dotyczący zdarzeń Zapobiegania Zagrożeniom
- wykres najbardziej popularnych odwiedzanych stron
- 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:
Bardziej szczegółowe ustawienia figury, obrazek jest klikalny:
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:
- split rows — dodawanie kolumn i następnie dzielenie tabeli na wiersze
- 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:
I dokładniejsze ustawienia, obrazek jest klikany:
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:
Bardziej szczegółowe ustawienia, obrazek jest klikany:
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:
Ustawienia:
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:
Ustawienia, klikalnie:
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:
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 (, , , ), .
Źródło: habr.com
