actuator/pSlip

GitHub: actuator/pSlip

pSlip 是一款 Android 静态安全分析工具包,通过分析导出组件、Provider 权限、加密误用和 OAuth 配置来发现应用中的提权路径和敏感信息泄露风险。

Stars: 27 | Forks: 1

[![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/actuator/pSlip)](https://github.com/actuator/pSlip/releases) [![GitHub stars](https://img.shields.io/github/stars/actuator/pSlip)](https://github.com/actuator/pSlip/stargazers) [![GitHub forks](https://img.shields.io/github/forks/actuator/pSlip)](https://github.com/actuator/pSlip/network/members) [![GitHub contributors](https://img.shields.io/github/contributors/actuator/pSlip)](https://github.com/actuator/pSlip/graphs/contributors) pSlip banner ## 新特性 (v1.4.0) 报告层更新。HTML 报告引擎已重写;检测、manifest、OAuth 和加密恢复流程与 v1.3.5 保持字节一致,因此扫描行为和扫描结果没有变化。 ### 可搜索的 HTML 报告 报告搜索框现在是一种字段范围的查询语言,而不是简单的包名过滤器,并且匹配会返回匹配的*findings*,而不仅仅是应用名称: - Scope:`pkg:` `issue:` `comp:` `conf:` `details:` `adb:` `sev:` `key:` - 存在性测试:`has:key`, `has:adb`, `has:poc` - `"引号包裹的短语"`,`-否定` (支持作用域,例如 `-sev:info`),和 `/正则表达式/` (支持作用域,例如 `pkg:/^com\.(samsung|sec)\./`;无效的正则表达式会被忽略而不是抛出异常) - 搜索条件之间默认为逻辑与 (AND) 关系,匹配不区分大小写,防抖时间为 160 ms - 问题类型下拉菜单与严重程度标签 (chips) 进行逻辑与 (AND) 运算。被过滤的应用仅显示其匹配的 findings,并提供“显示所有 N 条”的出口。 - 快捷键:`/` 聚焦搜索框,`Esc` 清除搜索,`?` 切换语法帮助面板。 ### 密钥材料和 Secrets 导出 恢复的 crypto/OAuth 值现在会从每个 finding 的 `Details` 中提取出来,并作为结构化工件展示(`aes-key`、`des-key`、`iv`、`segment-write-key`、`oauth-client-id`、`oauth-client-secret`;其中 OAuth secret 在报告中保持脱敏状态): - 专门的 **Key Material & Secrets** 板块,支持按类型过滤,并可作用于当前搜索。 - 一键将当前视图、单个应用或所有密钥材料导出为 CSV (采用 RFC-4180 标准并带 UTF-8 BOM 以兼容 Excel)、JSON、Markdown 格式,或直接复制到剪贴板——包括“导出所有 keys”。 - 报告可通过 `file://` 协议直接打开,无需服务器;当浏览器阻止剪贴板操作时,会自动降级为可复制的覆盖层。 ### 兼容性 没有 CLI、flag 或环境变量的变更。现有的 `-all` / `-allsafe` / `-aes-deep` / `-oauth-poc` 工作流和 JSON 输出保持不变;新功能完全包含在生成的 HTML 报告内部。 ## 历史版本 (v1.3.5) ### androguard 成为首选引擎(不再需要 Java) Manifest 解析、OAuth 分析以及 AES/DES/IV 检测全部通过 androguard 直接读取 DEX 运行。你不再需要 apktool 或 jadx 来扫描应用。仅当你通过 `-aes-deep` 开启深度 AES 扫描时才会使用它们。 ### 基于 DEX 字节码重写 AES/DES/IV 检测 现在它会交叉引用 `SecretKeySpec`、`IvParameterSpec` 和 `Cipher`,然后将 key/IV 寄存器回溯到其常量来源。字节数组形式的 key 绝不可能是一个单纯的字符串字面量,因此只有当值确实通过 `getBytes()` 或数组字面量到达构造函数时才会被报告。该溯源规则消除了常见的误报(例如 `AES` 等算法名称,`PBKDF2WithHmacSHA1` 等 KDF 名称,以及零散的异常字符串)。每个 finding 都包含恢复的值、密钥大小、cipher transform 以及 `const -> getBytes -> init` 调用链,可直接用于生成报告。 以前经常超时的同一个应用,现在不需要 Java,在不到一分钟内就能完成扫描。如果你需要获取跨分支组装或从静态字段加载的 keys,可以使用 `-aes-deep` 来运行旧的 jadx/apktool 源码扫描流程。 ### OAuth scheme 劫持检测 pSlip 会标记拥有 OAuth redirect(自定义 scheme 或 `https` app link)的导出组件,并报告泄露的 `client_id`、可被声明占用的 redirect,以及攻击者在证实其影响之前仍需确认的 runtime 前置条件。 它还能捕获 Google 的“Web application”配置错误,即 Android 应用在 APK 中硬编码了 `client_secret`(错误的 OAuth client 类型),并且会从 DEX 中提取跨平台的 client_ids。该检测默认运行。可构建的 PoC 项目生成位于 `-oauth-poc` 参数之后。 ### Split-APK 容器 `.xapk`、`.apks` 和 `.apkm` 包会自动展开。程序会分析基础/代码 APK,并跳过配置/资源 splits。 ### Windows:零配置依赖 在一个全新的 Python 安装环境中,pSlip 会自动引导安装其 Python 依赖(tqdm、androguard)并重新运行自身。设置 `PSLIP_NO_AUTOINSTALL=1` 可以关闭此功能。
标签:Android, DSL, 云安全监控, 多模态安全, 组件安全, 逆向工具, 静态分析