SliceDroidTeam/SliceDroid
GitHub: SliceDroidTeam/SliceDroid
一款通过 ftrace 内核追踪与污点切片技术实现 Android 应用行为精确归因与分析的模块化工具链,支持事件可视化与敏感访问检测。
Stars: 4 | Forks: 0
# SliceDroid - Android 应用行为分析
一款模块化工具链,用于通过 `ftrace` 追踪 Android 内核事件,将追踪记录切片提取为单个应用的行为,并在 Web 仪表板中探索结果。适用于恶意软件分析、应用审计、隐私取证和研究。
## 功能
- **设备端追踪器**:通过 `ftrace` 使用 `kprobes` 和 `tracepoints` 追踪文件/设备 I/O、binder 和 UNIX socket IPC、Bluetooth 以及 TCP/UDP — 同时辅以并行的 `tcpdump` 数据包捕获
- **基于污点的事件切片器**:跨进程边界(binder 事务、UNIX 流/数据报 socket)持续追踪目标应用,并仅提取由该应用引起的事件
- **追踪记录 ↔ pcap 关联**:恢复真实的 IP 地址和端口(否则 ftrace 中的 UDP 地址将无法使用),并根据实际数据包验证字节计数
- **敏感访问检测**:读取联系人 / 短信 / 日历 / 通话记录数据库以及相机 / 麦克风 / GNSS / NFC / Bluetooth 设备的访问,并通过 IPC 归因于相应应用
- **Web 仪表板**:提供按窗口的行为时间线、公共对等网络核算(基于 kretprobe 返回值获取的字节数)、敏感访问发现以及 JSON/CSV 导出
## 前置条件
```
- Rooted Android device with Developer settings enabled
- Python 3.9+ and pip
- adb for device communication if installing from source
- Optional: scapy (only for the trace↔pcap correlation step)
- A docker version is also available (see below)
```
## 如何运行 SliceDroid
### 源码安装
**下载所需的依赖包:**
```
pip install -r requirements.txt
```
* 如果你想通过追踪 Android 设备并检查结果来运行端到端示例,
如果你的设备已经通过 adb 连接,请跳过步骤 1-3。
1. **在你的 Android 设备上启用无线调试 (Android 11+):**
- 进入 **设置** → **开发者选项** → **无线调试**
- 开启 **无线调试**
- 点击 **使用配对码配对设备**
- 记下 **IP 地址**、**配对端口**和**配对码**
2. **配对你的 Android 设备(仅限首次):**
adb pair :
*出现提示时输入配对码*
3. **通过 ADB 连接到设备(端口 5555):**
adb connect :5555
*注意:首次配对后,你可以跳过步骤 2 并直接连接*
**备选设置:**
# 在通过 USB 连接时启用 TCP 模式
adb tcpip 5555
# 查找设备 IP 地址
adb shell ip route | grep wlan
# 断开 USB 并进行无线连接
adb connect :5555
4. **运行 SliceDroid:**
python3 run_slicedroid.py # 交互式菜单
或直接使用子命令:
python3 run_slicedroid.py setup # 一次性运行:应用映射 + 设备类别映射
python3 run_slicedroid.py trace # 记录追踪记录(+ tcpdump);添加 --correlate 以修正 UDP 地址
python3 run_slicedroid.py dashboard # 启动 Web 仪表板
* 如果你已经拥有追踪记录并只想分析它:
python3 webapp/app.py
然后打开 `http://localhost:5000`,在仪表板中上传 `.trace` 文件,选择目标应用或 PID(**PID** 标签页列出了追踪记录中发现的所有进程),然后点击 **Analyze**。
完整的追踪工作流(包括可选的追踪记录↔pcap 关联步骤)请参阅 [docs/TRACING.md](docs/TRACING.md)。
### Docker 安装(推荐)
适用于可跨多种平台运行的容器化部署方案:
**请遵循设置指南:** [DOCKER.md](docs/DOCKER.md)
## 项目结构
```
├── run_slicedroid.py # CLI: setup / trace / dashboard subcommands
├── webapp/
│ ├── app.py # Flask API + dashboard
│ └── src/
│ ├── analysis/ # Unified analysis package
│ │ ├── parser.py # ftrace log parser
│ │ ├── slicer.py # taint-based event slicer (binder + UNIX sockets)
│ │ ├── windows.py # sliding-window driver
│ │ ├── devices.py # device categorization + sensitive-access detection
│ │ ├── network.py # TCP/UDP metrics, per-peer byte accounting
│ │ ├── insights.py # plain-language findings
│ │ └── pipeline.py # run_analysis() orchestrator
│ ├── services/
│ │ ├── app_mapper_service.py # App mapping service
│ │ └── utils.py # Shared utilities
│ ├── static/ # Dashboard CSS/JS (Chart.js, ES modules)
│ ├── templates/ # index.html
│ └── config.py # Paths & configuration
├── scripts/
│ ├── tracer/ # On-device ftrace + tcpdump script and configs
│ ├── correlation/ # trace ↔ pcap correlator, UDP address rewrite
│ ├── tracker/ # App-name mapping (androguard)
│ └── resources_resolver/ # Device/category mapping scripts
├── tests/ # pytest suite + synthetic trace fixture
├── data/ # Generated at runtime (device-specific)
│ ├── traces/ # Traces, pcap, correlations
│ ├── mappings/ # cat2devs.txt device categories
│ └── Exports/ # analysis.json, sliced_events.json
└── docs/ # TRACING.md, DOCKER.md, CONTRIBUTING.md
```
**注意:** `data/` 目录在你运行 SliceDroid 时会自动创建,并包含特定于设备的映射和追踪记录。
如果你想提供自己的追踪记录或映射,你可以将它们放置在该目录中。
## 许可证
本项目基于 Apache License 2.0 授权 - 详情请参阅 [LICENSE](LICENSE) 文件。
## 初始贡献者
- [@nikalexo](https://github.com/nikalexo) – 研究负责人 – 初始代码库
- [@karyotakisg](https://github.com/karyotakisg) – 初始代码库
- [@foivospro](https://github.com/foivospro) – 初始代码库
- [@vtalos](https://github.com/vtalos) – 初始代码库
## 致谢
- 由欧盟资助:本项目是 Horizon Europe 项目 [SPUCS:用于安全、隐私、用户控制的智能设备的软件架构](https://doi.org/10.3030/101108713) 的成果,旨在实现更透明、更值得信赖的个人设备。
- 由欧盟资助:本项目是 Horizon Europe 项目 [SPUCS:用于安全、隐私、用户控制的智能设备的软件架构](https://doi.org/10.3030/101108713) 的成果,旨在实现更透明、更值得信赖的个人设备。标签:DAST, ftrace, 内核追踪, 安卓, 恶意软件分析, 请求拦截, 逆向工具