Найчистіший спосіб отримати сирі події з 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
- Завантажте. Відкрийте logtotal.com і завантажте файл.
- Очистіть. Перегляньте, перш ніж продовжувати.
- Перегляд.
Коли справа йде не так
| Симптом | Ймовірна причина | 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. Вони є записами мережевих з’єднань, а не логами, і це окремий аналіз.