Como Exportar Logs do Snowflake

Como Exportar Logs do Snowflake

SOC Prime Team
SOC Prime Team linkedin icon Seguir

“Logs do Snowflake” significa uma de duas coisas, e a exportação funciona do mesmo jeito para ambas. Pode ser dados de segurança que sua equipe armazena em tabelas Snowflake. Ou pode ser o próprio rastro de auditoria do Snowflake, as visualizações SNOWFLAKE.ACCOUNT_USAGE como LOGIN_HISTORY e QUERY_HISTORY. Para extrações pequenas, execute a consulta no SnowSQL com saída JSON. Para qualquer coisa maior, descarregue com COPY INTO um estágio usando FILE_FORMAT = (TYPE = JSON), e baixe os arquivos com GET.

Os próprios logs do Snowflake chamaram muita atenção em 2024, quando atacantes usaram credenciais roubadas para fazer login em contas de clientes que não aplicavam MFA. O histórico de login e consultas agora são perguntas padrão em uma investigação. A Prime Core tem mais de 24.000 regras de detecção exclusivas, mapeadas para 676 técnicas do MITRE ATT&CK. Abaixo está como obter os dados, sanitizá-los e investigá-los gratuitamente no LogTotal.

Antes de começar

Acesso ao ACCOUNT_USAGE. Por padrão, apenas ACCOUNTADMIN pode ler essas visualizações. Outros papéis precisam da concessão IMPORTED PRIVILEGES no banco de dados SNOWFLAKE, ou em um de seus papéis de banco de dados.

Latência e retenção. As visualizações ACCOUNT_USAGE mantêm um ano de histórico, mas com até algumas horas de atraso. Para os últimos sete dias sem atraso, a função de tabela INFORMATION_SCHEMA.LOGIN_HISTORY é uma alternativa.

Um armazém. Consultas e descarregamentos precisam de um armazém em execução e consomem créditos. Filtre por tempo.

Opção 1: SnowSQL com saída JSON (extrações pequenas)

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

Opção 2: Descarregar para um estágio (exportações maiores)

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;

Descarregamentos JSON precisam de uma única coluna, é por isso que a consulta envolve cada linha em OBJECT_CONSTRUCT(*). Essa função omite campos NULL. Em seguida, baixe do seu estágio de usuário (@~):

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

e combine os arquivos com cat /tmp/sf_export/* > sf_logins_1019.jsonl. O mesmo padrão funciona para suas próprias tabelas de segurança. Troque pelo nome da tabela e sua coluna de timestamp.

O que procurar no histórico de logins

Procure por logins falhos (IS_SUCCESS = ‘NO’) em rajadas e logins por senha sem um segundo fator (SECOND_AUTHENTICATION_FACTOR vazio). Observe logins de IPs de cliente e tipos de cliente que você não reconhece. Depois siga essas sessões em QUERY_HISTORY para ver o que foi lido.

Envie, sanitize e revise no LogTotal

  1. Envie. Abra logtotal.com e insira o arquivo .jsonl.
  2. Sanitize. 
  3. Reveja. 

Quando algo dá errado

SintomaCausa provávelFix
Objeto não existe ou não autorizado no ACCOUNT_USAGEPapel sem acesso ao banco de dados SNOWFLAKEPeça por IMPORTED PRIVILEGES ou um papel de banco de dados
Logins de hoje estão faltandoLatência do ACCOUNT_USAGEUse INFORMATION_SCHEMA.LOGIN_HISTORY para eventos recentes
Erro COPY INTO sobre colunasDescarregamento JSON precisa de uma colunaEnvolva linhas em OBJECT_CONSTRUCT(*)
Campos ausentes no JSONOBJECT_CONSTRUCT descarta valores NULLEsperado; ausente significa NULL
GET falhaNão executado pelo SnowSQL ou pela CLI do SnowflakeGET é executado de um cliente, não da interface web

FAQ

Posso fazer isso na interface web?

Consulta, sim. Downloads da interface web não são JSON. O caminho do cliente acima fornece linhas JSON.

E sobre as tabelas de eventos do Snowflake?

Tabelas de eventos contêm logs e rastros de suas próprias funções e aplicativos. Exporte-as do mesmo modo que qualquer tabela.

Junte-se à plataforma Detection as Code da SOC Prime para melhorar a visibilidade das ameaças mais relevantes para o seu negócio. Para ajudá-lo a começar e gerar valor imediato, agende uma reunião agora com os especialistas da SOC Prime.