Jak eksportować zdarzenia z IBM QRadar

Jak eksportować zdarzenia z IBM QRadar

SOC Prime Team
SOC Prime Team linkedin icon Śledź

Najczystszy sposób na uzyskanie surowych zdarzeń z QRadar to użycie Ariel REST API. Uruchom zapytanie AQL, które wybiera UTF8(payload), poczekaj na zakończenie wyszukiwania i pobierz wyniki jako JSON. Otrzymujesz oryginalne linie logów dokładnie takie, jakie wysłały twoje źródła logów. Karta Log Activity też może eksportować wyniki wyszukiwania, ale nie w formacie, który dziś odczytuje LogTotal. 

QRadar jest centrum wielu SOC-ów i prędzej czy później ktoś potrzebuje kawałka jego danych poza konsolą: partner od IR, druga opinia, szybkie sprawdzenie bez tworzenia nowej reguły. Prime Core ma 23 656 reguł detekcji dla QRadar, przypisanych do 674 technik MITRE ATT&CK. Poniżej znajdziesz, jak wyciągnąć czysty fragment surowych wydarzeń, oczyścić go i bezpłatnie zbadać w LogTotal.

Ten przewodnik obejmuje QRadar SIEM, zarówno on-premises, jak i software. Jeśli Twoja firma korzystała z QRadar SaaS, który IBM sprzedał Palo Alto Networks w 2024 roku, możesz już przejść na Cortex XSIAM.

Rozpocznij za darmo

Zanim zaczniesz

Autoryzowany token usługi. Utwórz go w sekcji Admin → Authorized Services i nadaj mu datę wygaśnięcia. Token nosi rolę użytkownika i profil bezpieczeństwa. Profil bezpieczeństwa decyduje, które źródła logów i sieci może zobaczyć. Jeśli jest węższy niż twój własny, API cicho zwraca mniej wydarzeń niż to, co pokazuje Log Activity. To najczęstszy moment „gdzie zniknęły moje zdarzenia?” przy eksportach z QRadar.

Retencja. Zdarzenia żyją tak długo, jak pozwalają na to twoje segmenty retencji (Admin → Event Retention). Jeśli potrzebne okno jest starsze, nie ma nic do eksportu.

Dostęp do sieci. API działa na porcie HTTPS konsoli. Konsola często używa certyfikatów samopodpisanych; wskaż curl odpowiedni urząd CA z –cacert zamiast wyłączać weryfikację.

Krok 1: Napisz zapytanie AQL

Wybierz payload plus kilka pól dla kontekstu:

SELECT DATEFORMAT(starttime, 'yyyy-MM-dd HH:mm:ss') AS event_time,
      LOGSOURCENAME(logsourceid) AS log_source,
      QIDNAME(qid) AS event_name,
      UTF8(payload) AS payload
FROM events
WHERE LOGSOURCENAME(logsourceid) = 'web-03'
START '2026-10-19 00:00' STOP '2026-10-20 00:00'

Kilka uwag z doświadczenia:

  • UTF8(payload) to ważna część. Bez niego, payload wraca jako zakodowane bajty, a nie czytelny tekst logu.
  • Zawęż je. Filtruj według nazwy źródła logów lub według typu z LOGSOURCETYPENAME(devicetype) ILIKE '%Linux%’, i zachowaj wąskie okno.
  • START / STOP dla dokładnych okien, LAST 24 HOURS dla względnych.
  • Najpierw to przetestuj in Log Activity → Advanced Search. To samo AQL, a zobaczysz liczbę zdarzeń przed eksportem.

Zdarzenia Windows zebrane przez WinCollect przychodzą jako tekstowe payloady, a nie jako EVTX. To, co eksportujesz, to ten tekst.

Krok 2: Uruchom przez Ariel API

Zapisz to jako qradar_export.sh. Rozpoczyna wyszukiwanie, czeka na nie i zapisuje jeden surowy payload na linię:

#!/usr/bin/env bash
set -euo pipefail

QRADAR="https://qradar.example.com"
TOKEN="${QRADAR_TOKEN:?set QRADAR_TOKEN first}"
AQL="SELECT UTF8(payload) AS payload FROM events WHERE LOGSOURCENAME(logsourceid) = 'web-03' START '2026-10-19 00:00' STOP '2026-10-20 00:00'"

# 1. rozpocznij wyszukiwanie (-G umieszcza zapytanie w URL, -X POST utrzymuje metodę)
SID=$(curl -sS -G -X POST -H "SEC: $TOKEN" -H "Accept: application/json"
  --data-urlencode "query_expression=$AQL"
  "$QRADAR/api/ariel/searches" | jq -r '.search_id')

# 2. poczekaj, aż się skończy
while :; do
  STATUS=$(curl -sS -H "SEC: $TOKEN" "$QRADAR/api/ariel/searches/$SID" | jq -r '.status')
  [ "$STATUS" = "COMPLETED" ] && break
  if [ "$STATUS" = "ERROR" ] || [ "$STATUS" = "CANCELED" ]; then echo "Search $STATUS"; exit 1; fi
  sleep 5
done

# 3. pobierz wyniki: surowe payloady, jeden na linię
curl -sS -H "SEC: $TOKEN" -H "Accept: application/json"
  "$QRADAR/api/ariel/searches/$SID/results" | jq -r '.events[].payload' > web-03_qradar_1019.log

Chcesz zamiast tego ustrukturyzowane zdarzenia, z czasem i źródłem logów jako polami? Wybierz te kolumny w AQL i użyj jq -c ’.events[]’ w ostatnim kroku. Otrzymasz jeden obiekt JSON na linię.

Dla bardzo dużych zestawów wyników, pobieraj wyniki strona po stronie z nagłówkiem Range, na przykład -H „Range: items=0-49999”, a następnie następne 50 000.

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

  1. Prześlij. Otwórz logtotal.com i wrzuć plik. 
  2. Oczyść. Sprawdź, zanim przejdziesz dalej.
  3. Przejrzyj. 

Kiedy coś pójdzie źle

ObjawPrawdopodobna przyczynaFix
401 z APIToken nieważny, wygasły lub brak nagłówka SECSprawdź nagłówek; utwórz nowy token
Mniej zdarzeń niż pokazuje Log ActivityProfil bezpieczeństwa tokena widzi mniej źródeł logówNadaj tokenowi profil odpowiadający dochodzeniu
Payloady wyglądają jak zakodowane niezrozumiałościUTF8() pominięte w zapytaniuWybierz UTF8(payload)
Status wyszukiwania przechodzi na ERRORSkładnia AQLNajpierw przetestuj zapytanie w Advanced Search
Wyniki są pusteOkno poza retencją lub błędna strefa czasowaSprawdź retencję; sprawdź strefę czasową konsoli
curl narzeka na certyfikatCertyfikat samopodpisany konsoliUżyj –cacert z urzędem CA konsoli

FAQ

Czy mogę uzyskać pliki EVTX z QRadar?

Nie. QRadar przechowuje zdarzenia Windows jako tekstowe payloady. Aby uzyskać prawdziwe pliki EVTX, wyeksportuj je z hosta Windows.

A co z danymi przepływu?

Przepływy są w osobnej tabeli: zapytanie FROM flows zamiast FROM events. Są to zapisy połączeń sieciowych, nie logi, i są osobną analizą.

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.