michaelaurelio/Anubee

GitHub: michaelaurelio/Anubee

基于 eBPF 的 Android 应用动态行为分析工具,能够隐蔽地绕过 RASP 防护并揭示加壳或混淆代码的真实运行时行为。

Stars: 2 | Forks: 0

# Anubee:Android 应用的 X-Ray 视觉,每一次刺探都在向深处追溯

Anubee banner

Anubee 是一款用于**动态分析 Android 应用行为**的工具。它旨在观察运行时的系统调用和函数调用,从而击败各种静态逆向工程对抗手段,例如**混淆**和类似**加壳**的行为。它利用了 **eBPF** 技术,因此能够有效绕过移动应用的 **RASP**(运行时应用自我保护),该技术目前广泛应用于银行、医疗等高风险应用中。 **是否曾想确切知道某个应用到底在做什么?** Anubee 会向你展示一切,无论它隐藏得有多深。 ## 演示 ### 桌面应用 | 加载 trace | |:---:| | 将 [Anubee-Desktop](https://github.com/michaelaurelio/Anubee-Desktop) 指向一个 trace 文件,运行记录将加载到一个可过滤的表格中。 | | |
| 构建调用图 | |:---:| | 选择一个表格条目以绘制其节点。然后点击其中一个节点,即可绘制出它们之间的连接。 | | |
| 过滤 trace | |:---:| | 在搜索栏中输入库名、syscall 或纯文本,表格就会缩小范围,只显示这些调用。 | | |
| 绘制特定调用的图表 | |:---:| | 在图表中点击过滤后的调用,会在检查器面板中显示每个节点的 syscall、参数和 backtrace。 | | |
| 确认建议的标签 | |:---:| | `Suggestions` 面板通过启发式扫描展示潜在的 RASP 检查项。确认某一项后,其虚线边框会变为实线,表明已被查看。 | | | ### MCP 集成 | 通过聊天驱动 Anubee | |:---:| | [`anubee-mcp`](tools/anubee-mcp) 允许你的 LLM 客户端为你运行 `anubee` CLI。只需提问,它就会自动为现场设备选择正确的命令。此运行要求它列出 [Anubee-Detector](https://github.com/michaelaurelio/Anubee-Detector) 在运行时加载的 native 库。 | | | ### Android 恶意软件分析 | 捕获批量文件删除 | |:---:| | `mod massdelete-detect` 监控 renameat/unlinkat 活动,并在短时间内触及大量不同文件时发出警报。此运行在演示应用执行删除操作中途进行附加。 | | |
| 捕获敏感读取后的数据外泄 | |:---:| | `mod exfil-detect` 在读取凭证或媒体形态文件时启动,随后跟踪随之产生的传出字节量。此运行在演示应用执行传输操作中途进行附加。 | | | ## 为什么选择 Anubee? - **工作时几乎不可见。** Anubee 从外部监视应用,而不是 驻留在其中,因此它的大部分操作都不会触发应用自身的安全检查。 - **揭示应用试图隐藏的代码。** 有些应用会扰乱自己的代码,并且只在 运行时才将其解锁,希望没人在那个精确时刻进行监视。Anubee 会在代码解锁的瞬间捕获 它,因此你能看到实际隐藏的内容。 - **解释操作,而不仅仅是记录。** 应用采取的每一个操作都可以追溯到 负责它的具体代码片段,因此即使是故意编写得难以理解的代码, 也无法隐藏其真正的行为。 - **内置 Android 恶意软件分析。** Anubee 已经能够捕获批量删除的文件、 悄悄泄露的数据、被滥用的权限以及被秘密录制的屏幕。 ## 功能 | 子命令 | 用途 | |---|---| | `anubee syscalls` | 在应用毫无察觉的情况下监视其行为,这是默认的静默模式 | | `anubee funcs` | 捕获深层的函数级细节:参数、返回值和执行时间 | | `anubee lib` | 查找应用加载的每一个 native 库,甚至是仅在运行时才加载的库 | | `anubee dump` | 从运行的应用中提取加壳或加密的代码,并将其重构为可在反汇编器中打开的文件 | | `anubee correlate` | 将特定函数与其触发的 syscall 相关联 | | `anubee trace` | 在一次启动中同时运行 `syscalls` 和 `funcs`/`lib` | | `anubee mod` | 针对特定的恶意软件行为运行现成的分析器 | ## 快速开始 **开始使用:** 只需一个静态的 `anubee` 二进制文件,无需安装其他任何东西。获取它并运行你的第一次 trace。包含先决条件的完整演练:[`docs/getting-started.md`](docs/getting-started.md)。 **完整的用法文档:** [`docs/README.md`](docs/README.md),包括如何选择引擎以及如何使用每一个命令。 ## 在专为捕获它而构建的工具面前运行 与其仅仅声称 Anubee 具有隐蔽性,我们不如让它在一个专为捕获此类 tracer 而构建的工具面前进行测试。 [Anubee-Detector](https://github.com/michaelaurelio/Anubee-Detector) 正是此类工具的专用触发器。它循环执行真正的安全检查,一旦察觉到被监视,屏幕就会立即变红。

Clean baseline. SECURE, 0/4 tripped.

Auto-loop on, re-checking continuously. Still SECURE, 0/4.

Run one that does: 1/4 tripped, banner turns COMPROMISED.
Anubee 的静默功能不会留下任何痕迹。这就是为什么它们从未触发检测器的原因。 然后,我们运行了一个确实会留下痕迹的工具。检测器立即捕获到了它。 这就是“工作时几乎不可见”的真实写照。[亲自去试试吧](https://github.com/michaelaurelio/Anubee-Detector)。该检测器也是开源的。 **想知道这一切在底层到底是如何运作的吗?** 完整的架构、引擎内部原理、trace schema、可检测性分析以及已知的限制,都在 [DOCUMENTATION.md](DOCUMENTATION.md) 中。 ## 许可证 见 [LICENSE](LICENSE)。 ## 作者 - [michaelaurelio](https://github.com/michaelaurelio) - [chronopad](https://github.com/chronopad) - [Ringoshiroku](https://github.com/Ringoshiroku)
标签:C2, Docker镜像, 子域名生成, 客户端加密, 日志审计