Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mariana-trench — AndroidおよびJavaアプリケーション向けのセキュリティに特化した静的解析ツール。 | Kitploit
ツール/GitHubGitHub/facebook/mariana-trench
Androidセキュリティ静的分析脆弱性分析コード分析モバイルセキュリティ
GitHubfacebook/mariana-trench

mariana-trench

AndroidおよびJavaアプリケーション向けのセキュリティに特化した静的解析ツール。

リポジトリを見る
1.2k15666時間40分前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

Mariana Trench

logo

MIT License .github/workflows/tests.yml

Mariana Trenchは、Androidを対象としたセキュリティに特化した静的解析プラットフォームです。

このガイドでは、お使いのマシンにMariana Trenchをセットアップし、小さなサンプルアプリで最初のリモートコード実行の脆弱性を見つける手順を説明します。これらの手順は、Webサイトでもご覧いただけます。

前提条件

Mariana Trenchは、最新のPythonが必要です。MacOSでは、homebrewを使って最新バージョンを入手できます:

root@kitploit:~
$ brew install python3

Debian系のLinux(Ubuntu、Mint、Debian)では、apt-getを使用できます:

root@kitploit:~
$ sudo apt-get install python3 python3-pip python3-venv

このガイドでは、Android SDKがインストールされており、環境変数$ANDROID_SDKがSDKの場所を指していることを前提としています。

残りのガイドでは、仮想環境内で作業していることを前提とします。次のように設定できます:

root@kitploit:~
$ python3 -m venv ~/.venvs/mariana-trench
$ source ~/.venvs/mariana-trench/bin/activate
(mariana-trench)$

シェルプロンプトの前にある仮想環境の名前は、仮想環境がアクティブであることを示しています。

Mariana Trenchのインストール

仮想環境内でMariana Trenchをインストールするには、次のコマンドを実行するだけです:

root@kitploit:~
(mariana-trench)$ pip install mariana-trench

注:pip installは現在Appleシリコン搭載Macではサポートされていません。開発者ガイドの手順に従ってソースからビルドできます。

Mariana Trenchの実行

ドキュメントの一部である小さなアプリを使用します。次のコマンドで入手できます:

root@kitploit:~
(mariana-trench)$ git clone https://github.com/facebook/mariana-trench
(mariana-trench)$ cd mariana-trench/

これで分析を実行する準備が整いました:

root@kitploit:~
(mariana-trench)$ mariana-trench \
  --system-jar-configuration-path=configuration/default_system_jar_paths.json \
  --model-generator-configuration-paths=configuration/default_generator_config.json \
  --lifecycles-paths=configuration/lifecycles.json \
  --rules-paths=configuration/rules.json \
  --apk-path=documentation/sample-app/app/build/outputs/apk/debug/app-debug.apk \
  --source-root-directory=documentation/sample-app/app/src/main/java \
  --model-generator-search-paths=configuration/model-generators/

# ...
INFO Analyzed 68937 models in 7.47s. Found 9 issues!
# ...

分析により、サンプルアプリで9件の問題が見つかりました。分析の出力は、アプリケーションの各メソッドに対する仕様のセットです。

後処理

仕様自体は人間が読むことを意図していません。結果を見やすくするために、追加の処理手順が必要です。これは、SAPP(PyPiでインストール済み)を使用して行います:

root@kitploit:~
(mariana-trench)$ sapp --tool=mariana-trench analyze .
(mariana-trench)$ sapp --database-name=sapp.db server --source-directory=documentation/sample-app/app/src/main/java
# ...
2021-05-12 12:27:22,867 [INFO]  * Running on http://localhost:13337/ (Press CTRL+C to quit)

出力の最終行は、SAPPが結果を確認できるローカルWebサーバーを起動したことを示しています。リンクを開くと、分析で見つかった4つの問題が表示されます。

結果の確認

サンプルアプリで見つかったリモートコード実行の問題に注目してみましょう。問題コード1(すべてのリモートコード実行)と呼び出し可能なvoid MainActivity.onCreate(Bundle)で識別できます。4つしか問題がないので手動で識別するのは簡単ですが、より多くのルールが実行されると、ページ右上のフィルター機能が役立ちます。

Single Issue Display

この問題は、Mariana TrenchがMainActivity.onCreateでリモートコード実行を発見したことを示しています。データはActivity.getIntentから1コール先の場所から来て、ProcessBuilderのコンストラクタに3コール先まで流れ込みます。問題の右上にある「Traces」をクリックすると、トレースの例が表示されます。

Mariana Trenchによって明らかにされたトレースは、3つの部分で構成されています。

ソーストレースはデータの出所を表します。この例では、トレースは非常に短く、Activity.getIntentがMainActivity.onCreateで直接呼び出されています。 Trace Source

トレースルートは、ソーストレースとシンクトレースが交わる場所を表します。この例では、アクティビティのonCreateメソッドです。 Trace Root

トレースの最後の部分はシンクトレースです。これはソースからのデータがシンクに流れ込む場所です。この例では、onCreateからonClick、executeを経て、最終的にProcessBuilderのコンストラクタに至ります。 Trace Sink

Mariana Trenchの設定

「このツールは、ユーザーが制御するデータとシンクをどのようにして知るのだろう?」と疑問に思われるかもしれません。このガイドは、小さなアプリですぐに始められるようにするためのものです。Mariana Trenchの設定方法については説明していません。詳細は、Webサイトの設定をご覧ください。

コントリビューション

ソースからのビルドやMariana Trenchの開発に関する詳細なガイドは、Webサイトの開発者ガイドをご覧ください。

ライセンス

Mariana TrenchはMITライセンスの下で提供されています。

ツールをダウンロード