iOSアプリの通信内容を確認する(2019/6時点)
iOSアプリのデバッグや調査の際に通信内容を確認したいことがあります。
Burp Suiteというローカルプロキシツールを使って通信内容を確認しました。
目次
全体像
下図のように、Burp Suiteを経由して通信をする環境を整えます。
環境
Burp Suiteがインストールされたパソコンと、iOS端末を同じネットワークに参加させておきます。
Burp Suiteは、Windows, Mac, 各種Linuxなど、任意の環境で動作させることができます。
今回は最初からBurp SuiteがインストールされているKali Linuxを使いました。
Burp Suiteのダウンロードはこちら。
手順
1.Burp Suiteの設定
Burp Suiteを起動して、プロキシの設定をします。
Burp Suite上で「Proxy->Options」を表示して「Add」をクリックします。
「Bind to portに8080を設定」し、「All Interfaces」にチェックを入れて「OK」をクリックします。
最初から設定されていた「127.0.0.1:8080」のチェックを外し、追加した「*:8080」にチェックを入れます。
「Proxy->intercept」で「intercept is off」にしておきます。
2. iOS端末に証明書をインストール
iOS端末にBurp Suiteの証明書をインストールします。
iOS端末上のsafariで「 http://burp 」にアクセスします。
画面右上の「CA Certificate」をタップします。
(https://support.portswigger.net/customer/ より)
iOS端末の「設定->一般->プロファイルとデバイス管理」から「PortSwigger CA」を選択してインストールします。
iOS端末の「設定->一般->情報->証明書信頼設定」から「PortSwigger CA」の設定を有効にします。
3.IOS端末のプロキシ設定
iOS端末の「設定->wifi」に移動します。 接続しているSSID名の右にある「i」をタップします。
「HTTPプロキシ->手動」を選択し、Burp Suiteが動いているパソコンのIPアドレスとポート(8080)を指定します。
4.接続テスト
iOS端末でアプリを起動したり、ブラウザで任意のURLにアクセスします。 Burp Suiteの「Proxy->HTTP history」に通信時のHTTPリクエストとレスポンスが表示されれば成功です。
最後に
iOS端末の通信内容を確認しました。
以前同じことをしたことがあったのですが、iOSのバージョンアップに伴って「設定->一般->情報->証明書信頼設定->ルート証明書を全面的に信頼する」の手順が追加で必要になっていました。
手順が追加されたことを知らなかったので、「あれ?なんでつながらないんだ?証明書のエラー??」としばらく悩んだのですが、公式サイトの手順がしっかり更新されていました。
やったことのある作業でも、「詰まったら公式のドキュメントを確認することは大切」という学びがありました。
参照
フリー素材サイト