安全、统一、强大且可扩展的 Rust Android 分析器
SUPER 是一款命令行应用程序,可在 Windows、MacOS X 和 Linux 上使用,用于分析 .apk 文件以发现漏洞。它通过解压 APK 并应用一系列规则来检测这些漏洞。
但是,为什么要创建新的分析器呢?MobSF、Qark、Androbugs... 还不够吗?嗯,我们认为这还不够。它们都存在两个我们想要解决的主要问题:它们是用 Java 或 Python 编写的,并且不易扩展。它们并非为直接从事 Android 分析的企业使用而设计,也没有将此类功能放在首位。
我们的方法以不同方式解决了这些问题:首先,我们决定使用 Rust 作为编程语言。由 Mozilla 基金会开源开发的这种语言为我们提供了大量处理正则表达式、文件等的实用工具,更重要的是,它使我们能够创建不依赖 JVM 或 JIT 编译器的安全软件。使用 Rust,堆栈溢出、段错误等直接不可能发生,这对于以安全为中心的应用程序而言意义重大。同时,它还赋予我们足够的性能来实现高效分析,从而支持高容量自动化分析。这得益于 Rust 的零成本抽象,其效率仅可与 C/C++ 相媲美。
其次,我们决定让软件 100% 可扩展:所有规则集中在一个 rules.json 文件中,每个公司或测试人员都可以创建自己的规则来分析他们所需的内容。该软件也是模块化的,因此新的开发可以轻松添加新功能。最后,结果报告模板系统使用户能够个性化报告。
它还提供了出色的代码审查工具,直接嵌入在 HTML 报告中,任何人都可以搜索生成的代码并进行语法高亮,以实现更深入的漏洞分析。
我们已在下载页面发布了适用于 Windows(8.1+)、Linux 和 MacOS X 的二进制文件。目前我们只有 64 位软件包。如果您需要在 32 位系统上使用 SUPER,则需要从源码编译 SUPER。为此,您需要通过 rustup.rs 安装 Rust。
注意:运行需要 Java 1.7+。
SUPER 非常易于使用。只需将所需的 .apk 文件放入 downloads 文件夹(必要时创建该文件夹),并在运行程序时将文件名作为参数传入。执行后,将在 results 文件夹中生成一个以该应用程序命名的详细报告。以下是可用的用法选项:
USAGE:
super [FLAGS] [OPTIONS] <package>
FLAGS:
--bench 显示分析的基准测试
--force 强制审计器从头开始执行所有操作
-h, --help 打印帮助信息
--html 以 HTML 格式生成结果
--json 以 JSON 格式生成结果
--open 完成后在浏览器中打开报告
-q, --quiet 静默审计器,不在标准输出中打印任何内容
-a, --test-all 测试 downloads 目录中的所有 .apk 文件
-V, --version 打印版本信息
-v, --verbose 让审计器说更多话
OPTIONS:
--dex2jar <dex2jar> jar 文件的存储位置
--dist <dist> 分发文件将被提取到的文件夹
--downloads <downloads> 下载文件存储的文件夹
--jd-cmd <jd-cmd> jd-cmd 文件的路径
--min-criticality <min_criticality> 设置要分析的最低严重性(Critical, High, Medium, Low)
--results <results> 结果存储的文件夹
--rules <rules> JSON 规则文件的路径
--template <template> 结果模板文件的路径
-t, --threads <threads> 要使用的线程数,默认使用每个逻辑 CPU 核心一个线程
ARGS:
<package> 要测试的应用程序的包名
欢迎所有人向 SUPER 贡献代码。请查看 SUPER 贡献指南 了解操作说明。
本程序是自由软件:您可以依据自由软件基金会发布的 GNU 通用公共许可证(许可证第三版,或(根据您的选择)任何更高版本)的条款重新分发和/或修改它。