
Crow-Eye v0.13.0
Motor de forense digital para Windows de código aberto que adquire, processa e correlaciona artefatos (MFT, USN, Registry, etc.) para reconstruir linhas do tempo com análise assistida por IA e selagem de evidências com padrão judicial.
Crow-Eye — Motor de Forense para Windows
Uma máquina do tempo forense para Windows.
O Crow-Eye não apenas detecta — ele reconstrói o que realmente aconteceu na linha do tempo, desde a aquisição até um veredito rastreável até os seus registros de origem.
Índice
- Visão Geral
- ✨ Destaques
- 👥 Para Quem é o Crow-Eye
- 🧭 Subsistemas de Relance
- 🏗️ Arquitetura
- 📥 Download e Instalação
- 🚀 Início Rápido
- 📂 Artefatos Suportados
- 🔧 Modos de Análise
- 🧠 Análise de Comportamento do Usuário (UBA)
- 🧩 Motor de Correlação
- 👁️ Eye — O Assistente de IA Forense
- 📖 Eye-Describe — Base de Conhecimento de Artefatos em Nível de Byte
- 🧪 Qualidade e Validação
- 🔬 Plataforma de Pesquisa
- 🛠️ Notas Técnicas
- 📸 Capturas de Tela
- 🚧 Roteiro
- 📚 Documentação
- 🤝 Contribuindo
- 🌐 Site e Comunidade
- 📄 Licença
- 📝 Citando o Crow-Eye
- 💖 Suporte
- Créditos
Visão Geral
O Crow-Eye é um motor de forense para Windows de código aberto (GPL-3.0) que unifica aquisição, análise, verificação, inteligência e IA. A maioria das ferramentas de segurança pergunta "isto é mau?" e descarta tudo o que parece legítimo. O Crow-Eye faz uma pergunta diferente: "o que aconteceu?" Ele correlaciona toda a atividade — suspeita ou não — e reconstrói a sequência real de eventos num sistema, para que a verdade de uma investigação seja reconstruída a partir de evidências em vez de adivinhada a partir de alertas.
Esse design centrado na reconstrução é exatamente o que é preciso para caçar ameaças APT e de estados-nação: adversários sofisticados vivem dentro de ferramentas legítimas (powershell.exe, PsExec, certutil) e na sequência de ações — invisíveis para ferramentas que descartam tudo o que parece normal. Como o Crow-Eye nunca descarta nada e raciocina sobre artefatos de execução (que sobrevivem à adulteração de logs e à anti-forense), o ataque não consegue se esconder. O mesmo motor continua acessível para o trabalho diário de DFIR e para não especialistas que simplesmente querem saber o que aconteceu num computador.
- 🕰️ Reconstrua, não apenas detecte — reconstrua a linha do tempo do que realmente ocorreu.
- 🖥️ Multiplataforma — análise completa ao vivo + offline em Windows; análise offline e análise de imagens forenses em Linux (os analisadores ao vivo são exclusivos do Windows).
- 🔒 Privado por conceção — 0 ms de dados enviados para fora do dispositivo; o assistente de IA Eye pode funcionar totalmente isolado (air-gapped).
- 🧾 Nível judicial — as evidências são seladas criptograficamente e cada passo é auditável.
- 📦 Versão atual: 0.13.0 · Motor de Correlação: 1.7.0 · Licença: GPL-3.0.
✨ Destaques
- Reconstrução em vez de deteção. Correlaciona cada artefato numa história única e navegável por entidade, em vez de uma pilha de alertas.
- Integrado de ponta a ponta — aquisição → correlação → linha do tempo → análise comportamental → IA → memória de caso selada: um pipeline completo que nenhuma ferramenta estabelecida cobre.
- Profundo em artefatos, não raso em logs. Prefetch, Amcache, ShimCache, SRUM, MFT, USN, LNK/JumpLists e mais sobrevivem à limpeza de logs e aos truques de "living-off-the-land" que cegam ferramentas baseadas apenas em logs.
- O assistente de IA Eye — investigação forense em linguagem natural com uma cadeia de custódia auditável e à prova de adulteração, executável na nuvem, num servidor privado ou totalmente offline.
- Análise de Comportamento do Usuário (UBA) — transforma artefatos brutos numa história de atividade em inglês simples, legível por RH/examinadores.
- Gratuito e de código aberto (GPL-3.0) — auditável por qualquer pessoa, com um esforço ativo de pesquisa e documentação.
👥 Para Quem é o Crow-Eye
O Crow-Eye é usado em fluxos de trabalho muito diferentes. Cada um entra no motor por uma porta diferente:
| Você é | Sua entrada típica | Por onde começar |
|---|---|---|
| IR corporativo / MSSP / MDR | Coletas direcionadas de Velociraptor, KAPE ou coleta nativa de EDR | Importador Offline → Motor de Correlação → UBA |
| Aplicação da lei / laboratórios forenses | Imagens forenses completas (E01, VHDX, VMDK, Raw) com requisitos de cadeia de custódia | Análise de imagens → Motor de Correlação → Mapa Narrativo |
| Segurança interna / investigações de ameaça interna e RH | Sistemas ao vivo ou artefatos coletados | Análise ao vivo → história de atividade do UBA |
| Estudantes, educadores e pesquisadores | Imagens de exemplo e dados de laboratório | Eye-Describe → Início Rápido |
Qualquer coletor funciona. O Crow-Eye não exige a sua própria ferramenta de aquisição. Aponte o Importador Offline para uma pasta de artefatos brutos produzidos por Velociraptor, KAPE, um pacote de coleta de EDR ou qualquer outro coletor — ele indexa os artefatos suportados e executa os analisadores offline sobre eles. Separadamente, a saída de Plaso, Autopsy, Volatility ou qualquer outra ferramenta pode ser trazida como CSV, JSON ou SQLite via Importar Evidências e correlacionada juntamente com artefatos nativos.
🧭 Subsistemas de Relance
O Crow-Eye é construído como um ciclo integrado — cada etapa alimenta a seguinte, do disco bruto a um veredito defensável.
| Subsistema | O que faz | Etapa |
|---|---|---|
| Crow-Claw | Aquisição de alta velocidade de sistemas ao vivo e imagens de máquinas mortas. | Aquisição |
| Importador Offline | SCAN → COLLECT → PARSE de artefatos de qualquer fonte para a base de dados do caso. | Aquisição |
| Motor de Correlação | Reconstrução de motor duplo (Identidade + Janela de Tempo) via Feathers · Wings · Engines · Pipelines. | Análise |
| Linha do Tempo Interativa | Linha do tempo com fios de identidade e rastreável em tribunal (vistas de Mapa de Calor / Semana / Dia), lida diretamente das bases de dados do caso. | Verificação |
| Análise de Comportamento do Usuário (UBA) | História de atividade orientada por regras, em inglês simples, de "o que este usuário fez". | Inteligência |
| Eye — Assistente de IA | Investigação em linguagem natural + a memória de caso selada do Mapa Narrativo. | IA |
| Forense de Armazenamento | Análise de disco físico e partições (deteção de ocultos/não montados, avisos de inicialização). | Análise |
🏗️ Arquitetura
O Crow-Eye é um pipeline integrado, não um saco de analisadores. As evidências fluem numa única direção, e cada etapa mantém o seu vínculo de volta ao registro de origem.```mermaid %%{init: {"flowchart": {"nodeSpacing": 60, "rankSpacing": 70, "curve": "basis"}, "themeVariables": {"fontSize": "17px", "fontFamily": "system-ui, sans-serif"}} }%% flowchart TB
%% ═══════════ 1. EVIDENCE SOURCE ═══════════
S1["Live Windows system"]
S2["Forensic image
E01 · VHDX · VMDK · Raw"]
S3["Collected artifacts
Velociraptor · KAPE · EDR"]
S4["Third-party output
Plaso · Autopsy · Volatility"]
%% ═══════════ 2. INGEST ═══════════
I1["CROW-CLAW
live acquisition"]
I2["IMAGE PARSING
direct, no mounting"]
I3["OFFLINE IMPORTER
SCAN → COLLECT → PARSE"]
I4["IMPORT EVIDENCE
CSV · JSON · SQLite"]
REPLAY["DIRTY-HIVE REPLAY<br/>transaction logs applied to a working copy"]
PARSERS["ARTIFACT PARSERS<br/>18 artifact types · live and offline"]
%% ═══════════ 3. CASE ═══════════
CASE[("CASE DATABASES
Target_Artifacts/
Imported_Evidence/")]
%% ═══════════ 4. ANALYSIS ═══════════
TL["INTERACTIVE TIMELINE
heat map · week · day"]
UB["USER BEHAVIOR ANALYTICS
40 detections · plain-English story"]
CE["CORRELATION ENGINE
Feathers → Wings → Engines → Pipelines"]
RES[("Correlation results")]
DL["DYNAMIC LINKING
non-destructive enrichment overlay"]
INTEL[("Crow_Intelligence.db
SID · MAC · hash · GUID → name")]
%% ═══════════ 5. AI LAYER ═══════════
EYE["EYE
GEP-governed AI assistant"]
NM["NARRATIVE MAP
hash-chained case memory"]
COMP["COMPLIANCE
live GEP status · EvidenceSeal audit"]
OUT["LIVING REPORT<br/>CSV · JSON · HTML"]
%% ═══════════ FLOW ═══════════ S1 --> I1 S2 --> I2 S3 --> I3 S4 --> I4
I1 --> PARSERS
I2 --> PARSERS
I3 --> PARSERS
PARSERS -- "every registry hive,<br/>evidence never written to" --> REPLAY
REPLAY -- "the state Windows<br/>had not finished writing" --> PARSERS
PARSERS -- "parsed artifacts" --> CASE
I4 -- "verbatim copy or<br/>converted to feather" --> CASE
CASE -- "read-only" --> TL
CASE -- "read-only" --> UB
CASE -- "read-only" --> CE
CASE -- "read-only" --> DL
CE --> RES
DL --> INTEL
CASE -- "read-only queries" --> EYE
RES -. "queried on demand" .-> EYE
EYE <== "verdict · narrative · evidence" ==> NM
EYE -- "audited by" --> COMP
EYE -- "report_* tools" --> OUT
%% ═══════════ STYLE ═══════════ classDef src fill:#334155,stroke:#94a3b8,stroke-width:2px,color:#f1f5f9 classDef ing fill:#0f766e,stroke:#2dd4bf,stroke-width:2px,color:#f0fdfa classDef store fill:#92400e,stroke:#fbbf24,stroke-width:3px,color:#fffbeb classDef ana fill:#1e40af,stroke:#60a5fa,stroke-width:2px,color:#eff6ff classDef ai fill:#6b21a8,stroke:#c084fc,stroke-width:2px,color:#faf5ff classDef out fill:#166534,stroke:#4ade80,stroke-width:2px,color:#f0fdf4
class S1,S2,S3,S4 src
class I1,I2,I3,I4,PARSERS ing
class CASE,RES,INTEL store
class TL,UB,CE,DL ana
class EYE,NM,COMP ai
class OUT out
linkStyle default stroke-width:2px
*Fonte de evidência → Ingestão → Bancos de dados do caso → Análise → Camada de IA → Relatório*
**Como ler:**
| Etapa | O que importa |
|---|---|
| ① → ② | **Quatro portas independentes para um caso.** Você nunca precisa do coletor próprio do Crow-Eye — uma pasta do Velociraptor, KAPE ou um pacote de EDR passa pelo Importador Offline, e CSV/JSON/SQLite de terceiros passa pelo Importar Evidência. |
| ② → ③ | Tudo converge para um único lugar: **os bancos de dados do caso**. Artefatos analisados vão para `Target_Artifacts/`; evidências importadas de terceiros vão para `Imported_Evidence/` e são descobertas automaticamente. |
| ③ → ④ | **Os três caminhos de análise são independentes entre si.** A Linha do Tempo e a UBA leem os bancos de dados do caso diretamente — nenhuma exige uma execução de correlação. O Mecanismo de Correlação é uma camada *adicional*, não um pré-requisito. |
| ③ → ④ | **A Vinculação Dinâmica fica ao lado da Linha do Tempo e da UBA** — um quarto leitor independente dos bancos de dados do caso (não tem relação com a visualização da Linha do Tempo). Ela reúne mapeamentos de identidade (SID → nome de usuário, MAC → rede, hash/GUID → aplicativo) em um `Crow_Intelligence.db` por caso e, em seguida, sobrepõe esse contexto **inline nas tabelas de dados de artefatos** por meio de `ATTACH` + `LEFT JOIN` não destrutivos. Ela muda como os registros *são lidos*, nunca a evidência. |
| ④ → ⑤ | O Eye consulta os bancos de dados do caso diretamente e pode buscar resultados de correlação **sob demanda**. Ele nunca toca na evidência em si — ele emite chamadas de ferramenta que o Crow-Eye executa e registra. |
| ⑤ → Relatório | O **Relatório Vivo é construído apenas pelo Eye**, por meio de suas ferramentas `report_*`. A Linha do Tempo e a UBA são superfícies de análise — elas não escrevem no relatório. Descobertas em nível de caso ainda podem ser exportadas separadamente via [Pesquisar e Exportar](#-pesquisar-e-exportar). |
| ⑤ ↔ | O **Mapa Narrativo é bidirecional**: o Eye escreve nele, você escreve nele, e seu conteúdo é injetado no prompt do Eye a cada turno. É a memória, e você pode comandá-lo. |
| ⑤ ⟳ | A página de **Conformidade audita o Eye.** Cada chamada de ferramenta feita pelo Eye é ancorada à cadeia de hash **EvidenceSeal**; a página renderiza o status **GEP** por regra em tempo real (10 princípios) verificado a partir dessa cadeia e de `EYE_Logs/`, exportável como `audit_trail.json`. |
**Etapas independentes.** A Linha do Tempo e a UBA leem os bancos de dados de artefatos do caso **diretamente** — nenhuma exige uma execução de correlação, e a Linha do Tempo não depende do Mecanismo de Correlação (ela aplica seu próprio agrupamento temporal leve). A correlação é uma camada de análise adicional cujos resultados o Eye pode consultar.
**Somente leitura por design.** A análise grava no banco de dados do caso; toda etapa posterior (UBA, Linha do Tempo, visualizadores de correlação, Eye) abre esses bancos de dados **somente leitura**. A evidência original nunca é modificada — a [Vinculação Dinâmica](#-modos-de-análise) lê os bancos de dados do caso para construir um `Crow_Intelligence.db` por caso com mapeamentos de identidade e enriquece as tabelas de dados de artefatos inline por meio de consultas `ATTACH` + `LEFT JOIN` não destrutivas, em vez de reescrever linhas.
**Governado por design.** Cada ação que o Eye toma é ancorada à cadeia de hash **EvidenceSeal** à prova de adulteração, e a página de **Conformidade** verifica continuamente o Eye contra o [Protocolo Ghassan Elsman (GEP)](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md) — status por regra em tempo real, exportável para `EYE_Logs/audit_trail.json`.
## 📥 Baixar e Instalar
> **Recomendado:** obtenha o build Windows empacotado (**instalador MSI / EXE**) no site oficial — sem configuração de Python, funciona imediatamente.
### ▶️ [Baixar Crow-Eye para Windows → crow-eye.com/download](https://crow-eye.com/download)
O **build MSI/EXE instalado é a forma recomendada de executar o Crow-Eye**, e é a nossa **maior prioridade para atualizações**:
- 🛡️ **Correções mais rápidas.** Quando um problema é encontrado ou um bug é relatado, lançamos um EXE atualizado **o mais rápido possível** — o build empacotado é onde as correções chegam primeiro.
- 🔄 **Atualização automática integrada.** No aplicativo instalado, abra **Configurações → Atualizações** para **verificar atualizações e instalá-las automaticamente** — sem reinstalação manual.
- 📦 **Zero configuração.** Sem necessidade de instalar Python, Node ou dependências.
> Prefere executar a partir do código-fonte? Veja **[Início Rápido](#-início-rápido)** abaixo. O build a partir do código-fonte é destinado a colaboradores e **não inclui o atualizador automático** — use o MSI/EXE para atualizações automáticas.
## 🚀 Início Rápido
### Opção A — Build instalado (recomendado)
Baixe o **MSI/EXE** em [crow-eye.com/download](https://crow-eye.com/download), instale e inicie o **Crow-Eye** como Administrador. Crie um caso e comece a analisar.
### Opção B — Executar a partir do código-fonte (desenvolvedores)
> Para colaboradores e usuários avançados. Este caminho **não inclui o atualizador automático** — use o MSI/EXE para atualizações automáticas.
**Requisitos** (instalados automaticamente na primeira execução):
- Python 3.12.4
- **Node.js e npm** — necessários para a **Visualização da Linha do Tempo**
- Pacotes principais: PyQt5, python-registry, pywin32, pandas, streamlit, altair, olefile, windowsprefetch, sqlite3, colorama, setuptools
**Hardware recomendado**
| | Mínimo | Recomendado para casos grandes |
|---|---|---|
| **RAM** | 8 GB | 16 GB+ (conjuntos de MFT/USN com milhões de registros) |
| **Disco** | 5 GB livres | Espaço livre ≥ 2× o tamanho da evidência sendo analisada |
| **CPU** | 4 núcleos | 8+ núcleos |
| **SO** | Windows 10/11 (completo) · Linux (análise offline e de imagens) | — |
> A correlação faz streaming em memória constante para conjuntos de dados muito grandes, então a RAM raramente é o limite rígido — a taxa de transferência do disco e o espaço livre geralmente são.
**Iniciar** (execute como Administrador para que o Crow-Eye possa acessar artefatos do sistema):```bash
python "Crow Eye.py"
A interface principal abre, você cria um caso e toda a saída da análise é organizada sob esse diretório de caso para revisão e relatórios posteriores.
🖥️ Nota multiplataforma: no Linux, os parsers ao vivo são desativados automaticamente e o Crow-Eye executa em modo offline / imagem forense. A aquisição ao vivo completa é exclusiva do Windows.
📂 Artefatos Suportados
O Crow-Eye analisa um amplo conjunto de artefatos de execução, sistema de arquivos e atividade do usuário do Windows, tanto de um sistema ao vivo quanto de fontes offline (pastas coletadas ou imagens forenses).
| Artefato | Ao vivo | Offline | Dados Extraídos |
|---|---|---|---|
| Prefetch | ✅ | ✅ | Histórico de execução, contagem de execuções, carimbos de data/hora por execução |
| Registry (AutoRun, UserAssist, BAM/DAM, ShimCache, redes, fuso horário e mais de 80 chaves no total) | ✅ | ✅ | Persistência, uso de programas, atividade em segundo plano, configuração de rede, estado de aprovação de inicialização |
| Registry — chaves e valores excluídos | ✅ | ✅ | Registros recuperados do espaço livre do hive, marcados como tal (record_state) |
| Registry — nomes de classe e segurança de chaves | ✅ | ✅ | Nomes de classe nk (onde Control\Lsa mantém a chave de inicialização), proprietário/grupo/DACL de descritores de segurança compartilhados |
| Registry — logs de transação | ✅ | ✅ | .LOG1/.LOG2 reproduzidos em uma cópia de trabalho, de modo que um hive sujo seja lido no estado em que a máquina estava |
| Amcache (29 tabelas) | ✅ | ✅ | Execução de aplicativos, hora de instalação, SHA-1, caminhos de arquivo, drivers, dispositivos PnP, censo de dispositivos |
| ShimCache | ✅ | ✅ | Aplicativos executados, última modificação, tamanho e o blob final decodificado (tipo de máquina PE, sinalizador de binário do SO) |
| MUICache | ✅ | ✅ | Presença de programas e nomes de exibição |
| Jump Lists e LNK | ✅ | ✅ | Acesso a arquivos, caminhos, carimbos de data/hora, metadados |
| ShellBags | ✅ | ✅ | Histórico de acesso a pastas e navegação |
| MRU e RecentDocs / Caminhos digitados | ✅ | ✅ | Histórico de Abrir/Salvar, arquivos recentes, locais digitados |
| Histórico de navegador / sites | ✅ | ✅ | Sites visitados e horários de acesso |
| Logs de Eventos (Sistema / Segurança / Aplicação) | ✅ | ✅ | Logons, criação de processos (4688), alterações de contas e serviços, limpeza de logs |
| MFT | ✅ | ✅ | Metadados de arquivos, arquivos excluídos, carimbos de data/hora (NTFS, Win 7/10/11) |
| USN Journal | ✅ | ✅ | Criar/modificar/excluir/renomear arquivos com histórico completo de nomes |
| Lixeira | ✅ | ✅ | Nomes de arquivos excluídos, caminhos, hora da exclusão, tamanho |
| SRUM | ✅ | ✅ | Uso de recursos/rede/energia por aplicativo, dados transferidos por aplicativo |
| USB e dispositivos conectados | ✅ | ✅ | Conexão e presença de dispositivos |
| Lista de redes e conexões | ✅ | ✅ | Redes conhecidas e atividade de conexão |
| AutoStart / Serviços e Drivers | ✅ | ✅ | Persistência, instalações de serviços e alterações de estado |
| Discos e Partições (Forense de Armazenamento) | ✅ | ✅ | Árvore de discos físicos, layout de partições, detecção de ocultas/desmontadas |
Jump Lists e LNK são analisados pelo parser LNK / Jump List dedicado do próprio Crow-Eye — não por um módulo de terceiros.
Registry personalizado / arquivos bloqueados: o Windows bloqueia hives de registro ao vivo (
NTUSER.DAT,SOFTWARE,SYSTEM) durante a operação. Para análise personalizada de um sistema ao vivo, inicialize a partir de mídia externa (WinPE/Live CD), use ferramentas de aquisição forense ou analise uma imagem de disco.
Detalhes por Artefato
- Jump Lists e LNK — analisados automaticamente a partir de locais padrão do sistema pelo parser dedicado do próprio Crow-Eye (acesso a arquivos, caminhos de destino, carimbos de data/hora e metadados).
- Registry — analisa automaticamente os hives do sistema. Para análise personalizada de registro, copie os arquivos de hive para
CrowEye/Artifacts Collectors/Target Artifacts(ou a pastaregistry/do seu caso):NTUSER.DATdeC:\Users\<Username>\NTUSER.DATSOFTWAREdeC:\Windows\System32\config\SOFTWARESYSTEMdeC:\Windows\System32\config\SYSTEM- O Windows os bloqueia durante a operação — para um sistema ao vivo, inicialize a partir de mídia externa (WinPE/Live CD), use ferramentas de aquisição forense ou analise uma imagem de disco.
- Prefetch — analisa
C:\Windows\Prefetch, extraindo histórico de execução e metadados forenses (incluindo carimbos de data/hora por execução). - Logs de Eventos — análise automática dos logs de Sistema/Segurança/Aplicação em um banco de dados para análise abrangente.
- Profundidade do Registry (0.13.0) — o parser lê o arquivo do hive, bem como o registro ao vivo, de modo que alcança o que o
winregnega até mesmo a um administrador (cada subchavePropertiesde dispositivo e, com ela, os horários de conexão USB), percorre o alocador do hive para recuperar chaves e valores excluídos e lê nomes de classe e descritores de segurança de chaves. Dezenove chaves que continham dados reais e não eram lidas por nada agora são analisadas — incluindo o StartupApproved do Explorer, que indica se cada entrada de inicialização automática tem permissão real para ser executada. - ShellBags — revela o histórico de acesso a pastas e os padrões de navegação do usuário.
- Lixeira — analisa
$RECYCLE.BINpara recuperar nomes de arquivos excluídos, caminhos originais, horários de exclusão e tamanhos (sistemas ao vivo e imagens de disco). - MFT — analisa a Master File Table para metadados de arquivos, atributos, carimbos de data/hora e informações de arquivos excluídos (NTFS, Windows 7/10/11).
- USN Journal — rastreia eventos de criar/modificar/excluir/renomear arquivos com carimbos de data/hora e histórico completo de nomes, para reconstrução de linha do tempo.
- SRUM — visualiza o uso de recursos por aplicativo (barras de duração para tempo em primeiro/segundo plano) e a atividade de rede por aplicação.
- Analisador de Forense de Armazenamento — visão em árvore completa de cada disco físico e suas partições; tipos de partição codificados por cores (EFI, Linux, Recovery, Ocultas/swap, …); avisos para USBs inicializáveis, raízes Linux ocultas e Intel Rapid Start; fallback de varredura mágica de setores brutos.
🔧 Modos de Análise
🦅 Aquisição Crow-Claw
O Crow-Claw é o mecanismo de aquisição especializado do Crow-Eye para coletar e preservar artefatos de sistemas ao vivo ou imagens montadas.
- Coleta seletiva — escolha categorias específicas de artefatos (Registry, Logs de Eventos, Sistema de Arquivos) ou colete tudo.
- Varredura profunda — percorre diretórios e subdiretórios para encontrar vestígios forenses.
- Preservação segura — os artefatos são organizados em um diretório de caso estruturado que mantém a integridade forense.
🔍 Análise Offline (Importador Offline)
Analise artefatos coletados de qualquer fonte sem uma conexão ao vivo com o alvo — três operações claras:
- SCAN (descoberta) — percorre a fonte e indexa cada artefato suportado por padrão de nome de arquivo e extensão (rápido, somente leitura; nenhum conteúdo de arquivo é lido e nenhuma verificação de byte mágico é realizada nesta etapa). Nada é movido.
- COLLECT (aquisição) — copia fisicamente os arquivos identificados para a pasta
live_acquisitiondo caso, organizados por tipo. - PARSE (granular) — revisa itens identificados por tipo (AMCACHE, EVTX, PREFETCH, …) e analisa arquivos selecionados (ou todos) no banco de dados forense.
| 🔍 SCAN | 📦 COLLECT | |
|---|---|---|
| Ação | Descoberta — identifica artefatos em seu local original | Aquisição — copia e preserva artefatos na pasta do caso |
| Impacto de E/S | Somente leitura; nenhum arquivo movido | Leitura + escrita; duplica fisicamente artefatos |
| Organização | Atualiza metadados .artifact_scan_index.json | Organiza arquivos em pastas específicas por tipo |
| Caso de uso | Triagem rápida para ver se a fonte tem dados relevantes | Preservação forense completa para análise de longo prazo |
A análise é tratada pelos parsers offline dedicados do Crow-Eye — a mesma lógica de artefatos do modo ao vivo, operando em arquivos coletados: Prefetch, Registry, MFT, USN (mais o correlacionador MFT/USN), AmCache, ShimCache, SRUM, Logs de Eventos, LNK/JumpLists e Lixeira.
📎 Importar Evidências (dados de terceiros)
Além de artefatos brutos, o Crow-Eye pode receber saída forense de terceiros diretamente em um caso — Plaso, Autopsy, Volatility ou qualquer exportação personalizada — e torná-la utilizável pelo Eye e pela Linha do Tempo sem exigir uma execução de correlação primeiro.
| Entrada | O que acontece |
|---|---|
.db / .sqlite | Validado e copiado verbatim para a pasta Imported_Evidence/ do caso. O esquema é deixado intacto. |
.csv / .json | Convertido automaticamente em um banco de dados SQLite em formato feather por meio do FeatherWriter canônico, carregando feather_metadata que declara o carimbo de data/hora primário da tabela — detectado automaticamente a partir dos nomes das colunas — exatamente como um feather coletado nativamente. |
Como o gerenciador de banco de dados do caso descobre automaticamente qualquer .db sob a árvore do caso, as evidências importadas ficam imediatamente disponíveis para:
- O Eye — consultável em linguagem natural junto com artefatos nativos (o manifesto de esquema é atualizado na importação).
- A Linha do Tempo Interativa — servida como o tipo de artefato
imported, com filtragem funcional de janela de tempo e limites de tempo. - O Mecanismo de Correlação — utilizável como um Feather para correlação entre ferramentas contra artefatos nativos.
O importador usa apenas a biblioteca padrão (sqlite3 / csv / json) e é executado em um worker em segundo plano, de modo que importações grandes não bloqueiam a interface.
⚡ Análise ao Vivo
Analisa artefatos diretamente do sistema Windows em execução, extraindo-os automaticamente de seus locais padrão para análise forense em tempo real.
🗂️ Gerenciamento de Casos
Toda investigação é um caso: um diretório autocontido que organiza bancos de dados de artefatos e saída de análise. O Crow-Eye rastreia casos recentes (com favoritos, tags e status), valida um caso ao abrir, grava configuração atomicamente (à prova de falhas) e suporta importação/exportação de configuração de caso e modelos com mapeamentos semânticos prontos.
🕰️ Visualização Interativa da Linha do Tempo
Correlacione eventos entre artefatos em uma grade temporal unificada, com visualizações de Mapa de Calor, Semana e Dia — uma história rastreável em tribunal e encadeada por identidade, em vez de uma super-linha do tempo plana.
A Linha do Tempo lê os bancos de dados de artefatos analisados do caso diretamente e é independente do Mecanismo de Correlação — você não precisa construir feathers, criar wings ou executar um pipeline para usá-la. Ela aplica seu próprio agrupamento temporal leve (correlação por carimbo de data/hora exato e janela de tempo, agrupamento por aplicação, caminho ou usuário) para relacionar eventos na grade. Evidências trazidas por meio de Importar Evidências também aparecem na linha do tempo como o tipo de artefato imported, com filtragem funcional de janela de tempo e limites de tempo.
🔎 Pesquisa e Exportação
Pesquisa de texto completo em todo o banco de dados do caso, além de exportação para CSV (planilhas), JSON (integração com outras ferramentas) e relatórios HTML detalhados (dossiês completos consolidando todos os artefatos vinculados a um termo de pesquisa).
🔗 Vinculação Dinâmica
Traduza identificadores técnicos brutos — SIDs, endereços MAC, hashes — em contexto legível por humanos em tempo real. A Vinculação Dinâmica enriquece a visualização usando consultas SQL ATTACH não destrutivas, de modo que a evidência original nunca é modificada, e pode ingerir feeds de IOC em massa para sinalizar indicadores conhecidamente maliciosos inline.
🧠 Análise de Comportamento do Usuário (UBA)
Transforme artefatos brutos em uma história de atividade em inglês simples — um relato legível por gerentes/RH do que um usuário e seus aplicativos realmente fizeram, com cada afirmação rastreável até a evidência de origem exata.
A Análise de Comportamento do Usuário (UBA) lê os bancos de dados de artefatos analisados na pasta Target_Artifacts/ do seu caso (estritamente somente leitura) e os reproduz por meio de um conjunto de regras declarativas para produzir uma História de Atividade clara e cronológica. Abra-a pelo botão da barra de ferramentas "User Behavior" ou com Ctrl+Shift+B (um caso deve estar carregado).
- 🧩 40 detecções de comportamento declarativas (
uba/config/behavior_rules.json) — ajustáveis sem código — cada uma classificada por severidade: rotineiro · notável · suspeito · crítico. - 🕵️ Detecta comportamentos que importam: entrada / saída / desbloqueio de sessão, execução · inicialização · instalação de programa, abertura / exclusão / cópia inferida de arquivo, conexão de dispositivo USB, acesso a compartilhamentos de rede, persistência e inicialização automática, uso de credenciais explícitas (
runas), alterações de contas e grupos, alterações de serviços, adulteração do relógio do sistema (suspeito) e limpeza de logs de eventos (crítico). - 🗺️ Três visualizações — um feed de História de Atividade, um mapa de calor de Mapa de Atividade (dia × hora) e um relatório de honestidade "O que podemos ver" que rotula cada detecção como Funcionando / Limitado / Sem dados / Por design para este caso.
- 🔗 Toda atividade é respaldada por evidências. Clique em qualquer item para abrir o registro de origem exato (
database : table : rowid) — nada é afirmado sem uma fonte. - 👤 Atribuição honesta. Os atores são resolvidos como Usuário / Aplicação / Sistema (ou ficam vazios) — a UBA nunca adivinha quem fez o quê.
Cobertura de Detecção
As 40 detecções abrangem quatro classes de severidade e toda a amplitude do conjunto de artefatos analisados:
| Categoria | Detecções incluem |
|---|---|
| Identidade e acesso | Entrada / saída de sessão, desbloqueio de estação de trabalho, logons de área de trabalho remota, logons de administrador, uso de credenciais explícitas (runas), criação e alterações de contas, adições a grupos de administradores |
| Execução | Programas abertos (UserAssist), programas executados (Prefetch, expandido para eventos por execução), criação de processos (4688), presença de programas (ShimCache / AmCache / MUICache), instalações de aplicativos, falhas de aplicativos (de registros 1001 do Log de Eventos de Aplicação) |
| Atividade de arquivos | Abrir / criar / excluir / copiar / renomear arquivos — renomeações mostram o histórico completo de nomes (antigo → … → atual) reconstruído a partir do USN Journal, com resolução de exclusão suave ($R/$I) |
| Navegação | Navegação em pastas (ShellBags), documentos recentes, locais digitados, visitas a sites |
| Dispositivos e rede | Conexão de dispositivo USB, presença de dispositivos, compartilhamentos de rede, conexões de rede, dados transferidos por aplicativo (SRUM) |
| Persistência e sistema | Persistência de inicialização automática (chaves Run + serviços, escalada quando o alvo é executado de um caminho gravável pelo usuário), instalações de serviços e drivers, alterações de estado de serviços, inicialização/desligamento do sistema, alterações de relógio, limpeza de logs de eventos |
Filtros: pesquisa de texto livre · usuário/ator (incluindo "Não atribuído" e uma alternância de sessão conectada) · classe de comportamento (usuário / aplicação / sistema) · severidade · aplicação (seleção múltipla pesquisável em mais de 200 programas) · intervalo de data/hora com predefinições rápidas (todo o tempo / primeiro dia / último dia / última hora de atividade).
Fontes de dados: Logs de Eventos de Segurança, Sistema e Aplicação · USN Journal · MFT · UserAssist · BAM · Prefetch · ShimCache · AmCache · MUICache · ShellBags · LNK / JumpLists · Lixeira · SRUM (aplicação, rede, conectividade) · hives de registro.
Garantias Forenses
- Somente leitura. Os bancos de dados de origem são abertos somente leitura; a análise nunca toca nas evidências.
- Proveniência completa. Todo evento carrega
database → table → rowide abre as linhas de origem reais sob demanda. - A atribuição nunca adivinha. Um evento é atribuído a um Usuário, uma Aplicação, o Sistema — ou fica vazio. Sessões de logon interativas são usadas apenas como rótulos de contexto ("durante a sessão de
<usuário>"), nunca para atribuir uma ação. - Redação honesta. A formulação distingue interação deliberada (UserAssist, SRUM em primeiro plano) de artefatos que um aplicativo também pode gerar (ShellBags, LNK, JumpLists), com ressalvas explícitas mostradas no cartão.
- A ausência é declarada, não implícita. O relatório O que podemos ver rotula cada detecção para este caso específico, de modo que dados ausentes nunca são lidos silenciosamente como "nada aconteceu".
A UBA é correlação e classificação comportamental orientada por regras, não pontuação de anomalia estatística/ML — cada descoberta mapeia para uma regra explícita e auditável. Consulte
RELEASE_NOTES.mdpara o catálogo completo de detecções.
🧩 Mecanismo de Correlação
Mecanismo de Correlação v1.7.0 — o núcleo de reconstrução. Consulte RELEASE_NOTES.md para o histórico de versões.
O Mecanismo de Correlação do Crow-Eye é um sistema de correlação forense de nível de produção. Ele ingere artefatos do Windows de qualquer fonte, os normaliza e revela as relações temporais e de identidade que transformam registros isolados em uma narrativa coerente do que aconteceu em um sistema, quando e quem esteve envolvido. Ele funciona prontamente com regras de correlação integradas (Wings) para as perguntas de investigação mais comuns, permite que analistas criem regras personalizadas sem tocar em código e adia o significado para regras autoráveis e para o investigador — nunca para uma pontuação de caixa-preta.
🎥 Guia do Usuário
Importação Universal de Dados: O Mecanismo de Correlação pode receber saída de qualquer ferramenta forense em formato CSV, JSON ou SQLite e convertê-la em um banco de dados Feather. Isso significa que você pode correlacionar dados de ferramentas de terceiros (Plaso, Autopsy, Volatility etc.) com os artefatos nativos do Crow-Eye, criando uma análise de correlação unificada em todas as suas fontes de dados forenses.
🎯 Precisão e Completude de Evidências
Uma passagem de precisão focada do ciclo 0.11.0, validada de ponta a ponta contra um caso real do Windows com ~700 mil registros e sobreposta a trabalhos anteriores de confiabilidade. Cada correção abaixo é garantida pela suíte de regressão pytest e verificada por um harness de validação holístico; ele exercitou os sete wings padrão que existiam na época — onze são fornecidos hoje. As contagens de correspondência citadas abaixo foram medidas sob as regras daquela versão: 0.13.0 mudou o que conta como correspondência (uma correspondência agora deve abranger mais de um feather) e o que uma pontuação de confiança significa, portanto, trate-as como um registro daquela passagem, e não como números atuais.
O mecanismo de identidade captura todas as evidências
- Corrigido: o mecanismo de identidade iterava apenas a PRIMEIRA linha de cada feather quando um filtro de tempo estava ativo (uma comparação de datetime ciente de fuso horário vs ingênuo gerava
TypeErrore abortava o loop por linha). Os registros vistos saltaram de 3.558 → 745.615 no caso de validação. - Corrigido: os registros de log colapsavam cada evento para o PROVEDOR do evento como identidade (todos os 33.855 registros de SecurityLogs compartilhavam uma identidade). O mapeamento por artefato agora prioriza entidades reais por linha (
User,ComputerName,NewProcessName,TargetUserName) antes dos metadados de canal/provedor. - Corrigido: o mapeamento de campos ciente de artefato nunca era acionado porque os parsers não carimbam uma coluna
artifactem cada linha. O mecanismo agora recorre afeather_metadata.artifact_type, de modo que SecurityLogs / SystemLogs / ApplicationLogs usam sua prioridade de identidade específica do artefato. - Corrigido: strings de espaço reservado se tornavam identidades falsas (
'N/A','Unknown','-', GUIDs nulos agrupavam registros não relacionados). O validador agora rejeita mais de 30 variantes de espaço reservado. - Resultado líquido em uma janela de intervalo completo, medido na época: o wing de Prova de Execução revelou 2.856 correspondências entre feathers (Alta) no mecanismo de identidade e 643 correspondências entre feathers no mecanismo de tempo, com 24–118 correspondências entre feathers por wing nos outros seis wings daquela versão.
Chega de "tudo é Baixo — algo está errado"
- Corrigido: correspondências de feather único eram marcadas como
Alta. Correspondências comfeather_count == 1agora recebemconfidence_category="Baixa - feather único", de modo que a visualização Alta se concentra na correlação real entre feathers. - Corrigido: uma chave composta ciente de caminho estava dividindo a mesma identidade entre feathers (cada feather armazena caminhos de forma diferente, então
chrometinha mais de 10 chaves e nunca correlacionava). A chave agora é apenas por nome — a correlação entre feathers funciona novamente.
Detecção de impersonação por classificação de caminho — após uma correspondência ser formada, o mecanismo classifica o caminho de cada registro como CONFIÁVEL (Program Files, System32, WinSxS, as formas /device/harddiskvolumeN/... do BAM/SRUM, …) ou SUSPEITO (Temp, Downloads, Public, AppData\Local\Temp, Lixeira, raízes removíveis, compartilhamentos de rede). Uma correspondência que abrange ambas as classificações gera impersonation_alert (taxa de ≈0,05%, cada uma um candidato real).Registo honesto de evidências — um registo de descartes por janela com categorias nomeadas (no_identity_field, normalize_failure, below_threshold_skipped, …) mais um resumo por pipeline (registos vistos, alta/baixa confiança emitidos, sem identidade, categorias de descarte, junções timeless-feather). Cada registo ou cai numa correspondência ou numa categoria de descarte nomeada — "nenhuma evidência sobra" é verificável a partir do log. low_confidence_review_mode está ATIVADO por predefinição, pelo que grupos abaixo do limiar se tornam correspondências de Baixa confiança em vez de desaparecerem silenciosamente.
Enriquecimento de identidade timeless-feather — feathers sem carimbos de tempo por linha (AutoStartPrograms, MUICache, SystemServices, TypedPaths) deixam de receber um carimbo de tempo de geração falso em cada linha; em vez disso, após as correspondências temporais se formarem, o motor junta registos correspondentes de cada feather timeless por identidade como evidência suplementar.
Registo de identidade consolidado — config/standard_fields/identities.json é a fonte única de verdade para cada coluna que os motores + Eye devem consultar: 98 categorias, 1.146 sinónimos de colunas (app/processo, ficheiro, hash, utilizador, anfitrião/dispositivo, rede, registo, serviço/tarefa, evento, email, navegador, cloud, internals do Windows, certificado, contentor, objetos de SO). Adicionar um novo sinónimo de coluna é uma edição de JSON, não uma alteração de código.
Correções de falsos positivos de mapeamento semântico — a aplicação de múltiplos indicadores agora é realmente imposta (data-exfiltration-pattern exige ≥2 indicadores); regras AND impossíveis (4625 AND 4624) reescritas como OR; regras de wiper/ferramentas remotas usam regex real em vez de dispararem em cada entrada de Prefetch; regras de atividade de linha de base rebaixadas de high/critical para info/low (a pontuação ponderada da wing escala ameaças reais).
✅ Estado de Produção
O Correlation Engine está pronto para produção e é ativamente utilizado em investigações (Correlation Engine v1.7.0):
- ✅ Motor de Análise por Janela Temporal — pronto para produção, recomendado para análise baseada no tempo (O(N log N))
- ✅ Motor Baseado em Identidade — pronto para produção, recomendado para rastreio de identidade (O(N log N))
- ✅ Feather Builder / FeatherWriter — importa CSV/JSON/SQLite de qualquer ferramenta; agrupamento transacional + metadados de esquema
- ✅ Sistema de Wings e Orquestração de Pipeline — criar/gerir regras de correlação e automatizar fluxos de trabalho
- ✅ Agrupamento de Identidade — unificado entre motor, visualizadores e a fase semântica
- ✅ Registo de Campos Padrão — fonte centralizada de verdade para sinónimos de campos
- ✅ Fan-Out Multi-Timestamp — cada timestamp de lista JSON correlacionado
- 🔄 Correlação Paralela — base implementada; criação de perfis + despacho de process-pool a seguir
- 🔄 Mapeamento Semântico e Pontuação de Correlação — melhorias ativas
Principais Funcionalidades
- 🔄 Arquitetura de Motor Duplo: Escolha entre estratégias de correlação por Análise de Janela Temporal (O(N log N)) e Baseada em Identidade (O(N log N)).
- 📊 Suporte Multi-Artefacto: Correlacione Prefetch, ShimCache, AmCache, Registos de Eventos, ficheiros LNK, Jumplists, MFT, USN, SRUM, Registo, Reciclagem e mais.
- 🔌 Importação Universal: Importe saída CSV/JSON/SQLite de qualquer ferramenta forense e converta para bases de dados Feather.
- 🎯 Agrupamento Inteligente de Identidade: Variantes como
Chrome.exe/chrome.dll/Chrome.EXEcolapsam num único balde; versões e qualificadores arquitetónicos permanecem distintos. - 🕒 Timestamps Tolerantes: FILETIME, ISO 8601, epoch Unix (s/ms/μs),
YYYYMMDD, barras dos EUA e strings anotadas são todos analisados corretamente à primeira tentativa. - 📈 Fan-Out Multi-Timestamp: Listas de timestamps JSON (Prefetch
run_times) expandidas para que cada execução receba o seu próprio evento de correlação. - 🧰 Uma Única Fonte de Verdade: Sinónimos de campos em
config/standard_fields/*.json; metadados por tabela emcorrelation_engine/config/feather_schemas.json— estenda editando JSON, não código. - ⚡ Streaming + Thread-Safe:
query_time_range_itercom memória O(1); caches de feather protegidas por locks; pronto para correlação paralela. - 🔍 Regras Flexíveis: Defina regras de correlação personalizadas (Wings) com parâmetros configuráveis.
- 📋 Diagnóstico Honesto: Linha de estatísticas por janela (records_in / no_identity / parse_cache_hits / below_threshold / matches_emitted) para saber sempre se evidência foi descartada.
- 🧪 Qualidade Garantida: Suíte de regressão pytest que cobre análise de timestamps, normalização de identidade, fan-out, o contrato do writer, autoria de Eye (governação GEP do lado da escrita) e o registo de campos padrão.
Arquitetura do Sistema
O Correlation Engine consiste em quatro componentes principais:
1. 🗄️ Feathers (Normalização de Dados)
Objetivo: Transformar artefactos forenses brutos num formato padronizado e consultável.
- Bases de dados SQLite contendo dados de artefactos forenses normalizados — um feather por tipo de artefacto (Prefetch, ShimCache, Registos de Eventos, …) com um esquema padronizado e metadados para consulta eficiente.
- Um formato universal que aceita dados de qualquer ferramenta forense.``` Any Tool Output → Feather Builder → Normalized Feather Database (CSV/JSON/SQLite) (SQLite with standard schema)
Examples:
- Plaso CSV → Feather Builder → timeline.db
- Autopsy JSON → Feather Builder → autopsy_artifacts.db
- Volatility CSV → Feather Builder → memory_artifacts.db
- Custom Output → Feather Builder → custom.db
**Formatos de importação suportados:** CSV (qualquer arquivo com cabeçalho), JSON (plano ou aninhado) e SQLite (importação direta). Mapeamento automático de colunas, detecção de tipos de dados, normalização de timestamps para ISO, validação e índices otimizados.```
prefetch.db (Feather)
├── feather_metadata (artifact type, source, record count)
├── prefetch_data (executable_name, path, last_executed, hash)
└── Indexes (timestamp, name, path)
2. 🎯 Wings (Regras de Correlação)
Finalidade: Definir quais artefatos correlacionar e como.
- Regras JSON/YAML que especificam uma janela de tempo, correspondências mínimas, prioridade de âncora e as feathers (com pesos) a correlacionar — reutilizáveis entre casos. Cada Wing é autoral e selada (registra quem a criou, por quê e a evidência que a motivou).```json { "wing_id": "execution-proof", "wing_name": "Execution Proof", "correlation_rules": { "time_window_minutes": 5, "minimum_matches": 2, "anchor_priority": ["Prefetch", "SRUM", "AmCache"] }, "feathers": [ {"feather_id": "prefetch", "weight": 0.4}, {"feather_id": "shimcache", "weight": 0.3}, {"feather_id": "amcache", "weight": 0.3} ] }
#### 3. ⚙️ Motores (Estratégias de Correlação)
**Finalidade**: Executar a lógica de correlação para encontrar relações entre artefatos. As ligações estruturais vêm **primeiro**; uma pontuação ponderada por camadas é aplicada por cima como *interpretação/classificação*, não como base para uma correspondência.
**Motor de Varredura por Janela de Tempo** — ideal para análises baseadas em tempo e correlação temporal sistemática. Varre o tempo em intervalos fixos, coleta registros de todas as feathers por janela, aplica correspondência de campos semânticos + pontuação ponderada e evita duplicatas por meio do rastreamento de MatchSet. **O(N log N)** (consultas indexadas por timestamp); processamento em lote (~2.567 janelas/segundo).
**Motor de Correlação Baseado em Identidade** — ideal para grandes conjuntos de dados (>1.000 registros) e rastreamento de identidades. Extrai e normaliza identidades, agrupa registros por identidade, constrói âncoras temporais dentro de cada cluster, classifica evidências como primárias/secundárias/de apoio e faz streaming para conjuntos muito grandes (>5.000 âncoras) com memória constante. **O(N log N)**; 40+ padrões de campos de identidade por tipo.
**Seleção do motor:** use o motor de Janela de Tempo para análises baseadas em tempo e o motor Baseado em Identidade para rastreamento de identidades — ambos estão prontos para produção e otimizados para grandes conjuntos de dados com consultas indexadas.
#### 4. 🔄 Pipelines (Orquestração de Fluxos de Trabalho)
**Finalidade**: Automatizar fluxos de trabalho completos de análise, desde a criação de feathers até a geração de resultados. Um pipeline lê sua configuração (tipo de motor, wings, feathers), instancia o motor correto por meio do EngineSelector, executa cada wing, agrega correspondências, salva os resultados (DB + JSON) e os exibe na GUI com filtragem e visualização.```json
{
"pipeline_name": "Investigation Pipeline",
"engine_type": "identity_based",
"wings": [{"wing_id": "execution-proof"}, {"wing_id": "file-access"}],
"feathers": [
{"feather_id": "prefetch", "database_path": "data/prefetch.db"},
{"feather_id": "srum", "database_path": "data/srum.db"},
{"feather_id": "eventlogs", "database_path": "data/eventlogs.db"}
],
"filters": {
"time_period_start": "2024-01-01T00:00:00",
"time_period_end": "2024-12-31T23:59:59"
}
}
Como Tudo Funciona em Conjunto```
- Data Preparation Raw Forensic Data → Feather Builder → Feather Databases
- Configuration Wing Configs + Feather References → Pipeline Config
- Execution Pipeline Executor → Engine Selector → Correlation Engine
- Correlation Engine loads Feathers + applies Wing rules → Correlation Results
- Visualization Results Database → Results Viewer GUI
### Exemplo de Caso de Uso: Encontrando Prova de Execução
**Cenário**: provar que `malware.exe` foi executado em um sistema.```json
{
"wing_id": "malware-execution",
"correlation_rules": { "time_window_minutes": 5, "minimum_matches": 2 },
"feathers": ["prefetch", "shimcache", "amcache"]
}
Aqui está a tradução do conteúdo fornecido:
## Instalação
### Pré-requisitos
- Python 3.8 ou superior
- pip (gerenciador de pacotes do Python)
- Acesso à internet para baixar dependências
### Passos de instalação
1. Clone o repositório:
```bash
git clone https://github.com/example/repo.git
cd repo
- (Opcional) Crie e ative um ambiente virtual:
python -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate
- Instale as dependências necessárias:
pip install -r requirements.txt
- Verifique se a instalação foi bem-sucedida:
python tool.py --version
Uso
Sintaxe básica
python tool.py [opções] <alvo>
Opções disponíveis
| Opção | Descrição |
|---|---|
-h, --help | Mostra a mensagem de ajuda e sai |
-v, --verbose | Habilita a saída detalhada |
-o, --output | Especifica o arquivo de saída para os resultados |
-t, --threads | Define o número de threads a serem usadas (padrão: 10) |
--timeout | Define o tempo limite da solicitação em segundos (padrão: 30) |
Exemplos
Execute uma verificação básica:
python tool.py https://exemplo.com
Execute com saída detalhada e salve os resultados em um arquivo:
python tool.py -v -o resultados.txt https://exemplo.com
Use um número específico de threads:
python tool.py -t 50 https://exemplo.com
Configuração
O arquivo de configuração config.yaml permite que você personalize o comportamento da ferramenta. Aqui está um exemplo:
# Configuração da ferramenta
config:
user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
timeout: 30
max_retries: 3
proxy:
enabled: false
url: ""
headers:
Accept: "*/*"
Accept-Language: "en-US,en;q=0.9"
Opções de configuração
user_agent: O User-Agent a ser usado nas solicitações HTTP.timeout: O tempo limite padrão da solicitação em segundos.max_retries: O número máximo de tentativas para solicitações com falha.proxy: Configurações de proxy. Definaenabledcomotruee forneça aurldo proxy.headers: Cabeçalhos HTTP personalizados a serem incluídos nas solicitações.
Solução de problemas
Erro: "Módulo não encontrado"
Se você encontrar um erro de ModuleNotFoundError, certifique-se de que todas as dependências estejam instaladas:
pip install -r requirements.txt
Erro: "Permissão negada"
No Linux/macOS, você pode precisar tornar o script executável:
chmod +x tool.py
Problemas de conexão
Se a ferramenta não conseguir se conectar ao alvo, verifique sua conexão de rede e as configurações de proxy no arquivo config.yaml.
Suporte
Se você tiver problemas ou dúvidas, abra um problema no repositório do GitHub.
Licença
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.
from correlation_engine.pipeline import PipelineExecutor
executor = PipelineExecutor(pipeline_config)
results = executor.execute()
```
Aqui está a tradução do conteúdo fornecido:
---
## Instalação
### Requisitos
- Python 3.8 ou superior
- pip (gerenciador de pacotes do Python)
### Passos de Instalação
1. Clone o repositório:
```bash
git clone https://github.com/example/tool.git
cd tool
```
2. Instale as dependências:
```bash
pip install -r requirements.txt
```
3. Execute a ferramenta:
```bash
python main.py --help
```
## Uso
### Exemplos Básicos
Para executar uma varredura básica:
```bash
python main.py scan --target example.com
```
Para gerar um relatório detalhado:
```bash
python main.py report --format pdf
```
### Opções Avançadas
A ferramenta suporta várias opções avançadas para personalizar sua experiência:
- `--verbose`: Ativa a saída detalhada.
- `--output-dir DIR`: Especifica o diretório de saída para os resultados.
- `--config FILE`: Usa um arquivo de configuração personalizado.
## Configuração
O arquivo de configuração padrão é `config.yaml`. Você pode criar um arquivo de configuração personalizado e passá-lo com a opção `--config`.
### Exemplo de `config.yaml`
```yaml
targets:
- example.com
- example.org
scan_options:
ports: [80, 443, 8080]
timeout: 30
report:
format: html
output_dir: ./reports
```
## Solução de Problemas
### Erro: `ModuleNotFoundError`
Se você encontrar um erro de módulo não encontrado, certifique-se de que todas as dependências estão instaladas:
```bash
pip install -r requirements.txt
```
### Erro: `PermissionError`
Se você encontrar um erro de permissão ao executar a ferramenta, tente usar `sudo` (no Linux/macOS) ou execute o terminal como administrador (no Windows).
## Contribuindo
Aceitamos contribuições! Por favor, siga estas etapas:
1. Faça um fork do repositório.
2. Crie um novo branch para sua funcionalidade.
3. Envie um pull request com uma descrição clara das alterações.
## Licença
Este projeto está licenciado sob a Licença MIT. Consulte o arquivo `LICENSE` para obter mais detalhes.
---
**Aviso Legal:** Esta ferramenta é fornecida apenas para fins educacionais e de teste de segurança autorizado. O uso indevido desta ferramenta pode violar leis e regulamentos locais. O autor não se responsabiliza por qualquer uso indevido.```
Identity: malware.exe
Anchor 1 (2024-01-15 10:30:00):
✓ Prefetch: malware.exe executed at 10:30:00
✓ ShimCache: malware.exe modified at 10:30:15
✓ AmCache: malware.exe installed at 10:29:45
Conclusion: Execution proven with 3 corroborating artifacts
```
### Benchmarks de Desempenho
| Registros | Motor de Janela Temporal | Motor Baseado em Identidade |
|---|---|---|
| 1.000 | 0,5s | 2s |
| 10.000 | 5s | 15s |
| 100.000 | 50s | 2,5 min (streaming) |
| 1.000.000 | — | 25 min (streaming) |
### Introdução ao Motor de Correlação
1. **Iniciar**: `python -m correlation_engine.main`
2. **Criar Feathers**: importe seus artefatos forenses (Prefetch, ShimCache, …).
3. **Criar Wings**: defina regras de correlação para sua investigação.
4. **Criar um Pipeline**: configure quais wings e feathers usar.
5. **Executar**: execute o pipeline e visualize os resultados correlacionados.
6. **Analisar**: use o Visualizador de Resultados para explorar relações temporais.
### 📚 Documentação do Motor de Correlação
- **[Visão Geral do Motor de Correlação](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/CORRELATION_ENGINE_OVERVIEW.md)** — visão geral do sistema com diagramas de arquitetura
- **[Documentação do Motor](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md)** — arquitetura de motor duplo, seleção de motor, otimização de desempenho
- **[Arquitetura](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/ARCHITECTURE.md)** — integração de componentes e fluxo de dados
- **[Documentação de Feather](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/feather/FEATHER_DOCUMENTATION.md)** — o sistema de normalização de dados
- **[Documentação de Wings](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/wings/WINGS_DOCUMENTATION.md)** — regras de correlação
- **[Documentação de Pipeline](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/pipeline/PIPELINE_DOCUMENTATION.md)** — orquestração de fluxo de trabalho
- **[Adicionando um Artefato](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/ADDING_AN_ARTIFACT.md)** — o fluxo de trabalho para conectar um novo parser ao motor
- **[Registro de Campos Padrão](https://github.com/ghassan-elsman/crow-eye/blob/main/config/standard_fields)** — sinônimos canônicos de nomes de colunas carregados por ambos os motores e pelo Eye
- **[Guia de Contribuição](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/CONTRIBUTING.md)** — como contribuir com o motor
- Links rápidos: [Seleção de Motor](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#engine-selection-guide) · [Solução de Problemas](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#troubleshooting) · [Otimização de Desempenho](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#performance-and-optimization)
## 👁️ Eye — O Assistente de IA Forense
> **Um assistente poderoso, não um substituto.** O Eye automatiza e *verifica* as hipóteses de um investigador — ele nunca decide por você.
**Eye** é o assistente de IA forense integrado do Crow-Eye: um investigador forense qualificado apoiado por uma base de conhecimento real de artefatos do Windows. Ele oferece uma interface em linguagem natural para consultar, correlacionar e documentar tudo em um caso — Prefetch, MFT, Registry, Event Logs, AmCache, ShimCache, SRUM e muito mais — mantendo um registro auditável e à prova de adulteração de exatamente o que fez. O Eye pode ser executado inteiramente em seu próprio hardware (incluindo **totalmente isolado da rede**), em conformidade com a postura de privacidade do Crow-Eye de **"0 ms de dados enviados para fora do dispositivo"**. Arquitetura completa: [`eye/README.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md).
| Capacidade | O que significa para você |
|---|---|
| **Investigação em linguagem natural** | Pergunte em inglês simples; o Eye escreve o SQL e pesquisa por você. |
| **Integração de múltiplas fontes** | Acesso unificado a todos os artefatos analisados no caso. |
| **Análise aprimorada por RAG** | O Eye recupera conhecimento forense específico de artefatos antes de responder. |
| **Espaço de Trabalho de Relatório Vivo** | Descobertas, tabelas, gráficos e linhas do tempo são documentados em tempo real. |
| **Humano no circuito** | Ações críticas (ex.: exportação de relatório) exigem sua aprovação explícita. |
| **Cadeia de custódia** | Prova criptográfica de exatamente o que o modelo analisou. |
O Eye transforma perguntas conversacionais ("mostre-me o que foi executado a partir de `C:\Temp` após as 22:00") em trabalho forense real: ele planeja uma abordagem, recupera conhecimento relevante de artefatos, executa SQL e buscas entre artefatos em seus bancos de dados de caso e sintetiza uma resposta validada. Cada resposta é produzida **em dois lugares ao mesmo tempo** — uma resposta de chat para você e um bloco estruturado gravado em um **Espaço de Trabalho de Relatório Vivo**, para que o dossiê se construa sozinho à medida que a investigação avança.
### O Protocolo Ghassan Elsman (GEP)
Tudo o que o Eye faz está ancorado no **Protocolo Ghassan Elsman (GEP)** — um padrão **neutro de fornecedor e independente de ferramenta** para *como qualquer IA deve ser usada em forense digital*. São **10 princípios** que um sistema conforme deve sustentar para que as descobertas assistidas por IA permaneçam **verdadeiras, rastreáveis aos registros de origem e respaldadas por uma cadeia auditável e à prova de adulteração**, com o investigador humano no controle:
| # | Princípio | Em uma linha |
|---|---|---|
| **GEP-1** | Primazia da Evidência | Conclusões vêm apenas de artefatos realmente examinados. |
| **GEP-2** | Rastreabilidade | Cada fato está vinculado a um registro de origem específico. |
| **GEP-3** | Especificidade e Cronologia | Carimbos de data/hora UTC exatos, identificadores e caminhos, ordenados no tempo. |
| **GEP-4** | Corroboração Cruzada | Basear-se em múltiplas fontes; relatar concordância, silêncio e conflito. |
| **GEP-5** | Verificação de Premissas | Tratar alegações humanas como hipóteses a provar ou refutar. |
| **GEP-6** | Completude | Nunca descartar ou truncar evidências silenciosamente. |
| **GEP-7** | Integridade e Não Repúdio | Nunca modificar evidências; registrar o que foi visto e feito, de forma à prova de adulteração. |
| **GEP-8** | Transparência e Explicabilidade | Raciocínio, ferramentas usadas e dados vistos são visíveis e auditáveis. |
| **GEP-9** | Autoridade Humana | O investigador decide; ações duráveis são atribuíveis. |
| **GEP-10** | Defensabilidade | A saída é objetiva, precisa e estruturada para revisão independente. |
O Eye do Crow-Eye é a **implementação de referência** do GEP; os comportamentos no produto que o sustentam são **Regras Operacionais**. 📜 Leia o padrão: [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md).
### Modos de Implantação
O Eye se adapta ao seu modelo de ameaça por meio de três modos de implantação:
| Modo | Melhor para | Backends |
|---|---|---|
| ☁️ **Modelos de IA em Nuvem** | Análise profunda e complexa com máximo poder computacional | OpenAI, Anthropic (Claude), Google Gemini |
| 🔒 **Servidor de IA Offline** (isolado da rede) | Investigações no local, com exposição zero | Ollama, LM Studio |
| ⚡ **Agentes de Terminal CLI** | Reutilizar um agente de terminal de IA que você já possui como modelo | Claude Code, Gemini CLI, ChatGPT CLI, llama.cpp, … |
No **modo agente CLI**, o Crow-Eye aciona um **agente de terminal/linha de comando de IA existente como modelo** — em vez de uma API em nuvem ou um servidor offline local — para que você possa investigar com o agente que já usa.
**O ciclo de investigação:**
1. **Abra ou crie um caso** — o Eye se limita aos bancos de dados de artefatos e ao histórico desse caso.
2. **Faça uma pergunta** em linguagem natural ou inicie uma triagem abrangente com um clique.
3. **O Eye executa seu pipeline** — detectar intenção → recuperar conhecimento → executar ferramentas → sintetizar.
4. **Você obtém uma saída dupla** — uma resposta direta no chat *e* um novo bloco no Relatório Vivo.
5. **Aprove ações bloqueadas** — exportações e outras etapas críticas aguardam sua autorização.
Você pode trocar de modelo em tempo de execução com a ferramenta `switch_model`. A troca é **restrita ao mesmo backend**, para que as evidências nunca sejam enviadas silenciosamente a um provedor diferente daquele que você escolheu.
### Rastreando o Processo de Pensamento do LLM
O Eye foi construído para que você possa ver — e depois provar — *como* ele chegou a uma conclusão. Enquanto o Eye trabalha, ele transmite atualizações estruturadas de `ThinkingStep` para a interface em tempo real; cada uma carrega um `step_id`, `type`, `label` legível por humanos, `status` (`active` → `done`, ou `error`) e `tool`/`params`/`detail` opcionais.
| Tipo de etapa | O que você está vendo |
|---|---|
| `thinking` | Planejamento do Eye — detectando intenção forense, construindo o prompt do sistema, decidindo os próximos passos. |
| `rag` | O Eye recuperando conhecimento de artefatos de sua base de conhecimento para fundamentar a resposta. |
| `tool_call` | O Eye executando uma ferramenta forense (uma consulta SQL, uma busca, uma consulta de correlação). |
| `synthesis` | O Eye validando e montando a resposta final, respaldada por evidências. |
Uma consulta típica se desenrola como `thinking → rag → thinking → tool_call → synthesis`, e todo caso mantém artefatos de rastreamento em disco que você pode inspecionar depois:
| Arquivo | O que registra |
|---|---|
| `<case>/EYE_Logs/eye_payload_seal.jsonl` | Os payloads exatos enviados ao modelo, encadeados por hash. |
| `<case>/EYE_Logs/truncation_audit.log` | O que do contexto foi mantido, resumido, descartado ou fixado — e por quê. |
| `<case>/case_history.json` | O histórico completo da conversa, com contagens de tokens por mensagem. |
### Execução de Ferramentas
O Eye é **orientado por ferramentas**: o modelo nunca toca as evidências diretamente. Ele emite chamadas de ferramenta, e o Eye as executa contra os bancos de dados do caso e retorna os resultados — para que cada ação seja explícita, registrada e reproduzível. As ferramentas são definidas em `configs/llm_config.json` e despachadas por meio de `eye/services/context_manager.py`.
**Ferramentas investigativas** — leem e analisam evidências:
| Ferramenta | Finalidade |
|---|---|
| `query_database` | Executar um `SELECT` contra um banco de dados forense. |
| `search_artifacts` | Busca de texto / regex entre bancos de dados. |
| `semantic_search_artifacts` | Busca semântica em artefatos analisados. |
| `get_schema` | Inspecionar esquemas de tabelas. |
| `query_timeline` | Uma varredura cronológica única em todos os bancos de dados do caso — o que aconteceu e quando. |
| `query_correlation_results` | Consultar a saída do Motor de Correlação por tempo / identidade. |
| `read_imported_evidence` | Ler evidências de terceiros importadas para o caso na íntegra (relatórios, e-mails, saída de ferramentas de navegador). |
| `correlate_imported_evidence` | Correlacionar evidências de terceiros importadas para o caso com artefatos nativos. |
| `analyze_large_dataset` | Análise map-reduce de grandes conjuntos de resultados — **sem truncamento silencioso**. |
| `list_case_files` | Listar arquivos no diretório do caso. |
| `internet_search` / `fetch_web_content` | Pesquisar e buscar contexto externo de ameaças / técnico. |
| `query_living_off_the_land_intel` | Consultas LOLBAS / LOLDrivers. |
| `query_threat_intel` | Consultas VirusTotal / inteligência de ameaças. |
| `switch_model` | Trocar de modelo em tempo de execução (somente mesmo backend). |
**Ferramentas de relatório** constroem o Espaço de Trabalho de Relatório Vivo: `report_append_section`, `report_add_data_table`, `report_add_chart`, `report_add_timeline`, `report_add_heatmap`, `report_add_chain_of_custody`, `report_add_chat_transcript`, `report_add_image`, `report_edit_section`, `report_delete_section`, `chat_add_table` e `export_report` (a exportação exige aprovação humana).
**Ferramentas de autoria** (governadas — veja [Construindo Wings de Correlação e Mapeamentos Semânticos](#building-correlation-wings--semantic-mappings)): `correlation_create_wing`, `correlation_edit_wing`, `correlation_create_semantic_mapping`, `correlation_edit_semantic_mapping`. As chamadas de ferramenta são traduzidas para o que o backend ativo espera — chamada de função nativa para APIs em nuvem e servidores locais, ou um wrapper XML `<tool_call>` para agentes CLI.
### Construindo Wings de Correlação e Mapeamentos Semânticos
O Eye não apenas *consulta* o [Motor de Correlação](#-correlation-engine) — ele pode ajudar a **estendê-lo**. Quando o Eye detecta um padrão recorrente entre artefatos, ele pode propor novos **Wings** (regras de correlação) e **Mapeamentos Semânticos** (traduções técnico-para-humano). Isso é *autoria governada*: o Eye propõe, o analista revisa o artefato salvo, e cada mudança é justificada e respaldada por evidências.
**Um Wing** une feathers dentro de uma janela de tempo e um limite mínimo de correspondências para provar uma alegação:
| Campo | Significado |
|---|---|
| `wing_name` | Nome legível por humanos para a regra. |
| `proves` | A alegação forense que ele sustenta (ex.: *execução de programa*). |
| `feathers[]` | Artefatos a correlacionar — cada um com `artifact_type`, `weight` opcional (0–1) e `tier` (1–4). |
| `time_window_minutes` | Janela de correlação (padrão **180** = 3 horas). |
| `minimum_matches` | Quantos feathers devem corresponder dentro da janela (padrão **1**). |
| `reason` *(obrigatório)* | Justificativa forense para a regra. |
| `related_evidence` *(obrigatório)* | Uma ou mais referências `database:table:rowid` que a motivaram. |
**Um Mapeamento Semântico** traduz um valor técnico bruto em significado legível por humanos (ex.: *EventID 4624 → "Logon Bem-sucedido"*). Ele vem em duas variantes: um `mapping` simples (valor único / regex → valor semântico) ou uma `rule` de múltiplas condições (condições unidas por AND/OR). Ambos suportam `category`, `severity`, `confidence` e `scope`, e ambos exigem `reason` + `related_evidence`.
**Governança — regras do lado de escrita que sustentam o GEP:**
- **Razão Obrigatória** (sustenta **GEP-9** + **GEP-2**): toda criação *e* edição deve incluir uma `reason` forense.
- **Vínculo de Evidência** (sustenta **GEP-2**): toda criação deve citar pelo menos uma referência `database:table:rowid`.
- **Carimbado pelo Eye / somente leitura para outros** (sustenta **GEP-7** + **GEP-9**): o Eye carimba sua autoria + razão + histórico de edições e pode editar **apenas o que o Eye criou** — regras integradas e criadas por humanos permanecem **somente leitura**.
### Contexto Autocurativo
Investigações longas podem exceder a janela de contexto de um modelo — especialmente modelos offline menores. Em vez de travar ou descartar evidências silenciosamente, o Eye **compacta automaticamente seu próprio contexto** antes de cada chamada de modelo (dentro de seu caminho de geração protegido, totalmente auditado).
Antes de cada chamada, o Eye mede o payload completo e reserva espaço para a resposta (**10%** da janela, mínimo de 512 tokens, nunca mais da metade). Se ainda assim não couber, ele se cura em duas passagens ordenadas, nunca tocando mensagens **protegidas** (fixadas, evidências auto-detectadas ou um resultado de ferramenta):
1. **Passagem de resumo** *(uma vez)* — o histórico não protegido é condensado em um único resumo, registrado como `SUMMARIZED`.
2. **Passagem de descarte** — a mensagem **não protegida mais antiga** é removida uma a uma até caber, registrada como `TRUNCATED`.
Se o **núcleo de evidências** irredutível (fixado + resultados de ferramentas + a pergunta atual) *ainda* transbordar, o Eye **se recusa a prosseguir em vez de truncar evidências** (`REFUSED_OVERFLOW`) e pede que você restrinja a consulta ou use `analyze_large_dataset`. O que quer que finalmente vá para o modelo é o payload exato que é selado para a cadeia de custódia.
### 🗺️ Mapa Narrativo — A Memória Persistente do Caso do Eye
O Eye é **sem estado entre turnos** — então o **Mapa Narrativo** é onde "o que sabemos e o que concluímos" vive para um caso. Ele é a **memória de trabalho persistente, auditável e à prova de adulteração** do Eye, e seu conteúdo é **injetado no prompt do Eye a cada turno** (o mapa literalmente *é* a memória).
- 🧭 **Veredito → Narrativa → Evidência.** Uma hierarquia estrita: um **Veredito** de caso, as **Narrativas** abaixo dele (alegações, cada uma com um estado — `proven` · `open` · `negative` · `needs` · `absolute`), e as **Evidências** respaldadas por artefatos abaixo delas.
- 🪟 **Sua própria janela.** Abre pelo botão **"Narrative Map"** na janela de chat do Eye, para que você possa acompanhar o chat, o relatório vivo e a memória do caso lado a lado; ele atualiza ao vivo conforme as coisas mudam.
- ↔️ **Bidirecional — uma memória que você comanda.** Tanto as edições do Eye quanto suas próprias anotações fluem por um único **commit validado pelo GEP** e são seladas em um **log de auditoria encadeado por hash** (`narrative_map_audit.jsonl`). Você pode **adicionar, editar e remover** suas alegações e evidências, moldando diretamente como o Eye entende e interpreta o caso.
- 🚫 **Nunca afirma o não suportado.** Uma narrativa do Eye pode permanecer `open` sem evidências enquanto investiga, mas nunca pode ser `proven` sem evidências; um tema que o Eye verificou mas encontrou vazio converte-se automaticamente para **`negative`** — porque uma ausência documentada é em si uma descoberta.
### Como a Conformidade Funciona
A conformidade não é um recurso adicionado por cima — ela é aplicada no pipeline.
- **🔗 Cadeia de custódia (Selo de Evidência).** Todo payload que o Eye envia a um LLM é selado: o **SHA-256 dos bytes exatos**, a contagem de tokens, o modelo + seu limite de contexto e a proveniência de cada linha de evidência (`database:table:rowid`, além de offsets calculados para registros MFT). Os selos são **somente anexação e encadeados por hash** em `<case>/EYE_Logs/eye_payload_seal.jsonl` — um único registro alterado ou removido quebra a cadeia, então o log prova *matematicamente* quais bytes o modelo analisou.
- **🚫 Sem truncamento silencioso.** Quando o contexto fica apertado, o Eye [se autocura](#self-healing-context) e realoca orçamentos em uma ordem estrita: **Prioridade 1 (Imovível): Evidência Bruta + o Prompt do Sistema** › **Prioridade 2 (Sacrificial): Conversa Casual** › **Prioridade 3 (Flexível): Contexto RAG**. Se o núcleo de evidências ainda não couber, o Eye se recusa em vez de descartar evidências silenciosamente.
- **🧾 Trilha de auditoria de truncamento.** Toda decisão de contexto é registrada em `<case>/EYE_Logs/truncation_audit.log` (`SUMMARIZED`, `TRUNCATED`, `PRESERVED`, `PINNED`, `UNPINNED`, `BUDGET_REDUCED`), cada uma com um hash. Evidências detectadas são fixadas automaticamente acima de um limite de confiança; você também pode fixar mensagens manualmente.
- **📑 Mandato de evidência-para-relatório.** O Eye deve responder no chat **e** persistir as evidências de apoio no relatório; falhar em registrar evidências é sinalizado como violação de protocolo.
- **⚖️ Governança de correlação.** Qualquer Wing ou mapeamento que o Eye criar deve incluir uma `reason` forense e `related_evidence`; regras criadas fora do Eye são somente leitura e não podem ser reescritas silenciosamente.
- **🔐 Privacidade e isolamento de rede.** Em modos offline, o Eye faz **zero chamadas de saída**; chaves de API em nuvem vivem em chaveiros nativos do SO — nunca codificadas, nunca gravadas em logs.
📖 **Arquitetura completa do Eye:** [`eye/README.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md).
## 📖 Eye-Describe — Base de Conhecimento de Artefatos em Nível de Byte
> 🔗 **[Explore o Eye-Describe → crow-eye.com/eye-describe](https://crow-eye.com/eye-describe)**
Historicamente, os investigadores caíam na armadilha de confiar em suas ferramentas forenses sem entender como os artefatos subjacentes se comportam ou como a ferramenta os analisou. O risco hoje é simplesmente substituir *"a ferramenta"* por *"a IA"*. Uma IA pode analisar um registro com precisão técnica perfeita e ainda assim colocá-lo no contexto errado — mudando todo o significado da evidência.
**Eye-Describe** existe para que nem o humano nem o modelo precisem adivinhar. É uma referência interativa, em nível de byte, das estruturas binárias brutas dos artefatos do Windows, e serve a dois papéis ao mesmo tempo:
| Papel | O que faz |
|---|---|
| 🧑🏫 **O projeto para o humano** | Uma referência educacional interativa da anatomia profunda em nível de byte dos artefatos do Windows — o que cada estrutura é, como se comporta, o que pode e o que não pode provar. Gratuito para uso, voltado a estudantes, educadores e profissionais que querem entender a evidência em vez da coluna de saída. |
| ⚖️ **A âncora de conformidade para a IA** | A visibilidade do Eye está vinculada aos comportamentos documentados de artefatos no Eye-Describe. O modelo raciocina contra uma referência codificada do que um artefato *realmente significa*, em vez de inferir semântica por conta própria. |
Ao ancorar a camada de IA ao comportamento documentado de artefatos, o Crow-Eye não está pedindo que você confie em um modelo — está restringindo o modelo a respeitar a forense bruta.
> **Não troque a confiança na ferramenta pela confiança na IA. Entenda os dados.**
## 🧪 Qualidade e Validação
Ferramentas forenses só são úteis se sua saída puder ser defendida. O trabalho de correção do Crow-Eye é deliberadamente visível:- **Suites de regressão.** O Correlation Engine é coberto por uma suite pytest que abrange parsing de timestamps, normalização de identidades, fan-out multi-timestamp, o contrato do writer, autoria Eye (governança GEP no lado de escrita) e o registo de campos padrão. O motor UBA inclui a sua própria suite, incluindo uma execução ponta a ponta contra um caso real.
- **Harness de validação.** Um harness holístico exercita todas as 7 wings padrão contra **ambos** os motores num caso Windows real de ~700K registos.
- **Histórico de defeitos publicado.** Regressões de precisão e o seu impacto medido estão documentados abertamente em [`RELEASE_NOTES.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md) — incluindo casos em que uma correção alterou os registos vistos por ordens de magnitude. Saber o que estava errado, e quando, faz parte do que torna um resultado defensável.
- **Contabilidade de evidências verificável.** Cada registo ou cai numa correspondência ou num bucket de descarte nomeado, e o ledger de descarte por janela torna "sem evidências sobrantes" algo que pode verificar a partir do log em vez de aceitar por fé.
- **Logs à prova de adulteração.** `verify_chain()` re-percorre o log de auditoria do Narrative Map e a cadeia do Evidence Seal para detetar modificações — incluindo de campos legíveis por humanos.
## 🔬 Plataforma de Investigação
Crow-Eye é mais do que software — é uma **plataforma de investigação aberta** que acelera todo o campo da forense Windows. O projeto foca-se em:
- Publicar documentação detalhada sobre estruturas internas de artefactos.
- Partilhar lógica de correlação e metodologias.
- Permitir revisão por pares, transparência e colaboração académica.
- Contribuir para o conhecimento coletivo da comunidade forense.
## 🛠️ Notas Técnicas
- O parsing de registos requer ficheiros de hive de registo completos.
- Alguns artefactos requerem tratamento especial devido aos mecanismos de bloqueio de ficheiros do Windows (ver [Registos personalizados / ficheiros bloqueados](#-artefactos-suportados)).
- O parsing de LNK e Jump Lists é tratado pelo parser dedicado do próprio Crow-Eye.
## 📸 Capturas de Ecrã
Uma seleção da interface e das vistas de análise do Crow-Eye.






🎥 **Vídeo de demonstração:** [](https://youtu.be/hbvNlBhTfdQ)
## 🚧 Roadmap
Trabalho planeado e em curso (ver [`RELEASE_NOTES.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md) para alterações já lançadas):
- 📊 **Vistas GUI e relatórios avançados** — visualização e relatórios mais ricos.
- 🔄 **Diálogo de pesquisa melhorado** — filtragem avançada com suporte a linguagem natural.
- 🎯 **Mapeamento semântico melhorado** — mapeamento abrangente de campos em todos os tipos de artefactos.
- 📈 **Pontuação de correlação avançada** — pontuação de confiança refinada e explicável.
- ⚡ **Correlação paralela** — despacho por process-pool, ativado por padrão para cargas de trabalho grandes.
Tem uma ideia ou quer adicionar um artefacto? [Abra um issue](https://github.com/Ghassan-elsman/Crow-Eye/issues) ou veja [Contribuir](#-contribuir).
## 📚 Documentação
- **[TECHNICAL_DOCUMENTATION.md](https://github.com/ghassan-elsman/crow-eye/blob/main/TECHNICAL_DOCUMENTATION.md)** — arquitetura, componentes e guia de desenvolvimento.
- **[RELEASE_NOTES.md](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md)** — o que há de novo em cada lançamento (UBA, Narrative Map, backends Eye na nuvem, endurecimento de gestão de casos, …).
- **[Documentação do Correlation Engine](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/CORRELATION_ENGINE_OVERVIEW.md)** — visão geral, motor, feathers, wings, pipelines.
- **[Arquitetura da timeline](https://github.com/ghassan-elsman/crow-eye/blob/main/timeline/ARCHITECTURE.md)** — internals do módulo de timeline.
- **[Arquitetura Eye](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md)** e **[padrão GEP](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md)** — o assistente de IA e o seu protocolo de governação.
## 🤝 Contribuir
Crow-Eye é construído como uma plataforma de investigação aberta, e contribuições são bem-vindas — novos parsers, regras de correlação, documentação e investigação de artefactos.
- **Contribuições gerais:** [CONTRIBUTING.md](https://github.com/ghassan-elsman/crow-eye/blob/main/CONTRIBUTING.md)
- **Correlation Engine (área prioritária):** [correlation_engine/CONTRIBUTING.md](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/CONTRIBUTING.md)
- **Contacto:** [[email protected]](mailto:[email protected]) · ou abra um issue / pull request.
## 🌐 Website & Comunidade
- 🌍 **Website oficial:** [crow-eye.com](https://crow-eye.com/) — recursos, documentação e downloads.
- 💬 **Discord:** [Junte-se ao Discord do Crow-Eye](https://discord.gg/2vag2Udf) — ajuda direta, investigação de artefactos e anúncios de lançamentos.
## 📄 Licença
Crow-Eye é lançado sob a **[GNU General Public License v3.0](https://github.com/ghassan-elsman/crow-eye/blob/main/LICENSE)** (GPL-3.0). É livre de usar, estudar, partilhar e modificar sob os termos dessa licença.
## 📝 Citar o Crow-Eye
Se usar o Crow-Eye em trabalho académico, investigação publicada ou um relatório de caso, por favor cite-o:```bibtex
@software{elsman_crow_eye,
author = {Elsman, Ghassan},
title = {Crow-Eye: A Windows Forensics Engine},
url = {https://github.com/Ghassan-elsman/Crow-Eye},
license = {GPL-3.0},
year = {2026}
}
```
Elsman, G. *Crow-Eye: Um Mecanismo de Forense para Windows* (GPL-3.0). https://github.com/Ghassan-elsman/Crow-Eye
Para citações de metodologia, o Protocolo Ghassan Elsman está documentado separadamente em [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md).
## 💖 Apoio
O Crow-Eye é gratuito e de código aberto, construído e mantido por uma única pessoa. Se ele ajuda no seu trabalho, considere apoiar o projeto — isso financia diretamente novos parsers e pesquisas: **[SPONSORS.md](https://github.com/ghassan-elsman/crow-eye/blob/main/SPONSORS.md)** · **[GitHub Sponsors](https://github.com/sponsors/Ghassan-elsman)**.
## Créditos
Criado e mantido por **Ghassan Elsman**.
