Jak eksportować logi ze Splunka do analizy bezpieczeństwa

Jak eksportować logi ze Splunka do analizy bezpieczeństwa

SOC Prime Team
SOC Prime Team linkedin icon Śledź

Krótka odpowiedź: uruchom wyszukiwanie, kliknij Eksportuj w pasku narzędzi zadań pod paskiem wyszukiwania i wybierz Surowe Zdarzenia, CSV or JSON. Dla kilku tysięcy zdarzeń to wszystko, czego potrzebujesz. Dla większych pobrań, pomiń przeglądarkę i użyj CLI wyszukiwania w Splunk albo punktu końcowego eksportu REST. Oba strumieniują wyniki zamiast budować duży plik w Splunk Web.

Dlaczego w ogóle eksportować dane z Splunk, jeśli są już indeksowane? Zwykle dlatego, że ktoś spoza Splunk potrzebuje je zobaczyć: partner IR, kolega z innego zespołu, lub ty, na laptopie, bez pisania SPL przez godzinę. Prime Core ma 23,674 reguły detekcji dla Splunk zmapowane na 676 technik MITRE ATT&CK. To dużo logiki detekcji, którą możesz uruchomić na małym fragmencie swoich danych po ich wyjęciu. Poniżej znajdziesz sposób na wycinkę tych danych, ich oczyszczenie i przejrzenie za darmo w LogTotal.

Zacznij za darmo

TL;DR

TrasaUżyj tego, kiedyCzego potrzebujesz
Splunk Web → EksportJednorazowy, mały eksport, już otwarte wyszukiwanieDostęp do wyszukiwania indeksu
CLI wyszukiwania w SplunkMasz dostęp do powłoki na głowicy wyszukiwania Splunk EnterpriseDostęp do OS + poświadczenia Splunk
REST search/jobs/exportDuże eksporty, skrypty lub Splunk CloudDostęp do portu zarządzania (8089) + token

Zanim zaczniesz

Trzy rzeczy decydują, która trasa działa dla ciebie: gdzie działa twój Splunk, co może wyszukać twoja rola i czy masz pozwolenie na wyjęcie danych.

  • Dostęp do indeksu. Możesz eksportować tylko to, co twoja rola może wyszukać. Jeśli wyszukiwanie nic nie zwraca, ale wiesz, że dane tam są, przed przepisywaniem SPL sprawdź dozwolone indeksy twojej roli. Wyraźnie umieść index= w wyszukiwaniu; nie polegaj na domyślnych indeksach.
  • Splunk Cloud kontra Enterprise. Na platformie Splunk Cloud nie ma powłoki, więc trasa CLI odpada. REST API też domyślnie nie jest włączone: ktoś musi poprosić o dostęp do twojej instancji, a darmowe wersje próbne nie mogą z niego korzystać w ogóle. Eksport z Splunk Web działa wszędzie.
  • Uprawnienia do eksportu. Surowe logi przenoszą nazwy użytkowników, nazwy hostów, wewnętrzne adresy IP, czasami tokeny w URL. LogTotal oczyszcza przesłane pliki przed analizą, ale polityka przetwarzania danych twojej firmy nadal obowiązuje. Najpierw uzyskaj zgodę. Potrzebujesz tylko pięciu minut, a będziesz chciał mieć to na piśmie, jeśli zamieni się to w incydent.

Poniższe polecenia są zgodne z aktualną dokumentacją Splunk dla Splunk Enterprise i Splunk Cloud Platform, sprawdzoną w październiku 2026. Linki do każdej użytej strony znajdują się na końcu.

Krok 1: Określ wyszukiwanie przed eksportem czegokolwiek

Najczęstszy błąd to eksportowanie całego indeksu „na wszelki wypadek.” Kończysz z plikiem, którego nikt nie chce otworzyć. Decyduj, na jakie pytanie odpowiadasz, a potem określ indeks, sourcetype, host i czas:

index=linux sourcetype=linux_secure host=web-03 earliest=-24h@h latest=@h

Dla zdarzeń zabezpieczeń systemu Windows zbieranych przez Splunk Add-on for Windows w trybie XML:

index=wineventlog source="XmlWinEventLog:Security" host=dc-01 earliest=-24h@h latest=@h

Dwa zasady utrzymują eksport przydatnym.

Utrzymuj _raw. Jeśli wyszukiwanie kończy się statystykami, tabelą lub wykresem, eksportujesz podsumowanie, nie logi, a Splunk Web wyblaknie format Surowe Zdarzenia. Eksportuj zdarzenia, nie wyniki. Jeśli zdecydujesz się na JSON, przytnij wyodrębnione pola, aby plik nie potroił swojego rozmiaru:

... | fields _time host source sourcetype _raw

Używaj czasu absolutnego, gdy to ma znaczenie. earliest=-24h znaczy coś innego każdą minutę. Jeśli Splunk musi ponownie uruchomić twoje wyszukiwanie podczas eksportu (więcej na ten temat poniżej), względne okno może zwrócić nieco inny zestaw zdarzeń. Dla wszystkiego związanego z incydentem, używaj dokładnych znaczników czasu.

Jedna rzecz, którą warto wiedzieć o danych Windows: Splunk nie przechowuje oryginalnych plików .evtx. Indeksuje przetworzony tekst wydarzeń, XML lub klasyczny key=value. Więc to, co eksportujesz to ten tekst, nie binarny EVTX.

Krok 2a: Export z Splunk Web

Dobre dla małych, jednorazowych eksportów, gdy wyszukiwanie jest już na twoim ekranie.

  1. Uruchom wyszukiwanie i pozwól zadaniu zakończyć. Eksportowanie pracy w trakcie tylko daje ci częściowy obraz.
  2. Kliknij Eksportuj (strzałkę do pobierania) w rzędzie działań zadania pod paskiem wyszukiwania.
  3. Wybierz format. Surowe Zdarzenia daje ci oryginalne linie logów dokładnie tak, jak były indeksowane, co jest tym, czego chcesz dla źródeł w stylu syslog jak linux_secure. JSON zachowuje hosta, źródło i typ źródła obok każdego zdarzenia. To pomaga, gdy eksport obejmuje kilka hostów.
  4. Nazwij plik tak, żebyś go rozpoznał za tydzień, na przykład web-03_sshd_2026-10-19.log.
  5. Pozostaw Liczba wyników puste, aby eksportować wszystko, co wyszukiwanie zwróciło. Jeśli wpiszesz 500, otrzymasz pierwsze 500 i nic cię nie powiadomi, że było ich więcej.
  6. Kliknij Eksportuj.

Szczegół, który myli ludzi: eksport działa z artefaktu zadania wyszukiwania, a nie z tego, co widzisz w przeglądarce. Jeśli Splunk nie zachował każdego wyniku z zadaniem, dialog ostrzega, że najpierw ponownie uruchomi wyszukiwanie. To normalne. Zajmuje to tylko więcej czasu, co jest powodem, dla którego zakres czasowy z kroku 1 ma znaczenie. Bardzo długie eksporty mogą też napotkać limit czasu sesji Splunk Web. Jeśli eksport trwa minuty, przełącz się na CLI lub REST.

Krok 2b: Export za pomocą CLI Splunk (tylko Enterprise)

Jeśli masz dostęp do powłoki na głowicy wyszukiwania, to jest najszybsza trasa i najłatwiejsza do skryptowania. Najpierw zaloguj się, aby twoje hasło nie trafiło do historii powłoki tak, jakby było z -auth:

$SPLUNK_HOME/bin/splunk login

$SPLUNK_HOME/bin/splunk search
'index=linux sourcetype=linux_secure host=web-03 earliest="10/19/2026:00:00:00" latest="10/20/2026:00:00:00"'
-preview 0 -maxout 0 -output rawdata > web-03_sshd.log

Do czego służy każda flaga:

  • -maxout 0 usuwa ograniczenie. Domyślnie CLI eksportuje 100 zdarzeń i zatrzymuje się bez słowa. Jeśli twój plik ma dokładnie 100 linii, to jest tego powód, nie cichy host.
  • -preview 0 nie uwzględnia wyników podglądu w pliku.
  • -output rawdata zapisuje oryginalne linie. Użyj -output json, jeśli chcesz zdarzenia strukturalne z metadanymi.

Możesz także uruchomić CLI na zdalnej głowicy wyszukiwania za pomocą -uri https://:8089, o ile port zarządzania jest osiągalny z miejsca, w którym się znajdujesz.

Dwa szybkie sprawdzenia przed przesłaniem:

wc -l web-03_sshd.log
head -3 web-03_sshd.log

Dla jednoliniowych źródeł jak linux_secure, liczba linii powinna mniej więcej odpowiadać liczbie zdarzeń pokazanych przez Splunk Web dla tego samego wyszukiwania. Pierwsze linie powinny wyglądać jak linie logów, a nie komunikaty o błędach.

Krok 2c: Strumieniuj wyniki przez API REST

To jest trasa dla dużych eksportów, planowanych pobrań i Splunk Cloud (gdy dostęp REST jest włączony dla twojej instancji). Punkt końcowy eksportu strumieniuje wyniki, gdy wyszukiwanie trwa, więc nie ma zadania do odpytywania i nie ma stron z wynikami do przeszukiwania.

Użyj tokenu uwierzytelniającego zamiast nazwy użytkownika i hasła. Stworzysz go w Ustawienia → Tokenyjeśli twój administrator włączył uwierzytelnianie za pomocą tokenu.

export SPLUNK_TOKEN=''

curl -sS
-H "Authorization: Bearer $SPLUNK_TOKEN"
https://sh01.example.com:8089/services/search/v2/jobs/export
--data-urlencode search='search index=linux sourcetype=linux_secure host=web-03'
-d earliest_time='2026-10-19T00:00:00.000+00:00'
-d latest_time='2026-10-20T00:00:00.000+00:00'
-d output_mode=raw
-o web-03_sshd.log

Rzeczy, które wprowadzają ludzi w błąd:

  • Ciąg wyszukiwania musi zaczynać się od search (lub komendy generującej jak | tstats). Wklej swoje zapytanie bez tego, a Splunk odrzuci je.
  • output_mode=raw daje oryginalne linie i jest najszybszym trybem. output_mode=json strumieniuje jeden obiekt JSON na linię, ze zdarzeniem siedzącym pod kluczem result. Jeśli chcesz tylko zdarzenia, usuń opakowanie za pomocą jq: jq -c 'select(.result) | .result’ export.json > events.ndjson. Do przesłania do LogTotal, pozostań przy raw.
  • Środowiska laboratoryjne często używają certyfikatów podpisanych własnoręcznie, a każda odpowiedź na Stack Overflow powie ci, żeby dodać -k. W produkcji, skieruj curl do twojego CA z –cacert.
  • Jeśli wykonasz POST do search/v2/jobs i przeczytasz z /results, serwer ogranicza liczbę wierszy na żądanie i musisz sortować z offsetem. Export tego nie robi, co jest powodem, dla którego używamy go tutaj.

Krok 3: Prześlij, oczyść i przejrzyj w LogTotal

LogTotal to darmowa usługa SOC Prime do uruchamiania logiki detekcyjnej na pliku logu bez żadnej konfiguracji. Oczyszcza to, co przesyłasz i nie zachowuje twoich plików.

  1. Prześlij. Otwórz logtotal.com i umieść plik z kroku 2.
  2. Oczyść. Przejrzyj go przed kontynuacją. Znasz swoje środowisko lepiej niż jakiekolwiek reguły maskowania.
  3. Przejrzyj. 

Kiedy eksport idzie źle

ObjawPrawdopodobna przyczynaFix
Plik z CLI ma dokładnie 100 zdarzeńDomyślny -maxout to 100Dodaj -maxout 0
Surowe Zdarzenia są wyszarzone w dialogu eksportuWyszukiwanie kończy się komendą transformującą (stats, table, chart)Eksportuj zdarzenia zamiast, lub wybierz JSON
Wyszukiwanie nic nie zwraca, ale dane są tamIndeks nie jest dozwolony w twojej roli lub domyślnych indeksach, lub zły zakres czasowyDodaj index= jawnie; zapytaj administratora o rolę
Dialog mówi, że wyszukiwanie będzie ponownie uruchomioneArtefakt zadania nie zachował każdego wynikuOczekiwane zachowanie; użyj absolutnego zakresu czasowego, aby ponowne uruchomienie zwracało te same zdarzenia
Eksport przeglądarki zatrzymuje się lub plik jest przyciętyLimit czasu sesji Splunk Web podczas długiego eksportuPrzełącz się na CLI lub REST
401 Nieautoryzowany z curlToken wygasł, wyłączony lub uwierzytelnianie za pomocą tokenu jest wyłączoneUtwórz nowe token w Ustawienia → Tokeny
curl zawiesza się lub odmawia połączenia na 8089Port zarządzania zablokowany, lub REST nie jest włączony na Splunk CloudSprawdź reguły zapory; poproś o dostęp REST dla swojej instancji w chmurze
REST zwraca błąd składni zapytaniaZapytanie nie zaczyna się od searchPoprzedz je komendą search
Plik JSON jest o wiele większy niż oczekiwanoWyeksportowano każde wydobyte poleDodaj | fields _time host source sourcetype _raw

FAQ

Czy mogę eksportować logi ze Splunk Cloud?

Tak. Eksport z Splunk Web działa tak samo jak na Enterprise. Punkt końcowy eksportu REST działa, gdy dostęp API jest włączony dla twojej instancji; darmowe wersje próbne go nie mają. CLI nie jest opcją, ponieważ na Splunk Cloud nie ma powłoki.

Czy mogę odzyskać oryginalne pliki EVTX ze Splunk?

Nie. Splunk przechowuje przetworzony tekst wydarzeń, nie binarne pliki .evtx. Możesz eksportować ten tekst jako surowe zdarzenia lub JSON. Dla prawdziwych plików EVTX, eksportuj je bezpośrednio z hosta Windows.

Surowe Zdarzenia czy JSON: który wybrać dla LogTotal?

Surowe. Otrzymujesz te same linie, które znajdują się na hoście, a LogTotal odczytuje pliki formatu syslog takie, jakie są. JSON obejmuje każde zdarzenie w strukturze Splunk. Jest przydatny, gdy potrzebujesz hosta i sourcetype obok każdego zdarzenia, ale do przesłania do LogTotal, surowe jest bezpieczniejszym wyborem.

Czy przesłanie eksportu Splunk do narzędzia online jest bezpieczne?

LogTotal oczyszcza przesłane pliki przed analizą i nie zachowuje plików.

Ile zdarzeń mogę eksportować?

Po stronie Splunk, ile chcesz: pozostaw Liczba wyników puste w Splunk Web, lub ustaw -maxout 0 w CLI. W praktyce, limit to rozmiar przesyłki na drugim końcu. Dlatego ważne jest, aby prawidłowo określić zakres wyszukiwania w kroku 1.

Dołącz do platformy Detection as Code firmy SOC Prime aby zwiększyć widoczność zagrożeń najbardziej istotnych dla Twojego biznesu. Aby pomóc Ci rozpocząć i natychmiast uzyskać wartość, umów się teraz na spotkanie z ekspertami SOC Prime.