
Crow-Eye v0.13.0
Open-Source-Windows-Forensik-Engine, die Artefakte (MFT, USN, Registry usw.) erfasst, parst und korreliert, um mit KI-gestützter Analyse Zeitlinien zu rekonstruieren und Beweismittel gerichtsfest zu versiegeln.
Crow-Eye — Windows-Forensik-Engine
Eine forensische Zeitmaschine für Windows.
Crow-Eye erkennt nicht nur — es rekonstruiert, was tatsächlich passiert ist auf der Zeitachse, von der Erfassung bis zu einem Urteil, das bis zu seinen Quellaufzeichnungen zurückverfolgbar ist.
Inhaltsverzeichnis
- Überblick
- ✨ Highlights
- 👥 Für wen Crow-Eye gedacht ist
- 🧭 Teilsysteme auf einen Blick
- 🏗️ Architektur
- 📥 Download & Installation
- 🚀 Schnellstart
- 📂 Unterstützte Artefakte
- 🔧 Analysemodi
- 🧠 User Behavior Analytics (UBA)
- 🧩 Korrelations-Engine
- 👁️ Eye — Der Forensik-KI-Assistent
- 📖 Eye-Describe — Byte-Ebene-Artefakt-Wissensdatenbank
- 🧪 Qualität & Validierung
- 🔬 Forschungsplattform
- 🛠️ Technische Hinweise
- 📸 Screenshots
- 🚧 Roadmap
- 📚 Dokumentation
- 🤝 Mitwirken
- 🌐 Website & Community
- 📄 Lizenz
- 📝 Crow-Eye zitieren
- 💖 Unterstützung
- Danksagungen
Überblick
Crow-Eye ist eine Open-Source-Engine (GPL-3.0) für Windows-Forensik, die Erfassung, Analyse, Verifizierung, Intelligence und KI vereint. Die meisten Sicherheitstools fragen „ist das böse?" und räumen alles beiseite, was legitim aussieht. Crow-Eye stellt eine andere Frage: „Was ist passiert?" Es korreliert alle Aktivitäten — verdächtige oder nicht — und rekonstruiert die tatsächliche Abfolge von Ereignissen auf einem System, sodass die Wahrheit einer Untersuchung aus Beweisen rekonstruiert wird, statt aus Warnmeldungen geraten zu werden.
Genau dieses rekonstruktionsorientierte Design ist es, was nötig ist, um APT- und staatlich geförderte Bedrohungen zu jagen: hochentwickelte Gegner leben in legitimen Tools (powershell.exe, PsExec, certutil) und in der Abfolge von Aktionen — unsichtbar für Tools, die alles beiseiteräumen, was normal aussieht. Da Crow-Eye niemals etwas beiseiteräumt und über Ausführungs-Artefakte (die Log-Manipulation und Anti-Forensik überstehen) argumentiert, kann sich der Angriff nicht verstecken. Dieselbe Engine bleibt zugänglich für alltägliche DFIR-Arbeit und für Nicht-Experten, die einfach wissen möchten, was auf einem Computer passiert ist.
- 🕰️ Rekonstruieren, nicht nur erkennen — die Zeitachse dessen, was tatsächlich geschah, wiederherstellen.
- 🖥️ Plattformübergreifend — vollständige Live- + Offline-Analyse auf Windows; Offline-Analyse und Forensik-Image-Parsing auf Linux (Live-Parser sind nur für Windows).
- 🔒 Von Natur aus privat — 0 ms Daten werden vom Gerät gesendet; der Eye-KI-Assistent kann vollständig netzwerkisoliert (air-gapped) laufen.
- 🧾 Gerichtsfest — Beweise werden kryptografisch versiegelt und jeder Schritt ist prüfbar.
- 📦 Aktuelle Version: 0.13.0 · Korrelations-Engine: 1.7.0 · Lizenz: GPL-3.0.
✨ Highlights
- Rekonstruktion statt Erkennung. Korreliert jedes Artefakt zu einer navigierbaren, pro-Entität-Geschichte statt zu einem Haufen Warnmeldungen.
- Ende-zu-Ende integriert — Erfassung → Korrelation → Zeitachse → Verhaltensanalytik → KI → versiegelte Fallerinnerung: eine vollständige Pipeline, die kein einzelnes etabliertes Tool abdeckt.
- Artefakt-tief, nicht log-flach. Prefetch, Amcache, ShimCache, SRUM, MFT, USN, LNK/JumpLists und mehr überstehen die Log-Löschung und die „Living-off-the-land"-Tricks, die reine Log-Tools blind machen.
- Der Eye-KI-Assistent — forensische Untersuchung in natürlicher Sprache mit prüfbarer, manipulationssicherer Beweiskette, ausführbar in der Cloud, auf einem privaten Server oder vollständig offline.
- User Behavior Analytics (UBA) — verwandelt rohe Artefakte in eine verständliche, für HR/Prüfer lesbare Aktivitätsgeschichte in einfachem Englisch.
- Kostenlos & Open Source (GPL-3.0) — von jedem prüfbar, mit aktiver Forschungs- und Dokumentationsarbeit.
👥 Für wen Crow-Eye gedacht ist
Crow-Eye wird in sehr unterschiedlichen Arbeitsabläufen eingesetzt. Jeder davon betritt die Engine durch eine andere Tür:
| Sie sind | Ihr typischer Input | Wo Sie beginnen |
|---|---|---|
| Corporate IR / MSSP / MDR | Gezielte Sammlungen von Velociraptor, KAPE oder EDR-eigener Sammlung | Offline-Importer → Korrelations-Engine → UBA |
| Strafverfolgung / Forensik-Labore | Vollständige Forensik-Images (E01, VHDX, VMDK, Raw) mit Anforderungen an die Beweiskette | Image-Analyse → Korrelations-Engine → Narrative Map |
| Interne Sicherheit / Insider-Bedrohungs- & HR-Untersuchungen | Live-Systeme oder gesammelte Artefakte | Live-Analyse → UBA Aktivitätsgeschichte |
| Studierende, Lehrende & Forscher | Beispiel-Images und Labordaten | Eye-Describe → Schnellstart |
Jeder Collector funktioniert. Crow-Eye benötigt kein eigenes Erfassungstool. Richten Sie den Offline-Importer auf einen Ordner mit rohen Artefakten, die von Velociraptor, KAPE, einem EDR-Sammlungspaket oder einem anderen Collector erzeugt wurden — er indexiert die unterstützten Artefakte und führt die Offline-Parser darüber aus. Separately kann die Ausgabe von Plaso, Autopsy, Volatility oder jedem anderen Tool als CSV, JSON oder SQLite über Beweismittel importieren eingebracht und neben nativen Artefakten korreliert werden.
🧭 Teilsysteme auf einen Blick
Crow-Eye ist als integrierte Schleife aufgebaut — jede Stufe speist die nächste, von der rohen Festplatte bis zu einem verteidigungsfähigen Urteil.
| Teilsystem | Was es tut | Stufe |
|---|---|---|
| Crow-Claw | Hochgeschwindigkeits-Erfassung von Live-Systemen und Dead-Box-Images. | Erfassung |
| Offline-Importer | SCAN → COLLECT → PARSE von Artefakten aus jeder Quelle in die Falldatenbank. | Erfassung |
| Korrelations-Engine | Dual-Engine (Identität + Zeitfenster) Rekonstruktion über Feathers · Wings · Engines · Pipelines. | Analyse |
| Interaktive Zeitachse | Identitätsverknüpfte, gerichtsfest nachvollziehbare Zeitachse (Heat Map / Wochen- / Tagesansicht), direkt aus den Falldatenbanken gelesen. | Verifizierung |
| User Behavior Analytics (UBA) | Regelgesteuerte Aktivitätsgeschichte in einfachem Englisch: „Was hat dieser Benutzer getan". | Intelligence |
| Eye — KI-Assistent | Untersuchung in natürlicher Sprache + das versiegelte Narrative Map Fallgedächtnis. | KI |
| Speicher-Forensik | Physische Festplatten- & Partitionsanalyse (Erkennung versteckter/nicht eingehängter Bereiche, Boot-Warnungen). | Analyse |
🏗️ Architektur
Crow-Eye ist eine integrierte Pipeline, kein Sammelsurium von Parsern. Beweise fließen in eine Richtung, und jede Stufe behält ihre Verbindung zum Quellaufzeichnung.```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
*Beweisquelle → Erfassung → Fall-Datenbanken → Analyse → KI-Ebene → Bericht*
**So liest man das:**
| Stufe | Worauf es ankommt |
|---|---|
| ① → ② | **Vier unabhängige Türen in einen Fall.** Du brauchst nie Crow-Eyes eigenen Collector — ein Ordner von Velociraptor, KAPE oder einem EDR-Paket läuft über den Offline-Importer, und CSV/JSON/SQLite von Drittanbietern läuft über Import Evidence. |
| ② → ③ | Alles läuft an einem Ort zusammen: **den Fall-Datenbanken**. Geparste Artefakte landen in `Target_Artifacts/`; importierte Drittanbieter-Beweise landen in `Imported_Evidence/` und werden automatisch erkannt. |
| ③ → ④ | **Die drei Analysepfade sind unabhängig voneinander.** Die Timeline und die UBA lesen die Fall-Datenbanken direkt — keiner von beiden benötigt einen Korrelationslauf. Die Korrelations-Engine ist eine *zusätzliche* Ebene, keine Voraussetzung. |
| ③ → ④ | **Dynamic Linking sitzt neben der Timeline und der UBA** — ein vierter, unabhängiger Leser der Fall-Datenbanken (er hat nichts mit der Timeline-Visualisierung zu tun). Er sammelt Identitätszuordnungen (SID → Benutzername, MAC → Netzwerk, Hash/GUID → App) in einer fallbezogenen `Crow_Intelligence.db` und legt diesen Kontext dann **inline in den Artefakt-Datentabellen** über nicht-destruktives `ATTACH` + `LEFT JOIN` darüber. Er verändert, wie Datensätze *gelesen* werden, niemals die Beweise. |
| ④ → ⑤ | Das Eye fragt die Fall-Datenbanken direkt ab und kann Korrelationsergebnisse **auf Abruf** abrufen. Es berührt die Beweise selbst nie — es gibt Tool-Aufrufe aus, die Crow-Eye ausführt und protokolliert. |
| ⑤ → Bericht | Der **Living Report wird allein vom Eye erstellt**, über seine `report_*`-Tools. Die Timeline und die UBA sind Analyse-Oberflächen — sie schreiben nicht in den Bericht. Fallbezogene Erkenntnisse können weiterhin separat über [Search & Export](#-search--export) exportiert werden. |
| ⑤ ↔ | Die **Narrative Map ist bidirektional**: Das Eye schreibt hinein, du schreibst hinein, und ihre Inhalte werden jede Runde in den Prompt des Eyes injiziert. Sie ist das Gedächtnis, und du kannst sie befehligen. |
| ⑤ ⟳ | Die **Compliance-Seite prüft das Eye.** Jeder Tool-Aufruf des Eyes ist an die **EvidenceSeal**-Hash-Kette verankert; die Seite rendert den Live-Status pro Regel (**GEP**) (10 Prinzipien), der aus dieser Kette und `EYE_Logs/` verifiziert wird, exportierbar als `audit_trail.json`. |
**Unabhängige Stufen.** Die Timeline und die UBA lesen die Fall-Artefakt-Datenbanken **direkt** — keiner von beiden benötigt einen Korrelationslauf, und die Timeline hängt nicht von der Korrelations-Engine ab (sie wendet ihre eigene leichtgewichtige zeitliche Gruppierung an). Korrelation ist eine zusätzliche Analyseeebene, deren Ergebnisse das Eye abfragen kann.
**Von Natur aus schreibgeschützt.** Das Parsen schreibt in die Fall-Datenbank; jede nachgelagerte Stufe (UBA, die Timeline, Korrelations-Viewer, das Eye) öffnet diese Datenbanken **schreibgeschützt**. Die ursprünglichen Beweise werden nie verändert — [Dynamic Linking](#-analysis-modes) liest die Fall-Datenbanken, um eine fallbezogene `Crow_Intelligence.db` mit Identitätszuordnungen aufzubauen, und reichert die Artefakt-Datentabellen inline über nicht-destruktive `ATTACH` + `LEFT JOIN`-Abfragen an, statt Zeilen neu zu schreiben.
**Von Natur aus gesteuert.** Jede Aktion des Eyes ist an die manipulationssichere **EvidenceSeal**-Hash-Kette verankert, und die **Compliance**-Seite verifiziert das Eye kontinuierlich gegen das [Ghassan Elsman Protocol (GEP)](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md) — Live-Status pro Regel, exportierbar nach `EYE_Logs/audit_trail.json`.
## 📥 Download & Installation
> **Empfohlen:** Hol dir den gepackten Windows-Build (**MSI-Installer / EXE**) von der offiziellen Website — kein Python-Setup, läuft sofort out of the box.
### ▶️ [Crow-Eye für Windows herunterladen → crow-eye.com/download](https://crow-eye.com/download)
Der **installierte MSI/EXE-Build ist die empfohlene Art, Crow-Eye auszuführen**, und er hat für uns **höchste Priorität bei Updates**:
- 🛡️ **Schnellste Fixes.** Wenn ein Problem gefunden oder ein Bug gemeldet wird, veröffentlichen wir so schnell wie möglich eine aktualisierte EXE — im gepackten Build landen Fixes zuerst.
- 🔄 **Integriertes Auto-Update.** Öffne in der installierten App **Settings → Updates**, um **nach Updates zu suchen und sie automatisch zu installieren** — keine manuelle Neuinstallation.
- 📦 **Null Setup.** Keine Python-, Node- oder Abhängigkeitsinstallation erforderlich.
> Du bevorzugst die Ausführung aus dem Quellcode? Siehe **[Quick Start](#-quick-start)** unten. Der Build aus dem Quellcode ist für Mitwirkende gedacht und **enthält keinen Auto-Updater** — nutze für automatische Updates die MSI/EXE.
## 🚀 Quick Start
### Option A — Installierter Build (empfohlen)
Lade die **MSI/EXE** von [crow-eye.com/download](https://crow-eye.com/download) herunter, installiere sie und starte **Crow-Eye** als Administrator. Erstelle einen Fall und beginne mit der Analyse.
### Option B — Aus dem Quellcode ausführen (Entwickler)
> Für Mitwirkende und fortgeschrittene Nutzer. Dieser Pfad **enthält keinen Auto-Updater** — nutze für automatische Updates die MSI/EXE.
**Anforderungen** (werden beim ersten Start automatisch installiert):
- Python 3.12.4
- **Node.js & npm** — erforderlich für die **Timeline-Visualisierung**
- Wichtige Pakete: PyQt5, python-registry, pywin32, pandas, streamlit, altair, olefile, windowsprefetch, sqlite3, colorama, setuptools
**Empfohlene Hardware**
| | Minimum | Empfohlen für große Fälle |
|---|---|---|
| **RAM** | 8 GB | 16 GB+ (MFT/USN-Sätze mit Millionen von Datensätzen) |
| **Festplatte** | 5 GB frei | Freier Speicher ≥ 2× der Größe der zu parsenden Beweise |
| **CPU** | 4 Kerne | 8+ Kerne |
| **OS** | Windows 10/11 (voll) · Linux (Offline- & Image-Analyse) | — |
> Korrelation streamt bei sehr großen Datensätzen mit konstantem Speicherverbrauch, sodass RAM selten die harte Grenze ist — Festplattendurchsatz und freier Speicher sind es meist.
**Start** (als Administrator ausführen, damit Crow-Eye auf System-Artefakte zugreifen kann):```bash
python "Crow Eye.py"
Die Hauptschnittstelle öffnet sich, Sie erstellen einen Fall, und die gesamte Analyseausgabe wird unter diesem Fallverzeichnis für spätere Überprüfung und Berichterstattung organisiert.
🖥️ Plattformübergreifender Hinweis: Unter Linux werden Live-Parser automatisch deaktiviert und Crow-Eye läuft im Offline-/Forensik-Image-Modus. Die vollständige Live-Erfassung ist nur unter Windows verfügbar.
📂 Unterstützte Artefakte
Crow-Eye analysiert eine breite Palette von Windows-Ausführungs-, Dateisystem- und Benutzeraktivitäts-Artefakten, sowohl von einem Live-System als auch aus Offline-Quellen (gesammelte Ordner oder Forensik-Images).
| Artefakt | Live | Offline | Extrahierte Daten |
|---|---|---|---|
| Prefetch | ✅ | ✅ | Ausführungshistorie, Ausführungsanzahl, Zeitstempel pro Ausführung |
| Registry (AutoRun, UserAssist, BAM/DAM, ShimCache, Netzwerke, Zeitzone und insgesamt 80+ Schlüssel) | ✅ | ✅ | Persistenz, Programmnutzung, Hintergrundaktivität, Netzwerkkonfiguration, Startfreigabestatus |
| Registry — gelöschte Schlüssel & Werte | ✅ | ✅ | Aus dem freien Speicherbereich der Hive wiederhergestellte Datensätze, entsprechend gekennzeichnet (record_state) |
| Registry — Klassennamen & Schlüsselsicherheit | ✅ | ✅ | nk-Klassennamen (wo Control\Lsa den Boot-Schlüssel aufbewahrt), Besitzer/Gruppe/DACL aus gemeinsamen Sicherheitsdeskriptoren |
| Registry — Transaktionsprotokolle | ✅ | ✅ | .LOG1/.LOG2 werden auf eine Arbeitskopie angewendet, sodass eine unsaubere Hive in dem Zustand gelesen wird, in dem sich die Maschine befand |
| Amcache (29 Tabellen) | ✅ | ✅ | App-Ausführung, Installationszeit, SHA-1, Dateipfade, Treiber, PnP-Geräte, Gerätezählung |
| ShimCache | ✅ | ✅ | Ausgeführte Apps, letzte Änderung, Größe und der dekodierte nachgestellte Blob (PE-Maschinentyp, OS-Binär-Flag) |
| MUICache | ✅ | ✅ | Programmpräsenz und Anzeigenamen |
| Jump Lists & LNK | ✅ | ✅ | Dateizugriff, Pfade, Zeitstempel, Metadaten |
| ShellBags | ✅ | ✅ | Ordnerzugriffshistorie und Navigation |
| MRU & RecentDocs / Typed Paths | ✅ | ✅ | Öffnen/Speichern-Verlauf, zuletzt verwendete Dateien, eingegebene Speicherorte |
| Browser-/Website-Verlauf | ✅ | ✅ | Besuchte Seiten und Zugriffszeiten |
| Ereignisprotokolle (System / Sicherheit / Anwendung) | ✅ | ✅ | Anmeldungen, Prozesserstellung (4688), Konto- & Dienständerungen, Protokoll löschen |
| MFT | ✅ | ✅ | Dateimetadaten, gelöschte Dateien, Zeitstempel (NTFS, Win 7/10/11) |
| USN-Journal | ✅ | ✅ | Datei erstellen/ändern/löschen/umbenennen mit vollständiger Namenshistorie |
| Papierkorb | ✅ | ✅ | Namen gelöschter Dateien, Pfade, Löschzeitpunkt, Größe |
| SRUM | ✅ | ✅ | App-Ressourcen-/Netzwerk-/Energieverbrauch, pro App übertragene Daten |
| USB- & verbundene Geräte | ✅ | ✅ | Geräteverbindung und -präsenz |
| Netzwerkliste & Verbindungen | ✅ | ✅ | Bekannte Netzwerke und Verbindungsaktivität |
| Autostart / Dienste & Treiber | ✅ | ✅ | Persistenz, Dienstinstallationen und Statusänderungen |
| Datenträger & Partitionen (Storage Forensics) | ✅ | ✅ | Physischer Datenträgerbaum, Partitionslayout, Erkennung versteckter/nicht eingehängter Partitionen |
Jump Lists & LNK werden von Crow-Eyes eigenem speziell entwickelten LNK-/Jump-List-Parser analysiert — nicht von einem Drittanbieter-Modul.
Benutzerdefinierte Registry / gesperrte Dateien: Windows sperrt Live-Registry-Hives (
NTUSER.DAT,SOFTWARE,SYSTEM) während des Betriebs. Für eine benutzerdefinierte Analyse eines Live-Systems booten Sie von externen Medien (WinPE/Live-CD), verwenden Sie Forensik-Erfassungswerkzeuge oder analysieren Sie ein Datenträger-Image.
Details pro Artefakt
- Jump Lists & LNK — automatisch aus den Standard-Systempfaden von Crow-Eyes eigenem dedizierten Parser analysiert (Dateizugriff, Zielpfade, Zeitstempel und Metadaten).
- Registry — analysiert automatisch die System-Hives. Für eine benutzerdefinierte Registry-Analyse kopieren Sie die Hive-Dateien nach
CrowEye/Artifacts Collectors/Target Artifacts(oder in denregistry/-Ordner Ihres Falls):NTUSER.DATausC:\Users\<Benutzername>\NTUSER.DATSOFTWAREausC:\Windows\System32\config\SOFTWARESYSTEMausC:\Windows\System32\config\SYSTEM- Windows sperrt diese während des Betriebs — für ein Live-System booten Sie von externen Medien (WinPE/Live-CD), verwenden Sie Forensik-Erfassungswerkzeuge oder analysieren Sie ein Datenträger-Image.
- Prefetch — analysiert
C:\Windows\Prefetchund extrahiert Ausführungshistorie und forensische Metadaten (einschließlich Zeitstempeln pro Ausführung). - Ereignisprotokolle — automatische Analyse der System-/Sicherheits-/Anwendungsprotokolle in eine Datenbank für eine umfassende Analyse.
- Registry-Tiefe (0.13.0) — der Parser liest die Hive-Datei sowie die Live-Registry, sodass er das erreicht, was
winregselbst einem Administrator verweigert (jeder Geräte-Properties-Unterschlüssel und damit USB-Verbindungszeiten), durchläuft den Allokator der Hive, um gelöschte Schlüssel und Werte wiederherzustellen, und liest Klassennamen und Schlüsselsicherheitsdeskriptoren. Neunzehn Schlüssel, die echte Daten enthielten und von nichts gelesen wurden, werden jetzt analysiert — einschließlich Explorers StartupApproved, das angibt, ob jeder Autostart-Eintrag tatsächlich starten darf. - ShellBags — zeigt die Ordnerzugriffshistorie und Navigationsmuster des Benutzers.
- Papierkorb — analysiert
$RECYCLE.BIN, um Namen gelöschter Dateien, ursprüngliche Pfade, Löschzeitpunkte und Größen wiederherzustellen (Live-Systeme und Datenträger-Images). - MFT — analysiert die Master File Table für Dateimetadaten, Attribute, Zeitstempel und Informationen zu gelöschten Dateien (NTFS, Windows 7/10/11).
- USN-Journal — verfolgt Datei-Erstellen/-Ändern/-Löschen/-Umbenennen-Ereignisse mit Zeitstempeln und vollständiger Namenshistorie für die Timeline-Rekonstruktion.
- SRUM — visualisiert den App-Ressourcenverbrauch (Dauerbalken für Vordergrund-/Hintergrundzeit) und die Netzwerkaktivität pro Anwendung.
- Storage Forensics Analyzer — vollständige Baumansicht jeder physischen Festplatte und ihrer Partitionen; farbcodierte Partitionstypen (EFI, Linux, Recovery, Versteckt/Swap, …); Warnungen für bootfähige USBs, versteckte Linux-Root-Partitionen und Intel Rapid Start; Fallback mit Rohsektor-Magic-Scanning.
🔧 Analysemodi
🦅 Crow-Claw-Erfassung
Crow-Claw ist Crow-Eyes spezialisierte Erfassungs-Engine zum Sammeln und Bewahren von Artefakten von Live-Systemen oder eingehängten Images.
- Selektive Sammlung — wählen Sie bestimmte Artefaktkategorien (Registry, Ereignisprotokolle, Dateisystem) aus oder sammeln Sie alles.
- Tiefenscan — durchläuft Verzeichnisse und Unterverzeichnisse, um forensische Spuren zu finden.
- Sichere Bewahrung — Artefakte landen in einem strukturierten Fallverzeichnis, das die forensische Integrität bewahrt.
🔍 Offline-Analyse (Offline-Importeur)
Analysieren Sie Artefakte, die aus beliebigen Quellen gesammelt wurden, ohne Live-Verbindung zum Zielsystem — drei klare Operationen:
- SCAN (Erkennung) — durchläuft die Quelle und indexiert jedes unterstützte Artefakt nach Dateinamen- und Erweiterungsmuster (schnell, schreibgeschützt; Dateiinhalte werden nicht gelesen und in dieser Phase wird keine Magic-Byte-Prüfung durchgeführt). Es wird nichts verschoben.
- COLLECT (Erfassung) — kopiert die identifizierten Dateien physisch in den
live_acquisition-Ordner des Falls, nach Typ organisiert. - PARSE (granular) — überprüft identifizierte Elemente pro Typ (AMCACHE, EVTX, PREFETCH, …) und analysiert ausgewählte Dateien (oder alle) in die forensische Datenbank.
| 🔍 SCAN | 📦 COLLECT | |
|---|---|---|
| Aktion | Erkennung — identifiziert Artefakte an ihrem ursprünglichen Speicherort | Erfassung — kopiert & bewahrt Artefakte im Fallordner |
| I/O-Auswirkung | Schreibgeschützt; keine Dateien verschoben | Lesen + Schreiben; dupliziert Artefakte physisch |
| Organisation | Aktualisiert .artifact_scan_index.json-Metadaten | Organisiert Dateien in typspezifische Ordner |
| Anwendungsfall | Schnelles Triage, um zu sehen, ob die Quelle relevante Daten enthält | Vollständige forensische Bewahrung für die Langzeitanalyse |
Die Analyse wird von Crow-Eyes dedizierten Offline-Parsern übernommen — dieselbe Artefaktlogik wie im Live-Modus, die auf gesammelten Dateien arbeitet: Prefetch, Registry, MFT, USN (plus dem MFT/USN-Korrelator), AmCache, ShimCache, SRUM, Ereignisprotokolle, LNK/JumpLists und Papierkorb.
📎 Beweismittel importieren (Drittanbieter-Daten)
Über Roh-Artefakte hinaus kann Crow-Eye Forensik-Ausgaben von Drittanbietern direkt in einen Fall aufnehmen — Plaso, Autopsy, Volatility oder jeden benutzerdefinierten Export — und sie für das Eye und die Timeline nutzbar machen, ohne dass zuerst ein Korrelationslauf erforderlich ist.
| Eingabe | Was passiert |
|---|---|
.db / .sqlite | Wird validiert und unverändert in den Imported_Evidence/-Ordner des Falls kopiert. Das Schema bleibt unangetastet. |
.csv / .json | Wird automatisch über den kanonischen FeatherWriter in eine feather-förmige SQLite-Datenbank konvertiert, die feather_metadata trägt und den primären Zeitstempel der Tabelle deklariert — automatisch aus den Spaltennamen erkannt — genau wie bei einer nativ gesammelten Feather. |
Da der Fall-Datenbankmanager automatisch jede .db unter dem Fallbaum erkennt, wird importiertes Beweismaterial sofort verfügbar für:
- Das Eye — per natürlicher Sprache abfragbar neben nativen Artefakten (das Schema-Manifest wird beim Import aktualisiert).
- Die Interaktive Timeline — als Artefakttyp
importedbereitgestellt, mit funktionierender Zeitfenster-Filterung und Zeitgrenzen. - Die Korrelations-Engine — als Feather für die toolübergreifende Korrelation mit nativen Artefakten nutzbar.
Der Importeur verwendet nur die Standardbibliothek (sqlite3 / csv / json) und läuft auf einem Hintergrund-Worker, sodass große Importe die Benutzeroberfläche nicht blockieren.
⚡ Live-Analyse
Analysiert Artefakte direkt vom laufenden Windows-System und extrahiert sie automatisch aus ihren Standardpfaden für die Echtzeit-Forensikanalyse.
🗂️ Fallverwaltung
Jede Untersuchung ist ein Fall: ein in sich geschlossenes Verzeichnis, das Artefaktdatenbanken und Analyseausgabe organisiert. Crow-Eye verfolgt aktuelle Fälle (mit Favoriten, Tags und Status), validiert einen Fall beim Öffnen, schreibt Konfiguration atomar (absturzsicher) und unterstützt Fallkonfigurations-Import/-Export sowie Vorlagen mit vorgefertigten semantischen Zuordnungen.
🕰️ Interaktive Timeline-Visualisierung
Korrelieren Sie Ereignisse über Artefakte hinweg auf einem einheitlichen Zeitraster, mit Heat-Map-, Wochen- und Tages-Ansichten — eine identitätsverknüpfte, gerichtsfeste Geschichte statt einer flachen Super-Timeline.
Die Timeline liest die analysierten Artefaktdatenbanken des Falls direkt und ist unabhängig von der Korrelations-Engine — Sie müssen keine Feathers erstellen, Wings verfassen oder eine Pipeline ausführen, um sie zu nutzen. Sie wendet ihre eigene leichtgewichtige zeitliche Gruppierung an (Exakt-Zeitstempel- und Zeitfenster-Korrelation, Gruppierung nach Anwendung, Pfad oder Benutzer), um Ereignisse auf dem Raster zueinander in Beziehung zu setzen. Über Beweismittel importieren eingebrachtes Beweismaterial erscheint ebenfalls auf der Timeline als Artefakttyp imported, mit funktionierender Zeitfenster-Filterung und Zeitgrenzen.
🔎 Suche & Export
Volltextsuche über die Falldatenbank sowie Export nach CSV (Tabellenkalkulationen), JSON (Integration mit anderen Werkzeugen) und Detaillierte HTML-Berichte (vollständige Dossiers, die jedes Artefakt konsolidieren, das mit einem Suchbegriff verknüpft ist).
🔗 Dynamische Verknüpfung
Übersetzt rohe technische Identifikatoren — SIDs, MAC-Adressen, Hashes — spontan in menschenlesbaren Kontext. Die Dynamische Verknüpfung reichert die Ansicht mithilfe nicht-destruktiver SQL-ATTACH-Abfragen an, sodass das ursprüngliche Beweismaterial nie verändert wird, und kann Bulk-IOC-Bedrohungsfeeds aufnehmen, um bekannte schädliche Indikatoren inline zu kennzeichnen.
🧠 Benutzerverhaltensanalyse (UBA)
Verwandeln Sie rohe Artefakte in eine verständliche Aktivitätsgeschichte — einen für Manager/HR lesbaren Bericht darüber, was ein Benutzer und seine Anwendungen tatsächlich getan haben, wobei jede Aussage auf die exakte Quellbeweislage zurückführbar ist.
Benutzerverhaltensanalyse (UBA) liest die analysierten Artefaktdatenbanken im Target_Artifacts/-Ordner Ihres Falls (streng schreibgeschützt) und spielt sie durch einen deklarativen Regelsatz, um eine klare, chronologische Aktivitätsgeschichte zu erzeugen. Öffnen Sie sie über die „User Behavior"-Toolbar-Schaltfläche oder mit Ctrl+Shift+B (ein Fall muss geladen sein).
- 🧩 40 deklarative Verhaltenserkennungen (
uba/config/behavior_rules.json) — ohne Code anpassbar — jeweils nach Schweregrad klassifiziert: routinemäßig · bemerkenswert · verdächtig · kritisch. - 🕵️ Erkennt Verhalten, das zählt: An-/Abmeldung, Entsperren, Programmstart · -ausführung · -installation, Datei öffnen / löschen / abgeleitetes Kopieren, USB-Geräteverbindung, Netzwerkfreigabezugriff, Persistenz & Autostart, Verwendung expliziter Anmeldedaten (
runas), Konto- & Gruppenänderungen, Dienständerungen, Manipulation der Systemuhr (verdächtig) und Löschen von Ereignisprotokollen (kritisch). - 🗺️ Drei Ansichten — einen Aktivitätsgeschichten-Feed, eine Aktivitätskarten-Heatmap (Tag × Stunde) und einen „Was wir sehen können"-Ehrlichkeitsbericht, der jede Erkennung für diesen Fall als Funktionsfähig / Eingeschränkt / Keine Daten / Absichtlich kennzeichnet.
- 🔗 Jede Aktivität ist beweisgestützt. Klicken Sie auf ein beliebiges Element, um den exakten zugrunde liegenden Datensatz zu öffnen (
Datenbank : Tabelle : rowid) — nichts wird ohne Quelle behauptet. - 👤 Ehrliche Zuordnung. Akteure werden als Benutzer / Anwendung / System aufgelöst (oder bleiben leer) — UBA rät nie, wer was getan hat.
Erkennungsabdeckung
Die 40 Erkennungen umfassen vier Schweregradklassen und die gesamte Breite des analysierten Artefaktsatzes:
| Kategorie | Erkennungen umfassen |
|---|---|
| Identität & Zugriff | An-/Abmeldung, Arbeitsstations-Entsperrung, Remote-Desktop-Anmeldungen, Admin-Anmeldungen, Verwendung expliziter Anmeldedaten (runas), Kontenerstellung und -änderungen, Hinzufügungen zur Admin-Gruppe |
| Ausführung | Geöffnete Programme (UserAssist), ausgeführte Programme (Prefetch, erweitert auf Ereignisse pro Ausführung), Prozesserstellung (4688), Programmpräsenz (ShimCache / AmCache / MUICache), Anwendungsinstallationen, Anwendungsabstürze (aus Anwendungs-Ereignisprotokoll-Datensätzen 1001) |
| Dateiaktivität | Datei öffnen / erstellen / löschen / kopieren / umbenennen — Umbenennungen zeigen die vollständige Namenshistorie (alt → … → aktuell), rekonstruiert aus dem USN-Journal, mit Soft-Delete-Auflösung ($R/$I) |
| Navigation | Ordnerdurchsuchen (ShellBags), zuletzt verwendete Dokumente, eingegebene Speicherorte, Website-Besuche |
| Geräte & Netzwerk | USB-Geräteverbindung, Gerätepräsenz, Netzwerkfreigaben, Netzwerkverbindungen, pro Anwendung übertragene Daten (SRUM) |
| Persistenz & System | Autostart-Persistenz (Run-Schlüssel + Dienste, eskaliert, wenn das Ziel aus einem benutzerbeschreibbaren Pfad läuft), Dienst- und Treiberinstallationen, Dienststatusänderungen, Systemstart/-herunterfahren, Uhrzeitänderungen, Löschen von Ereignisprotokollen |
Filter: Freitextsuche · Benutzer/Akteur (einschließlich „Nicht zugeordnet" und einem Umschalter für angemeldete Sitzungen) · Verhaltensklasse (Benutzer / Anwendung / System) · Schweregrad · Anwendung (durchsuchbare Mehrfachauswahl über 200+ Programme) · Datums-/Uhrzeitbereich mit Schnellvoreinstellungen (gesamte Zeit / erster Tag / letzter Tag / letzte Stunde der Aktivität).
Datenquellen: Sicherheits-, System- und Anwendungs-Ereignisprotokolle · USN-Journal · MFT · UserAssist · BAM · Prefetch · ShimCache · AmCache · MUICache · ShellBags · LNK / JumpLists · Papierkorb · SRUM (Anwendung, Netzwerk, Konnektivität) · Registry-Hives.
Forensische Garantien
- Schreibgeschützt. Quelldatenbanken werden schreibgeschützt geöffnet; die Analyse berührt das Beweismaterial nie.
- Vollständige Herkunft. Jedes Ereignis trägt
Datenbank → Tabelle → rowidund öffnet die echten Quellzeilen bei Bedarf. - Zuordnung rät nie. Ein Ereignis wird einem Benutzer, einer Anwendung, dem System zugeordnet — oder bleibt leer. Interaktive Anmeldesitzungen werden nur als Kontextbeschriftungen verwendet („während der Sitzung von
<Benutzer>"), nie zur Zuordnung einer Aktion. - Ehrliche Formulierung. Die Formulierung unterscheidet bewusste Interaktion (UserAssist, SRUM-Vordergrund) von Artefakten, die auch eine Anwendung erzeugen kann (ShellBags, LNK, JumpLists), mit expliziten Hinweisen auf der Karte.
- Abwesenheit wird benannt, nicht impliziert. Der Was wir sehen können-Bericht kennzeichnet jede Erkennung für diesen spezifischen Fall, sodass fehlende Daten nie stillschweigend als „nichts ist passiert" gelesen werden.
UBA ist regelgetriebene Verhaltenskorrelation und -klassifizierung, keine statistische/ML-Anomaliebewertung — jeder Befund ist einer expliziten, prüfbaren Regel zugeordnet. Siehe
RELEASE_NOTES.mdfür den vollständigen Erkennungskatalog.
🧩 Korrelations-Engine
Korrelations-Engine v1.7.0 — der Rekonstruktionskern. Siehe RELEASE_NOTES.md für den Versionsverlauf.
Die Crow-Eye-Korrelations-Engine ist ein produktionsreifes forensisches Korrelationssystem. Sie nimmt Windows-Artefakte aus beliebigen Quellen auf, normalisiert sie und bringt die zeitlichen und identitätsbezogenen Beziehungen an die Oberfläche, die isolierte Datensätze in eine kohärente Erzählung darüber verwandeln, was auf einem System passiert ist, wann und wer beteiligt war. Sie funktioniert sofort einsatzbereit mit integrierten Korrelationsregeln (Wings) für die häufigsten Untersuchungsfragen, ermöglicht Analysten das Verfassen benutzerdefinierter Regeln ohne Codeänderungen und überlässt die Bedeutung verfassbaren Regeln und dem Ermittler — niemals einem Black-Box-Score.
🎥 Benutzerhandbuch
Universeller Datenimport: Die Korrelations-Engine kann Ausgaben beliebiger Forensik-Werkzeuge im CSV-, JSON- oder SQLite-Format aufnehmen und in eine Feather-Datenbank konvertieren. Das bedeutet, Sie können Daten von Drittanbieter-Werkzeugen (Plaso, Autopsy, Volatility usw.) mit Crow-Eyes nativen Artefakten korrelieren und so eine einheitliche Korrelationsanalyse über alle Ihre forensischen Datenquellen erstellen.
🎯 Genauigkeit & Beweisvollständigkeit
Ein fokussierter Genauigkeitsdurchlauf aus dem 0.11.0-Zyklus, Ende-zu-Ende validiert gegen einen realen Windows-Fall mit ~700.000 Datensätzen und auf früheren Zuverlässigkeitsarbeiten aufbauend. Jede unten genannte Korrektur ist durch die pytest-Regressionssuite abgesichert und durch eine ganzheitliche Validierungsumgebung verifiziert; sie übte die sieben Standard-Wings, die damals ausgeliefert wurden — heute werden elf ausgeliefert. Die unten genannten Übereinstimmungszahlen wurden unter den Regeln dieser Version gemessen: 0.13.0 hat geändert, was als Übereinstimmung zählt (eine Übereinstimmung muss jetzt mehr als eine Feather umfassen) und was ein Konfidenzwert bedeutet, behandeln Sie sie also als Aufzeichnung dieses Durchlaufs und nicht als aktuelle Zahlen.
Die Identitäts-Engine erfasst das gesamte Beweismaterial
- Behoben: Die Identitäts-Engine iterierte nur über die ERSTE Zeile jeder Feather, wenn ein Zeitfilter aktiv war (ein zeitzonenbewusster vs. naiver Datetime-Vergleich löste
TypeErroraus und brach die Zeilen-Schleife ab). Die Anzahl der gesehenen Datensätze stieg im Validierungsfall von 3.558 auf 745.615. - Behoben: Protokolldatensätze kollabierten jedes Ereignis auf seinen Ereignis-PROVIDER als Identität (alle 33.855 SecurityLogs-Datensätze teilten sich eine Identität). Die pro-Artefakt-Zuordnung priorisiert jetzt echte Entitäten pro Zeile (
User,ComputerName,NewProcessName,TargetUserName) vor Kanal-/Provider-Metadaten. - Behoben: Die artefaktbewusste Feldzuordnung wurde nie ausgelöst, weil Parser keine
artifact-Spalte auf jede Zeile stempeln. Die Engine greift jetzt auffeather_metadata.artifact_typezurück, sodass SecurityLogs / SystemLogs / ApplicationLogs ihre artefaktspezifische Identitätspriorität verwenden. - Behoben: Platzhalterzeichenfolgen wurden zu falschen Identitäten (
'N/A','Unknown','-', Nil-GUIDs bündelten unzusammenhängende Datensätze). Der Validator lehnt jetzt 30+ Platzhaltervarianten ab. - Nettoergebnis in einem Vollbereichsfenster, damals gemessen: Der Execution-Proof-Wing brachte 2.856 featherübergreifende (High-)Übereinstimmungen in der Identitäts-Engine und 643 featherübergreifende Übereinstimmungen in der Zeit-Engine hervor, mit 24–118 featherübergreifenden Übereinstimmungen pro Wing über die anderen sechs Wings dieser Version.
Kein „Alles ist Low — etwas stimmt nicht" mehr
- Behoben: Einzelfeather-Übereinstimmungen wurden als
Highmarkiert. Übereinstimmungen mitfeather_count == 1erhalten jetztconfidence_category="Low - single feather", sodass sich die High-Ansicht auf echte featherübergreifende Korrelation konzentriert. - Behoben: Ein pfadbewusster zusammengesetzter Schlüssel spaltete dieselbe Identität über Feathers hinweg auf (jede Feather speichert Pfade anders, sodass
chrome10+ Schlüssel hatte und nie korrelierte). Der Schlüssel ist jetzt nur noch namensbasiert — featherübergreifende Korrelation funktioniert wieder.
Identitätswechsel-Erkennung durch Pfadklassifizierung — nachdem eine Übereinstimmung gebildet wurde, klassifiziert die Engine den Pfad jedes Datensatzes als VERTRAUENSWÜRDIG (Program Files, System32, WinSxS, die BAM/SRUM-/device/harddiskvolumeN/...-Formen, …) oder VERDÄCHTIG (Temp, Downloads, Public, AppData\Local\Temp, Papierkorb, Wechselmedien-Roots, Netzwerkfreigaben). Eine Übereinstimmung, die beide Klassifizierungen umfasst, löst impersonation_alert aus (≈0,05 %-Rate, jeder ein echter Kandidat).Ehrliche Beweisaufzeichnung — ein Drop-Ledger pro Zeitfenster mit benannten Buckets (no_identity_field, normalize_failure, below_threshold_skipped, …) sowie eine Zusammenfassung pro Pipeline (gesehene Datensätze, High/Low ausgegeben, keine Identität, Drop-Buckets, Timeless-Feather-Joins). Jeder Datensatz landet entweder in einem Match oder in einem benannten Drop-Bucket — „keine Beweise bleiben übrig“ ist aus dem Log überprüfbar. low_confidence_review_mode ist standardmäßig AKTIVIERT, sodass Gruppen unterhalb des Schwellenwerts zu Low-Confidence-Matches werden, statt stillschweigend zu verschwinden.
Timeless-Feather-Identitätsanreicherung — Feathers ohne Zeilen-Zeitstempel (AutoStartPrograms, MUICache, SystemServices, TypedPaths) erhalten nicht länger einen künstlichen Generierungszeitstempel auf jeder Zeile; stattdessen führt die Engine nach der Bildung zeitbasierter Matches passende Datensätze aus jedem Timeless-Feather per Identität als ergänzende Beweise zusammen.
Konsolidiertes Identitätsregister — config/standard_fields/identities.json ist die einzige Quelle der Wahrheit für jede Spalte, die die Engines + Eye berücksichtigen sollen: 98 Kategorien, 1.146 Spaltensynonyme (App/Prozess, Datei, Hash, Benutzer, Host/Gerät, Netzwerk, Registry, Dienst/Aufgabe, Ereignis, E-Mail, Browser, Cloud, Windows-Interna, Zertifikat, Container, OS-Objekte). Das Hinzufügen eines neuen Spaltensynonyms ist eine JSON-Bearbeitung, keine Codeänderung.
Behebungen von False Positives durch semantische Zuordnung — die Gating-Mehrfachindikator-Prüfung wird nun tatsächlich durchgesetzt (data-exfiltration-pattern erfordert ≥2 Indikatoren); unmögliche UND-Regeln (4625 AND 4624) wurden in ODER umgeschrieben; Wiper-/Remote-Tool-Regeln verwenden echte Regex, statt bei jedem Prefetch-Eintrag auszulösen; Baseline-Aktivitätsregeln wurden von high/critical auf info/low herabgestuft (die gewichtete Bewertung des Wings eskaliert echte Bedrohungen).
✅ Produktionsstatus
Die Correlation Engine ist produktionsreif und wird aktiv in Untersuchungen eingesetzt (Correlation Engine v1.7.0):
- ✅ Time-Window-Scanning-Engine — produktionsreif, empfohlen für zeitbasierte Analysen (O(N log N))
- ✅ Identitätsbasierte Engine — produktionsreif, empfohlen für Identitätsverfolgung (O(N log N))
- ✅ Feather Builder / FeatherWriter — importiert CSV/JSON/SQLite aus jedem Tool; transaktionale Stapelverarbeitung + Schema-Metadaten
- ✅ Wings-System & Pipeline-Orchestrierung — Korrelationsregeln erstellen/verwalten und Workflows automatisieren
- ✅ Identitätsgruppierung — vereinheitlicht über Engine, Viewer und die semantische Phase
- ✅ Standard-Fields-Registry — zentralisierte Quelle der Wahrheit für Feld-Synonyme
- ✅ Multi-Timestamp-Fan-Out — jeder JSON-Listen-Zeitstempel wird korreliert
- 🔄 Parallele Korrelation — Grundlage vorhanden; Profiling + Prozess-Pool-Dispatch als Nächstes
- 🔄 Semantische Zuordnung & Korrelationsbewertung — aktive Verbesserungen
Hauptfunktionen
- 🔄 Dual-Engine-Architektur: Wählen Sie zwischen Time-Window-Scanning (O(N log N)) und identitätsbasierter (O(N log N)) Korrelationsstrategie.
- 📊 Multi-Artefakt-Unterstützung: Korrelieren Sie Prefetch, ShimCache, AmCache, Ereignisprotokolle, LNK-Dateien, Jumplists, MFT, USN, SRUM, Registry, Papierkorb und mehr.
- 🔌 Universeller Import: Importieren Sie CSV/JSON/SQLite-Ausgaben aus jedem forensischen Tool und konvertieren Sie sie in Feather-Datenbanken.
- 🎯 Intelligente Identitätsgruppierung: Varianten wie
Chrome.exe/chrome.dll/Chrome.EXEwerden zu einem Bucket zusammengefasst; Versions- und Architekturqualifikatoren bleiben getrennt. - 🕒 Tolerante Zeitstempel: FILETIME, ISO 8601, Unix-Epoch (s/ms/μs),
YYYYMMDD, US-Schrägstrich und annotierte Zeichenfolgen werden alle beim ersten Versuch korrekt geparst. - 📈 Multi-Timestamp-Fan-Out: JSON-Zeitstempellisten (Prefetch
run_times) werden erweitert, sodass jede Ausführung ihr eigenes Korrelationsereignis erhält. - 🧰 Eine Quelle der Wahrheit: Feld-Synonyme in
config/standard_fields/*.json; Tabellen-Metadaten incorrelation_engine/config/feather_schemas.json— erweiterbar durch Bearbeiten von JSON, nicht von Code. - ⚡ Streaming + Thread-sicher: O(1)-Speicher-
query_time_range_iter; sperrengeschützte Feather-Caches; bereit für parallele Korrelation. - 🔍 Flexible Regeln: Definieren Sie benutzerdefinierte Korrelationsregeln (Wings) mit konfigurierbaren Parametern.
- 📋 Ehrliche Diagnostik: Statistikzeile pro Zeitfenster (records_in / no_identity / parse_cache_hits / below_threshold / matches_emitted), sodass Sie immer wissen, ob Beweise verworfen wurden.
- 🧪 Abgesicherte Qualität: Eine pytest-Regressionssuite, die Zeitstempelparsen, Identitätsnormalisierung, Fan-Out, den Writer-Vertrag, Eye-Authoring (Write-Side-GEP-Governance) und die Standard-Fields-Registry abdeckt.
Systemarchitektur
Die Correlation Engine besteht aus vier Hauptkomponenten:
1. 🗄️ Feathers (Datennormalisierung)
Zweck: Transformation roher forensischer Artefakte in ein standardisiertes, abfragbares Format.
- SQLite-Datenbanken mit normalisierten forensischen Artefaktdaten — ein Feather pro Artefakttyp (Prefetch, ShimCache, Ereignisprotokolle, …) mit standardisiertem Schema und Metadaten für effiziente Abfragen.
- Ein universelles Format, das Daten aus jedem forensischen Tool akzeptiert.``` 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
**Unterstützte Importformate:** CSV (beliebige Datei mit Kopfzeile), JSON (flach oder verschachtelt) und SQLite (direkter Import). Automatische Spaltenzuordnung, Datentyp-Erkennung, Zeitstempel-Normalisierung auf ISO, Validierung und optimierte Indizes.```
prefetch.db (Feather)
├── feather_metadata (artifact type, source, record count)
├── prefetch_data (executable_name, path, last_executed, hash)
└── Indexes (timestamp, name, path)
2. 🎯 Wings (Korrelationsregeln)
Zweck: Definieren, welche Artefakte korreliert werden sollen und wie.
- JSON/YAML-Regeln, die ein Zeitfenster, eine Mindestanzahl an Übereinstimmungen, eine Ankerpriorität und die Federn (mit Gewichtungen) zur Korrelation festlegen — wiederverwendbar über Fälle hinweg. Jede Wing ist erstellbar und versiegelt (erfasst, wer sie erstellt hat, warum und welche Beweise sie motiviert haben).```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. ⚙️ Engines (Korrelationsstrategien)
**Zweck**: Ausführung von Korrelationslogik, um Beziehungen zwischen Artefakten zu finden. Strukturelle Verknüpfungen kommen **zuerst**; eine stufenbasierte Gewichtung wird als *Interpretation/Ranking* darübergelegt, nicht als Grundlage für einen Abgleich.
**Time-Window-Scanning-Engine** — am besten geeignet für zeitbasierte Analysen und systematische zeitliche Korrelation. Scannt die Zeit in festen Intervallen, sammelt Datensätze aus allen Feathers pro Fenster, wendet semantischen Feldabgleich + gewichtete Bewertung an und verhindert Duplikate durch MatchSet-Tracking. **O(N log N)** (indizierte Zeitstempelabfragen); Stapelverarbeitung (~2.567 Fenster/Sekunde).
**Identity-Based-Correlation-Engine** — am besten geeignet für große Datensätze (>1.000 Datensätze) und Identitätsverfolgung. Extrahiert und normalisiert Identitäten, gruppiert Datensätze nach Identität, baut zeitliche Anker innerhalb jedes Clusters auf, klassifiziert Beweise als primär/sekundär/unterstützend und streamt sehr große Mengen (>5.000 Anker) bei konstantem Speicher. **O(N log N)**; 40+ Identitätsfeldmuster pro Typ.
**Engine-Auswahl:** Verwenden Sie die Time-Window-Engine für zeitbasierte Analysen und die Identity-Based-Engine für Identitätsverfolgung — beide sind produktionsreif und für große Datensätze mit indizierten Abfragen optimiert.
#### 4. 🔄 Pipelines (Workflow-Orchestrierung)
**Zweck**: Automatisierung vollständiger Analyse-Workflows von der Feather-Erstellung bis zur Ergebnisgenerierung. Eine Pipeline liest ihre Konfiguration (Engine-Typ, Wings, Feathers), instanziiert die richtige Engine über den EngineSelector, führt jede Wing aus, aggregiert Übereinstimmungen, speichert Ergebnisse (DB + JSON) und zeigt sie in der GUI mit Filterung und Visualisierung an.```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"
}
}
Wie alles zusammenarbeitet```
- Data Preparation Raw Forensic Data → Feather Builder → Feather Databases
- Configuration Wing Configs + Feather References → Pipeline Config
- Execution Pipeline Executor → Engine Selector → Correlation Engine
- Correlation Engine loads Feathers + applies Wing rules → Correlation Results
- Visualization Results Database → Results Viewer GUI
### Beispiel-Anwendungsfall: Nachweis der Ausführung finden
**Szenario**: Beweisen, dass `malware.exe` auf einem System ausgeführt wurde.```json
{
"wing_id": "malware-execution",
"correlation_rules": { "time_window_minutes": 5, "minimum_matches": 2 },
"feathers": ["prefetch", "shimcache", "amcache"]
}
### 2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1```python
from correlation_engine.pipeline import PipelineExecutor
executor = PipelineExecutor(pipeline_config)
results = executor.execute()
Changelog
[1.0.0] - 2024-01-01
Added
- Initial release of the tool.
- Support for scanning multiple targets.
- Export results in JSON and CSV formats.
Changed
- Improved performance of the scanning engine.
- Updated dependencies to latest versions.
Fixed
- Fixed a bug where the tool would crash on empty input.
- Fixed incorrect output formatting on Windows.
[0.9.0] - 2023-12-15
Added
- Beta release with core functionality.
- Basic CLI interface.
Known Issues
-
Large scans may consume significant memory.
-
IPv6 support is experimental.``` 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
### Leistungs-Benchmarks
| Datensätze | Zeitfenster-Engine | Identitätsbasierte Engine |
|---|---|---|
| 1.000 | 0,5 s | 2 s |
| 10.000 | 5 s | 15 s |
| 100.000 | 50 s | 2,5 Min. (Streaming) |
| 1.000.000 | — | 25 Min. (Streaming) |
### Erste Schritte mit der Korrelations-Engine
1. **Starten**: `python -m correlation_engine.main`
2. **Feathers erstellen**: Importieren Sie Ihre forensischen Artefakte (Prefetch, ShimCache, …).
3. **Wings erstellen**: Definieren Sie Korrelationsregeln für Ihre Untersuchung.
4. **Pipeline erstellen**: Konfigurieren Sie, welche Wings und Feathers verwendet werden sollen.
5. **Ausführen**: Führen Sie die Pipeline aus und betrachten Sie die korrelierten Ergebnisse.
6. **Analysieren**: Nutzen Sie den Ergebnis-Viewer, um zeitliche Beziehungen zu untersuchen.
### 📚 Dokumentation der Korrelations-Engine
- **[Überblick über die Korrelations-Engine](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/CORRELATION_ENGINE_OVERVIEW.md)** — Systemüberblick mit Architekturdiagrammen
- **[Engine-Dokumentation](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md)** — Dual-Engine-Architektur, Engine-Auswahl, Leistungsoptimierung
- **[Architektur](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/ARCHITECTURE.md)** — Komponentenintegration und Datenfluss
- **[Feather-Dokumentation](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/feather/FEATHER_DOCUMENTATION.md)** — das Daten-Normalisierungssystem
- **[Wings-Dokumentation](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/wings/WINGS_DOCUMENTATION.md)** — Korrelationsregeln
- **[Pipeline-Dokumentation](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/pipeline/PIPELINE_DOCUMENTATION.md)** — Workflow-Orchestrierung
- **[Hinzufügen eines Artefakts](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/ADDING_AN_ARTIFACT.md)** — der Workflow zum Einbinden eines neuen Parsers in die Engine
- **[Registry der Standardfelder](https://github.com/ghassan-elsman/crow-eye/blob/main/config/standard_fields)** — kanonische Spaltennamen-Synonyme, die von beiden Engines und dem Eye geladen werden
- **[Beitragsleitfaden](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/CONTRIBUTING.md)** — wie Sie zur Engine beitragen können
- Schnellzugriffe: [Engine-Auswahl](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#engine-selection-guide) · [Fehlerbehebung](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#troubleshooting) · [Leistungsoptimierung](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#performance-and-optimization)
## 👁️ Eye — Der Forensik-KI-Assistent
> **Ein leistungsstarker Assistent, kein Ersatz.** Eye automatisiert und *verifiziert* die Hypothesen eines Ermittlers — es trifft die Entscheidung nie für Sie.
**Eye** ist der integrierte Forensik-KI-Assistent von Crow-Eye: ein erfahrener forensischer Ermittler, gestützt auf eine echte Wissensbasis über Windows-Artefakte. Es bietet Ihnen eine Schnittstelle in natürlicher Sprache, um alles in einem Fall abzufragen, zu korrelieren und zu dokumentieren — Prefetch, MFT, Registry, Ereignisprotokolle, AmCache, ShimCache, SRUM und mehr — und führt dabei einen prüfbaren, manipulationssicheren Nachweis darüber, was genau es getan hat. Eye kann vollständig auf Ihrer eigenen Hardware laufen (einschließlich **vollständig netzwerkisoliert**), im Einklang mit der Datenschutz-Haltung von Crow-Eye: **„0 ms Daten werden vom Gerät gesendet"**. Vollständige Architektur: [`eye/README.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md).
| Fähigkeit | Was das für Sie bedeutet |
|---|---|
| **Untersuchung in natürlicher Sprache** | Fragen Sie in einfachem Englisch; Eye schreibt das SQL und sucht für Sie. |
| **Integration mehrerer Quellen** | Einheitlicher Zugriff auf alle geparsten Artefakte im Fall. |
| **RAG-gestützte Analyse** | Eye ruft artefaktspezifisches forensisches Wissen ab, bevor es antwortet. |
| **Living-Report-Arbeitsbereich** | Ergebnisse, Tabellen, Diagramme und Zeitlinien werden in Echtzeit dokumentiert. |
| **Human-in-the-Loop** | Kritische Aktionen (z. B. Berichtsexport) erfordern Ihre ausdrückliche Genehmigung. |
| **Chain of Custody** | Kryptografischer Nachweis darüber, was das Modell genau analysiert hat. |
Eye verwandelt Konversationsfragen („zeig mir, was nach 22:00 Uhr aus `C:\Temp` ausgeführt wurde") in echte forensische Arbeit: Es plant einen Ansatz, ruft relevantes Artefaktwissen ab, führt SQL- und artefaktübergreifende Suchen gegen Ihre Falldatenbanken aus und synthetisiert eine validierte Antwort. Jede Antwort wird **an zwei Orten gleichzeitig** erzeugt — eine Chat-Antwort für Sie und ein strukturierter Block, der in einen **Living-Report-Arbeitsbereich** geschrieben wird, sodass sich das Dossier während der Untersuchung von selbst aufbaut.
### Das Ghassan-Elsman-Protokoll (GEP)
Alles, was Eye tut, ist am **Ghassan-Elsman-Protokoll (GEP)** verankert — einem **herstellerneutralen, toolunabhängigen Standard** dafür, *wie KI in der digitalen Forensik eingesetzt werden sollte*. Es umfasst **10 Prinzipien**, die ein konformes System einhalten muss, damit KI-gestützte Ergebnisse **wahrheitsgemäß, auf Quelldatensätze rückführbar und durch eine prüfbare, manipulationssichere Kette abgesichert** bleiben — mit dem menschlichen Ermittler an der Kontrolle:
| # | Prinzip | In einem Satz |
|---|---|---|
| **GEP-1** | Vorrang der Beweise | Schlussfolgerungen stammen ausschließlich aus tatsächlich untersuchten Artefakten. |
| **GEP-2** | Rückverfolgbarkeit | Jede Tatsache ist mit einem bestimmten Quelldatensatz verknüpft. |
| **GEP-3** | Spezifität & Chronologie | Exakte UTC-Zeitstempel, Kennungen und Pfade, zeitlich geordnet. |
| **GEP-4** | Kreuzkorroboration | Auf mehreren Quellen beruhen; Übereinstimmung, Schweigen und Konflikt berichten. |
| **GEP-5** | Prämissen-Verifikation | Menschliche Behauptungen als Hypothesen behandeln, die zu beweisen oder zu widerlegen sind. |
| **GEP-6** | Vollständigkeit | Beweise niemals stillschweigend verwerfen oder kürzen. |
| **GEP-7** | Integrität & Nicht-Abstreitbarkeit | Beweise niemals verändern; aufzeichnen, was gesehen und getan wurde, manipulationssicher. |
| **GEP-8** | Transparenz & Erklärbarkeit | Begründung, verwendete Tools und gesehene Daten sind sichtbar und prüfbar. |
| **GEP-9** | Menschliche Autorität | Der Ermittler entscheidet; dauerhafte Aktionen sind zurechenbar. |
| **GEP-10** | Verteidigungsfähigkeit | Die Ausgabe ist objektiv, präzise und für die unabhängige Prüfung strukturiert. |
Das Eye von Crow-Eye ist die **Referenzimplementierung** des GEP; die im Produkt verankerten Verhaltensweisen, die es aufrechterhalten, sind **Betriebsregeln**. 📜 Lesen Sie den Standard: [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md).
### Bereitstellungsmodi
Eye passt sich Ihrem Bedrohungsmodell über drei Bereitstellungsmodi an:
| Modus | Am besten geeignet für | Backends |
|---|---|---|
| ☁️ **Cloud-KI-Modelle** | Tiefgehende, komplexe Analysen mit maximaler Rechenleistung | OpenAI, Anthropic (Claude), Google Gemini |
| 🔒 **Offline-KI-Server** (netzwerkisoliert) | Untersuchungen ohne Datenabfluss, vor Ort | Ollama, LM Studio |
| ⚡ **CLI-Terminal-Agenten** | Wiederverwendung eines vorhandenen KI-Terminal-Agenten als Modell | Claude Code, Gemini CLI, ChatGPT CLI, llama.cpp, … |
Im **CLI-Agenten-Modus** steuert Crow-Eye einen **bestehenden KI-Terminal-/Kommandozeilen-Agenten als Modell** — statt einer Cloud-API oder eines lokalen Offline-Servers — sodass Sie mit dem Agenten untersuchen können, den Sie bereits verwenden.
**Die Untersuchungsschleife:**
1. **Fall öffnen oder erstellen** — Eye beschränkt sich auf die Artefaktdatenbanken und den Verlauf dieses Falls.
2. **Eine Frage** in natürlicher Sprache stellen oder eine Triage mit einem Klick starten.
3. **Eye führt seine Pipeline aus** — Absicht erkennen → Wissen abrufen → Tools ausführen → synthetisieren.
4. **Sie erhalten eine doppelte Ausgabe** — eine direkte Chat-Antwort *und* einen neuen Block im Living Report.
5. **Gesperrte Aktionen genehmigen** — Exporte und andere kritische Schritte warten auf Ihre Freigabe.
Sie können Modelle zur Laufzeit mit dem Tool `switch_model` wechseln. Das Wechseln ist **auf dasselbe Backend beschränkt**, sodass Beweise niemals stillschweigend an einen anderen Anbieter gesendet werden als den, den Sie gewählt haben.
### Nachverfolgung des LLM-Denkprozesses
Eye ist so aufgebaut, dass Sie sehen — und später beweisen — können, *wie* es zu einer Schlussfolgerung gelangt ist. Während Eye arbeitet, streamt es strukturierte `ThinkingStep`-Updates in Echtzeit an die Benutzeroberfläche; jedes trägt eine `step_id`, einen `type`, ein menschenlesbares `label`, einen `status` (`active` → `done` oder `error`) sowie optionale `tool`/`params`/`detail`.
| Schritttyp | Was Sie sehen |
|---|---|
| `thinking` | Eye plant — erkennt forensische Absicht, erstellt den System-Prompt, entscheidet über nächste Schritte. |
| `rag` | Eye ruft Artefaktwissen aus seiner Wissensbasis ab, um die Antwort zu untermauern. |
| `tool_call` | Eye führt ein forensisches Tool aus (eine SQL-Abfrage, eine Suche, eine Korrelationsabfrage). |
| `synthesis` | Eye validiert und setzt die finale, evidenzgestützte Antwort zusammen. |
Eine typische Abfrage verläuft als `thinking → rag → thinking → tool_call → synthesis`, und jeder Fall behält auf der Festplatte Nachverfolgungsartefakte, die Sie anschließend prüfen können:
| Datei | Was sie aufzeichnet |
|---|---|
| `<case>/EYE_Logs/eye_payload_seal.jsonl` | Die exakten Payloads, die an das Modell gesendet wurden, hash-verkettet. |
| `<case>/EYE_Logs/truncation_audit.log` | Welcher Kontext behalten, zusammengefasst, verworfen oder angeheftet wurde — und warum. |
| `<case>/case_history.json` | Der vollständige Konversationsverlauf mit Token-Zählungen pro Nachricht. |
### Tool-Ausführung
Eye ist **toolgesteuert**: Das Modell berührt Beweise nie direkt. Es gibt Tool-Aufrufe aus, und Eye führt sie gegen die Datenbanken des Falls aus und gibt die Ergebnisse zurück — sodass jede Aktion explizit, protokolliert und reproduzierbar ist. Tools sind in `configs/llm_config.json` definiert und werden über `eye/services/context_manager.py` verteilt.
**Ermittlungstools** — Beweise lesen und analysieren:
| Tool | Zweck |
|---|---|
| `query_database` | Führt ein `SELECT` gegen eine forensische Datenbank aus. |
| `search_artifacts` | Datenbankübergreifende Text-/Regex-Suche. |
| `semantic_search_artifacts` | Semantische Suche über geparste Artefakte. |
| `get_schema` | Tabellenschemata einsehen. |
| `query_timeline` | Ein chronologischer Durchlauf über jede Datenbank im Fall — was geschah und wann. |
| `query_correlation_results` | Fragt die Ausgabe der Korrelations-Engine nach Zeit/Identität ab. |
| `read_imported_evidence` | Liest in den Fall importierte Drittanbieter-Beweise wörtlich (Berichte, E-Mails, Browser-Tool-Ausgaben). |
| `correlate_imported_evidence` | Korreliert in den Fall importierte Drittanbieter-Beweise mit nativen Artefakten. |
| `analyze_large_dataset` | Map-Reduce-Analyse großer Ergebnismengen — **keine stille Kürzung**. |
| `list_case_files` | Listet Dateien im Fallverzeichnis auf. |
| `internet_search` / `fetch_web_content` | Externen Bedrohungs-/technischen Kontext nachschlagen und abrufen. |
| `query_living_off_the_land_intel` | LOLBAS-/LOLDrivers-Abfragen. |
| `query_threat_intel` | VirusTotal-/Threat-Intel-Abfragen. |
| `switch_model` | Modell zur Laufzeit wechseln (nur gleiches Backend). |
**Berichtstools** bauen den Living-Report-Arbeitsbereich auf: `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` und `export_report` (Export erfordert menschliche Genehmigung).
**Autorentools** (reglementiert — siehe [Erstellen von Korrelations-Wings & semantischen Zuordnungen](#building-correlation-wings--semantic-mappings)): `correlation_create_wing`, `correlation_edit_wing`, `correlation_create_semantic_mapping`, `correlation_edit_semantic_mapping`. Tool-Aufrufe werden in das übersetzt, was das aktive Backend erwartet — natives Function-Calling für Cloud-APIs und lokale Server oder ein XML-`<tool_call>`-Wrapper für CLI-Agenten.
### Erstellen von Korrelations-Wings & semantischen Zuordnungen
Eye fragt die [Korrelations-Engine](#-correlation-engine) nicht nur *ab* — es kann helfen, sie **zu erweitern**. Wenn Eye ein wiederkehrendes artefaktübergreifendes Muster erkennt, kann es neue **Wings** (Korrelationsregeln) und **semantische Zuordnungen** (technisch-zu-menschliche Übersetzungen) vorschlagen. Dies ist *reglementiertes Autoren*: Eye schlägt vor, der Analyst prüft das gespeicherte Artefakt, und jede Änderung ist begründet und evidenzgestützt.
**Ein Wing** verbindet Feathers innerhalb eines Zeitfensters und einer Mindestübereinstimmungsschwelle, um eine Behauptung zu belegen:
| Feld | Bedeutung |
|---|---|
| `wing_name` | Menschenlesbarer Name für die Regel. |
| `proves` | Die forensische Behauptung, die es stützt (z. B. *Programmausführung*). |
| `feathers[]` | Zu korrelierende Artefakte — jeweils mit `artifact_type`, optionalem `weight` (0–1) und `tier` (1–4). |
| `time_window_minutes` | Korrelationsfenster (Standard **180** = 3 Stunden). |
| `minimum_matches` | Wie viele Feathers innerhalb des Fensters übereinstimmen müssen (Standard **1**). |
| `reason` *(erforderlich)* | Forensische Begründung für die Regel. |
| `related_evidence` *(erforderlich)* | Eine oder mehrere `database:table:rowid`-Referenzen, die sie motiviert haben. |
**Eine semantische Zuordnung** übersetzt einen rohen technischen Wert in eine menschenlesbare Bedeutung (z. B. *EventID 4624 → „Erfolgreiche Anmeldung"*). Sie kommt in zwei Varianten: ein einfaches `mapping` (einzelner Wert/Regex → semantischer Wert) oder eine mehrbedingige `rule` (Bedingungen, verbunden mit UND/ODER). Beide unterstützen `category`, `severity`, `confidence` und `scope`, und beide erfordern `reason` + `related_evidence`.
**Governance — Schreibseitige Regeln, die das GEP aufrechterhalten:**
- **Begründung erforderlich** (hält **GEP-9** + **GEP-2** aufrecht): Jedes Erstellen *und* Bearbeiten muss eine forensische `reason` enthalten.
- **Beweisverknüpfung** (hält **GEP-2** aufrecht): Jedes Erstellen muss mindestens eine `database:table:rowid`-Referenz anführen.
- **Eye-gestempelt / schreibgeschützt für andere** (hält **GEP-7** + **GEP-9** aufrecht): Eye stempelt seine Autorenschaft + Begründung + Bearbeitungshistorie und darf **nur das bearbeiten, was Eye verfasst hat** — integrierte und von Menschen verfasste Regeln bleiben **schreibgeschützt**.
### Selbstheilender Kontext
Lange Untersuchungen können das Kontextfenster eines Modells sprengen — insbesondere bei kleineren Offline-Modellen. Statt abzustürzen oder Beweise stillschweigend zu verwerfen, **verdichtet Eye seinen eigenen Kontext automatisch** vor jedem Modellaufruf (innerhalb seines geschützten Generierungspfads, vollständig geprüft).
Vor jedem Aufruf misst Eye den vollständigen Payload und reserviert Platz für die Antwort (**10 %** des Fensters, mindestens 512 Token, nie mehr als die Hälfte). Wenn es immer noch nicht passt, heilt es in zwei geordneten Durchgängen und berührt dabei nie **geschützte** Nachrichten (angeheftete, automatisch erkannte Beweise oder ein Tool-Ergebnis):
1. **Zusammenfassungsdurchgang** *(einmal)* — nicht geschützter Verlauf wird zu einer Zusammenfassung verdichtet, protokolliert als `SUMMARIZED`.
2. **Verwerfungsdurchgang** — die **älteste nicht geschützte** Nachricht wird einzeln entfernt, bis es passt, protokolliert als `TRUNCATED`.
Wenn der nicht reduzierbare **Beweiskern** (angeheftet + Tool-Ergebnisse + die aktuelle Frage) *immer noch* überläuft, **weigert sich Eye fortzufahren, statt Beweise zu kürzen** (`REFUSED_OVERFLOW`) und bittet Sie, die Abfrage einzugrenzen oder `analyze_large_dataset` zu verwenden. Was auch immer schließlich an das Modell geht, ist der exakte Payload, der für die Chain of Custody versiegelt wird.
### 🗺️ Narrative Map — Das persistente Fallgedächtnis des Eye
Das Eye ist **zwischen den Runden zustandslos** — daher ist die **Narrative Map** der Ort, an dem „was wir wissen und was wir geschlussfolgert haben" für einen Fall lebt. Sie ist das **persistente, prüfbare, manipulationssichere Arbeitsgedächtnis** des Eye, und ihre Inhalte werden **bei jeder Runde in den Prompt des Eye injiziert** (die Map *ist* buchstäblich das Gedächtnis).
- 🧭 **Verdikt → Narrativ → Beweis.** Eine strenge Hierarchie: ein Fall-**Verdikt**, die **Narrative** darunter (Behauptungen, jeweils mit einem Status — `proven` · `open` · `negative` · `needs` · `absolute`) und die artefaktgestützten **Beweise** darunter.
- 🪟 **Ein eigenes Fenster.** Öffnet sich über die Schaltfläche **„Narrative Map"** im Eye-Chatfenster, sodass Sie Chat, Living Report und Fallgedächtnis nebeneinander betrachten können; es aktualisiert sich live, wenn sich Dinge ändern.
- ↔️ **Bidirektional — ein Gedächtnis, das Sie steuern.** Sowohl die Bearbeitungen des Eye als auch Ihre eigenen Notizen fließen durch einen einzigen **GEP-validierten Commit** und werden in ein **hash-verkettetes Prüfprotokoll** (`narrative_map_audit.jsonl`) versiegelt. Sie können dessen Behauptungen und Beweise **hinzufügen, bearbeiten und entfernen** und so direkt prägen, wie das Eye den Fall versteht und interpretiert.
- 🚫 **Behauptet nie Unbelegtes.** Ein Eye-Narrativ kann während der Untersuchung `open` ohne Beweise bleiben, aber es kann nie ohne Beweise `proven` sein; ein Thema, das Eye geprüft, aber leer vorgefunden hat, wird automatisch in **`negative`** umgewandelt — denn eine dokumentierte Abwesenheit ist selbst ein Befund.
### Wie Compliance funktioniert
Compliance ist kein nachträglich aufgesetztes Feature — sie wird in der Pipeline durchgesetzt.
- **🔗 Chain of Custody (Beweisversiegelung).** Jeder Payload, den Eye an ein LLM sendet, wird versiegelt: der **SHA-256 der exakten Bytes**, die Token-Anzahl, das Modell + sein Kontextlimit sowie die Herkunft jeder Beweiszeile (`database:table:rowid`, plus berechnete Offsets für MFT-Datensätze). Siegel sind **append-only und hash-verkettet** in `<case>/EYE_Logs/eye_payload_seal.jsonl` — ein einziger veränderter oder entfernter Datensatz bricht die Kette, sodass das Protokoll *mathematisch* beweist, welche Bytes das Modell analysiert hat.
- **🚫 Keine stille Kürzung.** Wenn der Kontext knapp wird, [heilt sich Eye selbst](#self-healing-context) und weist Budgets in strenger Reihenfolge neu zu: **Priorität 1 (unbeweglich): Rohe Beweise + System-Prompt** › **Priorität 2 (opferbar): beiläufige Konversation** › **Priorität 3 (flexibel): RAG-Kontext**. Wenn der Beweiskern immer noch nicht passt, weigert sich Eye, statt Beweise stillschweigend zu verwerfen.
- **🧾 Kürzungs-Prüfprotokoll.** Jede Kontextentscheidung wird in `<case>/EYE_Logs/truncation_audit.log` protokolliert (`SUMMARIZED`, `TRUNCATED`, `PRESERVED`, `PINNED`, `UNPINNED`, `BUDGET_REDUCED`), jeweils mit einem Hash. Erkannte Beweise werden oberhalb einer Konfidenzschwelle automatisch angeheftet; Sie können Nachrichten auch manuell anheften.
- **📑 Beweis-zu-Bericht-Mandat.** Eye muss im Chat antworten **und** die unterstützenden Beweise im Bericht persistieren; das Versäumnis, Beweise aufzuzeichnen, wird als Protokollverletzung gekennzeichnet.
- **⚖️ Korrelations-Governance.** Jeder Wing oder jede Zuordnung, die Eye verfasst, muss eine forensische `reason` und `related_evidence` enthalten; außerhalb von Eye verfasste Regeln sind schreibgeschützt und können nicht stillschweigend neu geschrieben werden.
- **🔐 Datenschutz & Netzwerkisolation.** In Offline-Modi tätigt Eye **null ausgehende Aufrufe**; Cloud-API-Schlüssel liegen in betriebssystemeigenen Schlüsselbunden — nie hartcodiert, nie in Protokolle geschrieben.
📖 **Vollständige Eye-Architektur:** [`eye/README.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md).
## 📖 Eye-Describe — Byte-Ebene-Artefakt-Wissensbasis
> 🔗 **[Eye-Describe erkunden → crow-eye.com/eye-describe](https://crow-eye.com/eye-describe)**
Historisch gesehen verfielen Ermittler der Falle, ihren forensischen Tools zu vertrauen, ohne zu verstehen, wie sich die zugrunde liegenden Artefakte verhalten oder wie das Tool sie geparst hat. Das Risiko heute besteht darin, einfach *„das Tool"* durch *„die KI"* zu ersetzen. Eine KI kann einen Datensatz mit perfekter technischer Genauigkeit parsen und ihn dennoch in den falschen Kontext stellen — was die gesamte Bedeutung der Beweise verändert.
**Eye-Describe** existiert, damit weder der Mensch noch das Modell raten müssen. Es ist eine interaktive Referenz auf Byte-Ebene für die rohen Binärstrukturen von Windows-Artefakten und erfüllt zwei Rollen gleichzeitig:
| Rolle | Was sie tut |
|---|---|
| 🧑🏫 **Der Bauplan für den Menschen** | Eine interaktive pädagogische Referenz zur tiefen Byte-Ebene-Anatomie von Windows-Artefakten — was jede Struktur ist, wie sie sich verhält, was sie beweisen kann und was nicht. Kostenlos nutzbar, ausgerichtet auf Studierende, Lehrende und Praktiker, die die Beweise verstehen wollen, statt die Ausgabespalte. |
| ⚖️ **Der Compliance-Anker für die KI** | Die Sichtbarkeit des Eye ist an die dokumentierten Artefaktverhaltensweisen in Eye-Describe gebunden. Das Modell argumentiert gegen eine fest verdrahtete Referenz dafür, was ein Artefakt *tatsächlich bedeutet*, statt Semantik selbst abzuleiten. |
Indem Crow-Eye die KI-Ebene an dokumentiertem Artefaktverhalten verankert, bittet es Sie nicht, einem Modell zu vertrauen — es zwingt das Modell, die rohe Forensik zu respektieren.
> **Ersetzen Sie Tool-Vertrauen nicht durch KI-Vertrauen. Verstehen Sie die Daten.**
## 🧪 Qualität & Validierung
Forensische Tools sind nur nützlich, wenn ihre Ausgabe verteidigt werden kann. Die Korrektheitsarbeit von Crow-Eye ist bewusst sichtbar:- **Regressions-Suiten.** Die Correlation Engine ist durch eine pytest-Suite abgesichert, die Zeitstempel-Parsing, Identitätsnormalisierung, Multi-Zeitstempel-Fan-out, den Writer-Vertrag, Eye-Authoring (Write-Side-GEP-Governance) und das Standard-Felder-Register abdeckt. Die UBA-Engine bringt ihre eigene Suite mit, einschließlich eines End-to-End-Laufs gegen einen echten Fall.
- **Validierungs-Harness.** Ein ganzheitlicher Harness testet alle 7 Standard-Wings gegen **beide** Engines an einem echten Windows-Fall mit ~700K Datensätzen.
- **Veröffentlichte Fehlerhistorie.** Genauigkeitsregressionen und ihre gemessenen Auswirkungen sind offen in [`RELEASE_NOTES.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md) dokumentiert — einschließlich Fällen, in denen eine Korrektur die gesehenen Datensätze um Größenordnungen veränderte. Zu wissen, was falsch war und wann, ist Teil dessen, was ein Ergebnis verteidigbar macht.
- **Überprüfbare Beweisbuchhaltung.** Jeder Datensatz landet entweder in einem Match oder in einem benannten Drop-Bucket, und das Drop-Ledger pro Fenster macht „keine übrig gebliebenen Beweise“ zu etwas, das man aus dem Log prüfen kann, statt es auf Treu und Glauben anzunehmen.
- **Manipulationssichere Logs.** `verify_chain()` geht das Narrative-Map-Audit-Log und die Evidence-Seal-Kette erneut durch, um Modifikationen zu erkennen — einschließlich von menschenlesbaren Feldern.
## 🔬 Forschungsplattform
Crow-Eye ist mehr als Software — es ist eine **offene Forschungsplattform**, die das gesamte Feld der Windows-Forensik beschleunigt. Das Projekt konzentriert sich auf:
- Veröffentlichung detaillierter Dokumentation zu internen Artefaktstrukturen.
- Teilen von Korrelationslogik und Methodiken.
- Ermöglichung von Peer-Review, Transparenz und akademischer Zusammenarbeit.
- Beitrag zum kollektiven Wissen der Forensik-Community.
## 🛠️ Technische Hinweise
- Die Registry-Analyse erfordert vollständige Registry-Hive-Dateien.
- Einige Artefakte erfordern eine spezielle Handhabung aufgrund von Windows-Dateisperrmechanismen (siehe [Benutzerdefinierte Registry / gesperrte Dateien](#-unterstützte-artefakte)).
- LNK- und Jump-List-Parsing wird von Crow-Eyes eigenem dedizierten Parser übernommen.
## 📸 Screenshots
Eine Auswahl von Crow-Eyes Oberflächen- und Analyseansichten.






🎥 **Demo-Video:** [](https://youtu.be/hbvNlBhTfdQ)
## 🚧 Roadmap
Geplante und laufende Arbeiten (siehe [`RELEASE_NOTES.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md) für veröffentlichte Änderungen):
- 📊 **Erweiterte GUI-Ansichten & Berichte** — reichhaltigere Visualisierung und Berichterstattung.
- 🔄 **Verbesserter Suchdialog** — erweiterte Filterung mit Unterstützung natürlicher Sprache.
- 🎯 **Erweitertes semantisches Mapping** — umfassende Feldzuordnung über alle Artefakttypen hinweg.
- 📈 **Erweiterte Korrelationsbewertung** — verfeinerte, erklärbare Konfidenzbewertung.
- ⚡ **Parallele Korrelation** — Prozess-Pool-Dispatch, standardmäßig aktiviert für große Arbeitslasten.
Hast du eine Idee oder möchtest ein Artefakt hinzufügen? [Öffne ein Issue](https://github.com/Ghassan-elsman/Crow-Eye/issues) oder siehe [Mitwirken](#-mitwirken).
## 📚 Dokumentation
- **[TECHNICAL_DOCUMENTATION.md](https://github.com/ghassan-elsman/crow-eye/blob/main/TECHNICAL_DOCUMENTATION.md)** — Architektur, Komponenten und Entwicklungsleitfaden.
- **[RELEASE_NOTES.md](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md)** — Was es in jeder Version Neues gibt (UBA, Narrative Map, Cloud-Eye-Backends, Case-Management-Härtung, …).
- **[Correlation-Engine-Dokumentation](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/CORRELATION_ENGINE_OVERVIEW.md)** — Überblick, Engine, Feathers, Wings, Pipelines.
- **[Timeline-Architektur](https://github.com/ghassan-elsman/crow-eye/blob/main/timeline/ARCHITECTURE.md)** — Interna des Timeline-Moduls.
- **[Eye-Architektur](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md)** und **[GEP-Standard](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md)** — der KI-Assistent und sein steuerndes Protokoll.
## 🤝 Mitwirken
Crow-Eye ist als offene Forschungsplattform aufgebaut, und Beiträge sind willkommen — neue Parser, Korrelationsregeln, Dokumentation und Artefaktforschung.
- **Allgemeine Beiträge:** [CONTRIBUTING.md](https://github.com/ghassan-elsman/crow-eye/blob/main/CONTRIBUTING.md)
- **Correlation Engine (Schwerpunktbereich):** [correlation_engine/CONTRIBUTING.md](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/CONTRIBUTING.md)
- **Kontakt:** [[email protected]](mailto:[email protected]) · oder öffne ein Issue / einen Pull-Request.
## 🌐 Website & Community
- 🌍 **Offizielle Website:** [crow-eye.com](https://crow-eye.com/) — Ressourcen, Dokumentation und Downloads.
- 💬 **Discord:** [Tritt dem Crow-Eye-Discord bei](https://discord.gg/2vag2Udf) — direkte Hilfe, Artefaktforschung und Versionsankündigungen.
## 📄 Lizenz
Crow-Eye wird unter der **[GNU General Public License v3.0](https://github.com/ghassan-elsman/crow-eye/blob/main/LICENSE)** (GPL-3.0) veröffentlicht. Es ist frei zu verwenden, zu studieren, zu teilen und zu modifizieren unter den Bedingungen dieser Lizenz.
## 📝 Crow-Eye zitieren
Wenn du Crow-Eye in akademischen Arbeiten, veröffentlichter Forschung oder einem Fallbericht verwendest, zitiere es bitte:```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
Für Methodik-Zitate ist das Ghassan-Elsman-Protokoll separat in eye/docs/GEP_standard.md dokumentiert.
💖 Unterstützung
Crow-Eye ist kostenlos und Open Source, entwickelt und gepflegt von einer Person. Wenn es deine Arbeit unterstützt, erwäge bitte ein Sponsoring – es finanziert direkt neue Parser und Forschung: SPONSORS.md · GitHub Sponsors.
Danksagungen
Erstellt und gepflegt von Ghassan Elsman.
