Windows 的取证时间机器。
Crow-Eye 不仅仅是检测——它重建时间线上实际发生的事情,从数据采集一直到可追溯到源记录的可验证结论。
Crow-Eye 是一个开源(GPL-3.0)Windows 取证引擎,统一了采集、分析、验证、情报和 AI。 大多数安全工具会问 "这是否有害?" 然后清除一切看起来合法的内容。Crow-Eye 提出一个不同的问题:"发生了什么?" 它关联所有活动——无论可疑与否——并重建系统上实际发生的事件序列,使调查的真相从证据中重建,而非从警报中猜测。
这种以重建为先的设计正是追踪 APT 和国家支持威胁所需要的:高级对手潜伏在合法工具(powershell.exe、PsExec、certutil)中,也隐藏在行动的序列里——这对那些清除一切看似正常内容的工具是不可见的。由于 Crow-Eye 从不清除任何内容,并且基于执行工件(这些工件在日志篡改和反取证手段下依然存在)进行推理,攻击无法隐藏。同一引擎也保持易用性,适用于日常 DFIR 工作和只想了解计算机上发生了什么的非专业人员。
Crow-Eye 被用于各种截然不同的工作流程。每种流程都通过不同的入口进入引擎:
| 您的身份 | 典型输入 | 入门路径 |
|---|---|---|
| 企业 IR / MSSP / MDR | 来自 Velociraptor、KAPE 或 EDR 原生采集的定向收集 | 离线导入器 → 关联引擎 → UBA |
| 执法 / 取证实验室 | 完整取证镜像(E01、VHDX、VMDK、Raw),需满足监管链要求 | 镜像分析 → 关联引擎 → 叙事地图 |
| 内部安全 / 内部威胁与 HR 调查 | 实时系统或已采集的工件 | 实时分析 → UBA 活动故事 |
| 学生、教育工作者与研究人员 | 示例镜像和实验数据 | Eye-Describe → 快速开始 |
任何采集器都适用。 Crow-Eye 不需要自己的采集工具。将离线导入器指向一个包含由 Velociraptor、KAPE、EDR 采集包或任何其他采集器生成的原始工件的文件夹——它会索引支持的工件并对其运行离线解析器。此外,来自 Plaso、Autopsy、Volatility 或任何其他工具的输出可通过导入证据以 CSV、JSON 或 SQLite 格式引入,并与原生工件一起关联。
Crow-Eye 构建为一个集成循环——每个阶段为下一阶段提供输入,从原始磁盘到可辩护的结论。
| 子系统 | 功能 | 阶段 |
|---|---|---|
| Crow-Claw | 高速采集实时系统和死机镜像。 | 采集 |
| 离线导入器 | 将来自任何来源的工件 SCAN → COLLECT → PARSE 到案件数据库中。 | 采集 |
| 关联引擎 | 通过 Feathers · Wings · Engines · Pipelines 实现双引擎(身份 + 时间窗口)重建。 | 分析 |
| 交互式时间线 | 身份线程化、法庭可追溯的时间线(热力图 / 周 / 日视图),直接从案件数据库读取。 | 验证 |
| 用户行为分析(UBA) | 规则驱动、通俗易懂的"该用户做了什么"活动故事。 | 情报 |
| Eye — AI 助手 | 自然语言调查 + 密封的叙事地图案件记忆。 | AI |
| 存储取证 | 物理磁盘与分区分析(隐藏/未挂载检测、启动警告)。 | 分析 |
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