Jak eksportować logi Snowflake

Jak eksportować logi Snowflake

SOC Prime Team
SOC Prime Team linkedin icon Śledź

„Logi Snowflake” oznaczają jedno z dwóch: dane bezpieczeństwa przechowywane przez Twój zespół w tabelach Snowflake lub własny dziennik audytu Snowflake, czyli widoki SNOWFLAKE.ACCOUNT_USAGE, takie jak LOGIN_HISTORY i QUERY_HISTORY. W przypadku małych ekstrakcji uruchom zapytanie w SnowSQL z wyjściem JSON. Dla większych, wyładuj używając COPY INTO w etapie używając FILE_FORMAT = (TYPE = JSON) i pobierz pliki za pomocą GET.

Własne logi Snowflake przyciągnęły wiele uwagi w 2024 roku, gdy atakujący użyli skradzionych poświadczeń, aby zalogować się do kont klientów, które nie wymagały MFA. Historia logowań i zapytań jest teraz standardowym wymaganiem w dochodzeniach. Prime Core posiada ponad 24,000 unikalnych reguł detekcji, zmapowanych na 676 technik MITRE ATT&CK. Poniżej pokazano, jak wydobyć dane, oczyścić je i za darmo zbadać w LogTotal.

Zanim zaczniesz

Dostęp do ACCOUNT_USAGE. Domyślnie tylko ACCOUNTADMIN może odczytać te widoki. Inne role potrzebują przyznania IMPORTED PRIVILEGES na bazie danych SNOWFLAKE lub jednej z jej ról baz danych.

Opóźnienie i retencja. Widoki ACCOUNT_USAGE przechowują rok historii, ale mogą mieć opóźnienie do kilku godzin. Dla ostatnich siedmiu dni bez opóźnienia funkcja tabeli INFORMATION_SCHEMA.LOGIN_HISTORY jest alternatywą.

Magazyn. Zapytania i załadunki potrzebują działającego magazynu i zużywają kredyty. Filtruj według czasu.

Opcja 1: SnowSQL z wyjściem JSON (małe ekstrakcje)

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

Opcja 2: Wyładuj na etapie (większe eksporty)

COPY INTO @~/exports/login_history_1019/
FROM (
  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;

Załadunki JSON potrzebują jednej kolumny, dlatego zapytanie obejmuje każdy wiersz w OBJECT_CONSTRUCT(*). Ta funkcja pomija pola NULL. Następnie pobierz z etapu użytkownika (@~):

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

i połącz pliki z cat /tmp/sf_export/* > sf_logins_1019.jsonl. Ten sam schemat działa dla własnych tabel bezpieczeństwa. Zamień nazwę tabeli i jej kolumny timestamp.

Na co zwrócić uwagę w historii logowania

Szukaj nieudanych logowań (IS_SUCCESS = 'NO’) w seriach i logowań hasłem bez drugiego czynnika (SECOND_AUTHENTICATION_FACTOR puste). Zawie{r}[big]zaj logowania z nieznanych adresów IP klientów i typów klientów. Następnie śledź sesje w QUERY_HISTORY, aby zobaczyć, co było odczytane.

Wgraj, oczyść i przejrzyj w LogTotal

  1. Wgraj. Otwórz logtotal.com i wrzuć plik .jsonl.
  2. Oczyść. 
  3. Przejrzyj. 

Gdy coś pójdzie nie tak

ObjawPrawdopodobna przyczynaFix
Obiekt nie istnieje lub brak autoryzacji na ACCOUNT_USAGERola nie ma dostępu do bazy danych SNOWFLAKEPoproś o IMPORTED PRIVILEGES lub rolę bazy danych
Dziś brak logowańOpóźnienie ACCOUNT_USAGEUżyj funkcji LOGIN_HISTORY w INFORMATION_SCHEMA dla ostatnich zdarzeń
Błąd COPY INTO dotyczący kolumnZaładunek JSON wymaga jednej kolumnyOtaczaj wiersze w OBJECT_CONSTRUCT(*)
Brakujące pola w JSONOBJECT_CONSTRUCT eliminuje wartości NULLOczekiwane; brak oznacza NULL
GET nie powiodło sięNie uruchomione z SnowSQL lub CLI SnowflakeGET uruchamiane z klienta, nie z interfejsu webowego

FAQ

Czy mogę to zrobić w interfejsie sieciowym?

Zapytania, tak. Pobieranie z interfejsu webowego nie jest w formacie JSON. Powyższa ścieżka klienta daje linie JSON.

A co z tabelami wydarzeń Snowflake?

Tabele wydarzeń przechowują logi i ślady z Twoich własnych funkcji i aplikacji. Eksportuj je tak samo jak każdą tabelę.

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.