So exportieren Sie Snowflake-Logs

So exportieren Sie Snowflake-Logs

SOC Prime Team
SOC Prime Team linkedin icon Folgen

„Snowflake-Protokolle“ bedeutet zwei Dinge, und der Export funktioniert bei beiden gleich. Es kann sich um Sicherheitsdaten handeln, die Ihr Team in Snowflake-Tabellen speichert. Oder es kann Snowflakes eigene Prüfspur sein, die SNOWFLAKE.ACCOUNT_USAGE-Ansichten wie LOGIN_HISTORY und QUERY_HISTORY. Für kleinere Abrufe führen Sie die Abfrage in SnowSQL mit JSON-Ausgabe aus. Für alles Größere, entladen Sie mit COPY INTO eine Bühne unter Verwendung von FILE_FORMAT = (TYPE = JSON), und laden Sie die Dateien mit GET herunter.

Snowflakes eigene Protokolle erregten 2024 viel Aufmerksamkeit, als Angreifer gestohlene Anmeldeinformationen nutzten, um sich in Kundenkonten anzumelden, die keine MFA durchsetzten. Login- und Abfragehistorien sind mittlerweile standardmäßige Anforderungen in einer Untersuchung. Prime Core verfügt über mehr als 24.000 einzigartige Erkennungsregeln, die 676 MITRE ATT&CK-Techniken zugeordnet sind. Unten steht, wie Sie die Daten extrahieren, bereinigen und kostenlos in LogTotal untersuchen können.

Bevor Sie beginnen

Zugang zu ACCOUNT_USAGE. Standardmäßig kann nur ACCOUNTADMIN diese Ansichten lesen. Andere Rollen benötigen das IMPORTED PRIVILEGES-Privileg in der SNOWFLAKE-Datenbank oder eine ihrer Datenbankrollen.

Latenz und Aufbewahrung. ACCOUNT_USAGE-Ansichten halten ein Jahr Geschichte, aber haben eine Verzögerung von bis zu einigen Stunden. Für die letzten sieben Tage ohne Verzögerung ist die INFORMATION_SCHEMA.LOGIN_HISTORY Tabellenfunktion eine Alternative.

Ein Warehouse. Abfragen und Entladen erfordern ein laufendes Warehouse und verbrauchen Credits. Filtern Sie nach Zeit.

Option 1: SnowSQL mit JSON-Ausgabe (kleine Abrufe)

snowsql -q "SELECT * VON SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
            WO EVENT_TIMESTAMP >= '2026-10-19' UND 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

Option 2: In eine Stage entladen (größere Exporte)

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

JSON-Entladungen benötigen eine einzelne Spalte, weshalb die Abfrage jede Zeile in OBJECT_CONSTRUCT(*) einwickelt. Diese Funktion lässt NULL-Felder aus. Laden Sie dann von Ihrer Benutzerstufe (@~) herunter:

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

und kombinieren Sie die Dateien mit cat /tmp/sf_export/* > sf_logins_1019.jsonl. Dasselbe Muster funktioniert für Ihre eigenen Sicherheitstabellen. Ersetzen Sie den Tabellennamen und dessen Zeitstempelspalte.

Wonach in der Login-Historie zu suchen ist

Suchen Sie nach fehlgeschlagenen Anmeldungen (IS_SUCCESS = ‚NO‘) in Schüben und Passwortanmeldungen ohne zweiten Faktor (SECOND_AUTHENTICATION_FACTOR leer). Beachten Sie Anmeldungen von Client-IP-Adressen und Client-Typen, die Sie nicht erkennen. Verfolgen Sie diese Sitzungen dann in QUERY_HISTORY, um zu sehen, was gelesen wurde.

Hochladen, bereinigen und in LogTotal überprüfen

  1. Hochladen. Öffnen logtotal.com und legen Sie die .jsonl Datei ab.
  2. Bereinigen. 
  3. Überprüfen. 

Wenn es schief geht

SymptomWahrscheinlich UrsacheFix
Objekt existiert nicht oder nicht autorisiert auf ACCOUNT_USAGERolle hat keinen Zugang zur SNOWFLAKE-DatenbankFordern Sie IMPORTED PRIVILEGES oder eine Datenbankrolle an
Heute fehlen AnmeldungenACCOUNT_USAGE LatenzVerwenden Sie INFORMATION_SCHEMA.LOGIN_HISTORY für aktuelle Ereignisse
COPY INTO Fehler bezüglich SpaltenJSON-Entladung benötigt eine SpalteZeilen in OBJECT_CONSTRUCT(*) einwickeln
Felder im JSON fehlenOBJECT_CONSTRUCT lässt NULL-Werte ausErwartet; abwesend bedeutet NULL
GET fehlgeschlagenNicht von SnowSQL oder der Snowflake-CLI ausgeführtGET wird von einem Client ausgeführt, nicht über die Weboberfläche

FAQ

Kann ich das in der Weboberfläche machen?

Abfragen, ja. Downloads von der Weboberfläche sind nicht JSON. Der oben beschriebene Client-Weg gibt Ihnen JSON-Zeilen.

Was ist mit Snowflake-Ereignistabellen?

Ereignistabellen enthalten Protokolle und Spuren Ihrer eigenen Funktionen und Apps. Exportieren Sie sie auf dieselbe Weise wie jede andere Tabelle.

Treten Sie der Detection as Code-Plattform von SOC Prime bei um die Sichtbarkeit der für Ihr Unternehmen relevantesten Bedrohungen zu verbessern. Um Ihnen den Einstieg zu erleichtern und unmittelbaren Mehrwert zu erzielen, buchen Sie jetzt ein Treffen mit den Experten von SOC Prime.