Badanie lokalnych danych NDR w Investigation Console
NDR Investigation Console udostępnia lokalne dane z przypisanych sensorów NDR — nie tylko dane przesyłane do Sophos Data Lake. Ten podręcznik prowadzi od hipotezy przez Dashboard > Overview do zawężonego zapytania ClickHouse w sekcji Query. Wszystkie opisane zapytania służą wyłącznie do odczytu.
Investigation Console nie można używać zamiennie z następującymi sposobami wykonywania zapytań:
| Sposób wykonywania zapytań | Dane i przeznaczenie | Poza zakresem tego podręcznika |
|---|---|---|
| Investigation Console | lokalne dane z przypisanych sensorów NDR; pulpit nawigacyjny i zapytania ClickHouse; maksymalnie z ostatnich 30 dni | instalacja, przypisywanie urządzeń, zarządzanie użytkownikami i obsługa konsoli |
| Sophos Data Lake | telemetria przesłana do Sophos Fusion na potrzeby centralnych dochodzeń XDR/MDR | Live Discover, SQL dla Data Lake, Detections i Cases |
| NDR Query w Appliance Manager | osobny sposób wykonywania zapytań na Integration Appliance | diagnostyka urządzenia i składnia NDR Query |
Wynik z Investigation Console nie oznacza jeszcze potwierdzonego incydentu. Podejrzane ustalenia należy przekazać zgodnie z obowiązującym procesem SOC, XDR lub MDR. Działania zaradcze nie należą do zakresu tego podręcznika.
Dostęp, role i zakres dochodzenia
Użyj osobistego konta z uprawnieniami niezbędnymi do realizacji zadania. Lokalne konto Investigation Console jest niezależne od ról w Sophos Fusion. Jeśli brakuje sekcji Query, wymaganego schematu lub przycisku, poproś właściwego administratora o sprawdzenie lokalnego konta i wybranej konsoli. Jeśli nie ma już punktu wejścia z Sophos Fusion albo późniejszej możliwości przejścia do danych w chmurze, oddzielnie sprawdź licencję, rolę Fusion, a w przypadku Custom Roles — zakres produktu. Nie rozszerzaj roli na wszelki wypadek.
Przed rozpoczęciem dochodzenia należy ustalić następujące kwestie:
- konkretną hipotezę, na przykład komunikację z zatwierdzonym docelowym adresem IP przy użyciu nieoczekiwanych protokołów;
- sensor lub segment sieci, którego dotyczy dochodzenie, oraz oczekiwane systemy źródłowe lub docelowe;
- początek i koniec zdarzenia oraz strefę czasową;
- zgłoszenie lub sprawę, w której będą zapisywane notatki, oraz osobę odpowiedzialną za przejęcie podejrzanego ustalenia;
- dozwolony sposób postępowania z adresami IP, nazwami hostów i wyeksportowanymi wynikami.
Konsola musi być dostępna i otrzymywać dane z co najmniej jednego urządzenia NDR Integration Appliance. Samo zalogowanie nie potwierdza ani aktualności danych z sensorów, ani kompletnego pokrycia ruchu lustrzanego.
1. Zawężanie przedziału czasu i sensorów na pulpicie nawigacyjnym
Po zalogowaniu konsola otwiera stronę Dashboard > Overview. Są na niej widoczne sekcje Total Indicators, Network Traffic, Total Indicators By Severity, Total Indicators By Type, Geolocation Map i Recent flow detections. Przycisk Back prowadzi z powrotem do Sophos Fusion. Sekcja This Appliance zawiera informacje o systemie i nie jest potrzebna w tym dochodzeniu.
- W sekcji Filters najpierw otwórz Time Range. Domyślne ustawienie to Last 1 hour.
- W przypadku znanego incydentu wybierz Absolute time range i wprowadź początek oraz koniec z dostatecznym marginesem czasowym przed zdarzeniem i po nim. Do wstępnego przeglądu może wystarczyć quick range, na przykład Last 7 days. Potwierdź przyciskiem Apply time range.
- Uwzględnij ograniczenie przechowywania danych: konsola udostępnia tylko dane z ostatnich 30 dni. Dłuższy przedział nie zwróci dodatkowych danych lokalnych. Brak starszego trafienia nie stanowi więc potwierdzenia braku aktywności.
- W sekcji Filters wybierz dostępną kolumnę bazy danych, właściwy operator i wartość. Sophos podaje na przykład MasterProtocol, Equals i
HTTP. W przypadku kolumn liczbowych dostępne są operatory takie jak=,<lub>=. - Dodawaj tylko kryteria związane z hipotezą. Po skonfigurowaniu każdego kryterium najpierw kliknij Add, aby dodać je do filtra, a następnie Apply. Sprawdź, czy wykresy i tabela odzwierciedlają teraz wybrany przedział czasu oraz filtry.
- Używaj opcji Save As tylko w przypadku stabilnego filtra o zrozumiałej nazwie. Ikona zapisywania nadpisuje istniejący filtr. Opcja Clear usuwa bieżące ustawienia filtrów.
Zapisz użyte filtry, przedział czasu i strefę czasową. Następnie porównaj co najmniej dwie niezależne prezentacje danych:
- Total Indicators pokazuje wskaźniki IoC typów DGA, IDS, EPA i SRA. Kliknięcie typu pokazuje go na wykresie słupkowym lub go ukrywa. Po umieszczeniu wskaźnika myszy nad słupkiem wyświetlają się czas i wartość.
- Network Traffic pokazuje szybkość transmisji danych w Mbit/s, liczbę pakietów na sekundę i liczbę przepływów na sekundę. Po umieszczeniu wskaźnika myszy nad wykresem widoczna jest ilość wysłanych i odebranych danych w gigabajtach.
- Total Indicators By Severity grupuje wskaźniki według poziomów Critical, High, Medium, Low i Info. Total Indicators By Type przedstawia te same typy IoC na wykresie pierścieniowym.
- Geolocation Map opiera się na grupowaniu adresów IP. Region może stanowić punkt wyjścia do dochodzenia, ale nie potwierdza ani rzeczywistej lokalizacji, ani złośliwego charakteru hosta.
- Recent flow detections pokazuje podejrzane przepływy sieciowe. Sprawdź dostępne szczegóły przepływu oraz potwierdź nazwy i znaczenie pól w aktualnym schemacie, zamiast opierać się wyłącznie na skoku wartości na wykresie.
Jeśli pulpit nawigacyjny i tabela dla tego samego przedziału czasu nie są ze sobą zgodne, zmniejsz przedział i sprawdź aktywne filtry. Dopiero potem uruchom własne zapytanie.
2. Rozpoczynanie od przygotowanego zapytania
Otwórz sekcję Query i na początku pozostań na karcie Library. Na potrzeby tego podręcznika używaj wyłącznie pojedynczych zapytań SELECT służących tylko do odczytu. Dostosowywanie i tworzenie zapytań wymaga znajomości składni ClickHouse SQL. Polecenia zmieniające dane, tabele, schematy, użytkowników, uprawnienia lub ustawienia serwera są wykluczone.
Zacznij od wstępnie skonfigurowanego zapytania pasującego do hipotezy:
- Na karcie Library rozwiń właściwą kategorię i otwórz zapytanie.
- Przeczytaj cały tekst. W odniesieniu do swojej hipotezy sprawdź tabele, pola, warunek czasu, grupowanie, sortowanie oraz ewentualne ograniczenie liczby wyników.
- Przejdź do karty Schema. Rozwiń nazwę schematu i dla każdej używanej tabeli potwierdź nazwy oraz typy pól. Nie przenoś nazw pól z przykładów dotyczących Data Lake ani Appliance Manager.
- Na podstawie aktualnego schematu zawęź zapytanie
SELECTdo wymaganego przedziału czasu oraz, o ile to możliwe, jednego wskaźnika, hosta, źródłowego lub docelowego adresu IP albo protokołu. Zmieniaj wstępnie skonfigurowany warunek czasu tylko wtedy, gdy pole i składnia ClickHouse nie budzą wątpliwości. - Kliknij Run jeden raz. Wyniki pojawią się pod zapytaniem. Wielokrotne klikanie nie przyspieszy wykonania, a utrudni przypisanie wpisu w sekcji History.
- Rozszerz zakres dochodzenia dopiero wtedy, gdy pierwsze wykonanie zakończyło się powodzeniem, a wynik jest wiarygodny i ma rozsądny rozmiar.
Bezpieczne używanie zmiennych i przykładów
Jeżeli przygotowane zapytanie zawiera zmienną, taką jak @DestIp, po lewej stronie pojawi się pole wprowadzania danych. Udokumentowanym przykładem jest Protocols For Destination IP. Użyj tego pola i nie zmieniaj jednocześnie sposobu zastępowania zmiennej, tabeli oraz logiki filtrów.
Do samego sprawdzenia składni lub przebiegu używaj wyłącznie adresu zatwierdzonego do tego celu. 192.0.2.10 pochodzi z puli zarezerwowanej do celów dokumentacyjnych i służy tutaj wyłącznie jako przykład formatu. Adres ten nie musi zwrócić wyników i nie jest wskaźnikiem używanym w środowisku produkcyjnym. Rzeczywiste adresy IP, domeny i nazwy hostów muszą pochodzić z autoryzowanego zgłoszenia, a nie z dowolnych przykładów.
Podczas zapisywania konsola może wstawić wartość zmiennej do tekstu zapytania. Na przykład @DestIp może zostać zastąpione użytym adresem. Dlatego przed kolejnym wykonaniem sprawdź tekst. Zapisz dostosowany wariant za pomocą opcji Save As pod nazwą opisującą cel i zakres; nie nadpisuj wyjściowego, wstępnie skonfigurowanego zapytania. Zapisane zapytania mogą zawierać poufne wskaźniki, dlatego podlegają lokalnym zasadom klasyfikacji danych.
Aby utworzyć własną kategorię, kliknij ikonę plusa w prawym górnym rogu karty Library, wprowadź nazwę i opis, a następnie potwierdź przyciskiem Create. Aby utworzyć nowe zapytanie, wprowadź po prawej stronie sprawdzony tekst SELECT, przetestuj go przyciskiem Run i wybierz Save As. Wybierz kategorię, wpisz nazwę i potwierdź przyciskiem Create. Zapisuj tylko sprawdzone zapytania nadające się do ponownego użycia.
Konsola współdzieli zasoby z lokalnym przechowywaniem i prezentowaniem danych. Dlatego jak najwcześniej filtruj według czasu i selektywnego pola. Ograniczaj liczbę wyników metodą zastosowaną już w sekcji Library i zweryfikowaną dla ClickHouse; podczas pierwszego testu nie usuwaj istniejącego ograniczenia. Przed użyciem JOIN, podzapytań, szerokich grupowań lub sortowań sprawdź aktualną kartę Schema i wykonaj test na małym przedziale czasu. Nie kopiuj do konsoli zapytań SQL przeznaczonych dla Data Lake. Przed uruchomieniem przeczytaj w całości zapytania pochodzące ze zgłoszeń, czatów lub publicznych przykładów i porównaj je ze schematem w sekcji Schema.
3. Weryfikowanie wyników
Pomyślne wykonanie zapytania nie oznacza automatycznie, że jest ono merytorycznie poprawne. Sprawdź wynik w następującej kolejności:
- Zakres dochodzenia: czy przedział czasu, strefa czasowa, objęte dochodzeniem sensory i filtry dokładnie odpowiadają zadaniu? Czy zdarzenie mieści się w lokalnie dostępnych 30 dniach?
- Schemat: czy typy i znaczenie pól są zgodne z kartą Schema? Sprawdź zwłaszcza, czy adresy IP, wartości czasu i liczby są poprawnie interpretowane.
- Trafienie kontrolne: wyszukaj znany, oczekiwany przepływ w tym samym wąskim przedziale czasu. Jeżeli również go brakuje, pusty wynik nie stanowi wiarygodnego dowodu.
- Porównanie z pulpitem nawigacyjnym: czy rząd wielkości i przebieg czasowy są zgodne z sekcjami Network Traffic, IoC lub Recent flow detections? Agregaty na pulpicie nawigacyjnym i pojedyncze wiersze nie muszą być identyczne, ale rozbieżności wymagają wyjaśnienia.
- Próba porównawcza: usuń dokładnie jeden zawężający filtr lub w kontrolowany sposób przesuń przedział czasu. Wiarygodna różnica pokazuje, że warunek działa. Nigdy nie zmieniaj kilku warunków jednocześnie.
- Dokumentacja: zapisz w zgłoszeniu nazwę lub tekst zapytania, zmienne, przedział czasu wraz ze strefą czasową, czas wykonania, liczbę wyników i istotne wiersze. Traktuj wyniki jako potencjalnie wrażliwe dane sieciowe.
Następnie otwórz sekcję History. Konsola pokazuje w niej typ użytkownika, datę i godzinę, liczbę wyników oraz stan successful lub failed. Przypisz właściwy wpis do swojego wykonania. Sekcja History potwierdza wykonanie, ale nie kompletność ani poprawność zapytania.
Zawężanie przyczyny błędu i bezpieczny powrót
Pulpit nawigacyjny jest pusty
Sprawdź Time Range, aktywne ustawienia Saved Filters oraz Filters. Wybierz krótki przedział, w którym oczekiwany jest ruch sieciowy, i usuń filtry za pomocą opcji Clear. Jeżeli sekcja Network Traffic nadal jest pusta, problem nie wynika z własnego zapytania. Sprawdź, czy otwarta jest właściwa konsola oraz czy oczekiwany sensor lub odpowiednie urządzenie dostarcza dane. Zielony stan urządzenia nie potwierdza kompletnego pokrycia ruchu lustrzanego. Przekaż przedział czasu, oczekiwany przepływ, konsolę i sensor, którego dotyczy problem, do procesu operacyjnego lub pomocy technicznej, zamiast rozszerzać przedział poza 30 dni.
Zapytanie zwraca zero wierszy
Potwierdź przedział czasu i strefę czasową. Sprawdź na karcie Schema, czy tabela, nazwa pola i typ są aktualne. Następnie usuń dokładnie jeden najbardziej zawężający filtr merytoryczny i uruchom zapytanie ponownie jeden raz. Przetestuj też znaną, oczekiwaną wartość w tym samym przedziale czasu. Jeżeli niezmienione, wstępnie skonfigurowane zapytanie również nie zwraca oczekiwanych danych, sprawdź ścieżkę danych i sensory, których dotyczy dochodzenie. Pusty wynik nie dowodzi braku aktywności.
Zapytanie ma stan failed
Znajdź odpowiedni wpis w sekcji History i zapisz w notatkach roboczych stan, tekst zapytania oraz czas wykonania. Sprawdź składnię, nazwy i typy pól w sekcji Schema. Otwórz z sekcji Library ostatnie niezmienione, wcześniej działające zapytanie, ogranicz jego instrukcję SELECT do najmniejszego rozsądnego przedziału czasu i ustaw tylko jedną zweryfikowaną wartość zmiennej. Rozpocznij dokładnie jedno nowe wykonanie. Jeżeli wstępnie skonfigurowane zapytanie nadal ma stan failed, udokumentuj błąd i eskaluj problem. Nie obchodź go za pomocą poleceń zapisu, zmian schematu ani ustawień serwera.
Zapytanie działa nietypowo długo lub obciąża konsolę
Nie klikaj ponownie przycisku Run. Zapisz czas rozpoczęcia, użytkownika i nazwę zapytania. Nie uruchamiaj kolejnego szerokiego zapytania. Po zakończeniu sprawdź w sekcji History, czy wykonanie ma stan successful, czy failed, oraz ile wyników powstało. Jeżeli interfejs nadal działa wolno, zakończ pracę z zapytaniami i przekaż obserwację zespołowi obsługującemu konsolę. Ponowne uruchomienie lub wyłączenie systemu nie należy do zakresu tego podręcznika.
Powrót do działającego zapytania
- Zatrzymaj dalsze wykonywanie tego samego wariantu. Nie uruchamiaj ani pospiesznych powtórzeń, ani kolejnego szerokiego zapytania kontrolnego.
- Jeżeli interfejs reaguje, skopiuj tekst zapytania i zapisz czas rozpoczęcia, filtry, zmienne oraz powiązany wpis w sekcji History. Nie zapisuj błędnego wariantu jako nowego zapytania domyślnego.
- Ponownie otwórz pierwotne, wstępnie skonfigurowane zapytanie z sekcji Library. Sprawdź, czy nie zostały do niego przeniesione wstawione wartości zmiennych ani niezapisane zmiany.
- Na podstawie potwierdzonego schematu ogranicz instrukcję
SELECTdo krótkiego przedziału czasu, jednej zweryfikowanej wartości i małej liczby wyników. Ponownie sprawdź tabele i pola w sekcji Schema. - Wykonaj jeden test odczytu, który wcześniej zakończył się powodzeniem. Sprawdź wynik oraz sekcję History.
- Jeśli także ten test się nie powiedzie lub konsola nadal będzie działać nieprawidłowo, zakończ dochodzenie i eskaluj problem wraz z zabezpieczonymi informacjami. Nie używaj poleceń naprawy bazy danych, usuwania ani demontażu środowiska.
Zakończenie i przekazanie
Na zakończenie udokumentuj hipotezę, używaną konsolę, objęte dochodzeniem sensory, przedział czasu ze strefą czasową, filtry pulpitu nawigacyjnego, wykonane zapytanie, zmienne, stan w sekcji History i liczbę wyników. Pozytywne ustalenia przekaż za pośrednictwem istniejącego procesu SOC, XDR lub MDR. Wynik negatywny oznacza jedynie, że niczego nie znaleziono w udokumentowanym, lokalnym zakresie dochodzenia. Nie dowodzi on braku aktywności w całej sieci.
Usuń wrażliwe wartości przykładowe z definicji zapytania potrzebnej tylko tymczasowo albo uzgodnij zasady ich dozwolonego przechowywania z osobą odpowiedzialną za sekcję Library.