Як експортувати події з IBM QRadar

Як експортувати події з IBM QRadar

SOC Prime Team
SOC Prime Team linkedin icon Стежити

Найчистіший спосіб отримати сирі події з QRadar – це Ariel REST API. Запустіть запит AQL, який вибирає UTF8(payload), дочекайтеся завершення пошуку та отримайте результати у форматі JSON. Ви отримаєте оригінальні рядки журналів точно такими, якими їх відправили ваші джерела журналів. Вкладка Log Activity також може експортувати результати пошуку, але не у форматі, який LogTotal читає сьогодні. 

QRadar знаходиться в центрі багатьох SOC, і рано чи пізно хтось потребує отримати частину його даних за межами консолі: партнер IR, друга думка, швидка перевірка без створення нового правила. Prime Core має 23 656 правил виявлення для QRadar, зіставлених з 674 техніками MITRE ATT&CK. Нижче описано, як отримати чистий фрагмент сирих подій, очистити його та безкоштовно дослідити у LogTotal.

Цей гід охоплює QRadar SIEM, програмне та апаратне забезпечення. Якщо ваша компанія використовувала QRadar SaaS, яку IBM продала Palo Alto Networks у 2024 році, ви, можливо, перейшли на Cortex XSIAM з тих пір.

Почніть БЕЗКОШТОВНО

Перш ніж почати

Авторизований сервісний токен. Створіть один у розділі Адміністрування → Авторизовані сервіси і надайте йому термін дії. Токен несе роль користувача та профіль безпеки. Профіль безпеки визначає, які джерела журналів і мереж він може бачити. Якщо він вужчий за ваш, API тихо повертає менше подій, ніж показує Log Activity. Це – найбільш поширений момент “куди поділися мої події?” при експорті з QRadar.

Збереження. Події живуть стільки, скільки дозволяють ваші відра збереження (Адміністрування → Збереження подій). Якщо потрібне вам вікно давніше, ніж це, то нічого не залишилося для експорту.

Доступ до мережі. API працює на HTTPS-порті консолі. Консолі часто використовують самопідписані сертифікати; вкажіть curl потрібного ЦС за допомогою –cacert, замість того щоб вимикати перевірку.

Крок 1: Напишіть запит AQL

Виберіть payload плюс кілька полів для контексту:

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'

Кілька нотаток з досвіду:

  • UTF8(payload) це важлива частина. Без нього, payload повертається як закодовані байти, нечитабельний текст журналу.
  • Звужте це. Фільтруйте за назвою джерела журналу чи за типом з LOGSOURCETYPENAME(devicetype) ILIKE ‘%Linux%’, і тримайте вікно вузьким.
  • START / STOP для точних вікон, LAST 24 HOURS для відносних.
  • Спочатку протестуйте його in Log Activity → Розширений пошук. Це той самий AQL, і ви побачите кількість подій перед експортом.

Події Windows, зібрані через WinCollect, надходять як текстові payload, а не як EVTX. Те, що ви експортуєте, – це той текст.

Крок 2: Пропустіть його через Ariel API

Збережіть це як qradar_export.sh. Він запускає пошук, чекає на нього і записує один сирий payload на рядок:

#!/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. розпочніть пошук (-G поміщає запит в URL, -X POST зберігає метод)
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. дочекайтесь його завершення
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 "Пошук $STATUS"; exit 1; fi
  sleep 5
done

# 3. отримайте результати: сирі payload, один на рядок
curl -sS -H "SEC: $TOKEN" -H "Accept: application/json"
  "$QRADAR/api/ariel/searches/$SID/results" | jq -r '.events[].payload' > web-03_qradar_1019.log

Бажаєте структуровані події замість цього, з полями часу і джерела логів? Виберіть ці колонки в AQL і використовуйте jq -c ‘.events[]’ на останньому кроці. Ви отримаєте один JSON-об’єкт на рядок.

Для дуже великих наборів результатів, отримуйте результати по сторінках з заголовком Range, наприклад -H “Range: items=0-49999”, потім наступні 50,000.

Крок 3: Завантажте, очистіть та перегляньте у LogTotal

  1. Завантажте. Відкрийте logtotal.com і завантажте файл.
  2. Очистіть. Перегляньте, перш ніж продовжувати.
  3. Перегляд. 

Коли справа йде не так

СимптомЙмовірна причинаFix
401 від APIТокен недійсний, прострочений або заголовок SEC відсутнійПеревірте заголовок; створіть новий токен
Менше подій, ніж показує Log ActivityПрофіль безпеки токена бачить менше джерел журналівНадайте токену профіль, що відповідає розслідуванню
Payload схожий на закодоване гіберишUTF8() пропущений з запитуВиберіть UTF8(payload)
Статус пошуку переходить в ERRORСинтаксис AQLСпочатку тестуйте запит у Розширеному пошуку
Результати порожніВікно знаходиться за межами збереження або часовий пояс неправильнийПеревірте збереження; перевірте часовий пояс консолі
curl скаржиться на сертифікатСамопідписаний сертифікат консоліВикористовуйте –cacert із ЦС консолі

FAQ

Чи можу я отримати файли EVTX з QRadar?

Ні. QRadar зберігає події Windows як текстові payload. Для реальних файлів EVTX, експортуйте їх з Windows-хоста.

А як щодо даних потоку?

Потоки зберігаються в окремій таблиці: запитуйте FROM flows замість FROM events. Вони є записами мережевих з’єднань, а не логами, і це окремий аналіз.

Приєднуйтесь до платформи Detection as Code від SOC Prime щоб покращити видимість загроз, найбільш актуальних для вашого бізнесу. Щоб допомогти вам розпочати та отримати негайну цінність, забронюйте зустріч зараз з експертами SOC Prime.