web-dev-qa-db-ja.com

モバイルSSLアプリケーショントラフィックを傍受して分析する方法

SSLを介してモバイルアプリケーションから送信されたリクエストを分析する最良の方法は何ですか?通信プロトコルは必ずしもHTTP/Sであるとは限らないため、BURP/ZAP/Fiddlerまたはその他のHTTPプロキシーでそれらをインターセプトすることは必ずしも機能しませんが、トラフィックがプロキシーに到達するようにするにはどうすればよいですか?

私はここで同様の主題に関連するいくつかの資料を読みましたが、このタスクを実際に実行するために従うことができる完全なフローの説明が見つかりませんでした。

このタスクを実行するには、アプリケーションがインストールされているデバイスをルート化する必要がありますか?

アプリケーションが証明書のピン留めを使用している場合、これを行う方法はまだありますか?

Whatsappセキュリティモデルがどのように機能するか、つまり悪意のあるユーザーが正当なユーザーのチャット履歴を取得するのを防ぐためにどのようなメカニズムを備えているかを理解することに特に興味があります(実際のログインがないため、Cookie /別のものがあるかどうかを確認します)サーバーの前でユーザーを識別するデバイスから送信されるメカニズム?)

私の組織では、同様の方法で機能するメッセージングアプリケーションの実装を検討しており、悪意のあるユーザーが正当なユーザーのIDを盗むことができないようにしています。 (ログインメカニズムを実装するつもりはありません)

4
user3074662

MacまたはLinuxボックスにアクセスしている、またはアクセスしている場合、httpとともにhttpsトラフィックをインターセプトする優れたアプリケーションは MITMProxy です。通過するトラフィックを表示するだけでなく、簡単に変更できます。 httpsトラフィックを表示するために必要なことは、提供する証明書をインターセプトするデバイスにインストールし、ターゲットデバイスのプロキシ設定をコンピューターのIPに変更し、ポートを8080に設定することです。詳細は- そのドキュメント

5
ajkblue

SSLを介してモバイルアプリケーションから送信されたリクエストを分析する最良の方法は何ですか?通信プロトコルは必ずしもHTTP/Sである必要はないため、BURP/ZAP/Fiddlerまたはその他のHTTPプロキシでインターセプトしても機能するとは限りませんが、トラフィックをプロキシに到達させるにはどうすればよいですか。

従来のHTTPSでは、Burp/Zap/mitmproxyを使用してください。アプリでSSL/TLSスイートを使用する他のプロトコルを見たことはありませんが、アプリをリバースエンジニアリングしてプロトコルに到達するか、暗号化キーを取得してトラフィックを復号化しようとします。しかし、それは多くの時間がかかります。

それが非標準ポートのHTTPS以外のプロトコルであることを本当に確信していますか?

このタスクを実行するには、アプリケーションがインストールされているデバイスをルート化する必要がありますか?

HTTPSスニッフィングにルート化されたデバイスは必要ありません。プロキシと信頼できる証明書を設定するだけです。他のプロトコルの場合-まあ、それは状況に依存します...すべてのトラフィックを選択したゲートウェイにリダイレクトできますが、プロトコルが暗号化されている限り、それはあまり役に立ちません。

アプリケーションが証明書のピン留めを使用している場合、これを行う方法はまだありますか?

はい、証明書のピン留めは両方の主要なプラットフォームで回避できます。どちらもrootが必要だと思いました。

  • Androidの場合、特定の呼び出しをインターセプトし、検証中にtrueを返すように変更することで機能するSSL Trust Killerと呼ばれるCydia Substrate拡張機能があります。証明書チェックの独自の実装がない限り、これは機能します。それ以外の場合は、証明書のチェックに実装バグがある可能性が高いです;)

  • iOSにはいくつかのメカニズムがあり、私が使用するものはSnoop-itフレームワークを介したものです。それがうまくいかない場合は、いつでもメソッドのスウィズリングに戻すことができます。

Whatsappセキュリティモデルがどのように機能するか、つまり悪意のあるユーザーが正当なユーザーのチャット履歴を取得するのを防ぐためにどのようなメカニズムを備えているかを理解することに特に興味があります(実際のログインがないため、Cookie /別のものがあるかどうかを確認します)サーバーの前でユーザーを識別するデバイスから送信されるメカニズム?)

私の組織では、同様の方法で機能するメッセージングアプリケーションの実装を検討しており、悪意のあるユーザーが正当なユーザーのIDを盗むことができないようにしています。 (ログインメカニズムを実装するつもりはありません)

まあ、あなたの最善の策は、アプリケーションのセキュリティ評価のための有能な侵入テスターを雇うことです。 WhatsAppのセキュリティは非常に高いはずです。厄介なセキュリティインシデントがほとんどなく、大規模なユーザーベースを備えた注目度の高い組織であり、セキュリティを真剣に受け止めているからです。しかし、確信が持てません。

この投稿が少し役に立てば幸いです。

4
user1164108

あなたはそれを達成するためにいくつかの方法を使うことができます:

モバイルAndroidデバイスを使用している場合、ホームワイヤレスに接続し、コンピューターをホストとして使用してMITM(中央の男性)を実行し、すべてのモバイルパケットをWireshark(?)を使用してパケットをホストおよび監視する

blueStacksなどのエミュレーターを使用している場合は、ProxyCapをインストールして設定を編集し、ローカルのProxyCapを介してすべてのbluestacksパケットをリダイレクトできます。

Androidデバイスにアプリをプロキシにリダイレクトするデバイスにインストールするいくつかのアプリがありますが、それらは100%機能しません。また、ほとんどのアプリはプロキシルールに適用されません。また、ルート電話はより多くを提供しますこの種のものをいじるときのオプション

これを行う方法が他にもある場合は、共有してください:)

0
nir