
Burp SuiteとFridaの新しい架け橋!
Brida は、Burp Suite と Frida の間のブリッジとして機能する Burp Suite 拡張機能です。アプリケーションとそのバックエンドサービス/サーバー間でやり取りされるトラフィックを改ざんしながら、アプリケーション自身のメソッドを使用および操作できます。Frida がサポートするすべてのプラットフォーム(Windows、macOS、Linux、iOS、Android、QNX)をサポートしています。
このアイデアは、ランダムキーを使用する強力な対称暗号化を採用したいくつかのモバイルアプリケーションの分析中に生まれました。正しい秘密がわからなければ、Burp でもカスタムプラグインでもデータを変更できませんでした。より一般的には、アプリケーションのロジックは暗号トークンに依存していたり、複雑なチャレンジレスポンスアルゴリズムを使用していたりします。メッセージをどのように改ざんすればよいでしょうか? 多くの場合、唯一の実行可能なアプローチは、アプリケーションを逆コンパイル/逆アセンブルし、目的の関数やメソッドを特定して、それらを再実装することです。このアプローチは明らかに時間がかかり、常に実用的であるとは限りません。例えば、トークンの生成や暗号化ルーチンは、デバイス(の状態)に厳密に関連した暗号資材に基づいていたり、保護された領域に保存されていたりして、直接アクセスできない場合があります。そこで Brida の出番です。キーや証明書を抽出してルーチンを書き直す代わりに、アプリケーション自身に面倒な作業を任せてみてはいかがでしょうか?
簡単に答えると、すべての人です!
詳しく説明すると、Brida はツールのコレクションです。日常的なモバイル評価を高速化し、新しい Frida ユーザーを支援するために作成されたものもあれば、Brida が真価を発揮する非常に複雑な状況に対処することを目的としたものもあります。
日常的なモバイル評価の処理と高速化に役立つツールは次のとおりです:
しかし、Brida 作成のきっかけとなったアイデアは、HTTP リクエストとレスポンスの機密性と整合性を保護するために複雑なセキュリティ機能が導入されているターゲットモバイルアプリケーションのウェブサービスを、ペネトレーションテスター/リバースエンジニア/ハッカーが分析できるようにすることです。リクエストとレスポンスに適用される暗号化、難読化、署名ルーチンは、テスターの作業を非常に困難で時間のかかるものにします。なぜなら、通常はセキュリティメカニズムをリバースエンジニアリングし、最初に HTTP メッセージを復号/デコードし、その後編集されたメッセージを暗号化/難読化/署名するための Burp Suite プラグインや外部ツールを実装する必要があるからです。これは、相互運用性やパフォーマンスを目的として HTTP リクエスト/レスポンスのボディをフォーマットするためにカスタムバイナリプロトコルが使用されるなど、セキュリティ以外のシナリオにも当てはまります。
Brida は、リバースエンジニアリングの労力を最小限に抑え、(ほとんどの状況で)開発の労力を完全に排除することで、これらの手順を可能な限り高速化しようとします。Brida は、Frida のおかげでモバイルアプリケーション自体が使用するモバイル関数をそのまま使用して、HTTP リクエストとレスポンスを検査および編集するカスタムプラグインをグラフィカルに作成できるエンジンを提供します。例として、すべてのリクエストとレスポンスをカスタム/未知の暗号化アルゴリズムで暗号化/復号するモバイルアプリケーションを考えてみます。Brida を使用すると、モバイルアプリケーションが暗号化/復号に使用するモバイルコードを直接利用して、暗号化された HTTP メッセージを復号するシンプルなカスタムプラグインをグラフィカルに作成できます。もう 1 つの例は、署名付き HTTP リクエストがバックエンドに送信されるときに、アプリケーション自体が使用するのと同じモバイル機能を使用して透過的に署名を更新するカスタムプラグインです。
より詳細には、Brida は以下のプラグインをグラフィカルに作成できます:
そして、Brida のカスタムプラグインエンジンが非常に複雑な状況に対応できない場合でも、Brida にターゲットモバイルアプリケーションの関数を拡張機能のデータに対して実行させるタスクを任せることができる外部 Python/Java Burp Suite 拡張機能を作成することも可能です。Brida の「Generate Stubs」ツールは、Brida ブリッジを使用するために外部 Python または Java 拡張機能に貼り付けることができる Java または Python コードを生成します。
Frida 17 では、ツール自体とその JavaScript API に大きなアップデートがもたらされました。JS コードの大規模なリファクタリングが必要となり、以前の frida バージョンとの互換性が失われました。そのため、Brida の最新バージョンでは frida 17 以上が必要です。古いバージョンの Frida を使用する必要がある場合は、GitHub リリースからバージョン 0.6pre をダウンロードできます。
要件:
pip install frida frida-tools pyro4)GitHub からのインストール:
Burp Suite BApp Store からのインストール:
BApp Store での更新には時間がかかります。最新バージョンについては GitHub を確認してください。
要件:
pip install frida frida-tools pyro4)GitHub からのインストール:
MacOS ではパスエラーがよく発生します。システムパスに問題がある場合は、このリンク を参照してください。
Brida は Gradle または Maven を使用してビルドできます。Brida は、この フォーク にある変更版の RSyntaxTextArea を使用しています。
Gradle でのビルドはより簡単です。"jar" タスクがすべてを行い、変更版の RSyntaxTextArea のコンパイル済みバージョン(フォルダ "libs")を使用します。
Maven で Brida をビルドできるようにするには、次のパラメータを使用して変更版の RSyntaxTextArea をローカルに Maven インストールする必要があります:
インストールと使用上の注意は、Wiki ページ にあります。
HackInBo 2017 Winter Edition で発表した最初のバージョンに関するカンファレンスのスライドは、以下で入手できます:
Hack In The Box 2018 Amsterdam で発表したバージョン 0.2 の新機能に関するカンファレンスのスライドとビデオは、以下で入手できます:
Hack In Paris 2020 2021(COVID-19 の世界的状況により延期)で発表したバージョン 0.4 0.5 の新機能に関するカンファレンスのビデオは、以下で入手できます:
Demo フォルダに 2 つの異なるデモアプリケーション(Android 用と iOS 用)があります。
デモフォルダには、アプリが使用する暗号化メカニズムをバイパスするために使用できる Brida プラグインも含まれています!
Brida は、動的フックとバイナリ検査のために多くの Frida コードを使用しており、以下の方々の作業に基づいています:
さらに、Brida は、多くのセキュリティ機能を検査/バイパスするために、さまざまな著者によって開発された多くの Frida フックを統合しています。Brida の「フックと関数」セクションに Frida コードを採用したプロジェクトのリスト(かなり網羅的であることを願っています)は次のとおりです(順不同):

Copyright (c) 2025 Brida
ここに、本ソフトウェアおよび関連文書ファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを制限なく扱うことを許可します。これには、ソフトウェアの複製、変更、結合、出版、頒布、サブライセンス、および/または販売の権利、およびソフトウェアを提供された者にこれらを行うことを許可する権利が含まれますが、これに限定されません。ただし、以下の条件に従うものとします。
上記の著作権表示およびこの許可表示は、ソフトウェアのすべての複製または重要な部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示的か黙示的かを問わず、いかなる保証もなく提供されます。これには、商品適格性、特定目的への適合性、および非侵害に関する保証が含まれますが、これに限定されません。いかなる場合においても、著作者または著作権所有者は、契約行為、不法行為、またはその他の行為にかかわらず、ソフトウェアまたはソフトウェアの使用またはその他の取引に起因または関連して生じるいかなる請求、損害、またはその他の責任についても責任を負わないものとします。