Snitch-1302/Time-Sleuth

GitHub: Snitch-1302/Time-Sleuth

一款数字取证时间线分析工具,从磁盘映像中提取文件系统事件并聚类可视化,帮助调查人员重建活动时间线、发现异常。

Stars: 1 | Forks: 0

# TimeSleuth:取证时间线分析 TimeSleuth 是一款数字取证工具,用于从磁盘映像中提取、抽象和可视化系统事件——帮助重建用户活动的时间线、发现可疑事件并检测异常。 ## Pipeline ``` Disk image (.dd) └── extract_events.py (pytsk3 filesystem parsing) └── raw_timeline.csv └── abstraction.py (maps raw actions → high-level categories) └── abstracted_timeline.csv └── app.py (interactive Dash timeline UI) ``` ## 功能 - 使用 `pytsk3` (The Sleuth Kit) 从磁盘映像中提取真实的文件系统工件 - 将原始的低级别事件(例如 `file_encrypt`、`key_modify`)抽象为高级别类别(文件系统活动、注册表更改、网络活动等) - 交互式取证时间线可视化 (Dash + Plotly) - 按类型、时间范围滑块进行事件过滤,并可选基于 DBSCAN 的邻近事件聚类 - 带有基本威胁级别启发式算法的单事件检查面板 ## 技术栈 - Python 3.10+ - `pytsk3` — 文件系统/磁盘映像解析 (The Sleuth Kit 绑定) - `pandas` — 数据处理 - `plotly` / `dash` — 交互式可视化和 UI - `scikit-learn` — DBSCAN 事件聚类 ## 项目结构 ``` TimeSleuth/ ├── app/ │ ├── __init__.py │ ├── app.py # Dash app: layout, callbacks, visualization │ └── callbacks.py # (reserved for callback separation as the app grows) ├── data/ │ ├── raw_timeline.csv # sample raw event data │ └── abstracted_timeline.csv # sample abstracted event data ├── docs/ │ └── report.md # forensic findings write-up template ├── scripts/ │ ├── __init__.py │ ├── extract_events.py # pytsk3-based disk image extraction │ ├── abstraction.py # raw -> high-level event mapping │ ├── clustering.py # DBSCAN event clustering │ └── utils.py # CSV writing / timestamp helpers ├── .gitignore ├── requirements.txt └── README.md ``` ## 设置 ``` git clone https://github.com/Snitch-1302/Time-Sleuth.git cd Time-Sleuth pip install -r requirements.txt ``` ## 运行应用(包含示例数据) 仓库附带了示例 `raw_timeline.csv` 和 `abstracted_timeline.csv` 文件,描绘了一个合成的勒索软件感染场景,因此您无需真实的磁盘映像即可立即运行可视化: ``` python app/app.py ``` 打开 Dash 打印的本地 URL(通常为 `http://127.0.0.1:8050`)。 ## 在真实磁盘映像上运行完整 Pipeline 要从实际磁盘映像而不是示例数据中提取事件: 1. 获取取证磁盘映像——例如 DFIR 课程中常用的公开 **m57-jean** 训练映像(由于文件大小原因未包含在此仓库中) 2. 将其放置在 `data/m57-jean.dd`(或更新 `scripts/extract_events.py` 中的 `IMAGE_PATH`) 3. 运行 Pipeline: ``` cd scripts python extract_events.py # produces data/raw_timeline.csv python abstraction.py # produces data/abstracted_timeline.csv ``` 4. 按上述步骤启动应用 ## 已知限制 - 内置的示例 CSV 是合成的演示场景(虚构的勒索软件感染),而不是针对真实磁盘映像运行 `extract_events.py` 的实际输出——提取 Pipeline 本身是可用的,但随附的数据仅用于说明。 - `normalize_timestamp()` 目前只是将来自 `pytsk3` 的原始 Unix 时间戳字符串化,而不是将其转换为可读的 datetime——如果从真实映像中提取,这值得改进。 - 点击检查面板中的威胁级别指示器使用了一个包含“高风险”事件名称的小型硬编码列表作为启发式方法,而不是真正的基于威胁情报的分类。 ## 完整说明 关于 Pipeline 设计背后的逻辑以及我在构建过程中学到的内容: [Hashnode 文章链接]
标签:Python, 域渗透, 数字取证, 无后门, 电子数据取证, 磁盘镜像分析, 自动化脚本, 身份验证滥用, 逆向工具