aoiflux/indicer
GitHub: aoiflux/indicer
DUES 是一个数字取证平台,用于高效存储、分析和搜索大规模磁盘镜像与文件。
Stars: 5 | Forks: 1
# DUES - 去重统一证据存储
spacebar
## 重要升级通知(破坏性变更)
v0.38 引入了磁盘数据库和索引布局的结构性变更。
- 旧的数据库目录可能与此版本不完全兼容。
- 在不进行迁移或重建的情况下重用旧的数据库路径可能导致读取/启动失败。
- 升级前请备份现有数据库路径。
- 升级后,运行修复和重建索引/恢复工作流,以新格式重建状态。
## 发布摘要
本次发布是一次大规模的全面更新,重点聚焦于可靠性、检索质量和调查速度。
- 存储管道改进,具备更好的可靠性和吞吐量调优。
- 恢复管道升级,包括多线程恢复控制。
- 搜索相关性改进,结合 BM25 和混合全文回退。
- 新增用于证据、分区和已索引文件元数据的丰富化管道。
- 新增微型伪影提取和图工作流。
- 近似相似度和 SimHash 增强,支持数据库内外匹配。
- 扩展了服务器功能,支持浏览器上传会话。
- 核心子系统的测试和基准测试覆盖范围更广。
专利信息:本软件已产生两项衍生发明,受印度专利局注册的专利 567877 和 556272 保护。
## 功能亮点
### 1) 摄取、去重与存储
- 分块级去重,支持可配置的哈希算法。
- 默认哈希为 BLAKE3;也支持 SHA3。
- 可选的基于密码的加密数据库操作。
- 每个分块进行 zstd 压缩,压缩级别可调。
- 容器模式,用于大规模 blob 打包。
- 分层块索引模式,实现可扩展的查找路径。
- 摄取验证和启动时恢复,用于处理不完整的摄取。
- 修复工具,用于检查并可选择性地将部分摄取标记为失败。
### 2) 使用 libtsk (通过 libtusk) 进行图像解析
- DUES 现在使用 libtusk(The Sleuth Kit 的 C 语言封装)在支持的目标上进行分区表和文件系统解析。
- 这实现了更丰富的分区/文件系统感知索引行为,与取证图像分析用例保持一致。
- 当前支持 CGO/libtusk 的目标平台:windows/amd64 和 linux/amd64。
- 在不受支持的目标上,DUES 会回退到内部解析(MBR/exFAT 路径)。
- 在当前的解析流程中,碎片化文件处理仍然有限;碎片化条目会被 libtusk 索引路径报告并跳过。
另请参阅:
- [TOOLCHAIN_NOTES.md](TOOLCHAIN_NOTES.md)
- [clib/LIBTUSK_ABI.md](clib/LIBTUSK_ABI.md)
### 3) 搜索与排名
- 查询解析,支持 AND/OR/短语搜索行为。
- 基于 BM25 的排名支持。
- 通过 rank-alpha 进行词频感知的排名调整。
- 混合模式:优先使用全文旁路存储,自动回退到扫描搜索。
- 为报告工作流生成搜索输出。
### 4) 近似相似度
- 近似内:比较 DUES 中已存储的对象。
- 近似外:将外部文件与 DUES 内容进行比较。
- 支持 SimHash 工作流和 Top-K 验证选项。
- 可选的深度和精确解释行为,用于调查工作流。
### 5) 丰富化与微型伪影
- 图丰富化命令,用于回填层次结构元数据。
- 跨已索引文件的微型伪影提取管道。
- 针对常见取证伪影模式的检测器和解析器扩展。
- 支持图导出,包括交互式 HTML 输出。
### 6) API、服务器与浏览器上传路径
- 在端口 50051 上运行 Connect + gRPC + gRPC-Web 服务器模式。
- 本地主机感知的 CORS 行为,适用于浏览器客户端。
- 浏览器上传会话端点:
- POST /web/upload/start
- POST /web/upload/chunk
- POST /web/upload/finalize
- 健康检查端点:GET /
### 7) TUI 与操作员工作流
- 基于 Bubble Tea v2 的 TUI,集成存储/列表/搜索/恢复/近似/重置流程。
- 改进了命令行操作的易用性和状态可视性。
## 安装说明
### 前置条件
- Go 1.25+
- Windows、Linux 或 macOS
### 构建
```
git clone https://github.com/aoiflux/indicer.git
cd indicer
go build -o dues .
```
Windows 用户可能更倾向于:
```
go build -o dues.exe .
```
## 快速开始
```
# imilarity" could be "近似相似性" or "近似匹配". "DB object" – "DB" might stand for database, so keep "DB" in English? "DB" is a common abbreviation for database, so I should keep it as "DB". "object" is part of it. So: "来自 DB 对象的近似相似性" but to be concise, perhaps "DB 对象的近似相似性". I'll translate: "近似相似性来自 DB 对象"
dues store E01-image.dd --enable-enrichment --enable-fts
# 7. Near similarity for external file
dues list
# - Similarly: "外部文件的近似相似性"
dues search "invoice payment"
# 8. Backfill hierarchy enrichment in graphdb
dues search --enable-fts "invoice|receipt"
# - "Backfill hierarchy enrichment" – "backfill" might be a technical term, so keep in English? "hierarchy enrichment" – "层次结构丰富化". "graphdb" – this is likely a tool or library name, so keep in English: "graphdb". So: "在 graphdb 中回填层次结构丰富化" but that sounds awkward. Perhaps "Backfill hierarchy enrichment in graphdb" -> "在 graphdb 中回填层次结构丰富化". I'll adjust: "回填层次结构丰富化于 graphdb"
dues restore --filepath restored.bin
# 9. Extract micro-artefacts and export graph.html
dues near in --advanced-deep --topk 50
# - "Extract micro-artefacts" – "micro-artefacts" might be a technical term, keep in English? Probably translate. "提取微小产物" or "提取微 artifacts". To keep it clear, I'll translate: "提取微 artifacts" but the instruction says to keep technical jargon in English, so "micro-artefacts" might be kept as is. However, in the context, it's not a proper noun, so I'll translate it. "export graph.html" – "graph.html" is a file name, so keep in English. So: "提取微 artifacts 并导出 graph.html"
dues near out suspect.bin --explain-exact
# 10. Inspect/repair pending ingests
dues enrich
# - "Inspect/repair" -> "检查/修复". "pending ingests" – "pending" might be kept or translated, "ingests" could be "摄入" or "导入". I'll translate: "检查/修复待处理的摄入"
dues micro extract --top-k 25
# 11. Launch TUI
dues repair
dues repair --fix
# - "Launch" -> "启动". "TUI" – this might be an abbreviation for Text User Interface, so keep in English as "TUI". So: "启动 TUI"
dues tui
```
## 命令摘要
核心命令:
- dues store FILE
- dues list
- dues search QUERY
- dues restore HASH
- dues near in HASH
- dues near out FILE
- dues stats
- dues repair [--fix]
- dues enrich
- dues micro extract
- dues micro list
- dues server
- dues tui
- dues version
- dues reset
## 重要标志
全局:
- --dbpath, -d: 自定义数据库路径
- --password, -p: 用于加密数据库访问的密码
- --chonksize, -c: 分块大小,单位 KB(默认 256)
- --low, -l: 低资源模式
- --quick, -q: 吞吐量优先模式
- --container, -x: 容器 blob 模式
- --hierarchical, -i: 分层索引模式
- --compress-level: fast、default 或 best
存储相关亮点:
- --sync, -s: 同步索引
- --no-index, -n: 跳过索引
- --enable-fts: 构建旁路全文索引
- --enable-enrichment: 将层次结构元数据更新到 graphdb
- --hashalgo, -a: sha3 或 blake3
- --simhash: 在摄取期间计算分块 SimHash 签名
- --store-workers 和 --store-queue: 覆盖摄取管道调优参数
恢复相关亮点:
- --filepath, -f: 输出路径
- --restore-workers, --restore-queue: 管道调优参数
- --restore-progress-ms: 进度更新间隔
- --restore-buffer-mb: 写入缓冲区大小
搜索相关亮点:
- --rank-alpha: 词频提升权重
- --enable-fts: 混合全文 + 回退扫描路径
近似相关亮点:
- --deep, -e: 部分分块匹配
- --advanced-deep, -a: 阶段 2 全文件 SimHash 重排序
- --topk, -k: 阶段 2 重排序的 Top-K 候选
- --explain-exact, -x: 强制进行分块钻取以精确匹配外部文件
## 迁移清单(0.38 之前版本升级到 0.38)
1. 备份当前数据库目录。
2. 将二进制文件升级到 v0.38。
3. 运行 `dues repair` 并检查待处理/失败的证据。
4. 根据需要重新运行存储/索引路径,以对齐格式。
5. 如果需要图元数据,请重新运行丰富化和微型提取。
6. 在代表性样本上验证搜索和恢复输出。
## 架构与设计文档
- [STORE_LLD.md](docs/STORE_LLD.md)
- [STORE_BOTTLENECKS.md](docs/STORE_BOTTLENECKS.md)
- [SEARCH_LLD.md](docs/SEARCH_LLD.md)
- [ENRICHMENT_LLD.md](docs/ENRICHMENT_LLD.md)
- [MICRO_ARTEFACT_DEEP_DIVE.md](docs/MICRO_ARTEFACT_DEEP_DIVE.md)
- [NEAR_SIMILARITY_LLD.md](docs/NEAR_SIMILARITY_LLD.md)
- [HIERARCHICAL_INDEX.md](docs/HIERARCHICAL_INDEX.md)
- [CONTAINER_MODE_LLD.md](docs/CONTAINER_MODE_LLD.md)
- [CONTAINER_MANAGER_CURRENT.md](docs/CONTAINER_MANAGER_CURRENT.md)
- [RESTORE_LLD.md](docs/RESTORE_LLD.md)
- [BENCHMARKING.md](docs/BENCHMARKING.md)
- [TUI_QUICKSTART.md](docs/TUI_QUICKSTART.md)
- [TUI_IMPLEMENTATION.md](docs/TUI_IMPLEMENTATION.md)
## 输出产物
- report.json:搜索报告输出
- graph.html:相似度和微型伪影图可视化
- BLOBS/*.blob:去重的分块/容器数据
## 许可证
MIT。详见 [LICENSE](LICENSE)。
## 贡献
欢迎提交问题和拉取请求。
标签:BLAKE3, BM25搜索, EVTX分析, Go语言, Python工具, SHA3, SimHash, 元数据富化, 全文搜索, 关系发现, 取证平台, 取证科学, 哈希算法, 图工作流, 大规模调查, 存储系统, 微 artifacts 提取, 快速取证, 数字取证, 数据加密, 数据去重, 数据取证, 数据摄入, 文件分析, 日志审计, 电子取证, 磁盘镜像处理, 程序破解, 索引技术, 自动化脚本, 证据存储, 证据恢复, 证据搜索, 证据比较, 证据管理, 调查工具, 近似匹配, 高性能计算