
安全、統一的、強力、拡張可能な Rust Android Analyzer
安全、統一的、強力で拡張可能なRust製Android Analyzer
SUPERは、Windows、macOS、Linuxで使用可能なコマンドラインアプリケーションで、脆弱性を検索するために .apk ファイルを解析します。APKを解凍し、一連のルールを適用して脆弱性を検出します。
しかし、なぜ新しいアナライザを作成するのか?MobSF、Qark、Androbugsなどでは不十分なのか?それらには、修正したい2つの主要な問題があると考えています。JavaまたはPythonで書かれており、簡単に拡張できないことです。これらはAndroid分析に直接取り組む企業が使用することを意図しておらず、そのような機能を優先していません。
私たちのアプローチは、これらの問題をさまざまな方法で解決します。まず、プログラミング言語として Rust を採用しました。Mozilla Foundationによってオープンに開発されたこの言語は、正規表現、ファイルなどの操作に多くのユーティリティを提供し、最も重要なことは、JVM や JIT コンパイラに依存しないセキュアなソフトウェアを作成できることです。Rustでは、スタックオーバーフローやセグメンテーションフォールトなどが直接不可能であり、セキュリティ重視のアプリケーションにとって理にかなっています。また、効率的な分析を行うのに十分なパワーも提供し、大量の自動化を可能にします。これは、C/C++に匹敵する効率をもたらすRustのゼロコスト抽象化によるものです。
2つ目に、ソフトウェアを100%拡張可能にしました。すべてのルールは rules.json ファイルに集約されており、各企業やテスターは独自のルールを作成して必要な分析を行うことができます。また、モジュール化されており、新しい開発が簡単に新しい機能を追加できます。最後に、結果レポートのテンプレートシステムにより、ユーザーはレポートをカスタマイズできます。
また、HTMLレポートに直接優れたコードレビューツールが組み込まれており、生成されたコードをシンタックスハイライト付きで検索し、さらに優れた脆弱性分析を行うことができます。
ダウンロードページ で、Windows (8.1+)、Linux、macOS向けのいくつかのバイナリをリリースしています。現時点では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 沈黙の監査人:stdoutに何も出力しない
-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コアあたり1スレッド
ARGS:
<package> テストするアプリケーションのパッケージ文字列
SUPERへのコントリビューションは誰でも歓迎します。手順については、SUPERコントリビューションガイドライン をご確認ください。
このプログラムは自由ソフトウェアです。あなたはこれを、フリーソフトウェア財団によって発行されたGNU General Public License(バージョン3、または(あなたの選択により)それ以降のバージョン)の条件の下で再配布および/または変更することができます。