Як експортувати журнали Snowflake

Як експортувати журнали Snowflake

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

«Журнали Snowflake» означають одне з двох, і експорт працює однаково для обох. Це можуть бути дані безпеки, які ваша команда зберігає в таблицях Snowflake. Або ж це може бути власний журнал аудиту Snowflake, SNOWFLAKE.ACCOUNT_USAGE вигляди, такі як LOGIN_HISTORY і QUERY_HISTORY. Для невеликих вибірок запустіть запит у SnowSQL з виходом у форматі JSON. Для всього більшого розвантажте за допомогою COPY INTO stage, використовуючи FILE_FORMAT = (TYPE = JSON), і завантажте файли за допомогою GET.

Власні журнали Snowflake привернули багато уваги у 2024 році, коли зловмисники використали вкрадені облікові дані, щоб увійти в облікові записи клієнтів, які не використовували MFA. Історія входу та запитів тепер є стандартними запитами під час розслідування. Prime Core має понад 24,000 унікальних правил виявлення, відображених для 676 технік MITRE ATT&CK. Нижче показано, як отримати дані, очистити їх і безкоштовно дослідити їх у LogTotal.

Перед тим, як почати

Доступ до ACCOUNT_USAGE. За замовчуванням, лише ACCOUNTADMIN може читати ці вигляди. Інші ролі потребують надання IMPORTED PRIVILEGES для бази даних SNOWFLAKE або однієї з її ролей.

Затримка та збереження. Вигляди ACCOUNT_USAGE зберігають історію за рік, але відстають на кілька годин. За останні сім днів без затримки функція таблиці INFORMATION_SCHEMA.LOGIN_HISTORY є альтернативою.

Склад. Запити та розвантаження вимагають працюючого складу, і вони споживають кредити. Фільтруйте за часом.

Варіант 1: SnowSQL з виходом у форматі JSON (невеликі вибірки)

snowsql -q "SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
            WHERE EVENT_TIMESTAMP >= '2026-10-19' AND EVENT_TIMESTAMP < '2026-10-20'"
  -o output_format=json -o friendly=false -o timing=false > sf_logins_1019.json

jq -c '.[]' sf_logins_1019.json > sf_logins_1019.jsonl

Варіант 2: Вивантаження на stage (більші експорти)

COPY INTO @~/exports/login_history_1019/
З (
  SELECT OBJECT_CONSTRUCT(*)
  FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
  WHERE EVENT_TIMESTAMP >= '2026-10-19' AND EVENT_TIMESTAMP < '2026-10-20'
)
FILE_FORMAT = (TYPE = JSON COMPRESSION = NONE)
OVERWRITE = TRUE;

JSON розвантаження потребує одного стовпця, тому запит обгортає кожен рядок у OBJECT_CONSTRUCT(*). Ця функція виключає NULL поля. Потім завантажте зі stage користувача (@~):

GET @~/exports/login_history_1019/ file:///tmp/sf_export/;

та об’єднайте файли з cat /tmp/sf_export/* > sf_logins_1019.jsonl. Такий самий шаблон працює для ваших власних таблиць безпеки. Замініть ім’я таблиці та її стовпець з позначками часу.

На що звертати увагу в історії входу

Зверніть увагу на невдалі входи (IS_SUCCESS = ‘NO’) у вибухах та входи з паролем без другого фактора (SECOND_AUTHENTICATION_FACTOR порожній). Відзначте входи з клієнтських IP та типів клієнтів, яких ви не впізнаєте. Потім відстежте ті сесії до QUERY_HISTORY, щоб побачити, що було прочитано.

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

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

Коли щось йде не так

СимптомЙмовірна причинаFix
Об’єкт не існує або не авторизований на ACCOUNT_USAGEРоль не має доступу до бази даних SNOWFLAKEЗапитайте про IMPORTED PRIVILEGES або роль бази даних
Сьогоднішні входи відсутніЗатримка ACCOUNT_USAGEВикористайте INFORMATION_SCHEMA.LOGIN_HISTORY для останніх подій
Помилка COPY INTO щодо стовпцівJSON розвантаження потребує одного стовпцяОбгортайте ряди у OBJECT_CONSTRUCT(*)
Поля відсутні у JSONOBJECT_CONSTRUCT виключає NULL значенняОчікується; відсутність означає NULL
GET не вдаєтьсяНе запущено з SnowSQL або SNOWFLAKE CLIGET запускається з клієнта, а не з веб-інтерфейсу

FAQ

Чи можу я зробити це у веб-інтерфейсі?

Запит, так. Завантаження з веб-інтерфейсу не є JSON. Наведений вище шлях клієнта дає вам строку JSON.

Як щодо таблиць подій Snowflake?

Таблиці подій зберігають журнали та треки з ваших власних функцій і додатків. Експортуйте їх так само, як будь-яку таблицю.

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