Construção de Linha do Tempo de Incidentes com Timesketch
Visão Geral
O Timesketch é uma ferramenta de análise forense colaborativa de código aberto desenvolvida pelo Google que permite que equipes de segurança visualizem e analisem dados cronológicos de várias fontes durante investigações de incidentes. Ele ingere logs e artefatos de endpoints, servidores e serviços em nuvem, normaliza-os em uma linha do tempo unificada pesquisável e fornece recursos poderosos de análise, incluindo analisadores integrados, marcação, anotações em esboços e criação de histórias. O Timesketch se integra ao Plaso (log2timeline) para análise de artefatos e suporta ingestão direta de CSV/JSONL para construção rápida de linhas do tempo durante incidentes ativos.
Quando Usar
- Ao implantar ou configurar recursos de construção de linha do tempo de incidentes com timesketch em seu ambiente
- Ao estabelecer controles de segurança alinhados aos requisitos de conformidade
- Ao construir ou melhorar a arquitetura de segurança para este domínio
- Ao realizar avaliações de segurança que exijam esta implementação
Pré-requisitos
- Familiaridade com conceitos e ferramentas de resposta a incidentes
- Acesso a um ambiente de teste ou laboratório para execução segura
- Python 3.8+ com as dependências necessárias instaladas
- Autorização apropriada para quaisquer atividades de teste
Arquitetura e Componentes
Componentes Principais
- Servidor Timesketch: Aplicação web com API REST para gerenciamento de linhas do tempo
- OpenSearch/Elasticsearch: Armazenamento backend e mecanismo de busca para eventos da linha do tempo
- PostgreSQL: Armazenamento de metadados para esboços, histórias e dados de usuário
- Redis: Gerenciamento de fila de tarefas para processamento em segundo plano
- Workers Celery: Processamento assíncrono de uploads de linhas do tempo e analisadores
Fluxo de Dados
Fontes de Evidência --> Plaso/log2timeline --> Arquivo de armazenamento Plaso (.plaso)
| |
v v
CSV/JSONL --> Importador Timesketch --> Índice OpenSearch
|
v
Interface Web Timesketch
(Pesquisar, Analisar, História)
Implantação
Implantação Docker (Recomendada)
# Clonar repositório Timesketch
git clone https://github.com/google/timesketch.git
cd timesketch
# Executar script auxiliar de implantação
cd docker
sudo docker compose up -d
# Acesso padrão: https://localhost:443
# Credenciais de administrador geradas durante a primeira execução
Requisitos de Sistema
- Mínimo 8 GB de RAM (16+ GB recomendado para investigações grandes)
- Mínimo 4 núcleos de CPU
- Armazenamento SSD para índices do OpenSearch
- Docker e Docker Compose instalados
Métodos de Ingestão de Dados
Método 1: Integração com Plaso (Abrangente)
# Processar imagem de disco com log2timeline
log2timeline.py --storage-file evidencia.plaso /caminho/para/imagem/disco
# Processar logs de eventos do Windows
log2timeline.py --parsers winevtx --storage-file windows_eventos.plaso /caminho/para/evtx/
# Processar múltiplas fontes de evidência
log2timeline.py --parsers "winevtx,prefetch,amcache,shimcache,userassist" \
--storage-file analise_completa.plaso /caminho/para/imagem/montada/
# Importar arquivo Plaso no Timesketch
timesketch_importer -s "Caso-2025-001" -t "Endpoint-WKS01" evidencia.plaso
Método 2: Importação CSV (Ingestão Rápida)
message,datetime,timestamp_desc,source,hostname
"Login de usuário detectado","2025-01-15T08:30:00Z","Evento Registrado","Log de Segurança","DC01"
"Execução do PowerShell","2025-01-15T08:31:15Z","Evento Registrado","PowerShell","WKS042"
# Importar CSV diretamente
timesketch_importer -s "Caso-2025-001" -t "Triagem-Rápida" events.csv
Método 3: Importação JSONL (Dados Estruturados)
{"message": "Logon suspeito de 10.1.2.3", "datetime": "2025-01-15T08:30:00Z", "timestamp_desc": "Evento Registrado", "source_short": "Segurança", "hostname": "DC01"}
Método 4: Integração de Regras Sigma
# Enviar regras Sigma para detecção automatizada
timesketch_importer --sigma-rules /caminho/para/regras/sigma/
Fluxo de Análise
Etapa 1: Criar Esboço de Investigação
1. Faça login na interface web do Timesketch
2. Crie um novo esboço (caso de investigação)
3. Adicione linhas do tempo relevantes ao esboço
4. Defina a descrição e as tags do esboço
Etapa 2: Executar Analisadores Integrados
O Timesketch inclui analisadores que identificam automaticamente:
- Analisador de Pesquisa do Navegador: Extrai consultas de pesquisa do histórico do navegador
- Analisador de Cadeia de Eventos: Vincula eventos relacionados (download -> execução)
- Analisador de Domínio: Extrai e categoriza nomes de domínio
- Analisador de Extração de Recursos: Identifica IPs, URLs, hashes
- Analisador de Geolocalização: Mapeia eventos para localizações geográficas
- Pontuação de Similaridade: Encontra eventos semelhantes entre linhas do tempo
- Analisador Sigma: Corresponde eventos a regras de detecção Sigma
- Localizador de Contas: Identifica padrões de atividade de contas de usuário
- Marcador: Aplica rótulos com base em regras predefinidas
Etapa 3: Pesquisar e Filtrar
# Exemplos de pesquisa na linguagem de consulta do Timesketch
# Encontrar todos os eventos relacionados a um usuário específico
source_short:Security AND message:"joao.admin"
# Encontrar eventos de execução do PowerShell
data_type:"windows:evtx:record" AND event_identifier:4104
# Encontrar indicadores de movimento lateral
source_short:Security AND event_identifier:4624 AND xml_string:"LogonType\">3"
# Encontrar eventos dentro de um intervalo de tempo específico
datetime:[2025-01-15T00:00:00 TO 2025-01-15T23:59:59]
# Encontrar eventos de criação de arquivo
data_type:"fs:stat" AND timestamp_desc:"Creation Time"
# Pesquisar com tags
tag:"suspeito" OR tag:"movimento_lateral"
Etapa 4: Construir História de Investigação
1. Crie uma nova história dentro do esboço
2. Adicione visualizações de pesquisa que suportem cada descoberta
3. Anote eventos-chave com notas do investigador
4. Vincule eventos a técnicas do MITRE ATT&CK
5. Documente a narrativa do ataque cronologicamente
6. Exporte a história para inclusão no relatório de incidente
Recursos Avançados
Investigação Colaborativa
- Vários analistas trabalham no mesmo esboço simultaneamente
- Comentários e anotações persistem nos eventos
- Pesquisas salvas compartilhadas pela equipe
- Histórias de investigação documentam descobertas no contexto
Automação via API
from timesketch_api_client import config
from timesketch_api_client import client as ts_client
# Conectar ao Timesketch
ts = ts_client.TimesketchApi(
host_uri="https://timesketch.local",
username="analista",
password="senha"
)
# Obter esboço
sketch = ts.get_sketch(1)
# Pesquisar eventos
search = sketch.explore(
query_string='event_identifier:4624 AND LogonType:3',
return_fields='datetime,message,hostname,source_short'
)
# Adicionar tags a eventos
for event in search.get('objects', []):
sketch.tag_event(event['_id'], ['movimento_lateral'])
Integração com Dissect
# Usar Dissect para análise mais rápida de artefatos (alternativa ao Plaso)
target-query -f timesketch://timesketch.local/caso-001 \
targets/hostname/ -q "windows.evtx" --limit 0
Principais Fontes de Dados para Construção de Linha do Tempo
| Fonte | Analisador | Valor de Evidência |
|---|---|---|
| Logs de Eventos do Windows (.evtx) | winevtx | Autenticação, execução de processos, serviços |
| Arquivos Prefetch | prefetch | Histórico de execução de programas |
| MFT ($MFT) | mft | Atividade do sistema de arquivos |
| Hives do Registro | winreg | Configuração do sistema, persistência |
| Histórico do Navegador | chrome/firefox | Atividade na web, downloads |
| Syslog | syslog | Eventos de dispositivos Linux/rede |
| Logs CloudTrail | jsonl | Atividade da API AWS |
| Logs de Atividade do Azure | jsonl | Operações de recursos do Azure |
| Logs de Firewall | csv/jsonl | Conexões de rede |
| Logs de Proxy | csv/jsonl | Tráfego HTTP/HTTPS |
Mapeamento MITRE ATT&CK
| Técnica | Indicadores na Linha do Tempo |
|---|---|
| Acesso Inicial (TA0001) | Primeiro evento malicioso, recebimento de e-mail de phishing |
| Execução (T1059) | Eventos PowerShell/CMD, criação de processo |
| Persistência (TA0003) | Modificações no registro, tarefas agendadas, serviços |
| Movimento Lateral (TA0008) | Logons remotos, conexões SMB, sessões RDP |
| Exfiltração (TA0010) | Grandes transferências de dados, uploads para armazenamento em nuvem |