Torna agli aggiornamenti
New releaseSep 6, 2026

Crow-Eye v0.13.0

Motore open source di analisi forense per Windows che acquisisce, analizza e correla gli artefatti (MFT, USN, Registry, ecc.) per ricostruire le timeline con analisi assistita da IA e sigillatura delle prove conforme agli standard giudiziari.

Condividi

Crow-Eye — Motore Forense per Windows

Logo Crow-Eye

Una macchina del tempo forense per Windows.
Crow-Eye non si limita a rilevarericostruisce ciò che è realmente accaduto sulla linea temporale, dall'acquisizione fino a un verdetto riconducibile ai suoi record di origine.

Licenza: GPL v3 Versione Motore di Correlazione Piattaforma Python Discord Stelle GitHub Problemi GitHub Ultimo commit

Indice dei contenuti

Panoramica

Crow-Eye è un motore forense open-source (GPL-3.0) per Windows che unifica acquisizione, analisi, verifica, intelligence e AI. La maggior parte degli strumenti di sicurezza chiede "questo è dannoso?" e scarta tutto ciò che sembra legittimo. Crow-Eye pone una domanda diversa: "cosa è successo?" Correla tutta l'attività — sospetta o meno — e ricostruisce la sequenza reale degli eventi su un sistema, così la verità di un'indagine viene ricostruita dalle prove piuttosto che ipotizzata dagli alert.

Questo design incentrato sulla ricostruzione è esattamente ciò che serve per cacciare minacce APT e di livello statale: gli avversari sofisticati vivono all'interno di strumenti legittimi (powershell.exe, PsExec, certutil) e nella sequenza delle azioni — invisibili agli strumenti che scartano tutto ciò che sembra normale. Poiché Crow-Eye non scarta mai nulla e ragiona sugli artefatti di esecuzione (che sopravvivono alla manomissione dei log e all'anti-forensics), l'attacco non può nascondersi. Lo stesso motore rimane accessibile per il lavoro DFIR quotidiano e per i non esperti che vogliono semplicemente sapere cosa è successo su un computer.

  • 🕰️ Ricostruisci, non limitarti a rilevare — ricostruisci la linea temporale di ciò che è realmente accaduto.
  • 🖥️ Multi-piattaforma — analisi live e offline completa su Windows; analisi offline e parsing di immagini forensi su Linux (i parser live sono solo per Windows).
  • 🔒 Privato per design0 ms di dati inviati fuori dal dispositivo; l'assistente AI Eye può funzionare completamente air-gapped.
  • 🧾 Grado giudiziario — le prove sono sigillate crittograficamente e ogni passaggio è verificabile.
  • 📦 Versione attuale: 0.13.0 · Motore di correlazione: 1.7.0 · Licenza: GPL-3.0.

✨ Punti salienti

  • Ricostruzione piuttosto che rilevamento. Correla ogni artefatto in un'unica storia navigabile per entità, invece di un cumulo di alert.
  • Integrato end-to-end — acquisizione → correlazione → linea temporale → analisi comportamentale → AI → memoria del caso sigillata: una pipeline completa che nessuno strumento consolidato copre.
  • Profondo negli artefatti, non superficiale nei log. Prefetch, Amcache, ShimCache, SRUM, MFT, USN, LNK/JumpLists e altro sopravvivono alla cancellazione dei log e ai trucchi "living-off-the-land" che accecano gli strumenti basati solo sui log.
  • L'assistente AI Eye — indagine forense in linguaggio naturale con una catena di custodia verificabile e a prova di manomissione, eseguibile nel cloud, su un server privato o completamente offline.
  • Analisi del comportamento utente (UBA) — trasforma gli artefatti grezzi in una storia dell'attività in inglese semplice, leggibile da HR e periti.
  • Gratuito e open-source (GPL-3.0) — verificabile da chiunque, con un attivo sforzo di ricerca e documentazione.

👥 A chi è rivolto Crow-Eye

Crow-Eye è utilizzato in flussi di lavoro molto diversi. Ciascuno entra nel motore attraverso una porta diversa:

SeiInput tipicoDa dove iniziare
IR aziendale / MSSP / MDRRaccolte mirate da Velociraptor, KAPE o raccolta nativa EDRImportatore offlineMotore di correlazioneUBA
Forze dell'ordine / laboratori forensiImmagini forensi complete (E01, VHDX, VMDK, Raw) con requisiti di catena di custodiaAnalisi delle immaginiMotore di correlazioneMappa narrativa
Sicurezza interna / indagini su minacce interne e HRSistemi live o artefatti raccoltiAnalisi live → storia dell'attività UBA
Studenti, educatori e ricercatoriImmagini di esempio e dati di laboratorioEye-DescribeAvvio rapido

Qualsiasi collettore funziona. Crow-Eye non richiede il proprio strumento di acquisizione. Punta l'Importatore offline su una cartella di artefatti grezzi prodotti da Velociraptor, KAPE, un pacchetto di raccolta EDR o qualsiasi altro collettore — indicizza gli artefatti supportati ed esegue i parser offline su di essi. Separatamente, l'output di Plaso, Autopsy, Volatility o qualsiasi altro strumento può essere importato come CSV, JSON o SQLite tramite Importa prove e correlato insieme agli artefatti nativi.

🧭 Sottosistemi in sintesi

Crow-Eye è costruito come un ciclo integrato — ogni fase alimenta la successiva, dal disco grezzo a un verdetto difendibile.

SottosistemaCosa faFase
Crow-ClawAcquisizione ad alta velocità di sistemi live e immagini di macchine spente.Acquisizione
Importatore offlineSCANSIONE → RACCOLTA → PARSING degli artefatti da qualsiasi fonte nel database del caso.Acquisizione
Motore di correlazioneRicostruzione a doppio motore (Identità + Finestra temporale) tramite Feathers · Wings · Engines · Pipelines.Analisi
Linea temporale interattivaLinea temporale con thread per identità e tracciabile in tribunale (viste Mappa di calore / Settimana / Giorno), letta direttamente dai database del caso.Verifica
Analisi del comportamento utente (UBA)Storia dell'attività basata su regole, in inglese semplice: "cosa ha fatto questo utente".Intelligence
Eye — Assistente AIIndagine in linguaggio naturale + la Mappa narrativa sigillata come memoria del caso.AI
Forensics dello storageAnalisi di dischi fisici e partizioni (rilevamento di nascosti/non montati, avvisi di avvio).Analisi

🏗️ Architettura

Crow-Eye è una pipeline integrata, non un insieme di parser. Le prove fluiscono in una sola direzione e ogni fase mantiene il collegamento al record di origine.```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
*Sorgente prove → Ingest → Database del caso → Analisi → Livello AI → Report*


**Come leggerlo:**

| Fase | Cosa conta |
|---|---|
| ① → ② | **Quattro porte indipendenti verso un caso.** Non serve mai il collector di Crow-Eye — una cartella da Velociraptor, KAPE o un pacchetto EDR passa attraverso l'Offline Importer, e CSV/JSON/SQLite di terze parti passano da Import Evidence. |
| ② → ③ | Tutto converge in un unico posto: **i database del caso**. Gli artefatti analizzati finiscono in `Target_Artifacts/`; le prove importate da terze parti finiscono in `Imported_Evidence/` e vengono rilevate automaticamente. |
| ③ → ④ | **I tre percorsi di analisi sono indipendenti tra loro.** La Timeline e la UBA leggono direttamente i database del caso — nessuna delle due richiede un'esecuzione di correlazione. Il Correlation Engine è un livello *aggiuntivo*, non un prerequisito. |
| ③ → ④ | **Il Dynamic Linking affianca Timeline e UBA** — un quarto lettore indipendente dei database del caso (non ha nulla a che fare con la visualizzazione della Timeline). Raccoglie le mappature di identità (SID → nome utente, MAC → rete, hash/GUID → app) in un `Crow_Intelligence.db` per caso, poi sovrappone quel contesto **inline nelle tabelle dei dati degli artefatti** tramite `ATTACH` + `LEFT JOIN` non distruttivi. Cambia il modo in cui i record *si leggono*, mai le prove. |
| ④ → ⑤ | The Eye interroga direttamente i database del caso e può recuperare i risultati della correlazione **on demand**. Non tocca mai le prove stesse — emette chiamate di strumenti che Crow-Eye esegue e registra. |
| ⑤ → Report | Il **Living Report è costruito solo da The Eye**, tramite i suoi strumenti `report_*`. La Timeline e la UBA sono superfici di analisi — non scrivono nel report. I risultati a livello di caso possono comunque essere esportati separatamente tramite [Search & Export](#-search--export). |
| ⑤ ↔ | La **Narrative Map è bidirezionale**: The Eye ci scrive, tu ci scrivi, e i suoi contenuti vengono iniettati nel prompt di The Eye a ogni turno. È la memoria, e puoi comandarla. |
| ⑤ ⟳ | La **pagina Compliance controlla The Eye.** Ogni chiamata di strumento di The Eye è ancorata alla catena di hash **EvidenceSeal**; la pagina mostra lo stato **GEP** live per regola (10 principi) verificato da quella catena e da `EYE_Logs/`, esportabile come `audit_trail.json`. |

**Fasi indipendenti.** La Timeline e la UBA leggono **direttamente** i database degli artefatti del caso — nessuna delle due richiede un'esecuzione di correlazione, e la Timeline non dipende dal Correlation Engine (applica un proprio raggruppamento temporale leggero). La correlazione è un livello di analisi aggiuntivo che The Eye può interrogare.

**Sola lettura per progettazione.** L'analisi scrive nel database del caso; ogni fase a valle (UBA, Timeline, visualizzatori di correlazione, The Eye) apre quei database **in sola lettura**. Le prove originali non vengono mai modificate — il [Dynamic Linking](#-analysis-modes) legge i database del caso per costruire un `Crow_Intelligence.db` per caso con le mappature di identità e arricchisce le tabelle dei dati degli artefatti inline tramite query `ATTACH` + `LEFT JOIN` non distruttive, invece di riscrivere le righe.

**Governato per progettazione.** Ogni azione di The Eye è ancorata alla catena di hash **EvidenceSeal** a prova di manomissione, e la pagina **Compliance** verifica continuamente The Eye rispetto al [Ghassan Elsman Protocol (GEP)](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md) — stato live per regola, esportabile in `EYE_Logs/audit_trail.json`.

## 📥 Download e installazione

> **Consigliato:** ottieni la build Windows impacchettata (**installer MSI / EXE**) dal sito ufficiale — nessuna configurazione Python, funziona subito.

### ▶️ [Scarica Crow-Eye per Windows → crow-eye.com/download](https://crow-eye.com/download)

La **build MSI/EXE installata è il modo consigliato per eseguire Crow-Eye**, ed è la nostra **massima priorità per gli aggiornamenti**:

- 🛡️ **Correzioni più rapide.** Quando viene trovato un problema o segnalato un bug, pubblichiamo un EXE aggiornato **il prima possibile** — la build impacchettata è dove arrivano prima le correzioni.
- 🔄 **Aggiornamento automatico integrato.** Nell'app installata, apri **Settings → Updates** per **verificare gli aggiornamenti e installarli automaticamente** — nessuna reinstallazione manuale.
- 📦 **Zero configurazione.** Nessuna installazione di Python, Node o dipendenze richiesta.

> Preferisci eseguire dal sorgente? Vedi **[Quick Start](#-quick-start)** qui sotto. La build dal sorgente è pensata per i contributori e **non include l'auto-aggiornamento** — usa MSI/EXE per gli aggiornamenti automatici.

## 🚀 Avvio rapido

### Opzione A — Build installata (consigliata)
Scarica l'**MSI/EXE** da [crow-eye.com/download](https://crow-eye.com/download), installa e avvia **Crow-Eye** come Amministratore. Crea un caso e inizia ad analizzare.

### Opzione B — Esegui dal sorgente (sviluppatori)

> Per contributori e utenti avanzati. Questo percorso **non include l'auto-aggiornamento** — usa MSI/EXE per gli aggiornamenti automatici.

**Requisiti** (installati automaticamente al primo avvio):
- Python 3.12.4
- **Node.js & npm** — richiesti per la **Timeline Visualization**
- Pacchetti chiave: PyQt5, python-registry, pywin32, pandas, streamlit, altair, olefile, windowsprefetch, sqlite3, colorama, setuptools

**Hardware consigliato**

| | Minimo | Consigliato per casi di grandi dimensioni |
|---|---|---|
| **RAM** | 8 GB | 16 GB+ (set MFT/USN con milioni di record) |
| **Disco** | 5 GB liberi | Spazio libero ≥ 2× la dimensione delle prove da analizzare |
| **CPU** | 4 core | 8+ core |
| **OS** | Windows 10/11 (completo) · Linux (analisi offline e di immagini) | — |

> La correlazione trasmette in memoria costante per dataset molto grandi, quindi la RAM raramente è il limite rigido — di solito lo sono la velocità del disco e lo spazio libero.

**Avvio** (esegui come Amministratore così Crow-Eye può accedere agli artefatti di sistema):```bash
python "Crow Eye.py"

L'interfaccia principale si apre, crei un caso e tutto l'output dell'analisi viene organizzato sotto quella directory del caso per una revisione e una reportistica successive.

🖥️ Nota multipiattaforma: su Linux, i parser live vengono disabilitati automaticamente e Crow-Eye funziona in modalità offline / immagine forense. L'acquisizione live completa è disponibile solo su Windows.

📂 Artefatti Supportati

Crow-Eye analizza un'ampia serie di artefatti Windows relativi a esecuzione, file system e attività utente, sia da un sistema live sia da fonti offline (cartelle raccolte o immagini forensi).

ArtefattoLiveOfflineDati Estratti
PrefetchCronologia di esecuzione, conteggio esecuzioni, timestamp per esecuzione
Registry (AutoRun, UserAssist, BAM/DAM, ShimCache, reti, fuso orario e oltre 80 chiavi in totale)Persistenza, utilizzo programmi, attività in background, configurazione di rete, stato di approvazione all'avvio
Registry — chiavi e valori eliminatiRecord recuperati dallo spazio libero dell'hive, contrassegnati come tali (record_state)
Registry — nomi di classe e sicurezza delle chiaviNomi di classe nk (dove Control\Lsa conserva la boot key), proprietario/gruppo/DACL dai descrittori di sicurezza condivisi
Registry — log delle transazioni.LOG1/.LOG2 riprodotti su una copia di lavoro, così un hive sporco viene letto nello stato in cui si trovava la macchina
Amcache (29 tabelle)Esecuzione app, ora di installazione, SHA-1, percorsi file, driver, dispositivi PnP, censimento dispositivi
ShimCacheApp eseguite, ultima modifica, dimensione e blob finale decodificato (tipo di macchina PE, flag binario OS)
MUICachePresenza programmi e nomi visualizzati
Jump Lists e LNKAccesso ai file, percorsi, timestamp, metadati
ShellBagsCronologia di accesso alle cartelle e navigazione
MRU e RecentDocs / Percorsi digitatiCronologia Apri/Salva, file recenti, percorsi digitati
Cronologia browser / siti webSiti visitati e orari di accesso
Log eventi (Sistema / Sicurezza / Applicazione)Accessi, creazione processi (4688), modifiche account e servizi, cancellazione log
MFTMetadati file, file eliminati, timestamp (NTFS, Win 7/10/11)
USN JournalCreazione/modifica/eliminazione/rinomina file con cronologia completa dei nomi
CestinoNomi file eliminati, percorsi, ora di eliminazione, dimensione
SRUMUtilizzo risorse/rete/energia delle app, dati trasferiti per app
Dispositivi USB e connessiConnessione e presenza dispositivi
Elenco reti e connessioniReti note e attività di connessione
Avvio automatico / Servizi e driverPersistenza, installazioni servizi e cambi di stato
Dischi e partizioni (Storage Forensics)Albero dei dischi fisici, layout partizioni, rilevamento nascosti/non montati

Jump Lists e LNK vengono analizzati dal parser LNK / Jump List dedicato di Crow-Eye — non da un modulo di terze parti.

Registry personalizzato / file bloccati: Windows blocca gli hive del registro live (NTUSER.DAT, SOFTWARE, SYSTEM) durante il funzionamento. Per un'analisi personalizzata di un sistema live, avvia da supporto esterno (WinPE/Live CD), usa strumenti di acquisizione forense o analizza un'immagine disco.

Dettagli per Artefatto

  • Jump Lists e LNK — analizzati automaticamente dalle posizioni di sistema standard dal parser dedicato di Crow-Eye (accesso ai file, percorsi di destinazione, timestamp e metadati).
  • Registry — analizza automaticamente gli hive di sistema. Per un'analisi personalizzata del registro, copia i file degli hive nella cartella CrowEye/Artifacts Collectors/Target Artifacts (o nella cartella registry/ del tuo caso):
    • NTUSER.DAT da C:\Users\<NomeUtente>\NTUSER.DAT
    • SOFTWARE da C:\Windows\System32\config\SOFTWARE
    • SYSTEM da C:\Windows\System32\config\SYSTEM
    • Windows li blocca durante il funzionamento — per un sistema live, avvia da supporto esterno (WinPE/Live CD), usa strumenti di acquisizione forense o analizza un'immagine disco.
  • Prefetch — analizza C:\Windows\Prefetch, estraendo la cronologia di esecuzione e i metadati forensi (inclusi i timestamp per esecuzione).
  • Log eventi — analisi automatica dei log di Sistema/Sicurezza/Applicazione in un database per un'analisi completa.
  • Profondità del registro (0.13.0) — il parser legge il file dell'hive oltre al registro live, così raggiunge ciò che winreg nega persino a un amministratore (ogni sottochiave Properties dei dispositivi e, con essa, gli orari di connessione USB), esplora l'allocatore dell'hive per recuperare chiavi e valori eliminati e legge i nomi di classe e i descrittori di sicurezza delle chiavi. Diciannove chiavi che contenevano dati reali e che non venivano lette da nulla sono ora analizzate — inclusa StartupApproved di Explorer, che indica se ogni voce di avvio automatico è effettivamente autorizzata a partire.
  • ShellBags — rivela la cronologia di accesso alle cartelle e i modelli di navigazione dell'utente.
  • Cestino — analizza $RECYCLE.BIN per recuperare nomi di file eliminati, percorsi originali, orari di eliminazione e dimensioni (sistemi live e immagini disco).
  • MFT — analizza la Master File Table per metadati file, attributi, timestamp e informazioni sui file eliminati (NTFS, Windows 7/10/11).
  • USN Journal — tiene traccia degli eventi di creazione/modifica/eliminazione/rinomina file con timestamp e cronologia completa dei nomi, per la ricostruzione della timeline.
  • SRUM — visualizza l'utilizzo delle risorse delle app (barre di durata per tempo in primo piano/sfondo) e l'attività di rete per applicazione.
  • Storage Forensics Analyzer — vista ad albero completa di ogni disco fisico e delle sue partizioni; tipi di partizione codificati a colori (EFI, Linux, Recovery, Nascosta/swap, …); avvisi per USB avviabili, root Linux nascoste e Intel Rapid Start; fallback con scansione magica dei settori grezzi.

🔧 Modalità di Analisi

🦅 Acquisizione Crow-Claw

Crow-Claw è il motore di acquisizione specializzato di Crow-Eye per raccogliere e preservare artefatti da sistemi live o immagini montate.

  • Raccolta selettiva — scegli categorie specifiche di artefatti (Registry, Log eventi, File system) o raccogli tutto.
  • Scansione profonda — esplora directory e sottodirectory per trovare tracce forensi.
  • Preservazione sicura — gli artefatti finiscono in una directory di caso strutturata che mantiene l'integrità forense.

🔍 Analisi Offline (Importatore Offline)

Analizza artefatti raccolti da qualsiasi fonte senza una connessione live al target — tre operazioni chiare:

  • SCAN (scoperta) — esplora la fonte e indicizza ogni artefatto supportato in base a nome file e pattern di estensione (veloce, sola lettura; nessun contenuto file viene letto e nessun controllo dei byte magici viene eseguito in questa fase). Non viene spostato nulla.
  • COLLECT (acquisizione) — copia fisicamente i file identificati nella cartella live_acquisition del caso, organizzati per tipo.
  • PARSE (granulare) — rivedi gli elementi identificati per tipo (AMCACHE, EVTX, PREFETCH, …) e analizza i file selezionati (o tutti) nel database forense.
🔍 SCAN📦 COLLECT
AzioneScoperta — identifica gli artefatti nella loro posizione originaleAcquisizione — copia e preserva gli artefatti nella cartella del caso
Impatto I/OSola lettura; nessun file spostatoLettura + scrittura; duplica fisicamente gli artefatti
OrganizzazioneAggiorna i metadati .artifact_scan_index.jsonOrganizza i file in cartelle specifiche per tipo
Caso d'usoTriage rapido per vedere se la fonte ha dati rilevantiPreservazione forense completa per analisi a lungo termine

L'analisi è gestita dai parser offline dedicati di Crow-Eye — la stessa logica degli artefatti della modalità live, operante sui file raccolti: Prefetch, Registry, MFT, USN (più il correlatore MFT/USN), AmCache, ShimCache, SRUM, Log eventi, LNK/JumpLists e Cestino.

📎 Importa Prove (dati di terze parti)

Oltre agli artefatti grezzi, Crow-Eye può accettare output forensi di terze parti direttamente in un caso — Plaso, Autopsy, Volatility o qualsiasi esportazione personalizzata — e renderli utilizzabili dall'Eye e dalla Timeline senza richiedere prima un'esecuzione di correlazione.

InputCosa succede
.db / .sqliteValidato e copiato parola per parola nella cartella Imported_Evidence/ del caso. Lo schema viene lasciato intatto.
.csv / .jsonConvertito automaticamente in un database SQLite a forma di feather tramite il canonico FeatherWriter, con feather_metadata che dichiara il timestamp primario della tabella — rilevato automaticamente dai nomi delle colonne — esattamente come una feather raccolta nativamente.

Poiché il gestore del database del caso scopre automaticamente qualsiasi .db sotto l'albero del caso, le prove importate diventano immediatamente disponibili per:

  • The Eye — interrogabile in linguaggio naturale insieme agli artefatti nativi (il manifest dello schema viene aggiornato all'importazione).
  • La Timeline Interattiva — servita come tipo di artefatto imported, con filtro funzionante per finestra temporale e limiti di tempo.
  • Il Motore di Correlazione — utilizzabile come Feather per la correlazione tra strumenti contro gli artefatti nativi.

L'importatore usa solo la libreria standard (sqlite3 / csv / json) e gira su un worker in background, quindi le importazioni di grandi dimensioni non bloccano l'interfaccia.

⚡ Analisi Live

Analizza gli artefatti direttamente dal sistema Windows in esecuzione, estraendoli automaticamente dalle loro posizioni standard per un'analisi forense in tempo reale.

🗂️ Gestione dei Casi

Ogni indagine è un caso: una directory autonoma che organizza i database degli artefatti e l'output dell'analisi. Crow-Eye tiene traccia dei casi recenti (con preferiti, tag e stato), valida un caso all'apertura, scrive la configurazione in modo atomico (a prova di crash) e supporta l'importazione/esportazione della configurazione del caso e modelli con mapping semantici già pronti.

🕰️ Visualizzazione Timeline Interattiva

Correla gli eventi tra gli artefatti su una griglia temporale unificata, con viste Heat Map, Settimana e Giorno — una storia tracciabile in tribunale e collegata per identità, piuttosto che una super-timeline piatta.

La Timeline legge i database degli artefatti analizzati del caso direttamente ed è indipendente dal Motore di Correlazione — non devi creare feather, scrivere wing o eseguire una pipeline per usarla. Applica il proprio raggruppamento temporale leggero (correlazione per timestamp esatto e finestra temporale, raggruppamento per applicazione, percorso o utente) per mettere in relazione gli eventi sulla griglia. Le prove portate tramite Importa Prove appaiono anche sulla timeline come tipo di artefatto imported, con filtro funzionante per finestra temporale e limiti di tempo.

🔎 Ricerca ed Esportazione

Ricerca full-text nel database del caso, più esportazione in CSV (fogli di calcolo), JSON (integrazione con altri strumenti) e report HTML dettagliati (dossier completi che consolidano ogni artefatto collegato a un termine di ricerca).

🔗 Collegamento Dinamico

Traduci al volo identificatori tecnici grezzi — SID, indirizzi MAC, hash — in contesto leggibile dall'uomo. Il Collegamento Dinamico arricchisce la vista usando query SQL ATTACH non distruttive, quindi la prova originale non viene mai modificata, e può ingerire feed di threat intelligence IOC in blocco per segnalare inline gli indicatori noti come dannosi.

🧠 Analisi del Comportamento Utente (UBA)

Trasforma gli artefatti grezzi in una storia di attività in inglese semplice — un resoconto leggibile da manager/HR di cosa un utente e le sue applicazioni hanno effettivamente fatto, con ogni affermazione riconducibile alla prova sorgente esatta.

User Behavior Analytics (UBA) legge i database degli artefatti analizzati nella cartella Target_Artifacts/ del tuo caso (strettamente sola lettura) e li riproduce attraverso un insieme di regole dichiarative per produrre una chiara Activity Story cronologica. Aprila dal pulsante della barra degli strumenti "User Behavior" o con Ctrl+Shift+B (deve essere caricato un caso).

  • 🧩 40 rilevamenti comportamentali dichiarativi (uba/config/behavior_rules.json) — regolabili senza codice — ciascuno classificato per gravità: routine · notevole · sospetto · critico.
  • 🕵️ Rileva i comportamenti che contano: accesso / uscita / sblocco, avvio programma · esecuzione · installazione, apertura / eliminazione / copia dedotta di file, connessione dispositivo USB, accesso a condivisioni di rete, persistenza e avvio automatico, uso di credenziali esplicite (runas), modifiche account e gruppi, modifiche servizi, manomissione dell'orologio di sistema (sospetto) e cancellazione dei log eventi (critico).
  • 🗺️ Tre viste — un feed Activity Story, una mappa di calore Activity Map (giorno × ora) e un report di onestà "Cosa possiamo vedere" che etichetta ogni rilevamento Funzionante / Limitato / Nessun dato / Per progettazione per questo caso.
  • 🔗 Ogni attività è supportata da prove. Clicca qualsiasi elemento per aprire il record di supporto esatto (database : tabella : rowid) — nulla viene affermato senza una fonte.
  • 👤 Attribuzione onesta. Gli attori si risolvono in Utente / Applicazione / Sistema (o restano vuoti) — UBA non indovina mai chi ha fatto cosa.

Copertura dei Rilevamenti

I 40 rilevamenti coprono quattro classi di gravità e l'intera ampiezza dell'insieme di artefatti analizzati:

CategoriaI rilevamenti includono
Identità e accessoAccesso / uscita, sblocco workstation, accessi desktop remoto, accessi amministratore, uso di credenziali esplicite (runas), creazione account e modifiche, aggiunte a gruppi amministrativi
EsecuzioneProgrammi aperti (UserAssist), programmi eseguiti (Prefetch, espansi in eventi per esecuzione), creazione processi (4688), presenza programmi (ShimCache / AmCache / MUICache), installazioni applicazioni, crash applicazioni (da record 1001 del Log eventi Applicazione)
Attività fileApertura / creazione / eliminazione / copia / rinomina file — le rinomine mostrano la cronologia completa dei nomi (vecchio → … → attuale) ricostruita dal USN Journal, con risoluzione dell'eliminazione soft ($R/$I)
NavigazioneEsplorazione cartelle (ShellBags), documenti recenti, percorsi digitati, visite a siti web
Dispositivi e reteConnessione dispositivo USB, presenza dispositivi, condivisioni di rete, connessioni di rete, dati trasferiti per applicazione (SRUM)
Persistenza e sistemaPersistenza all'avvio automatico (chiavi Run + servizi, aggravata quando il target gira da un percorso scrivibile dall'utente), installazioni servizi e driver, cambi di stato servizi, avvio/arresto sistema, cambi orologio, cancellazione log eventi

Filtri: ricerca a testo libero · utente/attore (inclusi "Non attribuito" e un interruttore per sessione con accesso effettuato) · classe di comportamento (utente / applicazione / sistema) · gravità · applicazione (multi-selezione ricercabile su oltre 200 programmi) · intervallo data/ora con preset rapidi (tutto il tempo / primo giorno / ultimo giorno / ultima ora di attività).

Fonti dati: Log eventi Sicurezza, Sistema e Applicazione · USN Journal · MFT · UserAssist · BAM · Prefetch · ShimCache · AmCache · MUICache · ShellBags · LNK / JumpLists · Cestino · SRUM (applicazione, rete, connettività) · hive del registro.

Garanzie Forensi

  • Sola lettura. I database sorgente vengono aperti in sola lettura; l'analisi non tocca mai le prove.
  • Provenienza completa. Ogni evento porta database → tabella → rowid e apre le righe sorgente reali su richiesta.
  • L'attribuzione non indovina mai. Un evento viene attribuito a un Utente, un'Applicazione, il Sistema — o lasciato vuoto. Le sessioni di accesso interattive vengono usate solo come etichette di contesto ("durante la sessione di <utente>"), mai per attribuire un'azione.
  • Formulazione onesta. La fraseologia distingue l'interazione deliberata (UserAssist, SRUM in primo piano) dagli artefatti che un'applicazione può generare anche da sola (ShellBags, LNK, JumpLists), con avvertenze esplicite mostrate sulla scheda.
  • L'assenza è dichiarata, non implicita. Il report Cosa possiamo vedere etichetta ogni rilevamento per questo caso specifico, così i dati mancanti non vengono mai letti silenziosamente come "non è successo nulla".

UBA è correlazione e classificazione comportamentale guidata da regole, non punteggio anomalo statistico/ML — ogni risultato corrisponde a una regola esplicita e verificabile. Vedi RELEASE_NOTES.md per il catalogo completo dei rilevamenti.

🧩 Motore di Correlazione

Motore di Correlazione v1.7.0 — il nucleo di ricostruzione. Vedi RELEASE_NOTES.md per la cronologia delle release.

Il Motore di Correlazione di Crow-Eye è un sistema di correlazione forense di livello produttivo. Ingerisce artefatti Windows da qualsiasi fonte, li normalizza e porta in superficie le relazioni temporali e di identità che trasformano record isolati in una narrazione coerente di cosa è successo su un sistema, quando e chi era coinvolto. Funziona subito con regole di correlazione integrate (Wing) per le domande di indagine più comuni, consente agli analisti di creare regole personalizzate senza toccare codice e rimanda il significato a regole scrivibili e all'investigatore — mai a un punteggio a scatola nera.

🎥 Guida Utente

Guida Utente Motore di Correlazione

Importazione Dati Universale: Il Motore di Correlazione può accettare output da qualsiasi strumento forense in formato CSV, JSON o SQLite e convertirlo in un database Feather. Questo significa che puoi correlare dati da strumenti di terze parti (Plaso, Autopsy, Volatility, ecc.) con gli artefatti nativi di Crow-Eye, creando un'analisi di correlazione unificata su tutte le tue fonti di dati forensi.

🎯 Accuratezza e Completezza delle Prove

Una passata di accuratezza mirata dal ciclo 0.11.0, validata end-to-end su un caso Windows reale di ~700K record e sovrapposta a precedenti lavori di affidabilità. Ogni correzione di seguito è bloccata dalla suite di regressione pytest e verificata da un harness di validazione olistico; ha esercitato i sette wing predefiniti spediti all'epoca — undici vengono spediti oggi. I conteggi di corrispondenza citati sotto sono stati misurati con le regole di quella release: 0.13.0 ha cambiato cosa conta come corrispondenza (una corrispondenza ora deve estendersi su più di una feather) e cosa significa un punteggio di confidenza, quindi trattali come un record di quella passata piuttosto che come cifre attuali.

Il motore di identità cattura tutte le prove

  • Corretto: il motore di identità iterava solo la PRIMA riga di ogni feather quando era attivo un filtro temporale (un confronto tra datetime timezone-aware e naive sollevava TypeError e interrompeva il ciclo per riga). I record visti sono passati da 3.558 → 745.615 sul caso di validazione.
  • Corretto: i record di log collassavano ogni evento al suo PROVIDER di eventi come identità (tutti i 33.855 record SecurityLogs condividevano un'unica identità). Il mapping per artefatto ora privilegia le entità reali per riga (User, ComputerName, NewProcessName, TargetUserName) prima dei metadati di canale/provider.
  • Corretto: il mapping dei campi sensibile all'artefatto non scattava mai perché i parser non timbrano una colonna artifact su ogni riga. Il motore ora ripiega su feather_metadata.artifact_type, così SecurityLogs / SystemLogs / ApplicationLogs usano la loro priorità di identità specifica per artefatto.
  • Corretto: le stringhe segnaposto diventavano identità false ('N/A', 'Unknown', '-', GUID nulli raggruppavano record non correlati). Il validatore ora rifiuta oltre 30 varianti di segnaposto.
  • Risultato netto su una finestra a intervallo completo, misurato allora: il wing Execution Proof ha portato in superficie 2.856 corrispondenze cross-feather (Alte) nel motore di identità e 643 corrispondenze cross-feather nel motore temporale, con 24–118 corrispondenze cross-feather per wing sugli altri sei wing di quella release.

Niente più "tutto è Basso — qualcosa non va"

  • Corretto: le corrispondenze a feather singola erano etichettate Alte. Le corrispondenze con feather_count == 1 ora ottengono confidence_category="Bassa - feather singola", così la vista Alta si concentra sulla vera correlazione cross-feather.
  • Corretto: una chiave composita sensibile al percorso stava dividendo la stessa identità tra feather (ogni feather memorizza i percorsi in modo diverso, quindi chrome aveva 10+ chiavi e non correlava mai). La chiave ora è solo nome — la correlazione cross-feather funziona di nuovo.

Rilevamento dell'impersonificazione tramite classificazione dei percorsi — dopo che una corrispondenza è formata, il motore classifica il percorso di ogni record come AFFIDABILE (Program Files, System32, WinSxS, le forme BAM/SRUM /device/harddiskvolumeN/..., …) o SOSPETTO (Temp, Downloads, Public, AppData\Local\Temp, Cestino, root rimovibili, condivisioni di rete). Una corrispondenza che copre entrambe le classificazioni solleva impersonation_alert (tasso ≈0,05%, ciascuno un candidato reale).Registrazione onesta delle evidenze — un registro di scarto per finestra con bucket denominati (no_identity_field, normalize_failure, below_threshold_skipped, …) più un riepilogo per pipeline (record visti, emessi high/low, senza identità, bucket di scarto, join timeless-feather). Ogni record finisce o in una corrispondenza o in un bucket di scarto denominato — "nessuna evidenza avanzata" è verificabile dal log. low_confidence_review_mode è ATTIVO per impostazione predefinita, quindi i gruppi sotto soglia diventano corrispondenze a bassa confidenza invece di sparire silenziosamente.

Arricchimento dell'identità timeless-feather — le feather senza timestamp per riga (AutoStartPrograms, MUICache, SystemServices, TypedPaths) non ricevono più un finto timestamp di generazione su ogni riga; invece, dopo la formazione delle corrispondenze temporali, il motore unisce i record corrispondenti di ogni feather timeless per identità come evidenza supplementare.

Registro delle identità consolidatoconfig/standard_fields/identities.json è l'unica fonte di verità per ogni colonna che i motori + Eye devono consultare: 98 categorie, 1.146 sinonimi di colonna (app/processo, file, hash, utente, host/dispositivo, rete, registro, servizio/attività, evento, email, browser, cloud, internals di Windows, certificato, contenitore, oggetti del sistema operativo). Aggiungere un nuovo sinonimo di colonna è una modifica JSON, non una modifica al codice.

Correzioni dei falsi positivi del mapping semantico — il controllo multi-indicatore è ora effettivamente applicato (data-exfiltration-pattern richiede ≥2 indicatori); le regole AND impossibili (4625 AND 4624) riscritte come OR; le regole wiper/strumenti remoti usano regex reali invece di attivarsi su ogni voce Prefetch; le regole delle attività di base declassate da high/critical a info/low (il punteggio ponderato dell'ala fa salire le minacce reali).

✅ Stato di produzione

Il Correlation Engine è pronto per la produzione e attivamente utilizzato nelle indagini (Correlation Engine v1.7.0):

  • Motore di scansione a finestra temporale — pronto per la produzione, consigliato per l'analisi basata sul tempo (O(N log N))
  • Motore basato sull'identità — pronto per la produzione, consigliato per il tracciamento dell'identità (O(N log N))
  • Feather Builder / FeatherWriter — importa CSV/JSON/SQLite da qualsiasi strumento; batching transazionale + metadati dello schema
  • Sistema Wings e orchestrazione della pipeline — crea/gestisci regole di correlazione e automatizza i flussi di lavoro
  • Raggruppamento delle identità — unificato tra motore, visualizzatori e fase semantica
  • Registro dei campi standard — fonte di verità centralizzata per i sinonimi dei campi
  • Fan-out multi-timestamp — ogni timestamp di elenchi JSON correlato
  • 🔄 Correlazione parallela — fondamenta in atto; profilazione + dispatch del pool di processi come prossimo passo
  • 🔄 Mapping semantico e punteggio di correlazione — miglioramenti attivi

Caratteristiche principali

  • 🔄 Architettura a doppio motore: scegli tra strategie di correlazione a scansione a finestra temporale (O(N log N)) e basate sull'identità (O(N log N)).
  • 📊 Supporto multi-artefatto: correla Prefetch, ShimCache, AmCache, log eventi, file LNK, Jumplists, MFT, USN, SRUM, registro, Cestino e altro.
  • 🔌 Import universale: importa output CSV/JSON/SQLite da qualsiasi strumento forense e convertilo in database Feather.
  • 🎯 Raggruppamento intelligente delle identità: varianti come Chrome.exe/chrome.dll/Chrome.EXE collassano in un unico bucket; versioni e qualificatori architetturali restano distinti.
  • 🕒 Timestamp tolleranti: FILETIME, ISO 8601, epoch Unix (s/ms/μs), YYYYMMDD, barre americane e stringhe annotate vengono tutti analizzati correttamente al primo tentativo.
  • 📈 Fan-out multi-timestamp: gli elenchi di timestamp JSON (Prefetch run_times) vengono espansi così ogni esecuzione ottiene il proprio evento di correlazione.
  • 🧰 Un'unica fonte di verità: sinonimi dei campi in config/standard_fields/*.json; metadati per tabella in correlation_engine/config/feather_schemas.json — estendi modificando JSON, non codice.
  • ⚡ Streaming + thread-safe: query_time_range_iter con memoria O(1); cache feather protette da lock; pronto per la correlazione parallela.
  • 🔍 Regole flessibili: definisci regole di correlazione personalizzate (Wings) con parametri configurabili.
  • 📋 Diagnostica onesta: riga di statistiche per finestra (records_in / no_identity / parse_cache_hits / below_threshold / matches_emitted) così sai sempre se un'evidenza è stata scartata.
  • 🧪 Qualità garantita: suite di regressione pytest che copre l'analisi dei timestamp, la normalizzazione delle identità, il fan-out, il contratto dello scrittore, la creazione di Eye (governance GEP lato scrittura) e il registro dei campi standard.

Architettura del sistema

Il Correlation Engine è composto da quattro componenti principali:

1. 🗄️ Feathers (normalizzazione dei dati)

Scopo: trasformare gli artefatti forensi grezzi in un formato standardizzato e interrogabile.

  • Database SQLite contenenti dati di artefatti forensi normalizzati — una feather per tipo di artefatto (Prefetch, ShimCache, log eventi, …) con uno schema standardizzato e metadati per un'interrogazione efficiente.
  • Un formato universale che accetta dati da qualsiasi strumento 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
**Formati di importazione supportati:** CSV (qualsiasi file con intestazione), JSON (piatto o annidato) e SQLite (importazione diretta). Mappatura automatica delle colonne, rilevamento dei tipi di dati, normalizzazione dei timestamp in ISO, validazione e indici ottimizzati.```
prefetch.db (Feather)
├── feather_metadata (artifact type, source, record count)
├── prefetch_data (executable_name, path, last_executed, hash)
└── Indexes (timestamp, name, path)

2. 🎯 Wings (Regole di Correlazione)

Scopo: Definire quali artefatti correlare e come.

  • Regole JSON/YAML che specificano una finestra temporale, corrispondenze minime, priorità dell'ancora e le piume (con pesi) da correlare — riutilizzabili tra i casi. Ogni Wing è creabile e sigillata (registra chi l'ha creata, il motivo e le prove che l'hanno motivata).```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. ⚙️ Motori (Strategie di Correlazione)

**Scopo**: Eseguire la logica di correlazione per trovare relazioni tra gli artefatti. I collegamenti strutturali vengono **prima**; un punteggio ponderato a livelli viene sovrapposto come *interpretazione/classificazione*, non come base per una corrispondenza.

**Motore di Scansione a Finestra Temporale** — ideale per analisi basate sul tempo e correlazione temporale sistematica. Scansiona il tempo a intervalli fissi, raccoglie i record da tutte le piume per finestra, applica il matching dei campi semantici + punteggio ponderato e previene i duplicati tramite il tracciamento MatchSet. **O(N log N)** (query indicizzate su timestamp); elaborazione batch (~2.567 finestre/secondo).

**Motore di Correlazione Basato su Identità** — ideale per set di dati di grandi dimensioni (>1.000 record) e tracciamento delle identità. Estrae e normalizza le identità, raggruppa i record per identità, costruisce ancore temporali all'interno di ciascun cluster, classifica le prove come primarie/secondarie/supportive e trasmette in streaming per set molto grandi (>5.000 ancore) a memoria costante. **O(N log N)**; 40+ modelli di campi di identità per tipo.

**Selezione del motore:** utilizzare il motore a finestra temporale per l'analisi basata sul tempo e il motore basato su identità per il tracciamento delle identità — entrambi sono pronti per la produzione e ottimizzati per set di dati di grandi dimensioni con query indicizzate.

#### 4. 🔄 Pipeline (Orchestrazione dei Flussi di Lavoro)

**Scopo**: Automatizzare flussi di lavoro di analisi completi, dalla creazione delle piume alla generazione dei risultati. Una pipeline legge la propria configurazione (tipo di motore, ali, piume), istanzia il motore corretto tramite EngineSelector, esegue ciascuna ala, aggrega le corrispondenze, salva i risultati (DB + JSON) e li visualizza nella GUI con filtri e visualizzazione.```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"
  }
}

Come Tutto Funziona Insieme```

  1. Data Preparation Raw Forensic Data → Feather Builder → Feather Databases
  2. Configuration Wing Configs + Feather References → Pipeline Config
  3. Execution Pipeline Executor → Engine Selector → Correlation Engine
  4. Correlation Engine loads Feathers + applies Wing rules → Correlation Results
  5. Visualization Results Database → Results Viewer GUI
### Esempio di caso d'uso: ricerca della prova di esecuzione

**Scenario**: dimostrare che `malware.exe` è stato eseguito su un sistema.```json
{
  "wing_id": "malware-execution",
  "correlation_rules": { "time_window_minutes": 5, "minimum_matches": 2 },
  "feathers": ["prefetch", "shimcache", "amcache"]
}

I'm ready to translate the Kitploit tool content from English to Italian. Please provide chunk 18 of 25.```python from correlation_engine.pipeline import PipelineExecutor executor = PipelineExecutor(pipeline_config) results = executor.execute()

🛠️ Funzionalità

  • Scansione completa: Scansiona l'intera rete o intervalli IP specifici.
  • Rilevamento del sistema operativo: Identifica il sistema operativo di ciascun host.
  • Rilevamento dei servizi: Rileva i servizi in esecuzione e le relative versioni.
  • Rilevamento delle vulnerabilità: Utilizza script NSE per identificare le vulnerabilità note.
  • Output flessibile: Supporta più formati di output, tra cui normale, XML, JSON e Grepable.
  • Scansione UDP: Esegue scansioni UDP oltre alle scansioni TCP.
  • Aggregazione dei risultati: Aggrega i risultati di più scansioni per una visione completa.
  • Pianificazione: Pianifica le scansioni a intervalli regolari per un monitoraggio continuo.
  • Notifiche: Invia notifiche via e-mail o webhook al termine delle scansioni.
  • Integrazione con database: Salva i risultati in un database per l'analisi storica.
  • Interfaccia web: Fornisce un'interfaccia web per la gestione e la visualizzazione dei risultati delle scansioni.
  • Autenticazione: Supporta l'autenticazione utente per l'accesso sicuro all'interfaccia web.
  • Autorizzazione: Implementa il controllo degli accessi basato sui ruoli (RBAC) per gestire le autorizzazioni degli utenti.
  • Registrazione: Registra tutte le attività di scansione e gli eventi di sistema per il controllo e il debug.
  • Configurazione: Consente la configurazione tramite file di configurazione o variabili d'ambiente.
  • Estensibilità: Supporta plug-in per estendere le funzionalità e integrarsi con altri strumenti.
  • Supporto multipiattaforma: Funziona su Windows, Linux e macOS.
  • Open source: Distribuito con licenza open source, consentendo la personalizzazione e i contributi della community.
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
```
### Benchmark delle Prestazioni

| Record | Motore a Finestra Temporale | Motore Basato su Identità |
|---|---|---|
| 1.000 | 0,5s | 2s |
| 10.000 | 5s | 15s |
| 100.000 | 50s | 2,5 min (streaming) |
| 1.000.000 | — | 25 min (streaming) |

### Per Iniziare con il Motore di Correlazione

1. **Avvio**: `python -m correlation_engine.main`
2. **Crea le Feather**: importa i tuoi artefatti forensi (Prefetch, ShimCache, …).
3. **Crea le Wings**: definisci le regole di correlazione per la tua indagine.
4. **Crea una Pipeline**: configura quali wings e feathers utilizzare.
5. **Esecuzione**: esegui la pipeline e visualizza i risultati correlati.
6. **Analisi**: usa il Visualizzatore dei Risultati per esplorare le relazioni temporali.

### 📚 Documentazione del Motore di Correlazione

- **[Panoramica del Motore di Correlazione](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/CORRELATION_ENGINE_OVERVIEW.md)** — panoramica del sistema con diagrammi dell'architettura
- **[Documentazione del Motore](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md)** — architettura a doppio motore, selezione del motore, ottimizzazione delle prestazioni
- **[Architettura](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/ARCHITECTURE.md)** — integrazione dei componenti e flusso dei dati
- **[Documentazione delle Feather](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/feather/FEATHER_DOCUMENTATION.md)** — il sistema di normalizzazione dei dati
- **[Documentazione delle Wings](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/wings/WINGS_DOCUMENTATION.md)** — regole di correlazione
- **[Documentazione della Pipeline](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/pipeline/PIPELINE_DOCUMENTATION.md)** — orchestrazione del flusso di lavoro
- **[Aggiungere un Artefatto](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/ADDING_AN_ARTIFACT.md)** — il flusso di lavoro per collegare un nuovo parser al motore
- **[Registro dei Campi Standard](https://github.com/ghassan-elsman/crow-eye/blob/main/config/standard_fields)** — sinonimi canonici dei nomi di colonna caricati da entrambi i motori e dall'Eye
- **[Guida al Contributo](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/CONTRIBUTING.md)** — come contribuire al motore
- Collegamenti rapidi: [Selezione del Motore](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#engine-selection-guide) · [Risoluzione dei Problemi](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#troubleshooting) · [Ottimizzazione delle Prestazioni](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#performance-and-optimization)

## 👁️ Eye — L'Assistente AI Forense

> **Un potente assistente, non un sostituto.** Eye automatizza e *verifica* le ipotesi di un investigatore — non prende mai la decisione al posto tuo.

**Eye** è l'assistente AI forense integrato di Crow-Eye: un investigatore forense esperto supportato da una vera knowledge base di artefatti Windows. Ti offre un'interfaccia in linguaggio naturale per interrogare, correlare e documentare tutto in un caso — Prefetch, MFT, Registry, Event Logs, AmCache, ShimCache, SRUM e altro — mantenendo al contempo una registrazione verificabile e a prova di manomissione di esattamente ciò che ha fatto. Eye può essere eseguito interamente sulla tua hardware (incluso **completamente air-gapped**), in linea con la posizione sulla privacy di Crow-Eye di **"0 ms di dati inviati fuori dal dispositivo"**. Architettura completa: [`eye/README.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md).

| Capacità | Cosa significa per te |
|---|---|
| **Indagine in linguaggio naturale** | Chiedi in un inglese semplice; Eye scrive l'SQL e cerca per te. |
| **Integrazione multi-sorgente** | Accesso unificato a tutti gli artefatti analizzati nel caso. |
| **Analisi potenziata con RAG** | Eye recupera conoscenze forensi specifiche per l'artefatto prima di rispondere. |
| **Spazio di Lavoro del Report Vivente** | Risultati, tabelle, grafici e timeline vengono documentati in tempo reale. |
| **Human-in-the-loop** | Le azioni critiche (es. esportazione del report) richiedono la tua approvazione esplicita. |
| **Catena di custodia** | Prova crittografica di esattamente ciò che il modello ha analizzato. |

Eye trasforma domande conversazionali ("mostrami cosa è stato eseguito da `C:\Temp` dopo le 22:00") in vero lavoro forense: pianifica un approccio, recupera la conoscenza rilevante sugli artefatti, esegue SQL e ricerche cross-artefatto sui database del caso e sintetizza una risposta validata. Ogni risposta viene prodotta **in due posti contemporaneamente** — una risposta in chat per te e un blocco strutturato scritto in uno **Spazio di Lavoro del Report Vivente**, così il dossier si costruisce da solo mentre l'indagine procede.

### Il Protocollo Ghassan Elsman (GEP)

Tutto ciò che Eye fa è ancorato al **Protocollo Ghassan Elsman (GEP)** — uno standard **indipendente dal fornitore e dallo strumento** su *come qualsiasi IA dovrebbe essere utilizzata nella digital forensics*. Sono **10 principi** che un sistema conforme deve rispettare affinché i risultati assistiti dall'IA rimangano **veritieri, tracciabili rispetto ai record di origine e supportati da una catena verificabile e a prova di manomissione**, con l'investigatore umano al controllo:

| # | Principio | In una riga |
|---|---|---|
| **GEP-1** | Primato delle Prove | Le conclusioni derivano solo dagli artefatti effettivamente esaminati. |
| **GEP-2** | Tracciabilità | Ogni fatto è collegato a uno specifico record di origine. |
| **GEP-3** | Specificità e Cronologia | Timestamp UTC esatti, identificatori e percorsi, ordinati nel tempo. |
| **GEP-4** | Corroborazione Incrociata | Basarsi su più fonti; segnalare accordo, silenzio e conflitto. |
| **GEP-5** | Verifica delle Premesse | Trattare le affermazioni umane come ipotesi da provare o confutare. |
| **GEP-6** | Completezza | Non eliminare o troncare mai silenziosamente le prove. |
| **GEP-7** | Integrità e Non-Ripudio | Non modificare mai le prove; registrare ciò che è stato visto e fatto, in modo a prova di manomissione. |
| **GEP-8** | Trasparenza e Spiegabilità | Il ragionamento, gli strumenti utilizzati e i dati visti sono visibili e verificabili. |
| **GEP-9** | Autorità Umana | L'investigatore decide; le azioni durevoli sono attribuibili. |
| **GEP-10** | Difendibilità | L'output è obiettivo, preciso e strutturato per una revisione indipendente. |

L'Eye di Crow-Eye è l'**implementazione di riferimento** del GEP; i comportamenti nel prodotto che lo sostengono sono le **Regole Operative**. 📜 Leggi lo standard: [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md).

### Modalità di Distribuzione

Eye si adatta al tuo modello di minaccia attraverso tre modalità di distribuzione:

| Modalità | Ideale per | Backend |
|---|---|---|
| ☁️ **Modelli IA Cloud** | Analisi profonde e complesse con potenza di calcolo massima | OpenAI, Anthropic (Claude), Google Gemini |
| 🔒 **Server IA Offline** (air-gapped) | Indagini on-premise a esposizione zero | Ollama, LM Studio |
| ⚡ **Agenti Terminale CLI** | Riutilizzare un agente terminale IA che già possiedi come modello | Claude Code, Gemini CLI, ChatGPT CLI, llama.cpp, … |

In **modalità agente CLI**, Crow-Eye guida un **agente terminale/riga di comando IA esistente come modello** — invece di un'API cloud o di un server offline locale — così puoi indagare con l'agente che già utilizzi.

**Il ciclo di indagine:**

1. **Apri o crea un caso** — Eye si limita ai database degli artefatti e alla cronologia di quel caso.
2. **Fai una domanda** in linguaggio naturale, oppure avvia un triage completo con un clic.
3. **Eye esegue la sua pipeline** — rileva l'intento → recupera la conoscenza → esegue gli strumenti → sintetizza.
4. **Ottieni un doppio output** — una risposta diretta in chat *e* un nuovo blocco nel Report Vivente.
5. **Approva le azioni gated** — le esportazioni e altri passaggi critici attendono la tua firma.

Puoi cambiare modello in fase di esecuzione con lo strumento `switch_model`. Il passaggio è **limitato allo stesso backend**, quindi le prove non vengono mai inviate silenziosamente a un fornitore diverso da quello che hai scelto.

### Tracciare il Processo di Pensiero dell'LLM

Eye è costruito perché tu possa vedere — e successivamente provare — *come* ha raggiunto una conclusione. Mentre Eye lavora, trasmette aggiornamenti strutturati `ThinkingStep` all'interfaccia in tempo reale; ciascuno porta un `step_id`, un `type`, una `label` leggibile dall'uomo, uno `status` (`active` → `done`, o `error`) e `tool`/`params`/`detail` opzionali.

| Tipo di step | Cosa stai vedendo |
|---|---|
| `thinking` | Eye pianifica — rileva l'intento forense, costruisce il prompt di sistema, decide le mosse successive. |
| `rag` | Eye recupera la conoscenza sugli artefatti dalla sua knowledge base per fondare la risposta. |
| `tool_call` | Eye esegue uno strumento forense (una query SQL, una ricerca, una lookup di correlazione). |
| `synthesis` | Eye valida e assembla la risposta finale, supportata dalle prove. |

Una query tipica si svolge come `thinking → rag → thinking → tool_call → synthesis`, e ogni caso conserva artefatti di traccia su disco che puoi ispezionare successivamente:

| File | Cosa registra |
|---|---|
| `<case>/EYE_Logs/eye_payload_seal.jsonl` | I payload esatti inviati al modello, concatenati tramite hash. |
| `<case>/EYE_Logs/truncation_audit.log` | Quale contesto è stato mantenuto, riassunto, eliminato o bloccato — e perché. |
| `<case>/case_history.json` | La cronologia completa della conversazione, con conteggi di token per messaggio. |

### Esecuzione degli Strumenti

Eye è **guidato dagli strumenti**: il modello non tocca mai direttamente le prove. Emette chiamate agli strumenti, ed Eye le esegue sui database del caso e restituisce i risultati — così ogni azione è esplicita, registrata e riproducibile. Gli strumenti sono definiti in `configs/llm_config.json` e distribuiti tramite `eye/services/context_manager.py`.

**Strumenti investigativi** — leggono e analizzano le prove:

| Strumento | Scopo |
|---|---|
| `query_database` | Esegue una `SELECT` su un database forense. |
| `search_artifacts` | Ricerca testo / regex su più database. |
| `semantic_search_artifacts` | Ricerca semantica tra gli artefatti analizzati. |
| `get_schema` | Ispeziona gli schemi delle tabelle. |
| `query_timeline` | Una scansione cronologica unica su ogni database del caso — cosa è successo e quando. |
| `query_correlation_results` | Interroga l'output del Motore di Correlazione per tempo / identità. |
| `read_imported_evidence` | Legge le prove di terze parti importate nel caso verbatim (report, email, output di strumenti browser). |
| `correlate_imported_evidence` | Correla le prove di terze parti importate nel caso con gli artefatti nativi. |
| `analyze_large_dataset` | Analisi map-reduce di grandi set di risultati — **nessuna troncatura silenziosa**. |
| `list_case_files` | Elenca i file nella directory del caso. |
| `internet_search` / `fetch_web_content` | Cerca e recupera contesto esterno di minacce / tecnico. |
| `query_living_off_the_land_intel` | Lookup LOLBAS / LOLDrivers. |
| `query_threat_intel` | Lookup VirusTotal / threat-intel. |
| `switch_model` | Cambia modello in fase di esecuzione (solo stesso backend). |

**Strumenti di reporting** costruiscono lo Spazio di Lavoro del Report Vivente: `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` (l'esportazione richiede l'approvazione umana).

**Strumenti di authoring** (governati — vedi [Costruire Wings di Correlazione e Mapping Semantici](#building-correlation-wings--semantic-mappings)): `correlation_create_wing`, `correlation_edit_wing`, `correlation_create_semantic_mapping`, `correlation_edit_semantic_mapping`. Le chiamate agli strumenti vengono tradotte in ciò che il backend attivo si aspetta — function-calling nativo per API cloud e server locali, o un wrapper XML `<tool_call>` per gli agenti CLI.

### Costruire Wings di Correlazione e Mapping Semantici

Eye non si limita a *interrogare* il [Motore di Correlazione](#-correlation-engine) — può aiutare a **estenderlo**. Quando Eye individua un pattern cross-artefatto ricorrente, può proporre nuove **Wings** (regole di correlazione) e **Mapping Semantici** (traduzioni tecnico-umane). Questo è *authoring governato*: Eye propone, l'analista rivede l'artefatto salvato e ogni modifica è giustificata e supportata dalle prove.

**Una Wing** collega le feathers all'interno di una finestra temporale e di una soglia minima di corrispondenza per provare un'affermazione:

| Campo | Significato |
|---|---|
| `wing_name` | Nome leggibile dall'uomo per la regola. |
| `proves` | L'affermazione forense che supporta (es. *esecuzione di programmi*). |
| `feathers[]` | Artefatti da correlare — ciascuno con `artifact_type`, `weight` opzionale (0–1) e `tier` (1–4). |
| `time_window_minutes` | Finestra di correlazione (default **180** = 3 ore). |
| `minimum_matches` | Quante feathers devono corrispondere nella finestra (default **1**). |
| `reason` *(obbligatorio)* | Giustificazione forense per la regola. |
| `related_evidence` *(obbligatorio)* | Uno o più riferimenti `database:table:rowid` che l'hanno motivata. |

**Un Mapping Semantico** traduce un valore tecnico grezzo in un significato leggibile dall'uomo (es. *EventID 4624 → "Accesso riuscito"*). Esiste in due varianti: un semplice `mapping` (valore singolo/regex → valore semantico) o una `rule` multi-condizione (condizioni unite da AND/OR). Entrambi supportano `category`, `severity`, `confidence` e `scope`, ed entrambi richiedono `reason` + `related_evidence`.

**Governance — regole lato scrittura che sostengono il GEP:**
- **Reason-Required** (sostiene **GEP-9** + **GEP-2**): ogni creazione *e* modifica deve includere una `reason` forense.
- **Evidence-Link** (sostiene **GEP-2**): ogni creazione deve citare almeno un riferimento `database:table:rowid`.
- **Eye-Stamped / sola lettura per gli altri** (sostiene **GEP-7** + **GEP-9**): Eye appone la sua paternità + reason + cronologia delle modifiche e può modificare **solo ciò che Eye ha creato** — le regole integrate e quelle create dall'uomo restano **in sola lettura**.

### Contesto Auto-Riparante

Le indagini lunghe possono superare la finestra di contesto di un modello — specialmente i modelli offline più piccoli. Invece di bloccarsi o eliminare silenziosamente le prove, Eye **compatte automaticamente il proprio contesto** prima di ogni chiamata al modello (all'interno del suo percorso di generazione protetto, completamente verificato).

Prima di ogni chiamata, Eye misura il payload completo e riserva spazio per la risposta (**10%** della finestra, minimo 512 token, mai più della metà). Se ancora non entra, si ripara in due passaggi ordinati, senza mai toccare i messaggi **protetti** (bloccati, prove rilevate automaticamente o un risultato di uno strumento):

1. **Passaggio di riepilogo** *(una volta)* — la cronologia non protetta si comprime in un unico riepilogo, registrato come `SUMMARIZED`.
2. **Passaggio di eliminazione** — il messaggio **non protetto più vecchio** viene rimosso uno alla volta finché non entra, registrato come `TRUNCATED`.

Se il **nucleo di prove** irriducibile (bloccati + risultati degli strumenti + la domanda corrente) *ancora* va in overflow, Eye **rifiuta di procedere piuttosto che troncare le prove** (`REFUSED_OVERFLOW`) e ti chiede di restringere la query o usare `analyze_large_dataset`. Qualunque cosa vada infine al modello è il payload esatto che viene sigillato per la catena di custodia.

### 🗺️ Mappa Narrativa — La Memoria Persistente del Caso dell'Eye

L'Eye è **senza stato tra i turni** — quindi la **Mappa Narrativa** è dove "ciò che sappiamo e ciò che abbiamo concluso" vive per un caso. È la **memoria di lavoro persistente, verificabile e a prova di manomissione** dell'Eye, e i suoi contenuti vengono **iniettati nel prompt dell'Eye a ogni turno** (la mappa *è* letteralmente la memoria).

- 🧭 **Verdetto → Narrativa → Prove.** Una gerarchia rigorosa: un **Verdetto** del caso, le **Narrative** al di sotto (affermazioni, ciascuna con uno stato — `proven` · `open` · `negative` · `needs` · `absolute`) e le **Prove** supportate dagli artefatti al di sotto di queste.
- 🪟 **Una finestra propria.** Si apre dal pulsante **"Narrative Map"** nella finestra della chat dell'Eye, così puoi guardare la chat, il report vivente e la memoria del caso fianco a fianco; si aggiorna in tempo reale man mano che le cose cambiano.
- ↔️ **Bidirezionale — una memoria che comandi tu.** Sia le modifiche dell'Eye che le tue note personali passano attraverso un singolo **commit validato dal GEP** e vengono sigillate in un **log di audit concatenato tramite hash** (`narrative_map_audit.jsonl`). Puoi **aggiungere, modificare e rimuovere** le sue affermazioni e prove, plasmando direttamente come l'Eye comprende e interpreta il caso.
- 🚫 **Non afferma mai ciò che non è supportato.** Una narrativa dell'Eye può restare `open` senza prove mentre indaga, ma non può mai essere `proven` senza prove; un tema che l'Eye ha verificato ma trovato vuoto si converte automaticamente in **`negative`** — perché un'assenza documentata è di per sé un risultato.

### Come Funziona la Conformità

La conformità non è una funzionalità aggiunta a posteriori — è applicata nella pipeline.

- **🔗 Catena di custodia (Sigillo delle Prove).** Ogni payload che Eye invia a un LLM viene sigillato: lo **SHA-256 dei byte esatti**, il conteggio dei token, il modello + il suo limite di contesto e la provenienza di ogni riga di prova (`database:table:rowid`, più gli offset calcolati per i record MFT). I sigilli sono **append-only e concatenati tramite hash** in `<case>/EYE_Logs/eye_payload_seal.jsonl` — un singolo record alterato o rimosso rompe la catena, quindi il log prova *matematicamente* quali byte il modello ha analizzato.
- **🚫 Nessuna troncatura silenziosa.** Quando il contesto si fa stretto, Eye si [auto-ripara](#self-healing-context) e rialloca i budget in un ordine rigoroso: **Priorità 1 (Immovibile): Prove Grezze + Prompt di Sistema** › **Priorità 2 (Sacrificale): Conversazione Informale** › **Priorità 3 (Flessibile): Contesto RAG**. Se il nucleo di prove ancora non entra, Eye rifiuta piuttosto che eliminare silenziosamente le prove.
- **🧾 Traccia di audit della troncatura.** Ogni decisione sul contesto viene registrata in `<case>/EYE_Logs/truncation_audit.log` (`SUMMARIZED`, `TRUNCATED`, `PRESERVED`, `PINNED`, `UNPINNED`, `BUDGET_REDUCED`), ciascuna con un hash. Le prove rilevate vengono bloccate automaticamente al di sopra di una soglia di confidenza; puoi anche bloccare i messaggi manualmente.
- **📑 Mandato Prove-verso-Report.** Eye deve rispondere in chat **e** persistere le prove di supporto nel report; la mancata registrazione delle prove viene segnalata come violazione del protocollo.
- **⚖️ Governance della correlazione.** Qualsiasi Wing o mapping creato da Eye deve includere una `reason` forense e `related_evidence`; le regole create al di fuori di Eye sono in sola lettura e non possono essere riscritte silenziosamente.
- **🔐 Privacy e air-gapping.** Nelle modalità offline Eye effettua **zero chiamate in uscita**; le chiavi API cloud vivono nei portachiavi nativi del sistema operativo — mai hardcoded, mai scritte nei log.

📖 **Architettura completa dell'Eye:** [`eye/README.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md).

## 📖 Eye-Describe — Knowledge Base degli Artefatti a Livello di Byte

> 🔗 **[Esplora Eye-Describe → crow-eye.com/eye-describe](https://crow-eye.com/eye-describe)**

Storicamente, gli investigatori cadevano nella trappola di fidarsi dei propri strumenti forensi senza capire come si comportano gli artefatti sottostanti o come lo strumento li ha analizzati. Il rischio oggi è semplicemente sostituire *"lo strumento"* con *"l'IA"*. Un'IA può analizzare un record con perfetta accuratezza tecnica e comunque collocarlo nel contesto sbagliato — cambiando l'intero significato della prova.

**Eye-Describe** esiste affinché né l'uomo né il modello debbano tirare a indovinare. È un riferimento interattivo a livello di byte per le strutture binarie grezze degli artefatti Windows e svolge due ruoli contemporaneamente:

| Ruolo | Cosa fa |
|---|---|
| 🧑‍🏫 **Il progetto per l'uomo** | Un riferimento educativo interattivo all'anatomia profonda a livello di byte degli artefatti Windows — cos'è ogni struttura, come si comporta, cosa può e non può provare. Gratuito da usare, pensato per studenti, educatori e professionisti che vogliono capire la prova piuttosto che la colonna di output. |
| ⚖️ **L'ancora di conformità per l'IA** | La visibilità dell'Eye è vincolata ai comportamenti documentati degli artefatti in Eye-Describe. Il modello ragiona contro un riferimento hardcoded su ciò che un artefatto *significa realmente*, piuttosto che inferire la semantica da solo. |

Ancorando il livello IA al comportamento documentato degli artefatti, Crow-Eye non ti chiede di fidarti di un modello — vincola il modello a rispettare la forensica grezza.

> **Non sostituire la fiducia nello strumento con la fiducia nell'IA. Comprendi i dati.**

## 🧪 Qualità e Validazione

Gli strumenti forensi sono utili solo se il loro output può essere difeso. Il lavoro di correttezza di Crow-Eye è deliberatamente visibile:- **Suite di regressione.** Il Correlation Engine è protetto da una suite pytest che copre il parsing dei timestamp, la normalizzazione delle identità, il fan-out multi-timestamp, il contratto dello scrittore, la creazione di Eye (governance GEP lato scrittura) e il registro dei campi standard. Il motore UBA include la propria suite, incluso un test end-to-end su un caso reale.
- **Harness di validazione.** Un harness olistico esercita tutte le 7 ali predefinite su **entrambi** i motori con un caso Windows reale di ~700K record.
- **Storico dei difetti pubblicato.** Le regressioni di accuratezza e il loro impatto misurato sono documentati apertamente in [`RELEASE_NOTES.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md) — inclusi i casi in cui una correzione ha modificato i record visti di ordini di grandezza. Sapere cosa era sbagliato, e quando, fa parte di ciò che rende un risultato difendibile.
- **Contabilità delle prove verificabile.** Ogni record finisce in una corrispondenza o in un bucket di scarto nominato, e il registro degli scarti per finestra rende "nessuna prova avanzata" qualcosa che puoi verificare dal log piuttosto che prendere per fede.
- **Log a prova di manomissione.** `verify_chain()` ripercorre il log di audit della Narrative Map e la catena dell'Evidence Seal per rilevare modifiche — incluse quelle ai campi leggibili dall'uomo.

## 🔬 Piattaforma di ricerca

Crow-Eye è più di un software — è una **piattaforma di ricerca aperta** che accelera l'intero campo della forensica Windows. Il progetto si concentra su:

- Pubblicazione di documentazione dettagliata sulle strutture interne degli artefatti.
- Condivisione di logiche e metodologie di correlazione.
- Abilitazione di revisione tra pari, trasparenza e collaborazione accademica.
- Contributo alla conoscenza collettiva della comunità forense.

## 🛠️ Note tecniche

- Il parsing del registro richiede file hive del registro completi.
- Alcuni artefatti richiedono una gestione speciale a causa dei meccanismi di blocco dei file di Windows (vedi [Registro personalizzato / file bloccati](#-artefatti-supportati)).
- Il parsing di LNK e Jump List è gestito dal parser dedicato di Crow-Eye.

## 📸 Screenshot

Una selezione delle viste dell'interfaccia e dell'analisi di Crow-Eye.

![Screenshot di Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/d631f2359d186d47eab815cc199d2c08c7c098cb8c64509d7c43185b6413d537.png)

![Screenshot di Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/140bd5b574f8b2d239f45be6b9d238a592da1cf3b7e6a0cf0a7450a653a75b88.png)

![Screenshot di Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/b7593c596ea437f84cdf476c147fc363a9a87fd821023b2c93559cdc56ceebee.png)

![Screenshot di Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/b67e55fc8c3bc87a5357add66c97e2b5d75310fe7ea5c1f571f5e8938c0a25ae.png)

![Screenshot di Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/8f10355f7d0f9f31e2e270ecf43fa70e94a6eda3b84b792d28479e0552eec000.png)

![Screenshot di Crow-Eye](https://assets.kitploit.com/production/public/readmes/9931/7bbf1b790d445d33a392b023cc14877e8ee0c72ed2aeec1aba1663da7d0419a2.png)

🎥 **Video demo:** [![Guarda la demo](https://assets.kitploit.com/production/public/readmes/9931/01aa6e4b5fb8732512fe81143b1dcd87d908401369284bad8cfaf1b119fcbf41.jpg)](https://youtu.be/hbvNlBhTfdQ)

## 🚧 Roadmap

Lavoro pianificato e in corso (vedi [`RELEASE_NOTES.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md) per le modifiche rilasciate):

- 📊 **Viste GUI avanzate e report** — visualizzazione e reporting più ricchi.
- 🔄 **Dialogo di ricerca potenziato** — filtri avanzati con supporto al linguaggio naturale.
- 🎯 **Mappatura semantica potenziata** — mappatura completa dei campi su tutti i tipi di artefatti.
- 📈 **Punteggio di correlazione avanzato** — punteggio di confidenza raffinato e spiegabile.
- ⚡ **Correlazione parallela** — dispatch tramite process-pool, abilitato per impostazione predefinita per carichi di lavoro elevati.

Hai un'idea o vuoi aggiungere un artefatto? [Apri un issue](https://github.com/Ghassan-elsman/Crow-Eye/issues) o consulta [Contribuire](#-contribuire).

## 📚 Documentazione

- **[TECHNICAL_DOCUMENTATION.md](https://github.com/ghassan-elsman/crow-eye/blob/main/TECHNICAL_DOCUMENTATION.md)** — architettura, componenti e guida allo sviluppo.
- **[RELEASE_NOTES.md](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md)** — novità di ogni release (UBA, Narrative Map, backend Eye cloud, hardening della gestione dei casi, …).
- **[Documentazione del Correlation Engine](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/CORRELATION_ENGINE_OVERVIEW.md)** — panoramica, motore, feathers, wings, pipeline.
- **[Architettura della timeline](https://github.com/ghassan-elsman/crow-eye/blob/main/timeline/ARCHITECTURE.md)** — interni del modulo timeline.
- **[Architettura di Eye](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md)** e **[standard GEP](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md)** — l'assistente AI e il suo protocollo di governance.

## 🤝 Contribuire

Crow-Eye è costruito come piattaforma di ricerca aperta e i contributi sono benvenuti — nuovi parser, regole di correlazione, documentazione e ricerca sugli artefatti.

- **Contributi generali:** [CONTRIBUTING.md](https://github.com/ghassan-elsman/crow-eye/blob/main/CONTRIBUTING.md)
- **Correlation Engine (area prioritaria):** [correlation_engine/CONTRIBUTING.md](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/CONTRIBUTING.md)
- **Contatti:** [[email protected]](mailto:[email protected]) · oppure apri un issue / pull request.

## 🌐 Sito web e community

- 🌍 **Sito ufficiale:** [crow-eye.com](https://crow-eye.com/) — risorse, documentazione e download.
- 💬 **Discord:** [Unisciti al Discord di Crow-Eye](https://discord.gg/2vag2Udf) — assistenza diretta, ricerca sugli artefatti e annunci delle release.

## 📄 Licenza

Crow-Eye è rilasciato sotto la **[GNU General Public License v3.0](https://github.com/ghassan-elsman/crow-eye/blob/main/LICENSE)** (GPL-3.0). È libero da usare, studiare, condividere e modificare secondo i termini di tale licenza.

## 📝 Citare Crow-Eye

Se utilizzi Crow-Eye in lavori accademici, ricerche pubblicate o un report di caso, ti preghiamo di citarlo:```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: A Windows Forensics Engine* (GPL-3.0). https://github.com/Ghassan-elsman/Crow-Eye

Per le citazioni metodologiche, il Protocollo Ghassan Elsman è documentato separatamente in [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md).

## 💖 Supporto

Crow-Eye è gratuito e open-source, sviluppato e mantenuto da una sola persona. Se ti è utile nel tuo lavoro, considera di sponsorizzarlo: finanzia direttamente nuovi parser e ricerca: **[SPONSORS.md](https://github.com/ghassan-elsman/crow-eye/blob/main/SPONSORS.md)** · **[GitHub Sponsors](https://github.com/sponsors/Ghassan-elsman)**.

## Crediti

Creato e mantenuto da **Ghassan Elsman**.

Categorie