
Crow-Eye v0.13.0
Motor forense de Windows de código abierto que adquiere, analiza y correlaciona artefactos (MFT, USN, Registry, etc.) para reconstruir líneas de tiempo con análisis asistido por IA y sellado de evidencia de grado judicial.
Crow-Eye — Motor de Análisis Forense para Windows
Una máquina del tiempo forense para Windows.
Crow-Eye no solo detecta — reconstruye lo que realmente sucedió en la línea de tiempo, desde la adquisición hasta un veredicto trazable hasta sus registros de origen.
Tabla de contenidos
- Descripción general
- ✨ Características destacadas
- 👥 Para quién es Crow-Eye
- 🧭 Subsistemas de un vistazo
- 🏗️ Arquitectura
- 📥 Descarga e instalación
- 🚀 Inicio rápido
- 📂 Artefactos compatibles
- 🔧 Modos de análisis
- 🧠 Análisis de comportamiento de usuario (UBA)
- 🧩 Motor de correlación
- 👁️ Eye — El asistente de IA forense
- 📖 Eye-Describe — Base de conocimiento de artefactos a nivel de bytes
- 🧪 Calidad y validación
- 🔬 Plataforma de investigación
- 🛠️ Notas técnicas
- 📸 Capturas de pantalla
- 🚧 Hoja de ruta
- 📚 Documentación
- 🤝 Contribuciones
- 🌐 Sitio web y comunidad
- 📄 Licencia
- 📝 Cómo citar Crow-Eye
- 💖 Soporte
- Créditos
Descripción general
Crow-Eye es un motor de análisis forense de Windows de código abierto (GPL-3.0) que unifica adquisición, análisis, verificación, inteligencia e IA. La mayoría de las herramientas de seguridad preguntan "¿esto es malo?" y descartan todo lo que parece legítimo. Crow-Eye plantea una pregunta diferente: "¿qué sucedió?" Correlaciona toda la actividad —sospechosa o no— y reconstruye la secuencia real de eventos en un sistema, de modo que la verdad de una investigación se reconstruye a partir de la evidencia en lugar de adivinarse a partir de alertas.
Ese diseño centrado en la reconstrucción es exactamente lo que se necesita para cazar amenazas APT y de estados-nación: los adversarios sofisticados viven dentro de herramientas legítimas (powershell.exe, PsExec, certutil) y en la secuencia de acciones —invisible para las herramientas que descartan todo lo que parece normal—. Como Crow-Eye nunca descarta nada y razona sobre artefactos de ejecución (que sobreviven a la manipulación de registros y a las técnicas anti-forenses), el ataque no puede ocultarse. El mismo motor sigue siendo accesible para el trabajo diario de DFIR y para no expertos que simplemente quieren saber qué sucedió en un ordenador.
- 🕰️ Reconstruye, no solo detectes — reconstruye la línea de tiempo de lo que realmente ocurrió.
- 🖥️ Multiplataforma — análisis completo en vivo y sin conexión en Windows; análisis sin conexión y análisis de imágenes forenses en Linux (los analizadores en vivo son solo para Windows).
- 🔒 Privado por diseño — 0 ms de datos enviados fuera del dispositivo; el asistente de IA Eye puede ejecutarse completamente aislado de la red.
- 🧾 Grado judicial — la evidencia se sella criptográficamente y cada paso es auditable.
- 📦 Versión actual: 0.13.0 · Motor de correlación: 1.7.0 · Licencia: GPL-3.0.
✨ Características destacadas
- Reconstrucción sobre detección. Correlaciona cada artefacto en una única historia navegable por entidad en lugar de un montón de alertas.
- Integrado de principio a fin — adquisición → correlación → línea de tiempo → análisis de comportamiento → IA → memoria de caso sellada: un flujo de trabajo completo que ninguna herramienta establecida cubre.
- Profundo en artefactos, no superficial en registros. Prefetch, Amcache, ShimCache, SRUM, MFT, USN, LNK/JumpLists y más sobreviven a la limpieza de registros y a los trucos de "living-off-the-land" que ciegan a las herramientas basadas solo en registros.
- El asistente de IA Eye — investigación forense en lenguaje natural con una cadena de custodia auditable y a prueba de manipulaciones, ejecutable en la nube, en un servidor privado o completamente sin conexión.
- Análisis de comportamiento de usuario (UBA) — convierte artefactos brutos en una historia de actividad en lenguaje sencillo, legible para RR. HH. y examinadores.
- Gratuito y de código abierto (GPL-3.0) — auditable por cualquiera, con un esfuerzo activo de investigación y documentación.
👥 Para quién es Crow-Eye
Crow-Eye se utiliza en flujos de trabajo muy diferentes. Cada uno entra al motor por una puerta distinta:
| Usted es | Su entrada típica | Por dónde empezar |
|---|---|---|
| IR corporativo / MSSP / MDR | Recopilaciones dirigidas de Velociraptor, KAPE o recopilación nativa de EDR | Importador sin conexión → Motor de correlación → UBA |
| Aplicación de la ley / laboratorios forenses | Imágenes forenses completas (E01, VHDX, VMDK, Raw) con requisitos de cadena de custodia | Análisis de imágenes → Motor de correlación → Mapa narrativo |
| Seguridad interna / investigaciones de amenazas internas y RR. HH. | Sistemas en vivo o artefactos recopilados | Análisis en vivo → historia de actividad de UBA |
| Estudiantes, educadores e investigadores | Imágenes de muestra y datos de laboratorio | Eye-Describe → Inicio rápido |
Cualquier recopilador funciona. Crow-Eye no requiere su propia herramienta de adquisición. Apunte el Importador sin conexión a una carpeta de artefactos brutos producidos por Velociraptor, KAPE, un paquete de recopilación de EDR o cualquier otro recopilador — indexa los artefactos compatibles y ejecuta los analizadores sin conexión sobre ellos. Por separado, la salida de Plaso, Autopsy, Volatility o cualquier otra herramienta puede importarse como CSV, JSON o SQLite mediante Importar evidencia y correlacionarse junto con los artefactos nativos.
🧭 Subsistemas de un vistazo
Crow-Eye está construido como un bucle integrado — cada etapa alimenta a la siguiente, desde el disco bruto hasta un veredicto defendible.
| Subsistema | Qué hace | Etapa |
|---|---|---|
| Crow-Claw | Adquisición de alta velocidad de sistemas en vivo e imágenes de equipos apagados. | Adquisición |
| Importador sin conexión | ESCANEAR → RECOPILAR → ANALIZAR artefactos de cualquier fuente en la base de datos del caso. | Adquisición |
| Motor de correlación | Reconstrucción de doble motor (Identidad + Ventana de tiempo) mediante Feathers · Wings · Engines · Pipelines. | Análisis |
| Línea de tiempo interactiva | Línea de tiempo con hilos de identidad y trazable judicialmente (vistas de Mapa de calor / Semana / Día), leída directamente de las bases de datos del caso. | Verificación |
| Análisis de comportamiento de usuario (UBA) | Historia de actividad en lenguaje sencillo y basada en reglas: "qué hizo este usuario". | Inteligencia |
| Eye — Asistente de IA | Investigación en lenguaje natural + la Mapa narrativo sellado como memoria del caso. | IA |
| Análisis forense de almacenamiento | Análisis de discos físicos y particiones (detección de ocultos/no montados, advertencias de arranque). | Análisis |
🏗️ Arquitectura
Crow-Eye es un flujo de trabajo integrado, no una bolsa de analizadores. La evidencia fluye en una sola dirección, y cada etapa mantiene su vínculo con el registro de origen.```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
*Fuente de evidencia → Ingesta → Bases de datos del caso → Análisis → Capa de IA → Informe*
**Cómo leerlo:**
| Etapa | Qué importa |
|---|---|
| ① → ② | **Cuatro puertas independientes hacia un caso.** Nunca necesitas el recolector propio de Crow-Eye — una carpeta de Velociraptor, KAPE o un paquete de EDR pasa por el Importador Offline, y CSV/JSON/SQLite de terceros pasa por Importar Evidencia. |
| ② → ③ | Todo converge en un solo lugar: **las bases de datos del caso**. Los artefactos analizados se guardan en `Target_Artifacts/`; la evidencia importada de terceros se guarda en `Imported_Evidence/` y se descubre automáticamente. |
| ③ → ④ | **Las tres rutas de análisis son independientes entre sí.** La Línea de Tiempo y el UBA leen las bases de datos del caso directamente — ninguna requiere una ejecución de correlación. El Motor de Correlación es una capa *adicional*, no un requisito previo. |
| ③ → ④ | **El Enlace Dinámico se sitúa junto a la Línea de Tiempo y el UBA** — un cuarto lector independiente de las bases de datos del caso (no tiene nada que ver con la visualización de la Línea de Tiempo). Reúne mapeos de identidad (SID → nombre de usuario, MAC → red, hash/GUID → aplicación) en una `Crow_Intelligence.db` por caso, y luego superpone ese contexto **en línea en las tablas de datos de artefactos** mediante `ATTACH` + `LEFT JOIN` no destructivos. Cambia cómo *se leen* los registros, nunca la evidencia. |
| ④ → ⑤ | El Eye consulta las bases de datos del caso directamente y puede extraer resultados de correlación **bajo demanda**. Nunca toca la evidencia en sí — emite llamadas a herramientas que Crow-Eye ejecuta y registra. |
| ⑤ → Informe | El **Informe Vivo lo construye únicamente el Eye**, a través de sus herramientas `report_*`. La Línea de Tiempo y el UBA son superficies de análisis — no escriben en el informe. Los hallazgos a nivel de caso aún pueden exportarse por separado mediante [Buscar y Exportar](#-buscar--exportar). |
| ⑤ ↔ | El **Mapa Narrativo es bidireccional**: el Eye escribe en él, tú escribes en él, y su contenido se inyecta en el prompt del Eye en cada turno. Es la memoria, y puedes comandarlo. |
| ⑤ ⟳ | La **página de Cumplimiento audita al Eye.** Cada llamada a herramienta que hace el Eye está anclada a la cadena de hash **EvidenceSeal**; la página muestra el estado **GEP** en vivo por regla (10 principios) verificado desde esa cadena y `EYE_Logs/`, exportable como `audit_trail.json`. |
**Etapas independientes.** La Línea de Tiempo y el UBA leen las bases de datos de artefactos del caso **directamente** — ninguna requiere una ejecución de correlación, y la Línea de Tiempo no depende del Motor de Correlación (aplica su propio agrupamiento temporal ligero). La correlación es una capa de análisis adicional cuyos resultados el Eye puede consultar.
**Solo lectura por diseño.** El análisis escribe en la base de datos del caso; cada etapa posterior (UBA, la Línea de Tiempo, los visores de correlación, el Eye) abre esas bases de datos **en modo solo lectura**. La evidencia original nunca se modifica — el [Enlace Dinámico](#-modos-de-análisis) lee las bases de datos del caso para construir una `Crow_Intelligence.db` por caso con mapeos de identidad y enriquece las tablas de datos de artefactos en línea mediante consultas `ATTACH` + `LEFT JOIN` no destructivas en lugar de reescribir filas.
**Gobernado por diseño.** Cada acción que toma el Eye está anclada a la cadena de hash **EvidenceSeal** a prueba de manipulación, y la página de **Cumplimiento** verifica continuamente al Eye contra el [Protocolo Ghassan Elsman (GEP)](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md) — estado en vivo por regla, exportable a `EYE_Logs/audit_trail.json`.
## 📥 Descargar e Instalar
> **Recomendado:** obtén la compilación de Windows empaquetada (**instalador MSI / EXE**) desde el sitio web oficial — sin configuración de Python, funciona directamente.
### ▶️ [Descargar Crow-Eye para Windows → crow-eye.com/download](https://crow-eye.com/download)
La **compilación MSI/EXE instalada es la forma recomendada de ejecutar Crow-Eye**, y es nuestra **máxima prioridad para actualizaciones**:
- 🛡️ **Correcciones más rápidas.** Cuando se encuentra un problema o se reporta un error, publicamos un EXE actualizado **lo antes posible** — la compilación empaquetada es donde llegan primero las correcciones.
- 🔄 **Actualización automática integrada.** En la aplicación instalada, abre **Configuración → Actualizaciones** para **buscar actualizaciones e instalarlas automáticamente** — sin reinstalación manual.
- 📦 **Cero configuración.** No se requiere instalación de Python, Node ni dependencias.
> ¿Prefieres ejecutar desde el código fuente? Consulta **[Inicio Rápido](#-inicio-rápido)** más abajo. La compilación desde el código fuente está pensada para colaboradores y **no incluye el actualizador automático** — usa el MSI/EXE para actualizaciones automáticas.
## 🚀 Inicio Rápido
### Opción A — Compilación instalada (recomendada)
Descarga el **MSI/EXE** desde [crow-eye.com/download](https://crow-eye.com/download), instálalo e inicia **Crow-Eye** como Administrador. Crea un caso y comienza a analizar.
### Opción B — Ejecutar desde el código fuente (desarrolladores)
> Para colaboradores y usuarios avanzados. Esta ruta **no incluye el actualizador automático** — usa el MSI/EXE para actualizaciones automáticas.
**Requisitos** (se instalan automáticamente en el primer inicio):
- Python 3.12.4
- **Node.js y npm** — necesarios para la **Visualización de la Línea de Tiempo**
- Paquetes clave: PyQt5, python-registry, pywin32, pandas, streamlit, altair, olefile, windowsprefetch, sqlite3, colorama, setuptools
**Hardware recomendado**
| | Mínimo | Recomendado para casos grandes |
|---|---|---|
| **RAM** | 8 GB | 16 GB+ (conjuntos MFT/USN de millones de registros) |
| **Disco** | 5 GB libres | Espacio libre ≥ 2× el tamaño de la evidencia que se analiza |
| **CPU** | 4 núcleos | 8+ núcleos |
| **SO** | Windows 10/11 (completo) · Linux (análisis offline y de imágenes) | — |
> La correlación se transmite en memoria constante para conjuntos de datos muy grandes, por lo que la RAM rara vez es el límite estricto — el rendimiento del disco y el espacio libre suelen serlo.
**Inicio** (ejecuta como Administrador para que Crow-Eye pueda acceder a los artefactos del sistema):```bash
python "Crow Eye.py"
La interfaz principal se abre, creas un caso y todo el resultado del análisis se organiza bajo ese directorio de caso para su revisión e informes posteriores.
🖥️ Nota multiplataforma: en Linux, los analizadores en vivo se deshabilitan automáticamente y Crow-Eye funciona en modo sin conexión / imagen forense. La adquisición completa en vivo es solo para Windows.
📂 Artefactos compatibles
Crow-Eye analiza un amplio conjunto de artefactos de ejecución, sistema de archivos y actividad de usuario de Windows, tanto de un sistema en vivo como de fuentes sin conexión (carpetas recopiladas o imágenes forenses).
| Artefacto | En vivo | Sin conexión | Datos extraídos |
|---|---|---|---|
| Prefetch | ✅ | ✅ | Historial de ejecución, número de ejecuciones, marcas de tiempo por ejecución |
| Registro (AutoRun, UserAssist, BAM/DAM, ShimCache, redes, zona horaria y más de 80 claves en total) | ✅ | ✅ | Persistencia, uso de programas, actividad en segundo plano, configuración de red, estado de aprobación de inicio |
| Registro: claves y valores eliminados | ✅ | ✅ | Registros recuperados del espacio libre del hive, marcados como tales (record_state) |
| Registro: nombres de clase y seguridad de claves | ✅ | ✅ | Nombres de clase nk (donde Control\Lsa guarda la clave de arranque), propietario/grupo/DACL de descriptores de seguridad compartidos |
| Registro: registros de transacciones | ✅ | ✅ | .LOG1/.LOG2 reproducidos en una copia de trabajo, de modo que un hive sucio se lee en el estado en que estaba la máquina |
| Amcache (29 tablas) | ✅ | ✅ | Ejecución de aplicaciones, hora de instalación, SHA-1, rutas de archivo, controladores, dispositivos PnP, censo de dispositivos |
| ShimCache | ✅ | ✅ | Aplicaciones ejecutadas, última modificación, tamaño y el blob final decodificado (tipo de máquina PE, indicador de binario del sistema operativo) |
| MUICache | ✅ | ✅ | Presencia de programas y nombres para mostrar |
| Jump Lists y LNK | ✅ | ✅ | Acceso a archivos, rutas, marcas de tiempo, metadatos |
| ShellBags | ✅ | ✅ | Historial de acceso a carpetas y navegación |
| MRU y RecentDocs / Rutas escritas | ✅ | ✅ | Historial de Abrir/Guardar, archivos recientes, ubicaciones escritas |
| Historial de navegador / sitios web | ✅ | ✅ | Sitios visitados y horas de acceso |
| Registros de eventos (Sistema / Seguridad / Aplicación) | ✅ | ✅ | Inicios de sesión, creación de procesos (4688), cambios de cuentas y servicios, borrado de registros |
| MFT | ✅ | ✅ | Metadatos de archivos, archivos eliminados, marcas de tiempo (NTFS, Win 7/10/11) |
| Diario USN | ✅ | ✅ | Crear/modificar/eliminar/renombrar archivos con historial completo de nombres |
| Papelera de reciclaje | ✅ | ✅ | Nombres de archivos eliminados, rutas, hora de eliminación, tamaño |
| SRUM | ✅ | ✅ | Uso de recursos/red/energía por aplicación, datos transferidos por aplicación |
| Dispositivos USB y conectados | ✅ | ✅ | Conexión y presencia de dispositivos |
| Lista de redes y conexiones | ✅ | ✅ | Redes conocidas y actividad de conexión |
| AutoInicio / Servicios y controladores | ✅ | ✅ | Persistencia, instalaciones de servicios y cambios de estado |
| Discos y particiones (Forensia de almacenamiento) | ✅ | ✅ | Árbol de discos físicos, diseño de particiones, detección de ocultas/desmontadas |
Jump Lists y LNK son analizados por el analizador LNK / Jump List específico de Crow-Eye — no un módulo de terceros.
Registro personalizado / archivos bloqueados: Windows bloquea los hives de registro en vivo (
NTUSER.DAT,SOFTWARE,SYSTEM) durante su funcionamiento. Para un análisis personalizado de un sistema en vivo, arranca desde medios externos (WinPE/Live CD), usa herramientas de adquisición forense o analiza una imagen de disco.
Detalles por artefacto
- Jump Lists y LNK — analizados automáticamente desde ubicaciones estándar del sistema por el analizador dedicado de Crow-Eye (acceso a archivos, rutas de destino, marcas de tiempo y metadatos).
- Registro — analiza automáticamente los hives del sistema. Para un análisis de registro personalizado, copia los archivos de hive a
CrowEye/Artifacts Collectors/Target Artifacts(o a la carpetaregistry/de tu caso):NTUSER.DATdeC:\Users\<NombreDeUsuario>\NTUSER.DATSOFTWAREdeC:\Windows\System32\config\SOFTWARESYSTEMdeC:\Windows\System32\config\SYSTEM- Windows los bloquea durante su funcionamiento — para un sistema en vivo, arranca desde medios externos (WinPE/Live CD), usa herramientas de adquisición forense o analiza una imagen de disco.
- Prefetch — analiza
C:\Windows\Prefetch, extrayendo el historial de ejecución y metadatos forenses (incluidas marcas de tiempo por ejecución). - Registros de eventos — análisis automático de los registros de Sistema/Seguridad/Aplicación en una base de datos para un análisis exhaustivo.
- Profundidad de registro (0.13.0) — el analizador lee el archivo del hive además del registro en vivo, por lo que alcanza lo que
winregniega incluso a un administrador (cada subclavePropertiesde dispositivo y, con ella, los tiempos de conexión USB), recorre el asignador del hive para recuperar claves y valores eliminados, y lee nombres de clase y descriptores de seguridad de claves. Diecinueve claves que contenían datos reales y que nada leía ahora se analizan, incluido StartupApproved del Explorador, que indica si cada entrada de inicio automático tiene permiso real para ejecutarse. - ShellBags — revela el historial de acceso a carpetas y los patrones de navegación del usuario.
- Papelera de reciclaje — analiza
$RECYCLE.BINpara recuperar nombres de archivos eliminados, rutas originales, horas de eliminación y tamaños (sistemas en vivo e imágenes de disco). - MFT — analiza la Tabla de Archivos Maestra para obtener metadatos de archivos, atributos, marcas de tiempo e información de archivos eliminados (NTFS, Windows 7/10/11).
- Diario USN — rastrea eventos de crear/modificar/eliminar/renombrar archivos con marcas de tiempo e historial completo de nombres, para la reconstrucción de líneas de tiempo.
- SRUM — visualiza el uso de recursos de aplicaciones (barras de duración para tiempo en primer/segundo plano) y la actividad de red por aplicación.
- Analizador de forensia de almacenamiento — vista de árbol completa de cada disco físico y sus particiones; tipos de partición codificados por colores (EFI, Linux, Recuperación, Ocultas/swap, …); advertencias para USB de arranque, raíces Linux ocultas e Intel Rapid Start; respaldo de escaneo mágico de sectores sin procesar.
🔧 Modos de análisis
🦅 Adquisición Crow-Claw
Crow-Claw es el motor de adquisición especializado de Crow-Eye para recopilar y preservar artefactos de sistemas en vivo o imágenes montadas.
- Recopilación selectiva — elige categorías específicas de artefactos (Registro, Registros de eventos, Sistema de archivos) o recopila todo.
- Escaneo profundo — recorre directorios y subdirectorios para encontrar rastros forenses.
- Preservación segura — los artefactos se colocan en un directorio de caso estructurado que mantiene la integridad forense.
🔍 Análisis sin conexión (Importador sin conexión)
Analiza artefactos recopilados de cualquier fuente sin conexión en vivo con el objetivo — tres operaciones claras:
- SCAN (descubrimiento) — recorre la fuente e indexa cada artefacto compatible por patrón de nombre de archivo y extensión (rápido, solo lectura; no se lee el contenido de los archivos ni se realiza verificación de bytes mágicos en esta etapa). No se mueve nada.
- COLLECT (adquisición) — copia físicamente los archivos identificados a la carpeta
live_acquisitiondel caso, organizados por tipo. - PARSE (granular) — revisa los elementos identificados por tipo (AMCACHE, EVTX, PREFETCH, …) y analiza los archivos seleccionados (o todos) en la base de datos forense.
| 🔍 SCAN | 📦 COLLECT | |
|---|---|---|
| Acción | Descubrimiento: identifica artefactos en su ubicación original | Adquisición: copia y preserva artefactos en la carpeta del caso |
| Impacto de E/S | Solo lectura; no se mueven archivos | Lectura + escritura; duplica físicamente los artefactos |
| Organización | Actualiza los metadatos de .artifact_scan_index.json | Organiza archivos en carpetas específicas por tipo |
| Caso de uso | Triage rápido para ver si la fuente tiene datos relevantes | Preservación forense completa para análisis a largo plazo |
El análisis lo gestionan los analizadores sin conexión dedicados de Crow-Eye — la misma lógica de artefactos que en modo en vivo, operando sobre archivos recopilados: Prefetch, Registro, MFT, USN (más el correlacionador MFT/USN), AmCache, ShimCache, SRUM, Registros de eventos, LNK/JumpLists y Papelera de reciclaje.
📎 Importar evidencia (datos de terceros)
Más allá de los artefactos sin procesar, Crow-Eye puede tomar salida forense de terceros directamente en un caso — Plaso, Autopsy, Volatility o cualquier exportación personalizada — y hacerla utilizable por el Eye y la Línea de tiempo sin requerir primero una ejecución de correlación.
| Entrada | Qué sucede |
|---|---|
.db / .sqlite | Validado y copiado tal cual a la carpeta Imported_Evidence/ del caso. El esquema no se modifica. |
.csv / .json | Auto-convertido a una base de datos SQLite con forma de feather mediante el FeatherWriter canónico, con feather_metadata que declara la marca de tiempo principal de la tabla — auto-detectada a partir de los nombres de columna — exactamente como un feather recopilado de forma nativa. |
Debido a que el gestor de base de datos del caso auto-descubre cualquier .db bajo el árbol del caso, la evidencia importada queda inmediatamente disponible para:
- El Eye — consultable en lenguaje natural junto con artefactos nativos (el manifiesto de esquema se actualiza al importar).
- La Línea de tiempo interactiva — servida como tipo de artefacto
imported, con filtrado funcional por ventana de tiempo y límites temporales. - El Motor de correlación — utilizable como Feather para correlación entre herramientas contra artefactos nativos.
El importador usa solo la biblioteca estándar (sqlite3 / csv / json) y se ejecuta en un trabajador en segundo plano, por lo que las importaciones grandes no bloquean la interfaz.
⚡ Análisis en vivo
Analiza artefactos directamente del sistema Windows en ejecución, extrayéndolos automáticamente de sus ubicaciones estándar para análisis forense en tiempo real.
🗂️ Gestión de casos
Cada investigación es un caso: un directorio autocontenido que organiza bases de datos de artefactos y resultados de análisis. Crow-Eye rastrea casos recientes (con favoritos, etiquetas y estado), valida un caso al abrirlo, escribe la configuración de forma atómica (a prueba de fallos) y admite importación/exportación de configuración de casos y plantillas con mapeos semánticos listos para usar.
🕰️ Visualización de línea de tiempo interactiva
Correlaciona eventos entre artefactos en una cuadrícula temporal unificada, con vistas de Mapa de calor, Semana y Día — una historia con hilo de identidad y trazable ante un tribunal, no una super-línea de tiempo plana.
La Línea de tiempo lee las bases de datos de artefactos analizados del caso directamente y es independiente del Motor de correlación — no necesitas construir feathers, crear wings ni ejecutar un pipeline para usarla. Aplica su propio agrupamiento temporal ligero (correlación por marca de tiempo exacta y ventana de tiempo, agrupación por aplicación, ruta o usuario) para relacionar eventos en la cuadrícula. La evidencia traída mediante Importar evidencia también aparece en la línea de tiempo como tipo de artefacto imported, con filtrado funcional por ventana de tiempo y límites temporales.
🔎 Búsqueda y exportación
Búsqueda de texto completo en la base de datos del caso, además de exportación a CSV (hojas de cálculo), JSON (integración con otras herramientas) y informes HTML detallados (expedientes completos que consolidan cada artefacto vinculado a un término de búsqueda).
🔗 Vinculación dinámica
Traduce identificadores técnicos sin procesar — SID, direcciones MAC, hashes — a contexto legible por humanos sobre la marcha. La Vinculación dinámica enriquece la vista mediante consultas SQL ATTACH no destructivas, por lo que la evidencia original nunca se modifica, y puede ingerir fuentes de IOC masivas para marcar indicadores conocidos como maliciosos en línea.
🧠 Analítica de comportamiento de usuario (UBA)
Convierte artefactos sin procesar en una historia de actividad en lenguaje sencillo — un relato legible para gerentes/RR. HH. de lo que un usuario y sus aplicaciones realmente hicieron, con cada afirmación trazable a la evidencia fuente exacta.
La Analítica de comportamiento de usuario (UBA) lee las bases de datos de artefactos analizados en la carpeta Target_Artifacts/ de tu caso (estrictamente solo lectura) y las reproduce mediante un conjunto de reglas declarativas para producir una Historia de actividad clara y cronológica. Ábrela desde el botón de la barra de herramientas "User Behavior" o con Ctrl+Shift+B (debe cargarse un caso).
- 🧩 40 detecciones de comportamiento declarativas (
uba/config/behavior_rules.json) — ajustables sin código — cada una clasificada por severidad: rutinario · notable · sospechoso · crítico. - 🕵️ Detecta el comportamiento que importa: inicio/cierre de sesión / desbloqueo, inicio · ejecución · instalación de programas, apertura / eliminación / copia inferida de archivos, conexión de dispositivos USB, acceso a recursos compartidos de red, persistencia y autoinicio, uso de credenciales explícitas (
runas), cambios de cuentas y grupos, cambios de servicios, manipulación del reloj del sistema (sospechoso) y borrado de registros de eventos (crítico). - 🗺️ Tres vistas — un feed de Historia de actividad, un Mapa de actividad de calor (día × hora) y un informe de honestidad "Lo que podemos ver" que etiqueta cada detección como Funcionando / Limitado / Sin datos / Por diseño para este caso.
- 🔗 Cada actividad está respaldada por evidencia. Haz clic en cualquier elemento para abrir el registro de respaldo exacto (
database : table : rowid) — nada se afirma sin una fuente. - 👤 Atribución honesta. Los actores se resuelven como Usuario / Aplicación / Sistema (o se dejan vacíos) — UBA nunca adivina quién hizo qué.
Cobertura de detección
Las 40 detecciones abarcan cuatro clases de severidad y toda la amplitud del conjunto de artefactos analizados:
| Categoría | Las detecciones incluyen |
|---|---|
| Identidad y acceso | Inicio / cierre de sesión, desbloqueo de estación de trabajo, inicios de sesión de escritorio remoto, inicios de sesión de administrador, uso de credenciales explícitas (runas), creación de cuentas y cambios, adiciones a grupos de administradores |
| Ejecución | Programas abiertos (UserAssist), programas ejecutados (Prefetch, expandido a eventos por ejecución), creación de procesos (4688), presencia de programas (ShimCache / AmCache / MUICache), instalaciones de aplicaciones, fallos de aplicaciones (de registros 1001 del Registro de eventos de aplicación) |
| Actividad de archivos | Apertura / creación / eliminación / copia / renombrado de archivos — los renombrados muestran el historial completo de nombres (antiguo → … → actual) reconstruido del Diario USN, con resolución de eliminación suave ($R/$I) |
| Navegación | Exploración de carpetas (ShellBags), documentos recientes, ubicaciones escritas, visitas a sitios web |
| Dispositivos y red | Conexión de dispositivos USB, presencia de dispositivos, recursos compartidos de red, conexiones de red, datos transferidos por aplicación (SRUM) |
| Persistencia y sistema | Persistencia de autoinicio (claves Run + servicios, elevada cuando el objetivo se ejecuta desde una ruta escribible por el usuario), instalaciones de servicios y controladores, cambios de estado de servicios, inicio/apagado del sistema, cambios de reloj, borrado de registros de eventos |
Filtros: búsqueda de texto libre · usuario/actor (incluido "Sin atribuir" y un conmutador de sesión iniciada) · clase de comportamiento (usuario / aplicación / sistema) · severidad · aplicación (selección múltiple con búsqueda entre más de 200 programas) · rango de fecha y hora con ajustes rápidos (todo el tiempo / primer día / último día / última hora de actividad).
Fuentes de datos: Registros de eventos de Seguridad, Sistema y Aplicación · Diario USN · MFT · UserAssist · BAM · Prefetch · ShimCache · AmCache · MUICache · ShellBags · LNK / JumpLists · Papelera de reciclaje · SRUM (aplicación, red, conectividad) · hives de registro.
Garantías forenses
- Solo lectura. Las bases de datos fuente se abren en modo solo lectura; el análisis nunca toca la evidencia.
- Procedencia completa. Cada evento lleva
database → table → rowidy abre las filas fuente reales bajo demanda. - La atribución nunca adivina. Un evento se atribuye a un Usuario, una Aplicación, el Sistema — o se deja vacío. Las sesiones de inicio de sesión interactivas se usan solo como etiquetas de contexto ("durante la sesión de
<usuario>"), nunca para atribuir una acción. - Redacción honesta. La redacción distingue la interacción deliberada (UserAssist, SRUM en primer plano) de los artefactos que una aplicación también puede generar (ShellBags, LNK, JumpLists), con advertencias explícitas mostradas en la tarjeta.
- La ausencia se declara, no se implica. El informe Lo que podemos ver etiqueta cada detección para este caso específico, de modo que los datos faltantes nunca se lean silenciosamente como "no pasó nada".
UBA es correlación y clasificación de comportamiento basada en reglas, no puntuación de anomalías estadística/ML — cada hallazgo se asigna a una regla explícita y auditable. Consulta
RELEASE_NOTES.mdpara el catálogo completo de detecciones.
🧩 Motor de correlación
Motor de correlación v1.7.0 — el núcleo de reconstrucción. Consulta RELEASE_NOTES.md para el historial de versiones.
El Motor de correlación de Crow-Eye es un sistema de correlación forense de grado de producción. Ingiere artefactos de Windows de cualquier fuente, los normaliza y saca a la superficie las relaciones temporales y de identidad que convierten registros aislados en una narrativa coherente de lo que sucedió en un sistema, cuándo y quién estuvo involucrado. Funciona de serie con reglas de correlación integradas (Wings) para las preguntas de investigación más comunes, permite a los analistas crear reglas personalizadas sin tocar código y difiere el significado a reglas autorables y al investigador — nunca a una puntuación de caja negra.
🎥 Guía de usuario
Importación de datos universal: El Motor de correlación puede tomar la salida de cualquier herramienta forense en formato CSV, JSON o SQLite y convertirla en una base de datos Feather. Esto significa que puedes correlacionar datos de herramientas de terceros (Plaso, Autopsy, Volatility, etc.) con los artefactos nativos de Crow-Eye, creando un análisis de correlación unificado en todas tus fuentes de datos forenses.
🎯 Precisión y completitud de evidencia
Una pasada de precisión enfocada del ciclo 0.11.0, validada de extremo a extremo contra un caso real de Windows de ~700K registros y superpuesta sobre trabajo de fiabilidad anterior. Cada corrección a continuación está asegurada por la suite de regresión pytest y verificada por un arnés de validación holístico; ejercitó los siete wings predeterminados que se enviaron en ese momento — hoy se envían once. Los recuentos de coincidencias citados a continuación se midieron bajo las reglas de esa versión: 0.13.0 cambió lo que cuenta como coincidencia (una coincidencia ahora debe abarcar más de un feather) y lo que significa una puntuación de confianza, así que trátalos como un registro de esa pasada más que como cifras actuales.
El motor de identidad captura toda la evidencia
- Corregido: el motor de identidad iteraba solo la PRIMERA fila de cada feather cuando había un filtro de tiempo activo (una comparación de fecha y hora con zona horaria frente a ingenua lanzaba
TypeErrory abortaba el bucle por fila). Los registros vistos saltaron de 3,558 → 745,615 en el caso de validación. - Corregido: los registros de log colapsaban cada evento a su PROVEEDOR de eventos como identidad (los 33,855 registros de SecurityLogs compartían una identidad). El mapeo por artefacto ahora prioriza entidades reales por fila (
User,ComputerName,NewProcessName,TargetUserName) antes que los metadatos de canal/proveedor. - Corregido: el mapeo de campos consciente del artefacto nunca se activaba porque los analizadores no estampan una columna
artifacten cada fila. El motor ahora recurre afeather_metadata.artifact_type, por lo que SecurityLogs / SystemLogs / ApplicationLogs usan su prioridad de identidad específica del artefacto. - Corregido: las cadenas de marcador de posición se convertían en identidades falsas (
'N/A','Unknown','-', GUID nulos agrupaban registros no relacionados). El validador ahora rechaza más de 30 variantes de marcadores de posición. - Resultado neto en una ventana de rango completo, medido entonces: el wing de Prueba de ejecución sacó a la superficie 2,856 coincidencias entre feathers (Alta) en el motor de identidad y 643 coincidencias entre feathers en el motor de tiempo, con 24–118 coincidencias entre feathers por wing en los otros seis wings de esa versión.
Ya no "todo es Bajo — algo está mal"
- Corregido: las coincidencias de un solo feather se etiquetaban como
Alta. Las coincidencias confeather_count == 1ahora recibenconfidence_category="Low - single feather", por lo que la vista Alta se centra en la correlación real entre feathers. - Corregido: una clave compuesta consciente de la ruta dividía la misma identidad entre feathers (cada feather almacena rutas de forma diferente, por lo que
chrometenía más de 10 claves y nunca se correlacionaba). La clave ahora es solo de nombre — la correlación entre feathers vuelve a funcionar.
Detección de suplantación mediante clasificación de rutas — después de formarse una coincidencia, el motor clasifica la ruta de cada registro como CONFIABLE (Program Files, System32, WinSxS, las formas /device/harddiskvolumeN/... de BAM/SRUM, …) o SOSPECHOSA (Temp, Downloads, Public, AppData\Local\Temp, Papelera de reciclaje, raíces extraíbles, recursos compartidos de red). Una coincidencia que abarca ambas clasificaciones eleva impersonation_alert (tasa ≈0.05%, cada una un candidato real).Contabilidad honesta de evidencia — un registro de descartes por ventana con depósitos con nombre (no_identity_field, normalize_failure, below_threshold_skipped, …) más un resumen por pipeline (registros vistos, emitidos alto/bajo, sin identidad, depósitos de descarte, uniones timeless-feather). Cada registro termina en una coincidencia o en un depósito de descarte con nombre — "no queda evidencia sin contabilizar" es verificable desde el registro. low_confidence_review_mode está ACTIVADO por defecto, por lo que los grupos por debajo del umbral se convierten en coincidencias de Baja confianza en lugar de desaparecer silenciosamente.
Enriquecimiento de identidad timeless-feather — los feathers sin marcas de tiempo por fila (AutoStartPrograms, MUICache, SystemServices, TypedPaths) ya no reciben una marca de tiempo de generación falsa en cada fila; en su lugar, después de que se forman las coincidencias temporales, el motor une los registros coincidentes de cada feather timeless por identidad como evidencia complementaria.
Registro de identidad consolidado — config/standard_fields/identities.json es la única fuente de verdad para cada columna que los motores + Eye deben consultar: 98 categorías, 1.146 sinónimos de columna (app/proceso, archivo, hash, usuario, host/dispositivo, red, registro, servicio/tarea, evento, correo electrónico, navegador, nube, internals de Windows, certificado, contenedor, objetos del SO). Añadir un nuevo sinónimo de columna es una edición de JSON, no un cambio de código.
Correcciones de falsos positivos de mapeo semántico — la compuerta multi-indicador ahora se aplica de verdad (data-exfiltration-pattern requiere ≥2 indicadores); las reglas AND imposibles (4625 AND 4624) reescritas como OR; las reglas de wiper/herramientas remotas usan regex real en lugar de activarse con cada entrada de Prefetch; las reglas de actividad de referencia rebajadas de high/critical a info/low (la puntuación ponderada del wing escala las amenazas reales).
✅ Estado de Producción
El Correlation Engine está listo para producción y se usa activamente en investigaciones (Correlation Engine v1.7.0):
- ✅ Time-Window Scanning Engine — listo para producción, recomendado para análisis basado en tiempo (O(N log N))
- ✅ Identity-Based Engine — listo para producción, recomendado para seguimiento de identidad (O(N log N))
- ✅ Feather Builder / FeatherWriter — importa CSV/JSON/SQLite desde cualquier herramienta; procesamiento por lotes transaccional + metadatos de esquema
- ✅ Sistema de Wings y Orquestación de Pipeline — crea/gestiona reglas de correlación y automatiza flujos de trabajo
- ✅ Agrupación de Identidad — unificada entre motor, visores y la fase semántica
- ✅ Registro de Campos Estándar — fuente de verdad centralizada de sinónimos de campos
- ✅ Fan-Out Multi-marca de tiempo — cada marca de tiempo de lista JSON correlacionada
- 🔄 Correlación Paralela — base en su lugar; perfilado + despacho de pool de procesos a continuación
- 🔄 Mapeo Semántico y Puntuación de Correlación — mejoras activas
Características Clave
- 🔄 Arquitectura de Doble Motor: Elige entre estrategias de correlación Time-Window Scanning (O(N log N)) e Identity-Based (O(N log N)).
- 📊 Soporte Multi-arteFacto: Correlaciona Prefetch, ShimCache, AmCache, registros de eventos, archivos LNK, Jumplists, MFT, USN, SRUM, Registro, RecycleBin y más.
- 🔌 Importación Universal: Importa salida CSV/JSON/SQLite de cualquier herramienta forense y conviértela a bases de datos Feather.
- 🎯 Agrupación de Identidad Inteligente: Variantes como
Chrome.exe/chrome.dll/Chrome.EXEse colapsan en un solo depósito; las versiones y los calificadores de arquitectura se mantienen distintos. - 🕒 Marcas de Tiempo Tolerantes: FILETIME, ISO 8601, época Unix (s/ms/μs),
YYYYMMDD, barras estadounidenses y cadenas anotadas se analizan correctamente al primer intento. - 📈 Fan-Out Multi-marca de tiempo: Las listas de marcas de tiempo JSON (Prefetch
run_times) se expanden para que cada ejecución tenga su propio evento de correlación. - 🧰 Una Única Fuente de Verdad: Sinónimos de campos en
config/standard_fields/*.json; metadatos por tabla encorrelation_engine/config/feather_schemas.json— amplía editando JSON, no código. - ⚡ Streaming + Seguro para Hilos:
query_time_range_itercon memoria O(1); cachés de feather protegidas por bloqueo; listo para correlación paralela. - 🔍 Reglas Flexibles: Define reglas de correlación personalizadas (Wings) con parámetros configurables.
- 📋 Diagnósticos Honestos: Línea de estadísticas por ventana (records_in / no_identity / parse_cache_hits / below_threshold / matches_emitted) para que siempre sepas si se descartó evidencia.
- 🧪 Calidad Garantizada: Suite de regresión pytest que cubre análisis de marcas de tiempo, normalización de identidad, fan-out, el contrato del escritor, autoría de Eye (gobernanza GEP del lado de escritura) y el registro de campos estándar.
Arquitectura del Sistema
El Correlation Engine consta de cuatro componentes principales:
1. 🗄️ Feathers (Normalización de Datos)
Propósito: Transformar artefactos forenses sin procesar en un formato estandarizado y consultable.
- Bases de datos SQLite que contienen datos de artefactos forenses normalizados — un feather por tipo de artefacto (Prefetch, ShimCache, registros de eventos, …) con un esquema estandarizado y metadatos para consultas eficientes.
- Un formato universal que acepta datos de cualquier herramienta forense.``` Any Tool Output → Feather Builder → Normalized Feather Database (CSV/JSON/SQLite) (SQLite with standard schema)
Examples:
- Plaso CSV → Feather Builder → timeline.db
- Autopsy JSON → Feather Builder → autopsy_artifacts.db
- Volatility CSV → Feather Builder → memory_artifacts.db
- Custom Output → Feather Builder → custom.db
**Formatos de importación compatibles:** CSV (cualquier archivo con encabezados), JSON (plano o anidado) y SQLite (importación directa). Mapeo automático de columnas, detección de tipos de datos, normalización de marcas de tiempo a ISO, validación e índices optimizados.```
prefetch.db (Feather)
├── feather_metadata (artifact type, source, record count)
├── prefetch_data (executable_name, path, last_executed, hash)
└── Indexes (timestamp, name, path)
2. 🎯 Wings (Reglas de correlación)
Propósito: Definir qué artefactos correlacionar y cómo.
- Reglas JSON/YAML que especifican una ventana de tiempo, coincidencias mínimas, prioridad de anclaje y las plumas (con pesos) a correlacionar — reutilizables entre casos. Cada Wing es autorable y sellado (registra quién lo creó, por qué y la evidencia que lo motivó).```json { "wing_id": "execution-proof", "wing_name": "Execution Proof", "correlation_rules": { "time_window_minutes": 5, "minimum_matches": 2, "anchor_priority": ["Prefetch", "SRUM", "AmCache"] }, "feathers": [ {"feather_id": "prefetch", "weight": 0.4}, {"feather_id": "shimcache", "weight": 0.3}, {"feather_id": "amcache", "weight": 0.3} ] }
#### 3. ⚙️ Motores (Estrategias de Correlación)
**Propósito**: Ejecutar la lógica de correlación para encontrar relaciones entre artefactos. Los vínculos estructurales vienen **primero**; una puntuación ponderada por niveles se superpone como *interpretación/clasificación*, no como base para una coincidencia.
**Motor de Escaneo por Ventana de Tiempo** — ideal para análisis basado en tiempo y correlación temporal sistemática. Escanea a través del tiempo en intervalos fijos, recopila registros de todas las plumas por ventana, aplica coincidencia de campos semánticos + puntuación ponderada y evita duplicados mediante el seguimiento de MatchSet. **O(N log N)** (consultas de marcas de tiempo indexadas); procesamiento por lotes (~2,567 ventanas/segundo).
**Motor de Correlación Basado en Identidad** — ideal para conjuntos de datos grandes (>1,000 registros) y seguimiento de identidades. Extrae y normaliza identidades, agrupa registros por identidad, construye anclas temporales dentro de cada clúster, clasifica la evidencia como primaria/secundaria/de apoyo y transmite conjuntos muy grandes (>5,000 anclas) con memoria constante. **O(N log N)**; más de 40 patrones de campos de identidad por tipo.
**Selección del motor:** use el motor de Ventana de Tiempo para análisis basado en tiempo y el motor Basado en Identidad para seguimiento de identidades — ambos están listos para producción y optimizados para conjuntos de datos grandes con consultas indexadas.
#### 4. 🔄 Pipelines (Orquestación de Flujos de Trabajo)
**Propósito**: Automatizar flujos de trabajo de análisis completos desde la creación de plumas hasta la generación de resultados. Un pipeline lee su configuración (tipo de motor, alas, plumas), instancia el motor correcto mediante el EngineSelector, ejecuta cada ala, agrega coincidencias, guarda resultados (BD + JSON) y los muestra en la GUI con filtrado y visualización.```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"
}
}
Cómo Funciona Todo en Conjunto```
- Data Preparation Raw Forensic Data → Feather Builder → Feather Databases
- Configuration Wing Configs + Feather References → Pipeline Config
- Execution Pipeline Executor → Engine Selector → Correlation Engine
- Correlation Engine loads Feathers + applies Wing rules → Correlation Results
- Visualization Results Database → Results Viewer GUI
### Ejemplo de caso de uso: Encontrar prueba de ejecución
**Escenario**: demostrar que `malware.exe` fue ejecutado en un sistema.```json
{
"wing_id": "malware-execution",
"correlation_rules": { "time_window_minutes": 5, "minimum_matches": 2 },
"feathers": ["prefetch", "shimcache", "amcache"]
}
Aquí tienes la traducción al español del fragmento 18 de 25:
## Instalación
### Requisitos previos
- Python 3.8 o superior
- pip (gestor de paquetes de Python)
- Acceso a Internet para descargar dependencias
### Instalación desde PyPI
La forma más sencilla de instalar la herramienta es mediante pip:
```bash
pip install kitploit-tool
Instalación desde el código fuente
Si prefieres instalar desde el repositorio de GitHub, sigue estos pasos:
git clone https://github.com/example/kitploit-tool.git
cd kitploit-tool
pip install -r requirements.txt
python setup.py install
Verificación de la instalación
Para comprobar que la herramienta se ha instalado correctamente, ejecuta:
kitploit-tool --version
Deberías ver un resultado similar a:
Kitploit Tool v1.2.3
Uso básico
Escaneo de un objetivo único
Para escanear un único objetivo, utiliza el siguiente comando:
kitploit-tool -t https://example.com
Escaneo de múltiples objetivos
Puedes especificar varios objetivos separándolos con comas:
kitploit-tool -t https://example.com,https://example.org
O bien, puedes proporcionar un archivo que contenga una lista de objetivos, uno por línea:
kitploit-tool -l objetivos.txt
Opciones de salida
La herramienta admite varios formatos de salida para los resultados:
kitploit-tool -t https://example.com -o resultados.json
kitploit-tool -t https://example.com -o resultados.html
kitploit-tool -t https://example.com -o resultados.txt
Opciones de verbosidad
Para obtener información más detallada durante el escaneo, utiliza la opción -v:
kitploit-tool -t https://example.com -v
Para un nivel de depuración aún mayor, utiliza -vv:
kitploit-tool -t https://example.com -vv
Configuración
Archivo de configuración
La herramienta busca un archivo de configuración en ~/.kitploit/config.yaml o en la ruta especificada con la opción --config. Un ejemplo de configuración sería:
# Configuración de Kitploit Tool
timeout: 30
user_agent: "Kitploit-Tool/1.0"
proxy:
http: "http://proxy.example.com:8080"
https: "https://proxy.example.com:8080"
Variables de entorno
También puedes configurar la herramienta mediante variables de entorno:
export KITPLOIT_TIMEOUT=30
export KITPLOIT_USER_AGENT="Kitploit-Tool/1.0"
export KITPLOIT_PROXY="http://proxy.example.com:8080"
Las variables de entorno tienen prioridad sobre el archivo de configuración.
from correlation_engine.pipeline import PipelineExecutor
executor = PipelineExecutor(pipeline_config)
results = executor.execute()
```
I need the actual content of chunk 20 to translate it. Please provide the Markdown text you want translated.```
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
```
### Puntos de Referencia de Rendimiento
| Registros | Motor de Ventana Temporal | Motor Basado en Identidad |
|---|---|---|
| 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) |
### Primeros Pasos con el Motor de Correlación
1. **Inicio**: `python -m correlation_engine.main`
2. **Crear Feathers**: importa tus artefactos forenses (Prefetch, ShimCache, …).
3. **Crear Wings**: define reglas de correlación para tu investigación.
4. **Crear un Pipeline**: configura qué wings y feathers usar.
5. **Ejecutar**: ejecuta el pipeline y visualiza los resultados correlacionados.
6. **Analizar**: usa el Visor de Resultados para explorar relaciones temporales.
### 📚 Documentación del Motor de Correlación
- **[Descripción General del Motor de Correlación](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/CORRELATION_ENGINE_OVERVIEW.md)** — descripción general del sistema con diagramas de arquitectura
- **[Documentación del Motor](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md)** — arquitectura de doble motor, selección de motor, optimización de rendimiento
- **[Arquitectura](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/ARCHITECTURE.md)** — integración de componentes y flujo de datos
- **[Documentación de Feather](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/feather/FEATHER_DOCUMENTATION.md)** — el sistema de normalización de datos
- **[Documentación de Wings](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/wings/WINGS_DOCUMENTATION.md)** — reglas de correlación
- **[Documentación del Pipeline](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/pipeline/PIPELINE_DOCUMENTATION.md)** — orquestación del flujo de trabajo
- **[Añadir un Artefacto](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/ADDING_AN_ARTIFACT.md)** — el flujo de trabajo para conectar un nuevo analizador al motor
- **[Registro de Campos Estándar](https://github.com/ghassan-elsman/crow-eye/blob/main/config/standard_fields)** — sinónimos canónicos de nombres de columnas cargados por ambos motores y el Eye
- **[Guía de Contribución](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/CONTRIBUTING.md)** — cómo contribuir al motor
- Enlaces rápidos: [Selección de Motor](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#engine-selection-guide) · [Solución de Problemas](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#troubleshooting) · [Optimización de Rendimiento](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/engine/ENGINE_DOCUMENTATION.md#performance-and-optimization)
## 👁️ Eye — El Asistente de IA Forense
> **Un asistente potente, no un sustituto.** Eye automatiza y *verifica* las hipótesis de un investigador — nunca toma la decisión por ti.
**Eye** es el asistente de IA forense integrado de Crow-Eye: un investigador forense experto respaldado por una base de conocimiento real de artefactos de Windows. Te ofrece una interfaz de lenguaje natural para consultar, correlacionar y documentar todo en un caso — Prefetch, MFT, Registro, Registros de Eventos, AmCache, ShimCache, SRUM y más — manteniendo un registro auditable y a prueba de manipulaciones de exactamente lo que hizo. Eye puede ejecutarse completamente en tu propio hardware (incluido **totalmente aislado de la red**), en línea con la postura de privacidad de Crow-Eye de **"0 ms de datos enviados fuera del dispositivo"**. Arquitectura completa: [`eye/README.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md).
| Capacidad | Qué significa para ti |
|---|---|
| **Investigación en lenguaje natural** | Pregunta en inglés sencillo; Eye escribe el SQL y busca por ti. |
| **Integración multi-fuente** | Acceso unificado a todos los artefactos analizados del caso. |
| **Análisis mejorado con RAG** | Eye recupera conocimiento forense específico de artefactos antes de responder. |
| **Espacio de Trabajo de Informe Vivo** | Hallazgos, tablas, gráficos y líneas de tiempo se documentan en tiempo real. |
| **Humano en el circuito** | Las acciones críticas (p. ej., exportación de informes) requieren tu aprobación explícita. |
| **Cadena de custodia** | Prueba criptográfica de exactamente qué analizó el modelo. |
Eye convierte preguntas conversacionales ("muéstrame qué se ejecutó desde `C:\Temp` después de las 22:00") en trabajo forense real: planifica un enfoque, recupera conocimiento relevante de artefactos, ejecuta SQL y búsquedas entre artefactos contra las bases de datos de tu caso, y sintetiza una respuesta validada. Cada respuesta se produce **en dos lugares a la vez** — una respuesta de chat para ti y un bloque estructurado escrito en un **Espacio de Trabajo de Informe Vivo** para que el expediente se construya solo a medida que avanza la investigación.
### El Protocolo Ghassan Elsman (GEP)
Todo lo que hace Eye está anclado al **Protocolo Ghassan Elsman (GEP)** — un estándar **neutral respecto al proveedor e independiente de la herramienta** sobre *cómo debe usarse cualquier IA en la informática forense*. Son **10 principios** que un sistema conforme debe mantener para que los hallazgos asistidos por IA sigan siendo **veraces, trazables hasta los registros fuente y respaldados por una cadena auditable y a prueba de manipulaciones**, con el investigador humano al control:
| # | Principio | En una línea |
|---|---|---|
| **GEP-1** | Primacía de la Evidencia | Las conclusiones provienen solo de artefactos realmente examinados. |
| **GEP-2** | Trazabilidad | Cada hecho se vincula a un registro fuente específico. |
| **GEP-3** | Especificidad y Cronología | Marcas de tiempo UTC exactas, identificadores y rutas, ordenados en el tiempo. |
| **GEP-4** | Corroboración Cruzada | Basarse en múltiples fuentes; informar acuerdos, silencios y conflictos. |
| **GEP-5** | Verificación de Premisas | Tratar las afirmaciones humanas como hipótesis a probar o refutar. |
| **GEP-6** | Integridad | Nunca descartar o truncar evidencia en silencio. |
| **GEP-7** | Integridad y No Repudio | Nunca modificar evidencia; registrar lo visto y hecho, de forma a prueba de manipulaciones. |
| **GEP-8** | Transparencia y Explicabilidad | El razonamiento, las herramientas usadas y los datos vistos son visibles y auditables. |
| **GEP-9** | Autoridad Humana | El investigador decide; las acciones duraderas son atribuibles. |
| **GEP-10** | Defendibilidad | La salida es objetiva, precisa y estructurada para revisión independiente. |
El Eye de Crow-Eye es la **implementación de referencia** del GEP; los comportamientos dentro del producto que lo sostienen son **Reglas Operativas**. 📜 Lee el estándar: [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md).
### Modos de Despliegue
Eye se adapta a tu modelo de amenazas mediante tres modos de despliegue:
| Modo | Ideal para | Backends |
|---|---|---|
| ☁️ **Modelos de IA en la Nube** | Análisis profundo y complejo con máximo cómputo | OpenAI, Anthropic (Claude), Google Gemini |
| 🔒 **Servidor de IA Offline** (aislado de la red) | Investigaciones con exposición cero, on-premise | Ollama, LM Studio |
| ⚡ **Agentes de Terminal CLI** | Reutilizar un agente de IA de terminal que ya tengas como modelo | Claude Code, Gemini CLI, ChatGPT CLI, llama.cpp, … |
En **modo agente CLI**, Crow-Eye impulsa un **agente de IA de terminal/línea de comandos existente como modelo** — en lugar de una API en la nube o un servidor local offline — para que puedas investigar con el agente que ya usas.
**El bucle de investigación:**
1. **Abrir o crear un caso** — Eye se limita a las bases de datos de artefactos y el historial de ese caso.
2. **Hacer una pregunta** en lenguaje natural, o lanzar un triaje integral con un clic.
3. **Eye ejecuta su pipeline** — detectar intención → recuperar conocimiento → ejecutar herramientas → sintetizar.
4. **Obtienes una salida dual** — una respuesta directa de chat *y* un nuevo bloque en el Informe Vivo.
5. **Aprobar acciones restringidas** — las exportaciones y otros pasos críticos esperan tu visto bueno.
Puedes cambiar de modelo en tiempo de ejecución con la herramienta `switch_model`. El cambio está **restringido al mismo backend**, de modo que la evidencia nunca se envía silenciosamente a un proveedor distinto del que elegiste.
### Rastreo del Proceso de Pensamiento del LLM
Eye está construido para que puedas ver — y luego probar — *cómo* llegó a una conclusión. Mientras Eye trabaja, transmite actualizaciones estructuradas de `ThinkingStep` a la interfaz en tiempo real; cada una lleva un `step_id`, `type`, `label` legible por humanos, `status` (`active` → `done`, o `error`) y `tool`/`params`/`detail` opcionales.
| Tipo de paso | Lo que estás viendo |
|---|---|
| `thinking` | Planificación de Eye — detectar intención forense, construir el prompt del sistema, decidir los siguientes movimientos. |
| `rag` | Eye recuperando conocimiento de artefactos de su base de conocimiento para fundamentar la respuesta. |
| `tool_call` | Eye ejecutando una herramienta forense (una consulta SQL, una búsqueda, una consulta de correlación). |
| `synthesis` | Eye validando y ensamblando la respuesta final respaldada por evidencia. |
Una consulta típica se desarrolla como `thinking → rag → thinking → tool_call → synthesis`, y cada caso conserva artefactos de rastreo en disco que puedes inspeccionar después:
| Archivo | Qué registra |
|---|---|
| `<case>/EYE_Logs/eye_payload_seal.jsonl` | Las cargas útiles exactas enviadas al modelo, encadenadas por hash. |
| `<case>/EYE_Logs/truncation_audit.log` | Qué contexto se mantuvo, resumió, descartó o fijó — y por qué. |
| `<case>/case_history.json` | El historial completo de la conversación, con recuentos de tokens por mensaje. |
### Ejecución de Herramientas
Eye está **impulsado por herramientas**: el modelo nunca toca la evidencia directamente. Emite llamadas a herramientas, y Eye las ejecuta contra las bases de datos del caso y devuelve los resultados — de modo que cada acción es explícita, registrada y reproducible. Las herramientas se definen en `configs/llm_config.json` y se despachan a través de `eye/services/context_manager.py`.
**Herramientas de investigación** — leer y analizar evidencia:
| Herramienta | Propósito |
|---|---|
| `query_database` | Ejecutar un `SELECT` contra una base de datos forense. |
| `search_artifacts` | Búsqueda de texto / regex entre bases de datos. |
| `semantic_search_artifacts` | Búsqueda semántica entre artefactos analizados. |
| `get_schema` | Inspeccionar esquemas de tablas. |
| `query_timeline` | Un barrido cronológico único a través de cada base de datos del caso — qué ocurrió y cuándo. |
| `query_correlation_results` | Consultar la salida del Motor de Correlación por tiempo / identidad. |
| `read_imported_evidence` | Leer evidencia de terceros importada al caso de forma textual (informes, correos, salida de herramientas de navegador). |
| `correlate_imported_evidence` | Correlacionar evidencia de terceros importada al caso contra artefactos nativos. |
| `analyze_large_dataset` | Análisis map-reduce de grandes conjuntos de resultados — **sin truncamiento silencioso**. |
| `list_case_files` | Listar archivos en el directorio del caso. |
| `internet_search` / `fetch_web_content` | Buscar y obtener contexto externo de amenazas / técnico. |
| `query_living_off_the_land_intel` | Consultas LOLBAS / LOLDrivers. |
| `query_threat_intel` | Consultas VirusTotal / inteligencia de amenazas. |
| `switch_model` | Cambiar de modelo en tiempo de ejecución (solo mismo backend). |
**Herramientas de informes** construyen el Espacio de Trabajo de Informe Vivo: `report_append_section`, `report_add_data_table`, `report_add_chart`, `report_add_timeline`, `report_add_heatmap`, `report_add_chain_of_custody`, `report_add_chat_transcript`, `report_add_image`, `report_edit_section`, `report_delete_section`, `chat_add_table` y `export_report` (la exportación requiere aprobación humana).
**Herramientas de autoría** (gobernadas — ver [Construcción de Wings de Correlación y Mapeos Semánticos](#building-correlation-wings--semantic-mappings)): `correlation_create_wing`, `correlation_edit_wing`, `correlation_create_semantic_mapping`, `correlation_edit_semantic_mapping`. Las llamadas a herramientas se traducen a lo que el backend activo espera — llamadas a funciones nativas para APIs en la nube y servidores locales, o un envoltorio XML `<tool_call>` para agentes CLI.
### Construcción de Wings de Correlación y Mapeos Semánticos
Eye no solo *consulta* el [Motor de Correlación](#-correlation-engine) — puede ayudar a **extenderlo**. Cuando Eye detecta un patrón recurrente entre artefactos, puede proponer nuevos **Wings** (reglas de correlación) y **Mapeos Semánticos** (traducciones técnico-a-humano). Esto es *autoría gobernada*: Eye propone, el analista revisa el artefacto guardado, y cada cambio está justificado y respaldado por evidencia.
**Un Wing** une feathers dentro de una ventana temporal y un umbral mínimo de coincidencias para probar una afirmación:
| Campo | Significado |
|---|---|
| `wing_name` | Nombre legible por humanos para la regla. |
| `proves` | La afirmación forense que respalda (p. ej., *ejecución de programas*). |
| `feathers[]` | Artefactos a correlacionar — cada uno con `artifact_type`, `weight` opcional (0–1) y `tier` (1–4). |
| `time_window_minutes` | Ventana de correlación (por defecto **180** = 3 horas). |
| `minimum_matches` | Cuántos feathers deben coincidir dentro de la ventana (por defecto **1**). |
| `reason` *(obligatorio)* | Justificación forense de la regla. |
| `related_evidence` *(obligatorio)* | Una o más referencias `database:table:rowid` que la motivaron. |
**Un Mapeo Semántico** traduce un valor técnico bruto a un significado legible por humanos (p. ej., *EventID 4624 → "Inicio de Sesión Exitoso"*). Viene en dos variantes: un `mapping` simple (valor único / regex → valor semántico) o una `rule` de múltiples condiciones (condiciones unidas por AND/OR). Ambos admiten `category`, `severity`, `confidence` y `scope`, y ambos requieren `reason` + `related_evidence`.
**Gobernanza — reglas del lado de escritura que sostienen el GEP:**
- **Razón Obligatoria** (sostiene **GEP-9** + **GEP-2**): cada creación *y* edición debe incluir una `reason` forense.
- **Vínculo de Evidencia** (sostiene **GEP-2**): cada creación debe citar al menos una referencia `database:table:rowid`.
- **Sellado por Eye / solo lectura para otros** (sostiene **GEP-7** + **GEP-9**): Eye sella su autoría + razón + historial de ediciones y puede editar **solo lo que Eye creó** — las reglas integradas y las creadas por humanos permanecen en **solo lectura**.
### Contexto Autocurativo
Las investigaciones largas pueden superar la ventana de contexto de un modelo — especialmente los modelos offline más pequeños. En lugar de fallar o descartar evidencia en silencio, Eye **compacta automáticamente su propio contexto** antes de cada llamada al modelo (dentro de su ruta de generación protegida, totalmente auditada).
Antes de cada llamada, Eye mide la carga útil completa y reserva espacio para la respuesta (**10%** de la ventana, mínimo 512 tokens, nunca más de la mitad). Si aún no cabe, se cura en dos pasadas ordenadas, sin tocar nunca los mensajes **protegidos** (fijados, evidencia auto-detectada o un resultado de herramienta):
1. **Pasada de resumen** *(una vez)* — el historial no protegido se colapsa en un único resumen, registrado como `SUMMARIZED`.
2. **Pasada de descarte** — el mensaje **no protegido más antiguo** se elimina de uno en uno hasta que quepa, registrado como `TRUNCATED`.
Si el **núcleo de evidencia** irreducible (fijado + resultados de herramientas + la pregunta actual) *aún* se desborda, Eye **se niega a continuar en lugar de truncar evidencia** (`REFUSED_OVERFLOW`) y te pide que acotes la consulta o uses `analyze_large_dataset`. Lo que finalmente llega al modelo es la carga útil exacta que se sella para la cadena de custodia.
### 🗺️ Mapa Narrativo — La Memoria Persistente del Caso del Eye
El Eye es **sin estado entre turnos** — por eso el **Mapa Narrativo** es donde "lo que sabemos y lo que hemos concluido" vive para un caso. Es la **memoria de trabajo persistente, auditable y a prueba de manipulaciones** del Eye, y su contenido se **inyecta en el prompt del Eye en cada turno** (el mapa literalmente *es* la memoria).
- 🧭 **Veredicto → Narrativa → Evidencia.** Una jerarquía estricta: un **Veredicto** de caso, las **Narrativas** debajo de él (afirmaciones, cada una con un estado — `proven` · `open` · `negative` · `needs` · `absolute`), y la **Evidencia** respaldada por artefactos debajo de esas.
- 🪟 **Su propia ventana.** Se abre desde el botón **"Narrative Map"** en la ventana de chat del Eye, para que puedas ver el chat, el informe vivo y la memoria del caso lado a lado; se actualiza en vivo a medida que las cosas cambian.
- ↔️ **Bidireccional — una memoria que controlas.** Tanto las ediciones del Eye como tus propias notas fluyen a través de un único **commit validado por GEP** y se sellan en un **registro de auditoría encadenado por hash** (`narrative_map_audit.jsonl`). Puedes **añadir, editar y eliminar** sus afirmaciones y evidencia, dando forma directamente a cómo el Eye entiende e interpreta el caso.
- 🚫 **Nunca afirma lo no respaldado.** Una narrativa del Eye puede permanecer `open` sin evidencia mientras investiga, pero nunca puede estar `proven` sin evidencia; un tema que el Eye verificó pero encontró vacío se auto-convierte en **`negative`** — porque una ausencia documentada es en sí misma un hallazgo.
### Cómo Funciona el Cumplimiento
El cumplimiento no es una función añadida encima — se aplica en el pipeline.
- **🔗 Cadena de custodia (Sello de Evidencia).** Cada carga útil que Eye envía a un LLM se sella: el **SHA-256 de los bytes exactos**, el recuento de tokens, el modelo + su límite de contexto, y la procedencia de cada fila de evidencia (`database:table:rowid`, más desplazamientos calculados para registros MFT). Los sellos son **de solo añadido y encadenados por hash** en `<case>/EYE_Logs/eye_payload_seal.jsonl` — un único registro alterado o eliminado rompe la cadena, de modo que el registro prueba *matemáticamente* qué bytes analizó el modelo.
- **🚫 Sin truncamiento silencioso.** Cuando el contexto se ajusta, Eye se [autocura](#self-healing-context) y reasigna presupuestos en un orden estricto: **Prioridad 1 (Inamovible): Evidencia Bruta + el Prompt del Sistema** › **Prioridad 2 (Sacrificable): Conversación Casual** › **Prioridad 3 (Flexible): Contexto RAG**. Si el núcleo de evidencia aún no cabe, Eye se niega en lugar de descartar evidencia en silencio.
- **🧾 Rastro de auditoría de truncamiento.** Cada decisión de contexto se registra en `<case>/EYE_Logs/truncation_audit.log` (`SUMMARIZED`, `TRUNCATED`, `PRESERVED`, `PINNED`, `UNPINNED`, `BUDGET_REDUCED`), cada una con un hash. La evidencia detectada se fija automáticamente por encima de un umbral de confianza; también puedes fijar mensajes manualmente.
- **📑 Mandato de evidencia-a-informe.** Eye debe responder en el chat **y** persistir la evidencia de respaldo en el informe; no registrar evidencia se marca como una violación del protocolo.
- **⚖️ Gobernanza de correlación.** Cualquier Wing o mapeo que Eye cree debe incluir una `reason` forense y `related_evidence`; las reglas creadas fuera de Eye son de solo lectura y no pueden reescribirse en silencio.
- **🔐 Privacidad y aislamiento de red.** En modos offline, Eye realiza **cero llamadas salientes**; las claves de API en la nube viven en llaveros nativos del sistema operativo — nunca codificadas, nunca escritas en registros.
📖 **Arquitectura completa del Eye:** [`eye/README.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md).
## 📖 Eye-Describe — Base de Conocimiento de Artefactos a Nivel de Byte
> 🔗 **[Explora Eye-Describe → crow-eye.com/eye-describe](https://crow-eye.com/eye-describe)**
Históricamente, los investigadores caían en la trampa de confiar en sus herramientas forenses sin entender cómo se comportan los artefactos subyacentes o cómo los analizó la herramienta. El riesgo hoy es simplemente reemplazar *"la herramienta"* por *"la IA"*. Una IA puede analizar un registro con precisión técnica perfecta y aun así colocarlo en el contexto equivocado — cambiando el significado completo de la evidencia.
**Eye-Describe** existe para que ni el humano ni el modelo tengan que adivinar. Es una referencia interactiva a nivel de byte de las estructuras binarias brutas de los artefactos de Windows, y cumple dos roles a la vez:
| Rol | Qué hace |
|---|---|
| 🧑🏫 **El plano para el humano** | Una referencia educativa interactiva de la anatomía profunda a nivel de byte de los artefactos de Windows — qué es cada estructura, cómo se comporta, qué puede y qué no puede probar. Gratuita, dirigida a estudiantes, educadores y profesionales que quieren entender la evidencia en lugar de la columna de salida. |
| ⚖️ **El ancla de cumplimiento para la IA** | La visibilidad del Eye está vinculada a los comportamientos documentados de artefactos en Eye-Describe. El modelo razona contra una referencia codificada de lo que un artefacto *realmente significa*, en lugar de inferir semántica por su cuenta. |
Al anclar la capa de IA al comportamiento documentado de los artefactos, Crow-Eye no te pide que confíes en un modelo — está restringiendo al modelo para que respete la forensia bruta.
> **No reemplaces la confianza en la herramienta por confianza en la IA. Entiende los datos.**
## 🧪 Calidad y Validación
Las herramientas forenses solo son útiles si su salida puede defenderse. El trabajo de corrección de Crow-Eye es deliberadamente visible:- **Suites de regresión.** El Correlation Engine está cubierto por una suite de pytest que abarca el análisis de marcas de tiempo, la normalización de identidades, la expansión multi-marca de tiempo, el contrato del escritor, la autoría de Eyes (gobernanza GEP del lado de escritura) y el registro de campos estándar. El motor UBA incluye su propia suite, incluida una ejecución de extremo a extremo contra un caso real.
- **Banco de validación.** Un banco holístico ejercita las 7 alas predeterminadas contra **ambos** motores en un caso real de Windows de ~700K registros.
- **Historial de defectos publicado.** Las regresiones de precisión y su impacto medido están documentados abiertamente en [`RELEASE_NOTES.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md), incluidos los casos en los que una corrección cambió los registros vistos en órdenes de magnitud. Saber qué estuvo mal y cuándo es parte de lo que hace que un resultado sea defendible.
- **Contabilidad de evidencia verificable.** Cada registro termina en una coincidencia o en un depósito de descarte con nombre, y el libro de descartes por ventana hace que "no quede evidencia sobrante" sea algo que puedas comprobar desde el registro en lugar de aceptar por fe.
- **Registros a prueba de manipulación.** `verify_chain()` vuelve a recorrer el registro de auditoría del Narrative Map y la cadena del Evidence Seal para detectar modificaciones, incluidas las de campos legibles por humanos.
## 🔬 Plataforma de investigación
Crow-Eye es más que software: es una **plataforma de investigación abierta** que acelera todo el campo de la informática forense de Windows. El proyecto se centra en:
- Publicar documentación detallada sobre las estructuras internas de los artefactos.
- Compartir lógica de correlación y metodologías.
- Habilitar la revisión por pares, la transparencia y la colaboración académica.
- Contribuir al conocimiento colectivo de la comunidad forense.
## 🛠️ Notas técnicas
- El análisis del registro requiere archivos de hive de registro completos.
- Algunos artefactos requieren un manejo especial debido a los mecanismos de bloqueo de archivos de Windows (consulta [Registro personalizado / archivos bloqueados](#-artefactos-soportados)).
- El análisis de LNK y Jump Lists lo maneja el propio analizador dedicado de Crow-Eye.
## 📸 Capturas de pantalla
Una selección de las vistas de interfaz y análisis de Crow-Eye.






🎥 **Vídeo de demostración:** [](https://youtu.be/hbvNlBhTfdQ)
## 🚧 Hoja de ruta
Trabajo planificado y en curso (consulta [`RELEASE_NOTES.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md) para ver los cambios publicados):
- 📊 **Vistas e informes GUI avanzados** — visualización e informes más ricos.
- 🔄 **Diálogo de búsqueda mejorado** — filtrado avanzado con soporte de lenguaje natural.
- 🎯 **Mapeo semántico mejorado** — mapeo integral de campos en todos los tipos de artefactos.
- 📈 **Puntuación de correlación avanzada** — puntuación de confianza refinada y explicable.
- ⚡ **Correlación paralela** — despacho por pool de procesos, habilitado por defecto para cargas de trabajo grandes.
¿Tienes una idea o quieres añadir un artefacto? [Abre un issue](https://github.com/Ghassan-elsman/Crow-Eye/issues) o consulta [Contribuciones](#-contribuciones).
## 📚 Documentación
- **[TECHNICAL_DOCUMENTATION.md](https://github.com/ghassan-elsman/crow-eye/blob/main/TECHNICAL_DOCUMENTATION.md)** — arquitectura, componentes y guía de desarrollo.
- **[RELEASE_NOTES.md](https://github.com/ghassan-elsman/crow-eye/blob/main/RELEASE_NOTES.md)** — novedades de cada versión (UBA, Narrative Map, backends Eye en la nube, endurecimiento de gestión de casos, …).
- **[Documentación del Correlation Engine](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/docs/CORRELATION_ENGINE_OVERVIEW.md)** — descripción general, motor, feathers, wings, pipelines.
- **[Arquitectura de la línea de tiempo](https://github.com/ghassan-elsman/crow-eye/blob/main/timeline/ARCHITECTURE.md)** — internals del módulo de línea de tiempo.
- **[Arquitectura de Eye](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/README.md)** y **[estándar GEP](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md)** — el asistente de IA y su protocolo rector.
## 🤝 Contribuciones
Crow-Eye está construido como una plataforma de investigación abierta, y las contribuciones son bienvenidas: nuevos analizadores, reglas de correlación, documentación e investigación de artefactos.
- **Contribuciones generales:** [CONTRIBUTING.md](https://github.com/ghassan-elsman/crow-eye/blob/main/CONTRIBUTING.md)
- **Correlation Engine (área prioritaria):** [correlation_engine/CONTRIBUTING.md](https://github.com/ghassan-elsman/crow-eye/blob/main/correlation_engine/CONTRIBUTING.md)
- **Contacto:** [[email protected]](mailto:[email protected]) · o abre un issue / pull request.
## 🌐 Sitio web y comunidad
- 🌍 **Sitio web oficial:** [crow-eye.com](https://crow-eye.com/) — recursos, documentación y descargas.
- 💬 **Discord:** [Únete al Discord de Crow-Eye](https://discord.gg/2vag2Udf) — ayuda directa, investigación de artefactos y anuncios de versiones.
## 📄 Licencia
Crow-Eye se publica bajo la **[GNU General Public License v3.0](https://github.com/ghassan-elsman/crow-eye/blob/main/LICENSE)** (GPL-3.0). Es libre de usar, estudiar, compartir y modificar bajo los términos de esa licencia.
## 📝 Cómo citar Crow-Eye
Si usas Crow-Eye en trabajos académicos, investigaciones publicadas o un informe de caso, cítalo:```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: Un Motor de Informática Forense para Windows* (GPL-3.0). https://github.com/Ghassan-elsman/Crow-Eye
Para las citas metodológicas, el Protocolo Ghassan Elsman está documentado por separado en [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md).
## 💖 Apoyo
Crow-Eye es gratuito y de código abierto, creado y mantenido por una sola persona. Si te resulta útil en tu trabajo, considera patrocinarlo: financia directamente nuevos analizadores e investigación: **[SPONSORS.md](https://github.com/ghassan-elsman/crow-eye/blob/main/SPONSORS.md)** · **[GitHub Sponsors](https://github.com/sponsors/Ghassan-elsman)**.
## Créditos
Creado y mantenido por **Ghassan Elsman**.
