この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
今回は、スマートフォンアプリ等のHTTP、HTTPS通信をWi-Fi接続から、プロキシツールBurp Suiteを経由させることによって通信内容を確認します。脆弱性診断の為の方法ではありますが、サーバサイドやアプリの開発にも利用できるかと思います。
はじめに
Burp Suiteは、ウェブアプリケーションの脆弱性検査を行うことができるツールです。利用の仕方により不正アクセス行為と判断される可能性があります。またサービス停止やデータの破損が起こる場合もありますので事前にバックアップを行うなどしてください。そして必要に応じて管理者の許可を得て利用してください。
概要
ノートパソコンの無線LANをAPモードにして、通信を経由させる方法などもありますが、環境によって設定が複雑な場合や、うまく動作しないことがあります。今回はプライバシーセパレータなどの設定されていないWi-Fiルータにスマートフォン接続。スマートフォンの通信を、Wi-Fiルータ経由で接続できるPCにプロキシツールを用意し内容を確認します。
前回は、プロキシツールOWASP ZAPを利用する投稿をしましたが、今回はBurp Suiteを利用してみます。英語のメニューがわかりにくい場合は、Burp Suiteを日本語化する方法も試してください。
また以前に投稿した、Kali Linuxには、Burp Suiteの他にも、OWASP ZAPやwiresharkがインストールされています。
wiresharkなどで別のプロトコルの通信など詳細に確認を行うことも可能です。
Burp Suiteについて
Burp Suiteは、PortSwigger社が開発を行っているプロキシツールで、JAVAで作成されているためWindowsやMac、Linuxなどの環境で動作します。Burpは、日本語の処理など難がある部分もありますが、手動で脆弱性診断を行う場合に有用なツールです。Free EditionとProfessional Editionがあり、今回の内容はFree Editionでも行うことができます。
- PortSwigger社 Burp Suiteの入手先
https://portswigger.net/ - Burp Suiteを日本語化する方法
https://doruby.jp/users/r357_on_rails/entries/BurpSuite-Japanese
確認機種
参考までに今回は下記のような環境で確認しています。
- macOS Sierra
- Burp Suite 1.7
- iphone 7 ios10
- Android 4.2.2
Burp Suiteの設定
まず通信を経由させるPCでプロキシツールBurp Suite起動します。Burp Suiteのデフォルトの設定では、自身を起動しているローカルPCからの接続のみを許可しているので、他の端末からも接続を受け付けるよう設定を変更します。
設定箇所は、ProxyタブのOptionsタブ内Proxy Listenersで、デフォルトのものを選択しEditからBind to addressをAll interfacesに変更するなどします。
デフォルトのものを変更せずに、Addでポートを変えたものや、受け付けるインターフェースを変えたものを用意し切り替えるという方法にすることも可能です。(もちろん同じポートに複数設定はできません)
また、このPCのIPアドレスを確認しておきます。
ios端末の設定
Burp Suiteを起動しているPC経由で通信を行うように、ios端末を設定します。設定、Wi-FiでプロキシPC側と通信が行えるAPと接続を行います。HTTPプロキシを手動に設定し、プロキシPCのIPアドレスとBurp Suiteで設定を行ったポート番号を指定します。
Burp Suiteのinterceptがoffになっていることを確認し、端末のsafariなどのブラウザで通信が行えるか確認します。
次にSSL通信の内容を確認できる状態にするための設定を行います。端末のブラウザで http://burp/ を表示します。
表示がされない場合は、プロキシPCのIPアドレスやポートを指定して接続してみてください。
右上のCA certificateをタップし、端末に証明書を導入します。
android端末の設定
android端末でもios端末と同様のことを行いますが、OSや機種によって設定方法が異なる場合や、そもそも設定変更できる部分がないものも存在するので注意が必要です。
Wi-Fiで長タップ?ネットワークの変更を選択します。プロキシホスト名、プロキシポートにBurp Suiteが起動しているプロキシPCの情報を入れます。
端末のブラウザで http://burp/ を表示します。右上のCA certificateをタップし、端末に証明書を一旦内部ストレージにダウンロードします。
設定、セキュリティで、内部ストレージからインストールをタップし、先ほどダウンロードした証明書を導入します。
Burp Suiteで通信の確認
上記の設定をしたうえで、アプリを使い通信を行うと、通信内容がBurp Suiteで確認が行える状態になっています。
ProxyタブのHTTP historyでHTTPS通信が行われているか、内容が取得できているか確認してみてください。
おわりに
iosアプリは、ATS(App Transfer Security)の有効化が今後必須になるようです、対応のためHTTPS通信の確認が今以上に必要になってくるかもしれません。今回紹介した方法をテストや確認に活用していただければと思います。
以上、スマホアプリの通信をBurp Suiteで確認する方法についての紹介でした。
関連記事など
- Kali Linux 2017.1 導入と日本語化
- Kali Linux(2016.2)の日本語利用について
- Mac版のOWASP ZAPで脆弱性チェックの設定
- Burp Suiteを日本語化する方法
- Rubyのサポート期間一覧
脆弱性診断サービスなど
弊社、アピリッツではセキュリティ診断サービスを行っております。
下記リンクから内容の確認と、問い合わせが可能です。