SecurityRonin/ronin-issen

GitHub: SecurityRonin/ronin-issen

一套纯 Rust 数字取证工具舰队,通过前端工具 Issen 将磁盘镜像与内存转储自动解析并关联为 ATT&CK 映射的统一事件时间线。

Stars: 0 | Forks: 0

Issen — push-button forensics for the case on your desk Issen — push-button forensics for the case on your desk

# ronin-issen — SecurityRonin 数字取证舰队 [![License: Apache-2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) [![Fleet](https://img.shields.io/badge/fleet-86_pure--Rust_DFIR_libraries-blue.svg)](#component-layout-canonical) [![获取 Issen](https://img.shields.io/badge/get-Issen-brightgreen.svg)](https://github.com/SecurityRonin/issen) [![赞助](https://img.shields.io/badge/sponsor-h4x0r-ea4aaa?logo=github-sponsors)](https://github.com/sponsors/h4x0r) **镜像已获取。计时开始。用 Issen 对准它,读懂整个故事。** 交给 **Issen** 一个磁盘镜像和一个内存转储,它会返回一个互相关联且映射到 ATT&CK 的时间线 —— 这就是攻击事件的叙述,随时可以阅读并直接放入报告。 一条命令。一个静态二进制文件。不需要 Python,也不受依赖地狱之苦。 ``` # 摄取磁盘 + 内存,自动检测容器,解析每个 artifact,进行关联。 issen evidence.E01 memory.raw -o case.duckdb # 阅读故事 —— 以文本,或可共享的 HTML 报告形式。 issen report case.duckdb --format text ``` 这就是整个工作流。Issen 会自动检测 E01/EWF/VMDK/原始格式和内存转储, 对文件系统进行分类以筛选出关键工件 —— 注册表、EVTX、预读取、 浏览器、LNK、SRUM、shell 历史记录、Biome —— 对每一项进行解析,并将磁盘、 内存、日志、实时响应和供应链关联成一个可查询的时间线。重新运行它时, 它只会重新解析发生变化的部分:一次崩溃、一个新数据源,或者重新运行时会从 上次中断的地方继续,而不会重做整个案例。 **用你手头正在处理的案件试试吧。** → 获取 Issen:**[SecurityRonin/issen](https://github.com/SecurityRonin/issen)** ## 你将获得什么 - **横跨五种证据类型的一条时间线** —— 磁盘 `[P]`、内存 `[M]`、日志 `[L]`、 实时查询 `[Q]`,以及内容寻址的供应链 `[C]`。 - **包含完整证据链的发现,而不是孤立的事实。** 一个网络连接、一个隐藏的 PID、 一个已加载的 rootkit 库,以及一个供应链哈希匹配,将作为一个完整的故事呈现 —— 包含 严重程度、规则名称,以及背后的每一条证据。 - **可直接交付的输出** —— 使用纯文本快速浏览,或生成 HTML 作为可共享的报告。

SecurityRonin forensic fleet — tier flow from evidence to timeline

## 底层运作 — 舰队(面向开发者与维护者) Issen 是一扇薄薄的前门。在它背后是一支由 **86 个独立的 Rust 取证 库**组成的舰队 —— 每个库都是一种工件家族的深度专家,每个都可以在你的 工具中独立使用,它们全部是纯 Rust、经过输入模糊测试、通过 lint 检查且无 panic、编译为单一静态二进制文件。 `ronin-issen` 是这支舰队的**治理保护伞**:它掌握着宪章 ([`CLAUDE.md`](CLAUDE.md))、决策([`docs/decisions/`](docs/decisions/) — 文件夹保护伞 + 分类法 [ADR-0017](docs/decisions/0017-fleet-folder-umbrella-taxonomy.md)、 层级架构 [ADR-0016](docs/decisions/0016-multi-repo-layer-architecture.md)、 发布顺序 [ADR-0006](docs/decisions/0006-fleet-dependency-layering-release-order.md)), 以及下方的规范组件映射图。组件仓库位于 `components//` 下,作为它们**各自独立的 git 仓库**,在这里被 gitignore 忽略了 — 这是故意*不*采用 monorepo 的设计。交互式图表位于 [`docs/components-diagram.html`](docs/components-diagram.html)。 ### 组件布局(规范) `components//` — **86 个仓库,16 个文件夹**。组件树是 注册中心;此表是其规范性声明。类别按照**邻近原则**进行分组: 相同的概念思想 → 相同的文件夹;contract crate 与其所属家族放在一起; 子组在此处打上标签,而不是分配一个新文件夹。 | 类别 | 作用 | 仓库 | |---|---|---| | `knowledge/` (2) | FOUNDATION 叶子节点 — 编译时格式事实、哈希数据库;零舰队依赖 | [forensic-hashdb](https://github.com/SecurityRonin/forensic-hashdb) · [forensicnomicon](https://github.com/SecurityRonin/forensicnomicon) | | `utility/` (7) | 横切机制 — 不拥有特定格式,服务于多个层级 | [blazehash](https://github.com/SecurityRonin/blazehash) · [forensic-carve](https://github.com/SecurityRonin/forensic-carve) · [jsonguard](https://github.com/SecurityRonin/jsonguard) · [name-variants](https://github.com/SecurityRonin/name-variants) · [safe-read](https://github.com/SecurityRonin/safe-read) · [shrinkpath](https://github.com/SecurityRonin/shrinkpath) · [timeglyph](https://github.com/SecurityRonin/timeglyph) | | `codec/` (3) | 纯 Rust 解压缩器 | [lzo](https://github.com/SecurityRonin/lzo) · [lzvn](https://github.com/SecurityRonin/lzvn) · [xpress-huffman](https://github.com/SecurityRonin/xpress-huffman) | | `container/` (8) | 将镜像/转储解码 → 可寻址的字节流 | [ad1-forensic](https://github.com/SecurityRonin/ad1-forensic) · [aff4-forensic](https://github.com/SecurityRonin/aff4-forensic) · [dmg-forensic](https://github.com/SecurityRonin/dmg-forensic) · [ewf-forensic](https://github.com/SecurityRonin/ewf-forensic) · [qcow2-forensic](https://github.com/SecurityRonin/qcow2-forensic) · [vhd-forensic](https://github.com/SecurityRonin/vhd-forensic) · [vhdx-forensic](https://github.com/SecurityRonin/vhdx-forensic) · [vmdk-forensic](https://github.com/SecurityRonin/vmdk-forensic) | | `acquisition/` (1) | 实时主机磁盘枚举 + 获取完整性评级 | [livedisk-forensic](https://github.com/SecurityRonin/livedisk-forensic) | | `archive/` (3) | 文件容器(非原始磁盘) | [archive-forensic](https://github.com/SecurityRonin/archive-forensic) · [dar-forensic](https://github.com/SecurityRonin/dar-forensic) · [zip-forensic](https://github.com/SecurityRonin/zip-forensic) | | `partition/` (3) | 分区方案 | [apm-partition-forensic](https://github.com/SecurityRonin/apm-partition-forensic) · [gpt-partition-forensic](https://github.com/SecurityRonin/gpt-partition-forensic) · [mbr-partition-forensic](https://github.com/SecurityRonin/mbr-partition-forensic) | | `encryption/` (6) | 加密层 + 定制原语 | [bitlocker-forensic](https://github.com/SecurityRonin/bitlocker-forensic) · [dpapi-forensic](https://github.com/SecurityRonin/dpapi-forensic) · [elephant-diffuser](https://github.com/SecurityRonin/elephant-diffuser) · [filevault-forensic](https://github.com/SecurityRonin/filevault-forensic) · [luks-forensic](https://github.com/SecurityRonin/luks-forensic) · [veracrypt-forensic](https://github.com/SecurityRonin/veracrypt-forensic) | | `filesystem/` (16) | 按路径导航扇区 (名称→inode→block);vfs 栈 + FUSE 挂载 | [4n6mount](https://github.com/SecurityRonin/4n6mount) · [apfs-forensic](https://github.com/SecurityRonin/apfs-forensic) · [btrfs-forensic](https://github.com/SecurityRonin/btrfs-forensic) · [ext4fs-forensic](https://github.com/SecurityRonin/ext4fs-forensic) · [fat-forensic](https://github.com/SecurityRonin/fat-forensic) · [forensic-vfs](https://github.com/SecurityRonin/forensic-vfs) · [forensic-vfs-engine](https://github.com/SecurityRonin/forensic-vfs-engine) · [forensic-vfs-mount](https://github.com/SecurityRonin/forensic-vfs-mount) · [hfsplus-forensic](https://github.com/SecurityRonin/hfsplus-forensic) · [iso9660-forensic](https://github.com/SecurityRonin/iso9660-forensic) · [ntfs-forensic](https://github.com/SecurityRonin/ntfs-forensic) · [refs-forensic](https://github.com/SecurityRonin/refs-forensic) · [udf-forensic](https://github.com/SecurityRonin/udf-forensic) · [ufs-forensic](https://github.com/SecurityRonin/ufs-forensic) · [xfs-forensic](https://github.com/SecurityRonin/xfs-forensic) · [zfs-forensic](https://github.com/SecurityRonin/zfs-forensic) | | `memory/` (1) | 内存转储 → 页面流;OS 结构遍历 | [memory-forensic](https://github.com/SecurityRonin/memory-forensic) | | `log/` (2) | 按时间戳 / 记录号导航日志流 | [journald-forensic](https://github.com/SecurityRonin/journald-forensic) · [winevt-forensic](https://github.com/SecurityRonin/winevt-forensic) | | `parser/` (25) | 解析工件记录 → 取证含义(与介质无关) | [amcache-forensic](https://github.com/SecurityRonin/amcache-forensic) · [atx-forensic](https://github.com/SecurityRonin/atx-forensic) · [bam-forensic](https://github.com/SecurityRonin/bam-forensic) · [blob-decoder](https://github.com/SecurityRonin/blob-decoder) · [bluetooth-forensic](https://github.com/SecurityRonin/bluetooth-forensic) · [browser-forensic](https://github.com/SecurityRonin/browser-forensic) · [cfb-forensic](https://github.com/SecurityRonin/cfb-forensic) · [ese-forensic](https://github.com/SecurityRonin/ese-forensic) · [exec-pe-forensic](https://github.com/SecurityRonin/exec-pe-forensic) · [leveldb-forensic](https://github.com/SecurityRonin/leveldb-forensic) · [lnk-forensic](https://github.com/SecurityRonin/lnk-forensic) · [peripheral-forensic](https://github.com/SecurityRonin/peripheral-forensic) · [prefetch-forensic](https://github.com/SecurityRonin/prefetch-forensic) · [protobuf-forensic](https://github.com/SecurityRonin/protobuf-forensic) · [segb-forensic](https://github.com/SecurityRonin/segb-forensic) · [shellhist-forensic](https://github.com/SecurityRonin/shellhist-forensic) · [shellitem](https://github.com/SecurityRonin/shellitem) · [shimcache-forensic](https://github.com/SecurityRonin/shimcache-forensic) · [snss-forensic](https://github.com/SecurityRonin/snss-forensic) · [sqlite-forensic](https://github.com/SecurityRonin/sqlite-forensic) · [srum-forensic](https://github.com/SecurityRonin/srum-forensic) · [trash-forensic](https://github.com/SecurityRonin/trash-forensic) · [usb-forensic](https://github.com/SecurityRonin/usb-forensic) · [userassist-forensic](https://github.com/SecurityRonin/userassist-forensic) · [winreg-forensic](https://github.com/SecurityRonin/winreg-forensic) | | `graph/` (1) | 内容寻址 / Merkle-DAG 导航 | [git-forensic](https://github.com/SecurityRonin/git-forensic) | | `history/` (3) | [H] 状态历史的时间队列 | [snapshot-forensic](https://github.com/SecurityRonin/snapshot-forensic) · [state-history-forensic](https://github.com/SecurityRonin/state-history-forensic) · [vsc-forensic](https://github.com/SecurityRonin/vsc-forensic) | | `orchestration/` (3) | 跨工件关联 → 一个统一的时间线 | [disk-forensic](https://github.com/SecurityRonin/disk-forensic) · [issen](https://github.com/SecurityRonin/issen) · [useract-forensic](https://github.com/SecurityRonin/useract-forensic) | | `_deprecated/` (2) | 已被取代;保留以供参考 | [ewf](https://github.com/SecurityRonin/ewf) · [usnjrnl-forensic](https://github.com/SecurityRonin/usnjrnl-forensic) | 这些文件夹规定了**人类的查找位置**。概念依赖**层级** (FOUNDATION → CONTAINER → … → ORCHESTRATION — [ADR-0016](docs/decisions/0016-multi-repo-layer-architecture.md)) 规定了**什么可以导入什么**;图强制要求的自下而上的**发布顺序** 是其必然结果 ([ADR-0006](docs/decisions/0006-fleet-dependency-layering-release-order.md))。 相关但并非 1:1 —— **16 个文件夹折叠为 5 个依赖层级**(例如 `knowledge/`、 `utility/` 和 `codec/` 是三个文件夹但属于同一个零依赖层级;`utility`/`codec` 是 被每个层级依赖的横切轨道,而不是一个阶梯)。文件夹是根据*仓库是什么*来选择的; 其层级则是*根据它导入的内容派生出来的*。 [隐私政策](docs/privacy.md) · [服务条款](docs/terms.md) · © 2026 Security Ronin Ltd
标签:ATT&CK框架, JARM, Rust, 内存分析, 可视化界面, 多模态安全, 安全, 库, 应急响应, 数字取证, 磁盘取证, 网络安全研究, 网络流量审计, 自动化脚本, 超时处理