1. Elastic stack: analiza logów bezpieczeństwa. Wprowadzenie

1. Elastic stack: analiza logów bezpieczeństwa. Wprowadzenie

W związku z zakończeniem sprzedaży w Rosji systemu logowania i analityki Splunk, pojawiło się pytanie, czym można to rozwiązanie zastąpić? Poświęcając czas na zapoznanie się z różnymi rozwiązaniami, zatrzymałem się na rozwiązaniu dla prawdziwego mężczyzny — „stak ELK”. Ten system wymaga czasu na konfigurację, ale w rezultacie można uzyskać bardzo potężny system analizy stanu i reakcji na incydenty bezpieczeństwa informacji w organizacji. W tym cyklu artykułów przyjrzymy się podstawowym (lub może nie) możliwościom staku ELK, zapoznamy się z tym, jak można parsować logi, jak tworzyć wykresy i pulpity nawigacyjne oraz jakie interesujące funkcje można zrealizować na przykładzie logów z zapory sieciowej Check Point lub skanera bezpieczeństwa OpenVas. Na początek, przyjrzyjmy się, czym jest stak ELK i z jakich komponentów się składa.

„stak ELK” — to skrót od trzech projektów z otwartym kodem źródłowym: Elasticsearch, Logstash i Kibana. Opracowywane przez firmę Elastic wraz ze wszystkimi powiązanymi projektami. Elasticsearch — to rdzeń całego systemu, który łączy w sobie funkcje bazy danych, systemu wyszukiwania i analizy. Logstash — to pipeline do przetwarzania danych po stronie serwera, który otrzymuje dane z kilku źródeł jednocześnie, parsuje log, a następnie przesyła do bazy danych Elasticsearch. Kibana umożliwia użytkownikom wizualizację danych za pomocą wykresów i diagramów w Elasticsearch. Ponadto przez Kibana można zarządzać bazą danych. Następnie bardziej szczegółowo przyjrzymy się każdemu z tych systemów osobno.

1. Elastic stack: analiza logów bezpieczeństwa. Wprowadzenie

Logstash

Logstash – to narzędzie do przetwarzania logów wydarzeń z różnych źródeł, umożliwiające wyróżnienie pól i ich wartości w wiadomości, a także pozwalające na konfigurację filtracji i edytowania danych. Po wszystkich manipulacjach Logstash przekierowuje zdarzenia do docelowego magazynu danych. Narzędzie konfiguruje się tylko za pomocą plików konfiguracyjnych.
Typowa konfiguracja Logstash składa się z pliku (lub plików) zawierającego kilka strumieni wejściowych informacji (input), kilka filtrów dla tych informacji (filter) oraz kilka strumieni wyjściowych (output). Wygląda to jak jeden lub kilka plików konfiguracyjnych, które w najprostszym wariancie (który w ogóle nic nie robi) wyglądają tak:

input {
}

filter {
}

output {
}

W INPUT konfigurujemy, na który port będą przychodzić logi i jakiego protokołu używać, lub z jakiego folderu odczytywać nowe lub stale dopisywane pliki. W FILTER konfigurujemy parser logów: analizę pól, edytowanie wartości, dodawanie nowych parametrów lub usuwanie. FILTER to pole do zarządzania wiadomościami, które przychodzą do Logstash z wieloma opcjami edycji. W OUTPUT konfigurujemy, dokąd wysyłamy już przeanalizowany log; jeśli jest to Elasticsearch, wysyłane jest zapytanie JSON, w którym przesyłane są pola z wartościami, lub w ramach debugu można je wyświetlać w stdout lub zapisywać w pliku.

1. Elastic stack: analiza logów bezpieczeństwa. Wprowadzenie

ElasticSearch

Początkowo, Elasticsearch to rozwiązanie do wyszukiwania pełnotekstowego z dodatkowymi funkcjonalnościami, takimi jak łatwa skalowalność, replikacja i inne, co uczyniło produkt bardzo wygodnym i dobrym rozwiązaniem dla intensywnie obciążonych projektów z dużymi ilościami danych. Elasticsearch jest nierelacyjnym magazynem (NoSQL) dokumentów w formacie JSON i systemem wyszukiwania opartym na pełnotekstowym wyszukiwaniu Lucene. Platforma sprzętowa to Java Virtual Machine, dlatego system wymaga dużej ilości zasobów CPU i pamięci RAM do działania.
Każda przychodząca wiadomość, zarówno z Logstash, jak i za pomocą zapytania API, jest indeksowana jako „dokument” – odpowiednik tabeli w relacyjnych SQL. Wszystkie dokumenty są przechowywane w indeksie – odpowiednik bazy danych w SQL.

Przykład dokumentu w bazie:

{
  "_index": "checkpoint-2019.10.10",
  "_type": "_doc",
  "_id": "yvNZcWwBygXz5W1aycBy",
  "_version": 1,
  "_score": null,
  "_source": {
	"layer_uuid": [
      "dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0",
      "dbee3718-cf2f-4de0-8681-529cb75be9a6"
	],
	"outzone": "External",
	"layer_name": [
  	"TSS-Standard Security",
  	"TSS-Standard Application"
	],
	"time": "1565269565",
	"dst": "103.5.198.210",
	"parent_rule": "0",
	"host": "10.10.10.250",
	"ifname": "eth6",
    ]
}

Cała praca z bazą danych opiera się na zapytaniach JSON za pomocą REST API, które albo wydają dokumenty według indeksu, albo jakieś statystyki w formacie: pytanie — odpowiedź. Aby wizualizować wszystkie odpowiedzi na zapytania, stworzono Kibana, która jest serwisem webowym.

Kibana

Kibana umożliwia wyszukiwanie danych i zapytania dotyczące statystyk z bazy danych Elasticsearch, na podstawie odpowiedzi budowane są liczne piękne wykresy i pulpity nawigacyjne. System posiada również funkcjonalność administracyjną dla bazy danych Elasticsearch, w kolejnych artykułach przyjrzymy się temu serwisowi bardziej szczegółowo. A teraz pokażemy przykład pulpitów nawigacyjnych dla zapory sieciowej Check Point i skanera luk OpenVAS, które można zbudować.

Przykład pulpitu nawigacyjnego dla Check Point, obrazek klikalny:

1. Elastic stack: analiza logów bezpieczeństwa. Wprowadzenie

Przykład pulpitu nawigacyjnego dla OpenVAS, obrazek klikalny:

1. Elastic stack: analiza logów bezpieczeństwa. Wprowadzenie

Podsumowanie

Przyjrzeliśmy się, z czego składa się stack ELK, zapoznaliśmy się nieco z podstawowymi produktami, w dalszej części kursu osobno omówimy pisanie pliku konfiguracyjnego Logstash, konfigurację pulpitów za pomocą Kibana, zapytania API, automatyzację i wiele więcej!

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