
Криминалистический движок Windows с открытым исходным кодом, который выполняет сбор, разбор и корреляцию артефактов (MFT, USN, реестр и т. д.) для восстановления таймлайнов с помощью анализа на основе ИИ и опечатывания доказательств судебного уровня.
Криминалистическая машина времени для Windows.
Crow-Eye не просто обнаруживает — он восстанавливает, что на самом деле произошло на временной шкале, от сбора данных до вердикта, прослеживаемого до исходных записей.
Crow-Eye — это механизм криминалистики Windows с открытым исходным кодом (GPL-3.0), который объединяет сбор данных, анализ, проверку, разведку и ИИ. Большинство инструментов безопасности спрашивают «это вредоносно?» и отбрасывают всё, что выглядит легитимно. Crow-Eye задаёт другой вопрос: «что произошло?» Он коррелирует всю активность — подозрительную или нет — и восстанавливает фактическую последовательность событий в системе, чтобы истина расследования была восстановлена из улик, а не угадана по оповещениям.
Именно такой подход, основанный на реконструкции, необходим для охоты на APT и угрозы со стороны государств: сложные противники живут внутри легитимных инструментов (powershell.exe, PsExec, certutil) и в последовательности действий — невидимой для инструментов, которые отбрасывают всё, что выглядит нормально. Поскольку Crow-Eye никогда ничего не отбрасывает и рассуждает на основе артефактов исполнения (которые переживают подмену журналов и антикриминалистику), атака не может скрыться. Тот же механизм остаётся доступным для повседневной работы DFIR и для неспециалистов, которые просто хотят узнать, что произошло на компьютере.
Crow-Eye используется в самых разных рабочих процессах. Каждый из них входит в механизм через разные двери:
Подходит любой сборщик. Crow-Eye не требует собственного инструмента сбора. Укажите Автономному импортёру папку с необработанными артефактами, созданными Velociraptor, KAPE, пакетом сбора EDR или любым другим сборщиком — он индексирует поддерживаемые артефакты и запускает по ним автономные парсеры. Отдельно выходные данные Plaso, Autopsy, Volatility или любого другого инструмента можно импортировать в формате CSV, JSON или SQLite через Импорт улик и коррелировать вместе с нативными артефактами.
Crow-Eye построен как интегрированный цикл — каждый этап питает следующий, от сырого диска до защищаемого вердикта.
Crow-Eye — это интегрированный конвейер, а не набор парсеров. Улики движутся в одном направлении, и каждый этап сохраняет связь с исходной записью.```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
*Источник улик → Импорт → Базы данных дела → Анализ → ИИ-слой → Отчёт*
**Как это читать:**
| Этап | Что важно |
|---|---|
| ① → ② | **Четыре независимых входа в дело.** Вам никогда не понадобится собственный сборщик Crow-Eye — папка от Velociraptor, KAPE или EDR-пакета проходит через Offline Importer, а сторонние CSV/JSON/SQLite — через Import Evidence. |
| ② → ③ | Всё сходится в одном месте: **базы данных дела**. Распарсенные артефакты попадают в `Target_Artifacts/`; импортированные сторонние улики попадают в `Imported_Evidence/` и обнаруживаются автоматически. |
| ③ → ④ | **Три пути анализа независимы друг от друга.** Timeline и UBA читают базы данных дела напрямую — ни одному из них не требуется запуск корреляции. Correlation Engine — это *дополнительный* слой, а не обязательное условие. |
| ③ → ④ | **Dynamic Linking работает наравне с Timeline и UBA** — это четвёртый, независимый читатель баз данных дела (он не имеет отношения к визуализации Timeline). Он собирает сопоставления идентификаторов (SID → имя пользователя, MAC → сеть, hash/GUID → приложение) в отдельную базу `Crow_Intelligence.db` для каждого дела, а затем накладывает этот контекст **прямо в таблицы данных артефактов** с помощью неразрушающих `ATTACH` + `LEFT JOIN`. Он меняет то, как *читаются* записи, но никогда не меняет сами улики. |
| ④ → ⑤ | Eye запрашивает базы данных дела напрямую и может получать результаты корреляции **по требованию**. Он никогда не касается самих улик — он генерирует вызовы инструментов, которые Crow-Eye выполняет и записывает в журнал. |
| ⑤ → Отчёт | **Living Report создаётся только самим Eye** через его инструменты `report_*`. Timeline и UBA — это поверхности анализа; они не пишут в отчёт. Выводы уровня дела по-прежнему можно экспортировать отдельно через [Search & Export](#-search--export). |
| ⑤ ↔ | **Narrative Map двунаправлен**: Eye пишет в него, вы пишете в него, и его содержимое внедряется в промпт Eye каждый ход. Это память, и вы можете ей управлять. |
| ⑤ ⟳ | **Страница Compliance проверяет Eye.** Каждый вызов инструмента Eye привязан к хеш-цепочке **EvidenceSeal**; страница отображает статус **GEP** в реальном времени по каждому правилу (10 принципов), проверенный по этой цепочке и `EYE_Logs/`, с возможностью экспорта в `audit_trail.json`. |
**Независимые этапы.** Timeline и UBA читают базы данных артефактов дела **напрямую** — ни одному из них не требуется запуск корреляции, и Timeline не зависит от Correlation Engine (он применяет собственную облегчённую временную группировку). Корреляция — это дополнительный слой анализа, результаты которого Eye может запрашивать.
**Только для чтения по замыслу.** Парсинг пишет в базу данных дела; каждый последующий этап (UBA, Timeline, просмотрщики корреляции, Eye) открывает эти базы **только для чтения**. Исходные улики никогда не изменяются — [Dynamic Linking](#-analysis-modes) читает базы данных дела, чтобы построить отдельную базу `Crow_Intelligence.db` сопоставлений идентификаторов для каждого дела и обогащает таблицы данных артефактов на месте с помощью неразрушающих запросов `ATTACH` + `LEFT JOIN`, а не перезаписи строк.
**Управляемо по замыслу.** Каждое действие Eye привязано к защищённой от подделки хеш-цепочке **EvidenceSeal**, а страница **Compliance** непрерывно проверяет Eye на соответствие [Ghassan Elsman Protocol (GEP)](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md) — статус по каждому правилу в реальном времени, с экспортом в `EYE_Logs/audit_trail.json`.
## 📥 Загрузка и установка
> **Рекомендуется:** получите готовую сборку для Windows (**установщик MSI / EXE**) с официального сайта — без настройки Python, работает сразу из коробки.
### ▶️ [Скачать Crow-Eye для Windows → crow-eye.com/download](https://crow-eye.com/download)
**Установленная сборка MSI/EXE — рекомендуемый способ запуска Crow-Eye**, и она является **нашим главным приоритетом для обновлений**:
- 🛡️ **Самые быстрые исправления.** Когда обнаруживается проблема или сообщается об ошибке, мы выпускаем обновлённый EXE **как можно скорее** — в готовой сборке исправления появляются в первую очередь.
- 🔄 **Встроенное автообновление.** В установленном приложении откройте **Settings → Updates**, чтобы **проверить наличие обновлений и установить их автоматически** — без ручной переустановки.
- 📦 **Ноль настройки.** Не требуется установка Python, Node или зависимостей.
> Предпочитаете запуск из исходников? См. **[Quick Start](#-quick-start)** ниже. Сборка из исходников предназначена для контрибьюторов и **не включает автообновление** — используйте MSI/EXE для автоматических обновлений.
## 🚀 Быстрый старт
### Вариант A — Установленная сборка (рекомендуется)
Скачайте **MSI/EXE** с [crow-eye.com/download](https://crow-eye.com/download), установите и запустите **Crow-Eye** от имени администратора. Создайте дело и начинайте анализ.
### Вариант B — Запуск из исходников (для разработчиков)
> Для контрибьюторов и продвинутых пользователей. Этот путь **не включает автообновление** — используйте MSI/EXE для автоматических обновлений.
**Требования** (устанавливаются автоматически при первом запуске):
- Python 3.12.4
- **Node.js и npm** — требуются для **визуализации Timeline**
- Ключевые пакеты: PyQt5, python-registry, pywin32, pandas, streamlit, altair, olefile, windowsprefetch, sqlite3, colorama, setuptools
**Рекомендуемое оборудование**
| | Минимум | Рекомендуется для крупных дел |
|---|---|---|
| **ОЗУ** | 8 ГБ | 16 ГБ+ (наборы MFT/USN с миллионами записей) |
| **Диск** | 5 ГБ свободно | Свободное место ≥ 2× размера анализируемых улик |
| **ЦП** | 4 ядра | 8+ ядер |
| **ОС** | Windows 10/11 (полная) · Linux (офлайн- и анализ образов) | — |
> Корреляция обрабатывается потоково с постоянным потреблением памяти даже для очень больших наборов данных, поэтому ОЗУ редко является жёстким ограничением — обычно им становятся пропускная способность диска и свободное место.
**Запуск** (запустите от имени администратора, чтобы Crow-Eye мог получить доступ к системным артефактам):```bash
python "Crow Eye.py"
Основной интерфейс открывается, вы создаёте дело (case), и все результаты анализа организуются в каталоге этого дела для последующего просмотра и составления отчётов.
🖥️ Примечание о кроссплатформенности: на Linux живые парсеры автоматически отключаются, и Crow-Eye работает в режиме офлайн / криминалистического образа. Полный сбор данных с живой системы доступен только в Windows.
Crow-Eye анализирует широкий набор артефактов Windows, связанных с выполнением, файловой системой и активностью пользователя, как с живой системы, так и из офлайн-источников (собранные папки или криминалистические образы).
Jump Lists и LNK анализируются собственным специализированным парсером LNK / Jump List от Crow-Eye — а не сторонним модулем.
Пользовательский реестр / заблокированные файлы: Windows блокирует живые кусты реестра (
NTUSER.DAT,SOFTWARE,SYSTEM) во время работы. Для пользовательского анализа живой системы загрузитесь с внешнего носителя (WinPE/Live CD), используйте инструменты криминалистического сбора или проанализируйте образ диска.
CrowEye/Artifacts Collectors/Target Artifacts (или в папку registry/ вашего дела):
NTUSER.DAT из C:\Users\<Username>\NTUSER.DATSOFTWARE из C:\Windows\System32\config\SOFTWARESYSTEM из C:\Windows\System32\config\SYSTEMC:\Windows\Prefetch, извлекая историю выполнения и криминалистические метаданные (включая временные метки каждого запуска).Crow-Claw — это специализированный механизм сбора Crow-Eye для сбора и сохранения артефактов с живых систем или подключённых образов.
Анализ артефактов, собранных из любого источника, без живого подключения к цели — три чёткие операции:
live_acquisition дела, организованную по типам.Анализ выполняется выделенными офлайн-парсерами Crow-Eye — та же логика артефактов, что и в живом режиме, работающая с собранными файлами: Prefetch, реестр, MFT, USN (плюс коррелятор MFT/USN), AmCache, ShimCache, SRUM, журналы событий, LNK/JumpLists и корзина.
Помимо необработанных артефактов, Crow-Eye может принимать результаты сторонних криминалистических инструментов прямо в дело — Plaso, Autopsy, Volatility или любой пользовательский экспорт — и делать их пригодными для использования Eye и таймлайном без необходимости предварительного запуска корреляции.
Поскольку менеджер базы данных дела автоматически обнаруживает любой .db в дереве дела, импортированные доказательства немедленно становятся доступны:
imported, с работающей фильтрацией по временному окну и временными границами.Импортёр использует только стандартную библиотеку (sqlite3 / csv / json) и работает в фоновом потоке, поэтому большие импорты не блокируют интерфейс.
Анализирует артефакты непосредственно с работающей системы Windows, автоматически извлекая их из стандартных расположений для криминалистического анализа в реальном времени.
Каждое расследование — это дело: автономный каталог, организующий базы данных артефактов и результаты анализа. Crow-Eye отслеживает недавние дела (с избранным, тегами и статусом), проверяет дело при открытии, атомарно записывает конфигурацию (устойчиво к сбоям) и поддерживает импорт/экспорт конфигурации дела и шаблоны с готовыми семантическими сопоставлениями.
Сопоставляет события между артефактами на единой временной сетке с представлениями Heat Map, Week и Day — история, связанная по идентичности и прослеживаемая в суде, а не плоский супер-таймлайн.
Таймлайн читает проанализированные базы данных артефактов дела напрямую и не зависит от механизма корреляции — вам не нужно создавать feathers, писать wings или запускать конвейер для его использования. Он применяет собственную лёгкую временную группировку (корреляция по точным временным меткам и временным окнам, группировка по приложению, пути или пользователю) для связывания событий на сетке. Доказательства, внесённые через импорт доказательств, также появляются на таймлайне как тип артефакта imported, с работающей фильтрацией по временному окну и временными границами.
Полнотекстовый поиск по базе данных дела, а также экспорт в CSV (электронные таблицы), JSON (интеграция с другими инструментами) и подробные HTML-отчёты (полные досье, объединяющие все артефакты, связанные с поисковым запросом).
Переводит необработанные технические идентификаторы — SID, MAC-адреса, хэши — в читаемый человеком контекст на лету. Динамическая привязка обогащает представление с помощью неразрушающих SQL-запросов ATTACH, поэтому исходные доказательства никогда не изменяются, и может принимать массовые потоки IOC-угроз для инлайн-пометки известных вредоносных индикаторов.
Превращает необработанные артефакты в понятную историю активности на простом английском — отчёт, читаемый менеджерами/HR, о том, что пользователь и его приложения фактически делали, при этом каждое утверждение прослеживается до точного исходного доказательства.
Аналитика поведения пользователей (UBA) читает проанализированные базы данных артефактов в папке Target_Artifacts/ вашего дела (строго только для чтения) и воспроизводит их через декларативный набор правил для создания чёткой хронологической Истории активности. Откройте её через кнопку панели инструментов «User Behavior» или с помощью Ctrl+Shift+B (должно быть загружено дело).
uba/config/behavior_rules.json) — настраиваются без кода — каждая классифицирована по серьёзности: обычное · заметное · подозрительное · критическое.runas), изменения учётных записей и групп, изменения служб, вмешательство в системные часы (подозрительно) и очистка журналов событий (критично).database : table : rowid) — ничто не утверждается без источника.40 детекций охватывают четыре класса серьёзности и всю широту проанализированного набора артефактов:
Фильтры: полнотекстовый поиск · пользователь/субъект (включая «Без атрибуции» и переключатель вошедшей сессии) · класс поведения (пользователь / приложение / система) · серьёзность · приложение (поиск с множественным выбором среди 200+ программ) · диапазон дат и времени с быстрыми пресетами (всё время / первый день / последний день / последний час активности).
Источники данных: журналы событий Security, System и Application · USN Journal · MFT · UserAssist · BAM · Prefetch · ShimCache · AmCache · MUICache · ShellBags · LNK / JumpLists · корзина · SRUM (приложение, сеть, подключения) · кусты реестра.
database → table → rowid и открывает реальные исходные строки по запросу.<пользователя>»), никогда для атрибуции действия.UBA — это управляемая правилами поведенческая корреляция и классификация, а не статистическая/ML-оценка аномалий — каждый вывод сопоставляется с явным, проверяемым правилом. См.
RELEASE_NOTES.mdдля полного каталога детекций.
Механизм корреляции v1.7.0 — ядро реконструкции. См. RELEASE_NOTES.md для истории выпусков.
Механизм корреляции Crow-Eye — это промышленная система криминалистической корреляции. Он принимает артефакты Windows из любого источника, нормализует их и выявляет временные и идентичностные связи, которые превращают изолированные записи в связное повествование о том, что произошло в системе, когда и кто был вовлечён. Он работает из коробки со встроенными правилами корреляции (Wings) для наиболее распространённых вопросов расследования, позволяет аналитикам создавать пользовательские правила без изменения кода и передаёт смысл настраиваемым правилам и следователю — никогда чёрному ящику с оценками.
Универсальный импорт данных: Механизм корреляции может принимать вывод любого криминалистического инструмента в формате CSV, JSON или SQLite и конвертировать его в базу данных Feather. Это означает, что вы можете коррелировать данные сторонних инструментов (Plaso, Autopsy, Volatility и т. д.) с нативными артефактами Crow-Eye, создавая единый корреляционный анализ по всем вашим криминалистическим источникам данных.
Целенаправленный проход на точность из цикла 0.11.0, проверенный сквозным образом на реальном деле Windows с ~700K записей и наложенный на более раннюю работу по надёжности. Каждое исправление ниже зафиксировано набором регрессионных тестов pytest и проверено целостным валидационным стендом; он задействовал семь стандартных wings, поставлявшихся на тот момент, — сегодня поставляется одиннадцать. Приведённые ниже числа совпадений были измерены по правилам того выпуска: 0.13.0 изменил то, что считается совпадением (совпадение теперь должно охватывать более одного feather) и что означает оценка уверенности, поэтому относитесь к ним как к записи того прохода, а не как к текущим цифрам.
Механизм идентичности захватывает все доказательства
TypeError и прерывало цикл по строкам). Количество просмотренных записей выросло с 3 558 → 745 615 на валидационном деле.User, ComputerName, NewProcessName, TargetUserName) перед метаданными канала/поставщика.artifact в каждой строке. Механизм теперь возвращается к feather_metadata.artifact_type, поэтому SecurityLogs / SystemLogs / ApplicationLogs используют свой приоритет идентичности, специфичный для артефакта.'N/A', 'Unknown', '-', nil-GUID объединяли несвязанные записи вместе). Валидатор теперь отклоняет 30+ вариантов заглушек.Больше никакого «всё Low — что-то не так»
High. Совпадения с feather_count == 1 теперь получают confidence_category="Low - single feather", поэтому представление High фокусируется на реальной кросс-feather корреляции.chrome имел 10+ ключей и никогда не коррелировал). Ключ теперь только по имени — кросс-feather корреляция снова работает.Обнаружение имперсонации через классификацию путей — после формирования совпадения механизм классифицирует путь каждой записи как TRUSTED (Program Files, System32, WinSxS, формы BAM/SRUM /device/harddiskvolumeN/... и т. д.) или SUSPICIOUS (Temp, Downloads, Public, AppData\Local\Temp, корзина, съёмные корни, сетевые ресурсы). Совпадение, охватывающее обе классификации, вызывает impersonation_alert (≈0.05% частота, каждый — реальный кандидат).Честный учёт доказательств — пооконный журнал отбрасывания с именованными категориями (no_identity_field, normalize_failure, below_threshold_skipped, …) плюс сводка по каждому конвейеру (записей обработано, high/low отправлено, без идентичности, категории отбрасывания, timeless-feather соединения). Каждая запись либо попадает в совпадение, либо в именованную категорию отбрасывания — «никаких доказательств не осталось» проверяемо по журналу. low_confidence_review_mode включён по умолчанию, поэтому группы ниже порога становятся совпадениями с низкой уверенностью, а не исчезают молча.
Обогащение идентичности через timeless-feather — перья без временных меток на уровне строк (AutoStartPrograms, MUICache, SystemServices, TypedPaths) больше не получают фиктивную метку времени генерации на каждой строке; вместо этого после формирования временных совпадений движок присоединяет совпадающие записи из каждого timeless-пера по идентичности как дополнительные доказательства.
Консолидированный реестр идентичности — config/standard_fields/identities.json является единственным источником истины для каждого столбца, который должны учитывать движки + Eye: 98 категорий, 1 146 синонимов столбцов (приложение/процесс, файл, хэш, пользователь, хост/устройство, сеть, реестр, служба/задача, событие, электронная почта, браузер, облако, внутренности Windows, сертификат, контейнер, объекты ОС). Добавление нового синонима столбца — это правка JSON, а не изменение кода.
Исправления ложных срабатываний семантического сопоставления — многоиндикаторное ограничение теперь действительно применяется (data-exfiltration-pattern требует ≥2 индикаторов); невозможные правила AND (4625 AND 4624) переписаны как OR; правила для wiper/удалённых инструментов используют настоящие регулярные выражения вместо срабатывания на каждой записи Prefetch; правила базовой активности понижены с high/critical до info/low (взвешенная оценка крыла повышает реальные угрозы).
Correlation Engine готов к продакшену и активно используется в расследованиях (Correlation Engine v1.7.0):
Chrome.exe/chrome.dll/Chrome.EXE сводятся в одну категорию; версии и архитектурные квалификаторы остаются различимыми.YYYYMMDD, американский формат со слешами и аннотированные строки корректно разбираются с первой попытки.run_times) раскрываются, чтобы каждое выполнение получало собственное событие корреляции.config/standard_fields/*.json; метаданные по таблицам в correlation_engine/config/feather_schemas.json — расширение путём правки JSON, а не кода.query_time_range_iter с памятью O(1); кэши feather под защитой блокировок; готовность к параллельной корреляции.Correlation Engine состоит из четырёх основных компонентов:
Назначение: преобразование необработанных криминалистических артефактов в стандартизированный, запрашиваемый формат.
Examples:
**Поддерживаемые форматы импорта:** CSV (любой файл с заголовками), JSON (плоский или вложенный) и SQLite (прямой импорт). Автоматическое сопоставление столбцов, определение типов данных, нормализация временных меток к ISO, проверка и оптимизированные индексы.```
prefetch.db (Feather)
├── feather_metadata (artifact type, source, record count)
├── prefetch_data (executable_name, path, last_executed, hash)
└── Indexes (timestamp, name, path)
Назначение: определяют, какие артефакты коррелировать и каким образом.
#### 3. ⚙️ Движки (Стратегии корреляции)
**Назначение**: Выполнение логики корреляции для поиска взаимосвязей между артефактами. Структурные связи идут **в первую очередь**; оценка по уровням накладывается поверх как *интерпретация/ранжирование*, а не как основа для сопоставления.
**Движок сканирования временных окон** — лучше всего подходит для анализа на основе времени и систематической временной корреляции. Сканирует время фиксированными интервалами, собирает записи из всех перьев за каждое окно, применяет семантическое сопоставление полей + взвешенную оценку и предотвращает дубликаты с помощью отслеживания MatchSet. **O(N log N)** (индексированные запросы по временным меткам); пакетная обработка (~2 567 окон/сек).
**Движок корреляции на основе идентичности** — лучше всего подходит для больших наборов данных (>1 000 записей) и отслеживания идентичности. Извлекает и нормализует идентичности, группирует записи по идентичности, строит временные якоря внутри каждого кластера, классифицирует доказательства как первичные/вторичные/поддерживающие и обрабатывает потоки для очень больших наборов (>5 000 якорей) при постоянном объёме памяти. **O(N log N)**; 40+ шаблонов полей идентичности на тип.
**Выбор движка:** используйте движок временных окон для анализа на основе времени и движок на основе идентичности для отслеживания идентичности — оба готовы к продакшену и оптимизированы для больших наборов данных с индексированными запросами.
#### 4. 🔄 Конвейеры (Оркестрация рабочих процессов)
**Назначение**: Автоматизация полных аналитических рабочих процессов — от создания перьев до генерации результатов. Конвейер считывает свою конфигурацию (тип движка, крылья, перья), создаёт нужный движок через EngineSelector, выполняет каждое крыло, агрегирует совпадения, сохраняет результаты (БД + JSON) и отображает их в GUI с фильтрацией и визуализацией.```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"
}
}
### Пример использования: поиск доказательства выполнения
**Сценарий**: доказать, что `malware.exe` был запущен в системе.```json
{
"wing_id": "malware-execution",
"correlation_rules": { "time_window_minutes": 5, "minimum_matches": 2 },
"feathers": ["prefetch", "shimcache", "amcache"]
}
pip install pycryptodome
git clone https://github.com/example/repository.git
cd repository
pip install -r requirements.txt
from crypto_tool import encrypt_file, decrypt_file
# Шифрование файла
encrypt_file("input.txt", "output.enc", "ваш-пароль")
# Расшифровка файла
decrypt_file("output.enc", "decrypted.txt", "ваш-пароль")
from crypto_tool import CryptoManager
manager = CryptoManager(algorithm="AES-256-GCM")
manager.generate_key()
manager.save_key("ключ.key")
# Шифрование с пользовательскими параметрами
manager.encrypt_data(data, output_format="base64")
Инструмент поддерживает файлы конфигурации в формате YAML:
# config.yaml
algorithm: AES-256-GCM
key_size: 256
iterations: 100000
output_format: base64
CryptoManagerОсновной класс для операций шифрования.
generate_key() — генерирует новый ключ шифрованияsave_key(path) — сохраняет ключ в файлload_key(path) — загружает ключ из файлаencrypt_data(data, output_format="base64") — шифрует данныеdecrypt_data(data) — расшифровывает данныеencrypt_file(input_path, output_path, password) — шифрует файлdecrypt_file(input_path, output_path, password) — расшифровывает файлfrom crypto_tool import CryptoManager
manager = CryptoManager()
manager.generate_key()
secret_message = "Секретное сообщение"
encrypted = manager.encrypt_data(secret_message.encode())
print(f"Зашифровано: {encrypted}")
decrypted = manager.decrypt_data(encrypted)
print(f"Расшифровано: {decrypted.decode()}")
import os
from crypto_tool import encrypt_file
directory = "документы"
password = "безопасный-пароль"
for filename in os.listdir(directory):
if filename.endswith(".txt"):
input_path = os.path.join(directory, filename)
output_path = input_path + ".enc"
encrypt_file(input_path, output_path, password)
print(f"Зашифрован: {filename}")
Убедитесь, что вы используете тот же ключ или пароль, который использовали при шифровании.
Проверьте, что путь к файлу указан правильно и файл существует.
Для больших файлов используйте потоковое шифрование:
from crypto_tool import CryptoManager
manager = CryptoManager()
manager.encrypt_stream("большой_файл.bin", "большой_файл.enc")
Этот проект лицензирован под лицензией MIT — подробности см. в файле LICENSE.
Мы приветствуем вклад! Пожалуйста, ознакомьтесь с CONTRIBUTING.md для получения подробной информации о том, как начать работу.
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
python -m correlation_engine.mainМощный ассистент, а не замена. Eye автоматизирует и проверяет гипотезы следователя — он никогда не принимает решение за вас.
Eye — это встроенный ИИ-ассистент по криминалистике Crow-Eye: опытный следователь-криминалист, опирающийся на реальную базу знаний об артефактах Windows. Он предоставляет вам интерфейс на естественном языке для запросов, корреляции и документирования всего в рамках дела — Prefetch, MFT, реестр, журналы событий, AmCache, ShimCache, SRUM и многое другое — сохраняя при этом проверяемую запись с защитой от несанкционированного вмешательства о том, что именно он сделал. Eye может работать полностью на вашем собственном оборудовании (включая полностью автономный режим), в соответствии с позицией Crow-Eye о конфиденциальности «0 мс данных отправляется за пределы устройства». Полная архитектура: eye/README.md.
Eye превращает разговорные вопросы («покажи, что выполнялось из C:\Temp после 22:00») в реальную криминалистическую работу: он планирует подход, извлекает соответствующие знания об артефактах, выполняет SQL и межартефактные поиски по базам данных вашего дела и синтезирует проверенный ответ. Каждый ответ создаётся сразу в двух местах — ответ в чате для вас и структурированный блок, записываемый в рабочее пространство живого отчёта, чтобы досье формировалось само по мере хода расследования.
Всё, что делает Eye, привязано к протоколу Ghassan Elsman (GEP) — независимому от вендора, не зависящему от инструментов стандарту того, как любой ИИ должен использоваться в цифровой криминалистике. Это 10 принципов, которым должна следовать соответствующая система, чтобы результаты с поддержкой ИИ оставались правдивыми, прослеживаемыми до исходных записей и подкреплёнными проверяемой цепочкой с защитой от несанкционированного вмешательства, при этом следователь-человек сохраняет контроль:
Eye в Crow-Eye — это эталонная реализация GEP; поведение в продукте, обеспечивающее его соблюдение, — это операционные правила. 📜 Прочитайте стандарт: eye/docs/GEP_standard.md.
Eye адаптируется к вашей модели угроз с помощью трёх режимов развёртывания:
В режиме CLI-агента Crow-Eye управляет существующим ИИ-терминальным/командным агентом как моделью — вместо облачного API или локального офлайн-сервера — чтобы вы могли проводить расследование с агентом, которым уже пользуетесь.
Цикл расследования:
Вы можете менять модели во время выполнения с помощью инструмента switch_model. Переключение ограничено тем же бэкендом, поэтому доказательства никогда не отправляются молча другому поставщику, отличному от выбранного вами.
Eye построен так, чтобы вы могли видеть — и впоследствии доказать — как он пришёл к выводу. Пока Eye работает, он в реальном времени передаёт в интерфейс структурированные обновления ThinkingStep; каждое из них содержит step_id, type, понятный человеку label, status (active → done или error) и необязательные tool/params/detail.
| Тип шага | Что вы видите |
|---|---|
Типичный запрос разворачивается как thinking → rag → thinking → tool_call → synthesis, и по каждому делу сохраняются файлы трассировки на диске, которые вы можете изучить впоследствии:
| Файл | Что он фиксирует |
|---|---|
<case>/EYE_Logs/eye_payload_seal.jsonl | Точные полезные нагрузки, отправленные модели, с хеш-цепочкой. |
<case>/EYE_Logs/truncation_audit.log | Какой контекст был сохранён, обобщён, отброшен или закреплён — и почему. |
<case>/case_history.json | Полная история разговора с количеством токенов на каждое сообщение. |
Eye управляется инструментами: модель никогда не касается доказательств напрямую. Она генерирует вызовы инструментов, а Eye выполняет их против баз данных дела и возвращает результаты — поэтому каждое действие явное, регистрируется и воспроизводимо. Инструменты определяются в configs/llm_config.json и отправляются через eye/services/context_manager.py.
Инструменты расследования — чтение и анализ доказательств:
Инструменты отчётности формируют рабочее пространство живого отчёта: 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 и export_report (экспорт требует одобрения человека).
Инструменты авторства (регулируемые — см. Создание корреляционных Wings и семантических сопоставлений): correlation_create_wing, correlation_edit_wing, correlation_create_semantic_mapping, correlation_edit_semantic_mapping. Вызовы инструментов преобразуются в то, что ожидает активный бэкенд — нативный вызов функций для облачных API и локальных серверов или XML-обёртку <tool_call> для CLI-агентов.
Eye не просто запрашивает движок корреляции — он может помочь расширить его. Когда Eye замечает повторяющийся межартефактный шаблон, он может предложить новые Wings (правила корреляции) и семантические сопоставления (переводы с технического на человеческий язык). Это регулируемое авторство: Eye предлагает, аналитик проверяет сохранённый артефакт, и каждое изменение обосновано и подкреплено доказательствами.
Wing связывает feathers в пределах временного окна и порога минимального совпадения, чтобы доказать утверждение:
Семантическое сопоставление переводит необработанное техническое значение в понятный человеку смысл (например, EventID 4624 → «Успешный вход в систему»). Оно бывает двух видов: простое mapping (одно значение / regex → семантическое значение) или многокомпонентное rule (условия, объединённые через AND/OR). Оба поддерживают category, severity, confidence и scope, и оба требуют reason + related_evidence.
Регулирование — правила на стороне записи, обеспечивающие соблюдение GEP:
reason.database:table:rowid.Длительные расследования могут превысить окно контекста модели — особенно у небольших офлайн-моделей. Вместо сбоя или молчаливого отбрасывания доказательств Eye автоматически уплотняет свой собственный контекст перед каждым вызовом модели (внутри своего защищённого пути генерации, полностью проверяемого).
Перед каждым вызовом Eye измеряет полную полезную нагрузку и резервирует место для ответа (10% окна, минимум 512 токенов, никогда не более половины). Если она всё ещё не помещается, он восстанавливается двумя упорядоченными проходами, никогда не затрагивая защищённые сообщения (закреплённые, автоматически обнаруженные доказательства или результат инструмента):
SUMMARIZED.TRUNCATED.Если несократимое ядро доказательств (закреплённое + результаты инструментов + текущий вопрос) всё ещё переполняется, Eye отказывается продолжать, а не усекает доказательства (REFUSED_OVERFLOW) и просит вас сузить запрос или использовать analyze_large_dataset. Всё, что в конечном итоге отправляется модели, — это точная полезная нагрузка, которая запечатывается для цепочки хранения.
Eye не сохраняет состояние между ходами — поэтому карта повествования — это то место, где «что мы знаем и к каким выводам пришли» хранится для дела. Это постоянная, проверяемая рабочая память Eye с защитой от несанкционированного вмешательства, и её содержимое внедряется в промпт Eye на каждом ходе (карта буквально и есть память).
proven · open · negative · needs · absolute), и подкреплённые артефактами доказательства под ними.narrative_map_audit.jsonl). Вы можете добавлять, редактировать и удалять её утверждения и доказательства, напрямую формируя то, как Eye понимает и интерпретирует дело.open без доказательств, пока идёт расследование, но оно никогда не может быть proven без доказательств; тема, которую Eye проверил, но нашёл пустой, автоматически преобразуется в negative — потому что документированное отсутствие само по себе является находкой.Соответствие — это не функция, прикрученная сверху — оно обеспечивается в самом конвейере.
database:table:rowid, плюс вычисленные смещения для записей MFT). Печати только добавляются и связаны хеш-цепочкой в <case>/EYE_Logs/eye_payload_seal.jsonl — одна изменённая или удалённая запись разрывает цепочку, поэтому журнал математически доказывает, какие байты проанализировала модель.<case>/EYE_Logs/truncation_audit.log (SUMMARIZED, TRUNCATED, PRESERVED, PINNED, UNPINNED, BUDGET_REDUCED), каждое с хешем. Обнаруженные доказательства автоматически закрепляются выше порога уверенности; вы также можете закреплять сообщения вручную.📖 Полная архитектура Eye: eye/README.md.
Исторически следователи попадали в ловушку, доверяя своим криминалистическим инструментам, не понимая, как ведут себя базовые артефакты или как инструмент их разобрал. Сегодняшний риск — просто заменить «инструмент» на «ИИ». ИИ может разобрать запись с идеальной технической точностью и всё равно поместить её в неправильный контекст — изменив весь смысл доказательства.
Eye-Describe существует для того, чтобы ни человеку, ни модели не приходилось гадать. Это интерактивный справочник на уровне байтов по необработанным двоичным структурам артефактов Windows, и он выполняет две роли одновременно:
| Роль | Что она делает |
|---|---|
| 🧑🏫 Чертёж для человека | Интерактивный образовательный справочник по глубокой анатомии артефактов Windows на уровне байтов — что представляет собой каждая структура, как она ведёт себя, что она может и не может доказать. Бесплатно в использовании, предназначен для студентов, преподавателей и практиков, которые хотят понять доказательства, а не выходной столбец. |
Привязывая слой ИИ к документированному поведению артефактов, Crow-Eye не просит вас доверять модели — он ограничивает модель, заставляя её уважать необработанную криминалистику.
Не заменяйте доверие к инструменту доверием к ИИ. Понимайте данные.
Криминалистические инструменты полезны только в том случае, если их результат можно защитить. Работа Crow-Eye над корректностью намеренно прозрачна:- Регрессионные наборы тестов. Correlation Engine защищён набором тестов pytest, охватывающим разбор временных меток, нормализацию идентификаторов, разветвление по нескольким временным меткам, контракт писателя, создание Eye (управление GEP на стороне записи) и реестр стандартных полей. Движок UBA поставляется с собственным набором тестов, включая сквозной прогон на реальном деле.
RELEASE_NOTES.md — включая случаи, когда исправление меняло количество видимых записей на порядки. Знание того, что было не так и когда, — часть того, что делает результат защитимым.verify_chain() повторно проходит по журналу аудита Narrative Map и цепочке Evidence Seal для обнаружения изменений — включая изменения в читаемых человеком полях.Crow-Eye — это больше, чем программное обеспечение: это открытая исследовательская платформа, ускоряющая всю область судебной экспертизы Windows. Проект сосредоточен на:
Подборка интерфейса Crow-Eye и видов анализа.






Запланированные и текущие работы (см. RELEASE_NOTES.md для выпущенных изменений):
Есть идея или хотите добавить артефакт? Откройте issue или см. Вклад в проект.
Crow-Eye создан как открытая исследовательская платформа, и вклад приветствуется — новые парсеры, правила корреляции, документация и исследование артефактов.
Crow-Eye выпущен под GNU General Public License v3.0 (GPL-3.0). Он свободен для использования, изучения, распространения и изменения на условиях этой лицензии.
Если вы используете Crow-Eye в академической работе, опубликованном исследовании или отчёте о деле, пожалуйста, укажите его:```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
Для цитирования методологии протокол Ghassan Elsman задокументирован отдельно в [`eye/docs/GEP_standard.md`](https://github.com/ghassan-elsman/crow-eye/blob/main/eye/docs/GEP_standard.md).
## 💖 Поддержка
Crow-Eye — это бесплатный проект с открытым исходным кодом, созданный и поддерживаемый одним человеком. Если он помогает вашей работе, пожалуйста, рассмотрите возможность спонсорства — это напрямую финансирует новые парсеры и исследования: **[SPONSORS.md](https://github.com/ghassan-elsman/crow-eye/blob/main/SPONSORS.md)** · **[GitHub Sponsors](https://github.com/sponsors/Ghassan-elsman)**.
## Авторы
Создано и поддерживается **Ghassan Elsman**.
| Вы | Ваш типичный вход | С чего начать |
|---|
| Корпоративный IR / MSSP / MDR | Целевые сборы из Velociraptor, KAPE или нативного сбора EDR | Автономный импортёр → Механизм корреляции → UBA |
| Правоохранительные органы / криминалистические лаборатории | Полные криминалистические образы (E01, VHDX, VMDK, Raw) с требованиями цепочки хранения | Анализ образов → Механизм корреляции → Карта повествования |
| Внутренняя безопасность / расследования инсайдерских угроз и HR | Живые системы или собранные артефакты | Живой анализ → UBA история активности |
| Студенты, преподаватели и исследователи | Образцы образов и лабораторные данные | Eye-Describe → Быстрый старт |
| Подсистема | Что она делает | Этап |
|---|
| Crow-Claw | Высокоскоростной сбор живых систем и образов выключенных машин. | Сбор |
| Автономный импортёр | SCAN → COLLECT → PARSE артефактов из любого источника в базу данных дела. | Сбор |
| Механизм корреляции | Двухдвижковая (Identity + Time-Window) реконструкция через Feathers · Wings · Engines · Pipelines. | Анализ |
| Интерактивная временная шкала | Прослеживаемая до суда временная шкала с привязкой к идентичности (Heat Map / Week / Day), читаемая напрямую из баз данных дела. | Проверка |
| Аналитика поведения пользователей (UBA) | Управляемая правилами история активности «что делал этот пользователь» на простом английском. | Разведка |
| Eye — ИИ-ассистент | Расследование на естественном языке + опечатанная Карта повествования — память дела. | ИИ |
| Криминалистика хранилищ | Анализ физических дисков и разделов (обнаружение скрытых/неподключённых, предупреждения о загрузке). | Анализ |
| Артефакт | Live | Offline | Извлекаемые данные |
|---|
| Prefetch | ✅ | ✅ | История выполнения, количество запусков, временные метки каждого запуска |
| Реестр (AutoRun, UserAssist, BAM/DAM, ShimCache, сети, часовой пояс и ещё 80+ ключей) | ✅ | ✅ | Персистентность, использование программ, фоновая активность, конфигурация сети, состояние одобрения автозапуска |
| Реестр — удалённые ключи и значения | ✅ | ✅ | Записи, восстановленные из свободного пространства куста, помеченные как таковые (record_state) |
| Реестр — имена классов и безопасность ключей | ✅ | ✅ | Имена классов nk (где Control\Lsa хранит загрузочный ключ), владелец/группа/DACL из общих дескрипторов безопасности |
| Реестр — журналы транзакций | ✅ | ✅ | .LOG1/.LOG2 воспроизводятся на рабочей копии, поэтому «грязный» куст читается в том состоянии, в котором находилась машина |
| Amcache (29 таблиц) | ✅ | ✅ | Выполнение приложений, время установки, SHA-1, пути к файлам, драйверы, PnP-устройства, перепись устройств |
| ShimCache | ✅ | ✅ | Выполненные приложения, дата последнего изменения, размер и декодированный хвостовой блок (тип PE-машины, флаг OS-двоичного файла) |
| MUICache | ✅ | ✅ | Наличие программ и их отображаемые имена |
| Jump Lists и LNK | ✅ | ✅ | Доступ к файлам, пути, временные метки, метаданные |
| ShellBags | ✅ | ✅ | История доступа к папкам и навигация |
| MRU и RecentDocs / Typed Paths | ✅ | ✅ | История открытия/сохранения, недавние файлы, введённые пути |
| История браузера / посещённых сайтов | ✅ | ✅ | Посещённые сайты и время доступа |
| Журналы событий (System / Security / Application) | ✅ | ✅ | Входы в систему, создание процессов (4688), изменения учётных записей и служб, очистка журналов |
| MFT | ✅ | ✅ | Метаданные файлов, удалённые файлы, временные метки (NTFS, Win 7/10/11) |
| USN Journal | ✅ | ✅ | Создание/изменение/удаление/переименование файлов с полной историей имён |
| Корзина | ✅ | ✅ | Имена удалённых файлов, пути, время удаления, размер |
| SRUM | ✅ | ✅ | Использование ресурсов/сети/энергии приложениями, объём переданных данных по каждому приложению |
| USB и подключённые устройства | ✅ | ✅ | Подключение и наличие устройств |
| Список сетей и подключения | ✅ | ✅ | Известные сети и активность подключений |
| Автозапуск / Службы и драйверы | ✅ | ✅ | Персистентность, установка служб и изменение их состояния |
| Диски и разделы (криминалистика хранилищ) | ✅ | ✅ | Дерево физических дисков, структура разделов, обнаружение скрытых/неподключённых разделов |
winregProperties$RECYCLE.BIN для восстановления имён удалённых файлов, исходных путей, времени удаления и размеров (живые системы и образы дисков).| 🔍 SCAN | 📦 COLLECT |
|---|
| Действие | Обнаружение — идентифицирует артефакты в их исходном расположении | Сбор — копирует и сохраняет артефакты в папке дела |
| Влияние на ввод/вывод | Только чтение; файлы не перемещаются | Чтение + запись; физически дублирует артефакты |
| Организация | Обновляет метаданные .artifact_scan_index.json | Организует файлы в папки по типам |
| Сценарий использования | Быстрая сортировка, чтобы увидеть, есть ли в источнике релевантные данные | Полное криминалистическое сохранение для долгосрочного анализа |
| Входные данные | Что происходит |
|---|
.db / .sqlite | Проверяется и копируется дословно в папку Imported_Evidence/ дела. Схема не изменяется. |
.csv / .json | Автоматически конвертируется в SQLite-базу данных в форме feather через канонический FeatherWriter, несущую feather_metadata, объявляющую основную временную метку таблицы — автоматически определяемую по именам столбцов — точно так же, как у нативно собранного feather. |
| Категория | Детекции включают |
|---|
| Идентичность и доступ | Вход / выход, разблокировка рабочей станции, входы через удалённый рабочий стол, входы администратора, использование явных учётных данных (runas), создание учётных записей и их изменения, добавления в группу администраторов |
| Выполнение | Открытые программы (UserAssist), запущенные программы (Prefetch, расширенный до событий каждого запуска), создание процессов (4688), наличие программ (ShimCache / AmCache / MUICache), установка приложений, сбои приложений (из записей 1001 журнала событий приложений) |
| Файловая активность | Открытие / создание / удаление / копирование / переименование файлов — переименования показывают полную историю имён (старое → … → текущее), восстановленную из USN Journal, с разрешением мягкого удаления ($R/$I) |
| Навигация | Просмотр папок (ShellBags), недавние документы, введённые расположения, посещения веб-сайтов |
| Устройства и сеть | Подключение USB-устройств, наличие устройств, сетевые ресурсы, сетевые подключения, объём переданных данных по каждому приложению (SRUM) |
| Персистентность и система | Персистентность автозапуска (ключи Run + службы, с повышением серьёзности, когда цель запускается из пути, доступного для записи пользователем), установка служб и драйверов, изменения состояния служб, запуск/остановка системы, изменения часов, очистка журналов событий |
| Записей | Движок временных окон | Движок на основе идентичности |
|---|
| 1,000 | 0.5s | 2s |
| 10,000 | 5s | 15s |
| 100,000 | 50s | 2.5 мин (потоковый режим) |
| 1,000,000 | — | 25 мин (потоковый режим) |
| Возможность | Что это значит для вас |
|---|
| Расследование на естественном языке | Задавайте вопросы на простом английском; Eye пишет SQL и выполняет поиск за вас. |
| Интеграция нескольких источников | Единый доступ ко всем проанализированным артефактам в рамках дела. |
| Анализ с расширением RAG | Eye извлекает знания об артефактах перед ответом. |
| Рабочее пространство живого отчёта | Выводы, таблицы, диаграммы и временные шкалы документируются в реальном времени. |
| Контроль со стороны человека | Критические действия (например, экспорт отчёта) требуют вашего явного одобрения. |
| Цепочка хранения | Криптографическое доказательство того, что именно проанализировала модель. |
| # | Принцип | В двух словах |
|---|
| GEP-1 | Главенство доказательств | Выводы делаются только на основе фактически изученных артефактов. |
| GEP-2 | Прослеживаемость | Каждый факт связан с конкретной исходной записью. |
| GEP-3 | Конкретность и хронология | Точные временные метки UTC, идентификаторы и пути, упорядоченные по времени. |
| GEP-4 | Перекрёстное подтверждение | Опираться на несколько источников; сообщать о согласии, молчании и конфликтах. |
| GEP-5 | Проверка предпосылок | Рассматривать утверждения человека как гипотезы, которые нужно доказать или опровергнуть. |
| GEP-6 | Полнота | Никогда не отбрасывать и не усекать доказательства молча. |
| GEP-7 | Целостность и неотказуемость | Никогда не изменять доказательства; фиксировать, что было увидено и сделано, с защитой от несанкционированного вмешательства. |
| GEP-8 | Прозрачность и объяснимость | Рассуждения, используемые инструменты и просмотренные данные видны и проверяемы. |
| GEP-9 | Власть человека | Решение принимает следователь; долговременные действия атрибутируются. |
| GEP-10 | Защищаемость | Результат объективен, точен и структурирован для независимой проверки. |
| Режим | Для чего лучше всего | Бэкенды |
|---|
| ☁️ Облачные ИИ-модели | Глубокий, сложный анализ с максимальной вычислительной мощностью | OpenAI, Anthropic (Claude), Google Gemini |
| 🔒 Офлайн-ИИ-сервер (автономный) | Расследования с нулевым риском утечки, на месте | Ollama, LM Studio |
| ⚡ Терминальные агенты CLI | Повторное использование уже имеющегося ИИ-терминального агента в качестве модели | Claude Code, Gemini CLI, ChatGPT CLI, llama.cpp, … |
thinking |
| Планирование Eye — определение криминалистического намерения, построение системного промпта, принятие решения о следующих действиях. |
rag | Eye извлекает знания об артефактах из своей базы знаний для обоснования ответа. |
tool_call | Eye выполняет криминалистический инструмент (SQL-запрос, поиск, корреляционный запрос). |
synthesis | Eye проверяет и собирает окончательный ответ, подкреплённый доказательствами. |
| Инструмент | Назначение |
|---|
query_database | Выполнить SELECT по криминалистической базе данных. |
search_artifacts | Межбазовый текстовый / regex-поиск. |
semantic_search_artifacts | Семантический поиск по проанализированным артефактам. |
get_schema | Просмотр схем таблиц. |
query_timeline | Один хронологический проход по всем базам данных дела — что произошло и когда. |
query_correlation_results | Запрос результатов движка корреляции по времени / идентичности. |
read_imported_evidence | Чтение сторонних доказательств, импортированных в дело дословно (отчёты, электронная почта, вывод браузерных инструментов). |
correlate_imported_evidence | Корреляция сторонних доказательств, импортированных в дело, с собственными артефактами. |
analyze_large_dataset | Анализ больших наборов результатов методом map-reduce — без молчаливого усечения. |
list_case_files | Список файлов в каталоге дела. |
internet_search / fetch_web_content | Поиск и получение внешнего угрозового / технического контекста. |
query_living_off_the_land_intel | Поиск по LOLBAS / LOLDrivers. |
query_threat_intel | Поиск по VirusTotal / данным об угрозах. |
switch_model | Смена модели во время выполнения (только тот же бэкенд). |
| Поле | Значение |
|---|
wing_name | Понятное человеку имя правила. |
proves | Криминалистическое утверждение, которое оно поддерживает (например, выполнение программы). |
feathers[] | Артефакты для корреляции — каждый с artifact_type, необязательным weight (0–1) и tier (1–4). |
time_window_minutes | Окно корреляции (по умолчанию 180 = 3 часа). |
minimum_matches | Сколько feathers должно совпасть в пределах окна (по умолчанию 1). |
reason (обязательно) | Криминалистическое обоснование правила. |
related_evidence (обязательно) | Одна или несколько ссылок database:table:rowid, которые его мотивировали. |
reason и related_evidence; правила, созданные вне Eye, доступны только для чтения и не могут быть молча переписаны.| ⚖️ Якорь соответствия для ИИ | Видимость Eye привязана к документированному поведению артефактов в Eye-Describe. Модель рассуждает, опираясь на жёстко заданный справочник того, что артефакт фактически означает, а не выводит семантику самостоятельно. |