
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.
Una macchina del tempo forense per Windows.
Crow-Eye non si limita a rilevare — ricostruisce ciò che è realmente accaduto sulla timeline, dall'acquisizione fino a un verdetto riconducibile ai suoi record sorgente.
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 considera innocuo tutto ciò che sembra legittimo. Crow-Eye pone una domanda diversa: "cosa è successo?" Correla tutta l'attività — sospetta o meno — e ricostruisce l'effettiva sequenza degli eventi su un sistema, così la verità di un'indagine viene ricostruita dalle prove piuttosto che ipotizzata dagli alert.
Questo approccio incentrato sulla ricostruzione è esattamente ciò che serve per cacciare minacce APT e di livello statale: gli avversari sofisticati vivono dentro strumenti legittimi (powershell.exe, PsExec, certutil) e nella sequenza delle azioni — invisibile agli strumenti che considerano innocuo tutto ciò che sembra normale. Poiché Crow-Eye non considera mai nulla innocuo 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.
Crow-Eye viene utilizzato in flussi di lavoro molto diversi. Ognuno entra nel motore attraverso una porta diversa:
Qualsiasi collector funziona. Crow-Eye non richiede un proprio strumento di acquisizione. Indirizza l'Importazione offline verso una cartella di artefatti grezzi prodotti da Velociraptor, KAPE, un pacchetto di raccolta EDR o qualsiasi altro collector: indicizza gli artefatti supportati ed esegue su di essi i parser offline. Inoltre, 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.
Crow-Eye è costruito come un loop integrato: ogni fase alimenta la successiva, dal disco grezzo a un verdetto difendibile.
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 sorgente.```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"]
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 -- "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 di prove → Ingestione → Database del caso → Analisi → Strato IA → Report*
**Come leggerlo:**
| Fase | Cosa conta |
|---|---|
| ① → ② | **Quattro porte indipendenti verso un caso.** Non hai mai bisogno del 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 passa attraverso Import Evidence. |
| ② → ③ | Tutto converge in un unico luogo: **i database del caso**. Gli artefatti analizzati finiscono in `Target_Artifacts/`; le evidenze di terze parti importate 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 si affianca alla Timeline e alla UBA** — un quarto lettore indipendente dei database del caso (non ha nulla a che fare con la visualizzazione della Timeline). Raccoglie i mapping delle identità (SID → username, MAC → rete, hash/GUID → app) in un `Crow_Intelligence.db` per caso, quindi sovrappone quel contesto **in linea nelle tabelle dei dati degli artefatti** tramite `ATTACH` + `LEFT JOIN` non distruttivi. Cambia il modo in cui i record *si leggono*, mai l'evidenza. |
| ④ → ⑤ | L'Eye interroga direttamente i database del caso e può recuperare i risultati della correlazione **on demand**. Non tocca mai l'evidenza stessa — emette chiamate ai tool che Crow-Eye esegue e registra. |
| ⑤ → Report | Il **Living Report è creato solo dall'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 essere comunque esportati separatamente tramite [Search & Export](#-search--export). |
| ⑤ ↔ | La **Narrative Map è bidirezionale**: l'Eye ci scrive, tu ci scrivi, e i suoi contenuti vengono iniettati nel prompt dell'Eye a ogni turno. È la memoria, e puoi comandarla. |
| ⑤ ⟳ | La **pagina Compliance verifica l'Eye.** Ogni chiamata ai tool che l'Eye effettua è ancorata alla catena di hash **EvidenceSeal**; la pagina mostra lo stato **GEP** in tempo reale per ogni 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 leggero raggruppamento temporale). La correlazione è un livello di analisi aggiuntivo i cui risultati l'Eye può interrogare.
**Sola lettura per progettazione.** Il parsing scrive nel database del caso; ogni fase successiva (UBA, la Timeline, visualizzatori di correlazione, l'Eye) apre quei database **in sola lettura**. L'evidenza originale non viene mai modificata — [Dynamic Linking](#-analysis-modes) legge i database del caso per costruire un `Crow_Intelligence.db` per caso dei mapping delle identità e arricchisce le tabelle dei dati degli artefatti in linea tramite query `ATTACH` + `LEFT JOIN` non distruttive, invece di riscrivere le righe.
**Regolato per progettazione.** Ogni azione che l'Eye compie è ancorata alla catena di hash **EvidenceSeal** a prova di manomissione, e la pagina **Compliance** verifica continuamente l'Eye rispetto al [Ghassan Elsman Protocol (GEP)](https://github.com/ghassan-elsman/crow-eye/blob/HEAD/eye/docs/GEP_standard.md) — stato in tempo reale per ogni regola, esportabile in `EYE_Logs/audit_trail.json`.
## 📥 Download e Installazione
> **Consigliato:** ottieni la build Windows confezionata (**installer MSI / EXE**) dal sito ufficiale — nessuna configurazione Python, funziona immediatamente.
### ▶️ [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 viene segnalato un bug, pubblichiamo un EXE aggiornato **il prima possibile** — la build confezionata è dove le correzioni arrivano prima.
- 🔄 **Aggiornamento automatico integrato.** Nell'app installata, apri **Impostazioni → Aggiornamenti** per **cercare aggiornamenti e installarli automaticamente** — nessuna reinstallazione manuale.
- 📦 **Zero configurazione.** Nessuna installazione di Python, Node o dipendenze richiesta.
> Preferisci eseguire dal sorgente? Vedi **[Avvio rapido](#-quick-start)** qui sotto. La build da sorgente è pensata per i contributori e **non include l'auto-updater** — usa il MSI/EXE per gli aggiornamenti automatici.
## 🚀 Avvio rapido
### Opzione A — Build installata (consigliata)
Scarica il **MSI/EXE** da [crow-eye.com/download](https://crow-eye.com/download), installalo e avvia **Crow-Eye** come Amministratore. Crea un caso e inizia l'analisi.
### Opzione B — Esecuzione dal sorgente (sviluppatori)
> Per contributori e utenti avanzati. Questo percorso **non include l'auto-updater** — usa il 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 principali: 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+ (insiemi MFT/USN di milioni di record) |
| **Disco** | 5 GB liberi | Spazio libero ≥ 2× la dimensione dell'evidenza da analizzare |
| **CPU** | 4 core | 8+ core |
| **SO** | Windows 10/11 (completo) · Linux (analisi offline e delle immagini) | — |
> La correlazione scorre in memoria costante per set di dati 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"
Si apre l'interfaccia principale, si crea un caso e tutto l'output dell'analisi viene organizzato nella directory del caso per revisioni e report successivi.
🖥️ 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.
Crow-Eye analizza un'ampia gamma di artefatti Windows relativi a esecuzione, file system e attività dell'utente, sia da un sistema live sia da fonti offline (cartelle raccolte o immagini forensi).
Jump Lists e LNK vengono analizzati dal parser LNK / Jump List dedicato di Crow-Eye — non da un modulo di terze parti.
Registro 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, avviare da supporti esterni (WinPE/Live CD), utilizzare strumenti di acquisizione forense o analizzare un'immagine disco.
CrowEye/Artifacts Collectors/Target Artifacts (o nella cartella registry/ del caso):
NTUSER.DAT da C:\Users\<Username>\NTUSER.DATSOFTWARE da C:\Windows\System32\config\SOFTWARESYSTEM da C:\Windows\System32\config\SYSTEMC:\Windows\Prefetch, estraendo cronologia di esecuzione e metadati forensi (inclusi i timestamp per esecuzione).Crow-Claw è il motore di acquisizione specializzato di Crow-Eye per raccogliere e preservare gli artefatti da sistemi live o immagini montate.
Analizzare gli artefatti raccolti da qualsiasi fonte senza una connessione live al target — tre operazioni chiare:
live_acquisition del caso, organizzati per tipo.L'analisi è gestita dai parser offline dedicati di Crow-Eye — la stessa logica degli artefatti della modalità live, applicata ai file raccolti: Prefetch, Registro, MFT, USN (più il correlatore MFT/USN), AmCache, ShimCache, SRUM, Log di evento, LNK/JumpLists e Cestino.
Oltre agli artefatti grezzi, Crow-Eye può portare l'output forense di terze parti direttamente in un caso — Plaso, Autopsy, Volatility o qualsiasi esportazione personalizzata — e renderlo utilizzabile dall'Eye e dalla Timeline senza richiedere prima un'esecuzione della correlazione.
Poiché il gestore del database del caso rileva automaticamente qualsiasi .db sotto l'albero del caso, le prove importate diventano immediatamente disponibili a:
imported, con filtro per finestra temporale e limiti temporali funzionanti.L'importatore utilizza solo la libreria standard (sqlite3 / csv / json) e viene eseguito su un worker in background, quindi le importazioni di grandi dimensioni non bloccano l'interfaccia.
Analizza gli artefatti direttamente dal sistema Windows in esecuzione, estraendoli automaticamente dalle posizioni standard per un'analisi forense in tempo reale.
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 dei casi e modelli con mapping semantici già pronti.
Correla gli eventi tra gli artefatti su una griglia temporale unificata, con viste Heat Map, Settimana e Giorno — una narrazione intrecciata per identità e verificabile in tribunale, piuttosto che una super-timeline piatta.
La Timeline legge direttamente i database degli artefatti analizzati del caso ed è indipendente dal Correlation Engine — non è necessario creare feather, scrivere wing o eseguire una pipeline per usarla. Applica un proprio raggruppamento temporale leggero (correlazione per timestamp esatto e per finestra temporale, raggruppamento per applicazione, percorso o utente) per mettere in relazione gli eventi sulla griglia. Le prove importate tramite Importazione prove appaiono anche nella timeline come tipo di artefatto imported, con filtro per finestra temporale e limiti temporali funzionanti.
Ricerca full-text nel database del caso, oltre all'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).
Traduce gli identificatori tecnici grezzi — SID, indirizzi MAC, hash — in un contesto leggibile dall'uomo al volo. Il Linking dinamico arricchisce la vista utilizzando query SQL ATTACH non distruttive, quindi la prova originale non viene mai modificata, e può acquisire feed di minaccia IOC in blocco per segnalare inline gli indicatori noti come dannosi.
Trasforma gli artefatti grezzi in una storia di attività in linguaggio semplice — un resoconto leggibile da manager/HR di ciò che un utente e le sue applicazioni hanno effettivamente fatto, con ogni affermazione rintracciabile fino alla prova di origine esatta.
User Behavior Analytics (UBA) legge i database degli artefatti analizzati nella cartella Target_Artifacts/ del caso (rigorosamente in sola lettura) e li riprocessa attraverso un insieme di regole dichiarative per produrre una chiara Activity Story cronologica. Apri l'UBA dal pulsante "User Behavior" della barra degli strumenti o con Ctrl+Shift+B (deve essere caricato un caso).
uba/config/behavior_rules.json) — regolabili senza codice — ciascuno classificato per gravità: routine · notevole · sospetto · critico.runas), modifiche ad account e gruppi, modifiche ai servizi, manomissione dell'orologio di sistema (sospetto) e cancellazione dei log di evento (critico).database : table : rowid) — nulla viene affermato senza una fonte.I 40 rilevamenti coprono quattro classi di gravità e l'intera ampiezza dell'insieme di artefatti analizzati:
Filtri: ricerca a testo libero · utente/attore (inclusi "Unattributed" e un'opzione per la 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 periodo / primo giorno / ultimo giorno / ultima ora di attività).
Fonti dati: Log di evento Sicurezza, Sistema e Applicazioni · USN Journal · MFT · UserAssist · BAM · Prefetch · ShimCache · AmCache · MUICache · ShellBags · LNK / JumpLists · Cestino · SRUM (applicazione, rete, connettività) · hive del registro.
database → table → rowid e apre le righe di origine reali su richiesta.<user>"), mai per attribuire un'azione.UBA è correlazione e classificazione comportamentale basata su regole, non punteggio di anomalie statistico/ML — ogni risultato è mappato a una regola esplicita e verificabile. Vedere
RELEASE_NOTES.mdper il catalogo completo dei rilevamenti.
Correlation Engine v1.7.0 — il nucleo di ricostruzione. Vedere RELEASE_NOTES.md per la cronologia delle release.
Il Crow-Eye Correlation Engine è un sistema di correlazione forense di livello produttivo. Acquisisce artefatti Windows da qualsiasi fonte, li normalizza e porta in superficie le relazioni temporali e di identità che trasformano i record isolati in una narrazione coerente di ciò che è successo su un sistema, quando e chi era coinvolto. Funziona subito con regole di correlazione integrate (Wings) per le domande di indagine più comuni, consente agli analisti di creare regole personalizzate senza toccare il codice e rimanda il significato a regole definibili dall'utente e all'investigatore — mai a un punteggio a scatola chiusa.
Importazione dati universale: Il Correlation Engine può prendere l'output di qualsiasi strumento forense in formato CSV, JSON o SQLite e convertirlo in un database Feather. Questo significa che puoi correlare i dati di 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.
Una passata di precisione mirata, validata end-to-end su un caso Windows reale di ~700K record, costruita sopra i precedenti lavori sull'affidabilità. Ogni correzione di seguito è vincolata dalla suite di regressione pytest e verificata da un harness di validazione olistico che esercita tutte le 7 wing predefinite su entrambi i motori.
Il motore di identità cattura tutte le prove
TypeError e interrompeva il ciclo per riga). I record osservati sono passati da 3.558 → 745.615 nel caso di validazione.User, ComputerName, NewProcessName, TargetUserName) prima dei metadati di canale/provider.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.'N/A', 'Unknown', '-', i GUID nulli raggruppavano record non correlati). Il validatore ora rifiuta oltre 30 varianti di segnaposto.Basta con "tutto è Low — qualcosa non va"
High. Le corrispondenze con feather_count == 1 ora ricevono confidence_category="Low - single feather", quindi la vista High si concentra sulla correlazione cross-feather reale.chrome aveva 10+ chiavi e non correlava mai). La chiave ora è basata solo sul nome — la correlazione cross-feather funziona di nuovo.Rilevamento dell'impersonificazione tramite classificazione dei percorsi — dopo la formazione di una corrispondenza, 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 attraversa entrambe le classificazioni solleva impersonation_alert (tasso ≈0.05%, ciascuna un candidato reale).
Contabilità onesta delle prove — un registro degli scarti per finestra con bucket denominati (no_identity_field, normalize_failure, below_threshold_skipped, …) più un riepilogo per pipeline (record osservati, high/low emessi, nessuna identità, bucket di scarto, join di feather senza tempo). Ogni record finisce in una corrispondenza o in un bucket di scarto denominato — "nessuna prova rimasta" è verificabile dal log. low_confidence_review_mode è ON per impostazione predefinita, quindi i gruppi sotto soglia diventano corrispondenze a bassa confidenza invece di sparire silenziosamente.
Arricchimento dell'identità per feather senza tempo — le feather senza timestamp per riga (AutoStartPrograms, MUICache, SystemServices, TypedPaths) non ricevono più un falso tempo di generazione stampato su ogni riga; invece, dopo la formazione delle corrispondenze temporizzate, il motore unisce per identità i record corrispondenti di ogni feather senza tempo come prova supplementare.
Registro di identità consolidato — config/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, container, oggetti del sistema operativo). Aggiungere un nuovo sinonimo di colonna è una modifica JSON, non una modifica al codice.
Correzioni dei falsi positivi nel mapping semantico — il gating multi-indicatore ora è effettivamente applicato (data-exfiltration-pattern richiede ≥2 indicatori); le regole AND impossibili (4625 AND 4624) riscritte come OR; le regole per wiper/strumenti remoti usano regex reali invece di attivarsi su ogni voce Prefetch; le regole per le attività di base declassate da high/critical a info/low (il punteggio pesato della wing fa salire le minacce reali).
Il Correlation Engine è pronto per la produzione e utilizzato attivamente nelle indagini (Correlation Engine v1.7.0):- ✅ Motore Time-Window Scanning — pronto per la produzione, consigliato per l'analisi basata sul tempo (O(N log N))
Chrome.exe/chrome.dll/Chrome.EXE collassano in un unico bucket; versioni e qualificatori architetturali restano distinti.YYYYMMDD, notazione US con barre e stringhe annotate vengono analizzati correttamente al primo tentativo.run_times) vengono espanse, così ogni esecuzione ottiene il proprio evento di correlazione.config/standard_fields/*.json; metadati per tabella in correlation_engine/config/feather_schemas.json — estendibile modificando il JSON, non il codice.query_time_range_iter con memoria O(1); cache feather protette da lock; pronto per la correlazione parallela.Il Correlation Engine è composto da quattro componenti principali:
Scopo: Trasformare gli artefatti forensi grezzi in un formato standardizzato e interrogabile.
Examples:
**Formati di importazione supportati:** CSV (qualsiasi file con intestazioni), JSON (piatto o annidato) e SQLite (importazione diretta). Mappatura automatica delle colonne, rilevamento del tipo 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)
Scopo: Definire quali artefatti correlare e come.
#### 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 per 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 record da tutte le feathers per finestra, applica il matching di campi semantici + punteggio ponderato e previene i duplicati tramite il tracciamento MatchSet. **O(N log N)** (query su timestamp indicizzati); elaborazione in batch (~2.567 finestre/secondo).
**Motore di correlazione basato su identità** — ideale per grandi set di dati (>1.000 record) e tracciamento delle identità. Estrae e normalizza le identità, raggruppa i record per identità, costruisce ancoraggi temporali all'interno di ciascun cluster, classifica le prove come primarie/secondarie/supportive e gestisce in streaming 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 analisi basate sul tempo e il motore basato su identità per il tracciamento delle identità — entrambi sono pronti per la produzione e ottimizzati per grandi set di dati con query indicizzate.
#### 4. 🔄 Pipeline (Orchestrazione dei flussi di lavoro)
**Scopo**: automatizzare flussi di lavoro analitici completi, dalla creazione delle feathers alla generazione dei risultati. Una pipeline legge la sua configurazione (tipo di motore, wings, feathers), istanzia il motore corretto tramite EngineSelector, esegue ogni wing, aggrega le corrispondenze, salva i risultati (DB + JSON) e li visualizza nella GUI con filtri e visualizzazioni.```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"
}
}
### Esempio di caso d'uso: trovare la 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 didn't receive any input content to translate. The message ends with "INPUT:" but no Markdown text follows. Please provide the chunk content so I can translate it.```python from correlation_engine.pipeline import PipelineExecutor executor = PipelineExecutor(pipeline_config) results = executor.execute()
Il contenuto da tradurre non è presente nel messaggio. Il campo "INPUT:" è vuoto. Non è possibile effettuare la traduzione senza il testo sorgente.```
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
python -m correlation_engine.mainUn assistente potente, non un sostituto. Eye automatizza e verifica le ipotesi di un investigatore — non prende mai la decisione al posto tuo.
Eye è l'assistente IA forense integrato di Crow-Eye: un investigatore forense esperto supportato da una vera base di conoscenza degli artefatti Windows. 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 traccia verificabile e a prova di manomissione di ciò che ha fatto esattamente. Eye può essere eseguito interamente sul tuo hardware (incluso completamente air-gapped), in linea con la posizione sulla privacy di Crow-Eye "0 ms di dati inviati fuori dal dispositivo". Architettura completa: eye/README.md.
Eye trasforma le 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 query SQL e ricerche cross-artefatto sui database del caso e sintetizza una risposta validata. Ogni risposta viene prodotta in due punti 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.
Tutto ciò che Eye fa è ancorato al Protocollo Ghassan Elsman (GEP) — uno standard neutrale rispetto al fornitore e indipendente dallo strumento su come qualsiasi IA dovrebbe essere utilizzata nell'informatica forense. Si tratta di 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:
L'Eye di Crow-Eye è l'implementazione di riferimento del GEP; i comportamenti in-product che lo sostengono sono le Regole Operative. 📜 Leggi lo standard: eye/docs/GEP_standard.md.
Eye si adatta al tuo modello di minaccia attraverso tre modalità di distribuzione:
In modalità CLI-agent, Crow-Eye guida un agente terminale/da 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à usi.
Il ciclo dell'indagine:
Puoi cambiare modello in fase di esecuzione con lo strumento switch_model. Il cambio è limitato allo stesso backend, quindi le prove non vengono mai inviate silenziosamente a un fornitore diverso da quello scelto.
Eye è progettato in modo che tu possa vedere — e successivamente provare — come sia arrivato a una conclusione. Mentre Eye lavora, trasmette aggiornamenti strutturati ThinkingStep all'interfaccia in tempo reale; ognuno contiene 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 |
|---|---|
Una query tipica si svolge come thinking → rag → thinking → tool_call → synthesis, e ogni caso conserva artefatti di traccia su disco che puoi ispezionare in seguito:
| File | Cosa registra |
|---|---|
<case>/EYE_Logs/eye_payload_seal.jsonl | I payload esatti inviati al modello, incatenati tramite hash. |
<case>/EYE_Logs/truncation_audit.log | Quale contesto è stato mantenuto, riassunto, eliminato o fissato — e perché. |
<case>/case_history.json | La cronologia completa della conversazione, con i conteggi di token per messaggio. |
Eye è guidato dagli strumenti: il modello non tocca mai direttamente le prove. Emette chiamate agli strumenti e 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:
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 ed export_report (l'esportazione richiede l'approvazione umana).
Strumenti di authoring (governati — vedi Costruire Wings di Correlazione e Mappature Semantiche): 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 — native function-calling per API cloud e server locali, o un wrapper XML <tool_call> per gli agenti CLI.
Eye non si limita a interrogare il Motore di Correlazione — può aiutare a estenderlo. Quando Eye individua un pattern cross-artefatto ricorrente, può proporre nuovi Wings (regole di correlazione) e Semantic Mappings (traduzioni tecnico-umane). Questa è authoring governato: Eye propone, l'analista esamina l'artefatto salvato e ogni modifica è giustificata e supportata da prove.
Un Wing collega i feather all'interno di una finestra temporale e di una soglia minima di corrispondenza per dimostrare un'affermazione:
Un Semantic Mapping traduce un valore tecnico grezzo in un significato leggibile (es. EventID 4624 → "Accesso riuscito"). È disponibile 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 forense.database:table:rowid.Le indagini lunghe possono superare la finestra di contesto di un modello — soprattutto 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 l'intero payload e riserva spazio per la risposta (10% della finestra, minimo 512 token, mai più della metà). Se ancora non ci sta, si ripara in due passaggi ordinati, senza mai toccare i messaggi protetti (fissati, prove rilevate automaticamente o risultato di uno strumento):
SUMMARIZED.TRUNCATED.Se il nucleo di prove irriducibile (messaggi fissati + 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 di usare analyze_large_dataset. Qualunque cosa vada infine al modello è l'esatto payload che viene sigillato per la catena di custodia.
L'Eye è senza stato tra un turno e l'altro — quindi la Narrative Map è il luogo in cui vivono "ciò che sappiamo e ciò che abbiamo concluso" per un caso. È la memoria di lavoro persistente, verificabile e a prova di manomissione di Eye, e i suoi contenuti vengono iniettati nel prompt di Eye a ogni turno (la mappa letteralmente è la memoria).
proven · open · negative · needs · absolute), e le Evidenze supportate da artefatti al di sotto.narrative_map_audit.jsonl). Puoi aggiungere, modificare e rimuovere le sue affermazioni ed evidenze, dando forma direttamente al modo in cui Eye comprende e interpreta il caso.open senza evidenze mentre indaga, ma non potrà mai essere proven senza evidenze; un tema che Eye ha verificato ma trovato vuoto si converte automaticamente in negative — perché un'assenza documentata è di per sé un risultato.La conformità non è una funzionalità aggiunta sopra — è applicata nella pipeline.
database:table:rowid, più offset calcolati per i record MFT). I sigilli sono append-only e incatenati tramite hash su <case>/EYE_Logs/eye_payload_seal.jsonl — un singolo record alterato o rimosso spezza la catena, quindi il log dimostra matematicamente quali byte il modello ha analizzato.<case>/EYE_Logs/truncation_audit.log (SUMMARIZED, TRUNCATED, PRESERVED, PINNED, UNPINNED, BUDGET_REDUCED), ciascuna con un hash. Le prove rilevate vengono automaticamente fissate oltre una soglia di confidenza; puoi anche fissare manualmente i messaggi.📖 Architettura completa di Eye: eye/README.md.
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 collocarlo comunque nel contesto sbagliato — cambiando l'intero significato della prova.
Eye-Describe esiste affinché né l'umano 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'umano | Un riferimento educativo interattivo all'anatomia profonda a livello di byte degli artefatti Windows — cosa è ciascuna struttura, come si comporta, cosa può e non può provare. Gratuito da usare, pensato per studenti, educatori e professionisti che vogliono comprendere la prova piuttosto che la colonna di output. |
Ancorando il livello IA al comportamento documentato degli artefatti, Crow-Eye non ti chiede di fidarti di un modello — sta vincolando il modello a rispettare la forensica grezza.
Non sostituire la fiducia nello strumento con la fiducia nell'IA. Comprendi i dati.
Gli strumenti forensi sono utili solo se il loro output può essere difeso. Il lavoro di correttezza di Crow-Eye è volutamente visibile:
RELEASE_NOTES.md — inclusi casi in cui una correzione ha cambiato i record visti di ordini di grandezza. Sapere cosa era sbagliato e quando fa parte di ciò che rende un risultato difendibile.verify_chain() ripercorre il log di audit della Narrative Map e la catena del Sigillo delle Prove per rilevare modifiche — inclusi i campi leggibili dall'uomo.Una selezione dell'interfaccia e delle viste di analisi di Crow-Eye.






Lavoro pianificato e in corso (vedi RELEASE_NOTES.md per le modifiche già rilasciate):
Hai un'idea o vuoi aggiungere un artefatto? Apri una issue o consulta Contribuire.
Crow-Eye è costruito come piattaforma di ricerca aperta e i contributi sono benvenuti: nuovi parser, regole di correlazione, documentazione e ricerca sugli artefatti.
Crow-Eye è distribuito sotto la GNU General Public License v3.0 (GPL-3.0). È possibile utilizzarlo, studiarlo, condividerlo e modificarlo liberamente secondo i termini di tale licenza.
Se utilizzi Crow-Eye in lavori accademici, ricerche pubblicate o report di casi, 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} }
Testo semplice: Elsman, G. *Crow-Eye: A Windows Forensics Engine* (GPL-3.0). https://github.com/Ghassan-elsman/Crow-Eye
Per le citazioni metodologiche, il Ghassan Elsman Protocol è documentato separatamente in [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/HEAD/eye/docs/GEP_standard.md).
## 💖 Supporto
Crow-Eye è gratuito e open-source, creato e mantenuto da una sola persona. Se ti è utile per il tuo lavoro, valuta di sponsorizzarlo — finanzia direttamente nuovi parser e ricerca: **[SPONSORS.md](https://github.com/ghassan-elsman/crow-eye/blob/HEAD/SPONSORS.md)** · **[GitHub Sponsors](https://github.com/sponsors/Ghassan-elsman)**.
## Crediti
Creato e mantenuto da **Ghassan Elsman**.
| Il tuo ruolo | Input tipico | Da dove iniziare |
|---|
| IR aziendale / MSSP / MDR | Raccolte mirate da Velociraptor, KAPE o raccolta nativa EDR | Importazione offline → Motore di correlazione → UBA |
| Forze dell'ordine / laboratori forensi | Immagini forensi complete (E01, VHDX, VMDK, Raw) con requisiti di catena di custodia | Analisi delle immagini → Motore di correlazione → Mappa narrativa |
| Sicurezza interna / indagini su insider threat e HR | Sistemi live o artefatti raccolti | Analisi live → UBA storia dell'attività |
| Studenti, docenti e ricercatori | Immagini campione e dati di laboratorio | Eye-Describe → Avvio rapido |
| Sottosistema | Cosa fa | Fase |
|---|
| Crow-Claw | Acquisizione ad alta velocità di sistemi live e immagini di macchine spente. | Acquisizione |
| Importazione offline | SCAN → COLLECT → PARSE di artefatti da qualsiasi fonte nel database del caso. | Acquisizione |
| Motore di correlazione | Ricostruzione a doppio motore (Identità + Finestra temporale) tramite Feathers · Wings · Engines · Pipelines. | Analisi |
| Timeline interattiva | Timeline con thread per identità, tracciabile in sede giudiziaria (viste Heat Map / Settimana / Giorno), letta direttamente dai database del caso. | Verifica |
| Analisi del comportamento utente (UBA) | Storia dell'attività in linguaggio semplice, guidata da regole, che risponde a "cosa ha fatto questo utente". | Intelligence |
| Eye — Assistente AI | Indagine in linguaggio naturale + la memoria del caso sigillata Mappa narrativa. | AI |
| Forensics dello storage | Analisi di dischi fisici e partizioni (rilevamento di unità nascoste/non montate, avvisi di boot). | Analisi |
| Artefatto | Live | Offline | Dati estratti |
|---|
| Prefetch | ✅ | ✅ | Cronologia di esecuzione, numero di esecuzioni, timestamp per esecuzione |
| Registro (AutoRun, UserAssist, BAM, ShimCache, reti, fuso orario) | ✅ | ✅ | Persistenza, utilizzo dei programmi, attività in background, configurazione di rete |
| Amcache | ✅ | ✅ | Esecuzione delle app, ora di installazione, SHA-1, percorsi dei file |
| ShimCache | ✅ | ✅ | App eseguite, ultima modifica, dimensione |
| MUICache | ✅ | ✅ | Presenza dei programmi e nomi visualizzati |
| Jump Lists e LNK | ✅ | ✅ | Accesso ai file, percorsi, timestamp, metadati |
| ShellBags | ✅ | ✅ | Cronologia di accesso alle cartelle e navigazione |
| MRU & RecentDocs / Typed Paths | ✅ | ✅ | Cronologia di apertura/salvataggio, file recenti, posizioni digitate |
| Cronologia browser / siti web | ✅ | ✅ | Siti visitati e orari di accesso |
| Log di evento (Sistema / Sicurezza / Applicazioni) | ✅ | ✅ | Accessi, creazione di processi (4688), modifiche ad account e servizi, cancellazione dei log |
| MFT | ✅ | ✅ | Metadati dei file, file eliminati, timestamp (NTFS, Win 7/10/11) |
| USN Journal | ✅ | ✅ | Creazione/modifica/eliminazione/rinomina dei file con cronologia completa dei nomi |
| Cestino | ✅ | ✅ | Nomi dei file eliminati, percorsi, ora di eliminazione, dimensione |
| SRUM | ✅ | ✅ | Utilizzo di risorse/rete/energia delle app, dati trasferiti per app |
| Dispositivi USB e connessi | ✅ | ✅ | Connessione e presenza dei dispositivi |
| Elenco reti e connessioni | ✅ | ✅ | Reti note e attività di connessione |
| Avvio automatico / Servizi e driver | ✅ | ✅ | Persistenza, installazioni di servizi e modifiche di stato |
| Dischi e partizioni (Storage Forensics) | ✅ | ✅ | Albero dei dischi fisici, layout delle partizioni, rilevamento di nascoste/non montate |
$RECYCLE.BIN per recuperare i nomi dei file eliminati, i percorsi originali, gli orari di eliminazione e le dimensioni (sistemi live e immagini disco).| 🔍 SCAN | 📦 COLLECT |
|---|
| Azione | Scoperta — identifica gli artefatti nella loro posizione originale | Acquisizione — copia e preserva gli artefatti nella cartella del caso |
| Impatto I/O | Solo lettura; nessun file spostato | Lettura + scrittura; duplica fisicamente gli artefatti |
| Organizzazione | Aggiorna i metadati .artifact_scan_index.json | Organizza i file in cartelle specifiche per tipo |
| Caso d'uso | Triage rapido per verificare se la sorgente contiene dati rilevanti | Preservazione forense completa per analisi a lungo termine |
| Input | Cosa succede |
|---|
.db / .sqlite | Validati e copiati testualmente nella cartella Imported_Evidence/ del caso. Lo schema viene lasciato invariato. |
.csv / .json | Convertiti automaticamente in un database SQLite a forma di feather tramite il FeatherWriter canonico, con feather_metadata che dichiara il timestamp principale della tabella — rilevato automaticamente dai nomi delle colonne — esattamente come una feather raccolta nativamente. |
| Categoria | I rilevamenti includono |
|---|
| Identità e accesso | Accesso / disconnessione, sblocco della workstation, accessi desktop remoto, accessi amministratore, uso di credenziali esplicite (runas), creazione e modifiche di account, aggiunte al gruppo admin |
| Esecuzione | Programmi aperti (UserAssist), programmi eseguiti (Prefetch, espansi in eventi per esecuzione), creazione di processi (4688), presenza di programmi (ShimCache / AmCache / MUICache), installazioni di applicazioni, crash di applicazioni (dai record 1001 del log applicazioni) |
| Attività sui file | Apertura / creazione / eliminazione / copia / rinomina di file — le rinomine mostrano la cronologia completa dei nomi (old → … → current) ricostruita dall'USN Journal, con risoluzione dell'eliminazione soft ($R/$I) |
| Navigazione | Esplorazione delle cartelle (ShellBags), documenti recenti, posizioni digitate, visite a siti web |
| Dispositivi e rete | Connessione di dispositivi USB, presenza dei dispositivi, condivisioni di rete, connessioni di rete, dati trasferiti per applicazione (SRUM) |
| Persistenza e sistema | Persistenza di avvio automatico (chiavi Run + servizi, incrementata quando il target viene eseguito da un percorso scrivibile dall'utente), installazioni di servizi e driver, modifiche di stato dei servizi, avvio/arresto del sistema, modifiche all'orologio, cancellazione dei log di evento |
| Record |
|---|
| Motore a Finestra Temporale |
|---|
| Motore Basato su Identità |
|---|
| 1,000 | 0.5s | 2s |
| 10,000 | 5s | 15s |
| 100,000 | 50s | 2.5 min (in streaming) |
| 1,000,000 | — | 25 min (in streaming) |
| Funzionalità | Cosa significa per te |
|---|
| Indagine in linguaggio naturale | Chiedi in un inglese semplice; Eye scrive le query SQL e cerca per te. |
| Integrazione multi-sorgente | Accesso unificato a tutti gli artefatti analizzati nel caso. |
| Analisi potenziata da RAG | Eye recupera conoscenze forensi specifiche dell'artefatto prima di rispondere. |
| Spazio di lavoro del Report Vivente | Risultati, tabelle, grafici e linee temporali 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 ciò che il modello ha analizzato esattamente. |
| # | Principio | In sintesi |
|---|
| GEP-1 | Primato dell'Evidenza | Le conclusioni derivano solo da artefatti effettivamente esaminati. |
| GEP-2 | Tracciabilità | Ogni fatto si collega 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; riportare concordanze, silenzi e conflitti. |
| GEP-5 | Verifica delle Premesse | Considerare 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à | Ragionamento, strumenti utilizzati e 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. |
| Modalità | Ideale per | Backend |
|---|
| ☁️ Modelli IA Cloud | Analisi profonda e complessa con il massimo della potenza di calcolo | OpenAI, Anthropic (Claude), Google Gemini |
| 🔒 Server IA Offline (air-gapped) | Indagini on-premise a esposizione zero | Ollama, LM Studio |
| ⚡ Agenti Terminale CLI | Riutilizza un agente terminale IA che già possiedi come modello | Claude Code, Gemini CLI, ChatGPT CLI, llama.cpp, … |
thinking |
| Eye pianifica — rileva l'intento forense, costruisce il prompt di sistema, decide le mosse successive. |
rag | Eye recupera la conoscenza degli artefatti dalla sua base di conoscenza per fondare la risposta. |
tool_call | Eye esegue uno strumento forense (una query SQL, una ricerca, una consultazione di correlazione). |
synthesis | Eye valida e assembla la risposta finale basata sulle prove. |
| Strumento | Scopo |
|---|
query_database | Esegue una SELECT su un database forense. |
search_artifacts | Ricerca testuale / regex tra più database. |
semantic_search_artifacts | Ricerca semantica tra gli artefatti analizzati. |
get_schema | Ispeziona gli schemi delle tabelle. |
query_correlation_results | Interroga l'output del Motore di Correlazione per tempo / identità. |
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 | Ricerche LOLBAS / LOLDrivers. |
query_threat_intel | Ricerche VirusTotal / threat-intel. |
switch_model | Cambia modello in fase di esecuzione (solo stesso backend). |
| Campo | Significato |
|---|
wing_name | Nome leggibile 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 | Quanti feather 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. |
reason forense e related_evidence; le regole create al di fuori di Eye sono di sola lettura e non possono essere riscritte silenziosamente.| ⚖️ L'àncora di conformità per l'IA |
| La visibilità di Eye è vincolata ai comportamenti documentati degli artefatti in Eye-Describe. Il modello ragiona su un riferimento hardcoded di ciò che un artefatto significa realmente, piuttosto che dedurre la semantica da solo. |