jacobecontreras/suiteDFIR
GitHub: jacobecontreras/suiteDFIR
suiteDFIR 是一款本地化的数字取证套件,整合 iOS/Android 设备提取、LEAPP 痕迹解析、时间轴重建与地理空间可视化于一体。
Stars: 8 | Forks: 3
  

suiteDFIR 是一款专为速度、易用性和隐私而构建的取证提取与分析套件。
**共同开发者**:[Slay3r00](https://github.com/Slay3r00)
## 功能
- **设备提取**:通过 USB 使用 libimobiledevice 提取 iOS 备份。支持加密和非加密备份,并提供进度跟踪。
- **LEAPP 分析**:集成了 iLEAPP (iOS) 和 aLEAPP (Android) 取证解析器以提取数字痕迹。
- **时间轴事件**:将来自多个数据源的数据重建为可搜索的按时间顺序排列的视图。
- **地理空间查看器**:自动从 LEAPP 报告中提取 KML 文件。具备图层切换(卫星、混合、默认)、自定义 KML 导入以及位置搜索标定功能。
- **设置管理**:在此处设置并存储 Google Maps API key,以便访问地理空间页面。
- **私密与本地化**:所有数据处理均在您的本地机器上完成。取证数据绝不会被发送到外部服务器。
## 功能展示
#### 仪表盘

#### 备份提取

#### 痕迹分析

#### 时间轴事件

#### 位置地图

#### 嵌入式 LEAPP 报告

## 隐私与数据本地化
suiteDFIR 旨在优先考虑您的隐私和取证数据的安全性。了解数据在何处保持本地化以及何时建立外部连接,对于维护取证完整性至关重要。
### 保持本地化的内容
- **取证提取**:所有设备镜像和备份提取均通过 USB 在本地执行。
- **痕迹解析**:iLEAPP 和 aLEAPP 引擎完全在您的本地环境中运行。
- **案件数据库**:所有调查数据、元数据和案件文件均存储在您的本地磁盘上。
- **分析与时间轴**:数据关联和时间轴重建 100% 离线进行。
### 非本地化依赖项
虽然处理过程是在本地进行的,但某些 UI 和实用功能需要互联网连接:
- **地图页面**:渲染地图图块和图层需要连接到服务提供商(Google, Carto, OpenStreetMap)。
- **位置搜索**:地理编码和地址搜索是通过外部 API 调用(例如 Google Maps API)执行的。
## 快速开始
1. **启动**:在您的工作站上打开 suiteDFIR。
2. **创建案件**:创建一个新案件并添加相关的调查详情。
3. **连接**:导航至 **Backups** 页面,并通过 USB 连接目标设备。
4. **提取**:启动本地提取以对设备进行镜像。
5. **分析**:导航至 **Analysis** 页面以处理提取的数据。
6. **时间轴**:导航至 **Timeline** 页面以查看重建后的事件历史。
7. **地图**:导航至 **Map** 页面以可视化地理数据。
## 技术栈
- **桌面端**:[Electron](https://www.electronjs.org/)
- **前端**:[React](https://reactjs.org/), [TypeScript](https://www.typescriptlang.org/), [Tailwind CSS](https://tailwindcss.com/)
- **后端**:[Python](https://www.python.org/), [FastAPI](https://fastapi.tiangolo.com/), [Pydantic](https://docs.pydantic.dev/)
- **构建**:[PyInstaller](https://pyinstaller.org/), [Vite](https://vitejs.dev/)
## 技术支持
suiteDFIR 站在巨人的肩膀上。有关完整的版权归属和许可证文本,请参阅 [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md)。
- [iLEAPP](https://github.com/abrignoni/iLEAPP) & [aLEAPP](https://github.com/abrignoni/aLEAPP)
- [libimobiledevice](https://libimobiledevice.org/)(基于 LGPL 2.1+ 许可证授权)
## 许可证
本项目基于 **Apache License 2.0** 授权。有关详细信息,请参阅 [LICENSE](./LICENSE) 和 [NOTICE](./NOTICE) 文件。
## 开发
### 环境设置
1. **Node.js**:确保已安装 Node.js 18.12+(推荐使用 Node 24 LTS;CI 运行在 24 上)。
2. **Yarn**:本仓库通过 `package.json` 中的 `packageManager` 字段固定了 Yarn 版本,
并期望由 [corepack](https://github.com/nodejs/corepack) 来提供:
npm uninstall -g yarn # 首先移除任何全局安装的 Yarn 1.x
corepack enable # 使 `yarn` 遵循固定的版本
如果找不到 `corepack`,说明它是缺失的,而不是损坏了。常见原因有两种:
- **发行版打包的 Node 遗漏了它。** 无论 Node 版本如何,Debian/Ubuntu 都会从其
`nodejs` 包中剥离 corepack(因为它会在运行时获取二进制文件,
这违反了它们的策略)。Ubuntu 24.04 的 `nodejs 18.19.1+dfsg` 没有
corepack,尽管上游 Node 18 捆绑了它。请从
[NodeSource](https://github.com/nodesource/distributions) 或 `nvm` 安装 Node。
- **Node 25+ 不再捆绑它** — Node TSC 投票决定停止分发它。
Node 24 及更早版本仍然包含它。
在以上任一情况下:
npm install -g corepack && corepack enable
确认您获得的是固定版本 — **而不是** 1.22.x:
yarn --version
全局通过 npm 安装的 Yarn 1 会忽略 `packageManager`,并会将
`yarn.lock` 重写为不兼容的 v1 格式。请参阅下文的 *Yarn 版本*。
3. **Python**:后端取证引擎需要 Python 3.9+。
4. **虚拟环境**:初始化 Python 环境:
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
### 安装
为根目录、前端和 electron 层安装所有依赖项:
```
yarn install:all
```
### Yarn 版本
锁文件采用 Yarn 4 (Berry) 格式 — 以 `__metadata: version: 10` 开头。
Yarn 1 (Classic) 会写入一种完全不同的 `# yarn lockfile v1` 格式,因此如果
贡献者使用了错误的主版本,将会在他们的首次 `yarn install` 时静默重写整个锁文件,
导致产生无法审查的 diff 和无法解决的冲突。
### 本地开发
启动并发开发环境(Vite + Electron):
```
yarn dev:electron
```
### 构建流程
suiteDFIR 采用多阶段构建流程来打包 Python 环境、Vite 前端和 Electron 外壳。
#### 桌面应用程序
为您当前的平台构建完整的生产环境包:
- **macOS**:`yarn build:mac`
- **Windows**:`yarn build:win`
- **Linux**:`yarn build:linux`
#### 组件构建
- **仅后端**:`yarn build:backend`(通过 PyInstaller 打包 Python)
- **仅前端**:`yarn build:frontend`(构建静态 Vite 资产)
## 许可证
本项目基于 **Apache License 2.0** 授权。有关详细信息,请参阅 [LICENSE](./LICENSE) 和 [NOTICE](./NOTICE) 文件。
第三方组件受其各自的许可证约束。有关完整的版权归属,请参阅 [THIRD-PARTY-NOTICES.md](./THIRD-PARTY-NOTICES.md)。
标签:漏洞挖掘, 逆向工具