Burp Suiteを使ってiPhoneのHTTPトラフィックを確認する

## 背景
外部APIを使用したWEBアプリケーション開発では、エンドポイントに送信したリクエストに対してどのようなレスポンスが返されたのかを確認するために、HTTPトラフィックの解析が必要になることが多い。 

PCではディベロッパーツールを利用することで簡単に解析が可能だが、モバイル端末におけるブラウザ以外のアプリケーションがどのような通信を行っているのかを確認する方法には、少し工夫が必要となる。

本記事では、そのようなケースに対応するための1つの方法としてBurpSuiteを取り上げ、  
設定手順などを備忘録として記録する。

## Burp Suiteとは
Burp Suiteは、Webアプリケーションのセキュリティテストを行うための統合プラットフォームである。  
ポートスウィガー（PortSwigger）社が開発したツールで、主にWebアプリケーションの脆弱性診断やセキュリティ検査を行う際に使用されることが多い。セキュリティ専門家やペネトレーションテスターに広く利用されている。

## 使用環境・ソフトウェア
- Windows 11
- iPhone SE（第3世代) iOS version 17.6.1
- Burp suite Community Edition

## 手順.1 Burp Suiteのインストール

### 1.1 公式サイトからBurp Suiteをダウンロード
[https://portswigger.net/burp/releases/professional-community-2021-4-2?requestededition=community](https://portswigger.net/burp/releases/professional-community-2021-4-2?requestededition=community)からインストール  

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/d5edb812-8849-75f8-04fe-78403594ae81.png)


### 1.2 インストーラーを起動
ダウンロードされたインストーラーを起動 

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/b149d4bd-2420-6845-5c7b-8b5552010313.png)

Nextを押下

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/b12e4ed7-2a29-8072-b725-ac824584e6e0.png)


インストール先指定(特に指定がなければデフォルトでOK)  

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/89aa5b87-d381-0a0b-c665-d19cf6682f03.png)


ショートカットの作成先指定(特に指定がなければデフォルトでOK)  

![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/83a38561-c5ad-e785-01bb-bc92a29ba71f.png)


インストール完了、Finish押下  

![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/f73ac4ee-1490-e90c-8e26-ef9115f4e9c3.png)


## 手順.2 Burp Suiteのプロキシ設定

### 2.1 Burp Suite起動  
ショートカットの作成先に以下のようなショートカットが作成されるので、クリックしてBurp Suiteを起動させる

![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/6ab6392a-a899-8b78-9515-7f1ca0df35fb.png)
 

プロジェクトの選択画面が表示されるが今回は、ComunityEditionを使用する都合上、「Temporay project in memory」しか選択できないので、このまま「Next」を押下  

![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/2b75e158-f79b-ee4e-5e61-f476ab3bf57a.png)


既存の定義ファイルを読み込むかの確認画面が表示されるが、
今回は完全新規で作業を行うためこちらもこのまま「Start Burp」を押下

![9.pnh.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/ed51c443-7d46-9bf1-c3d7-abb19b1b1a15.png)


起動すると、以下のようにダッシュボードが表示される  

![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/df36c481-af4a-18e3-97ac-9551bfb3347b.png)


### 2.2 プロキシリスニング設定

### Proxyタブを開き、Proxy Settingウィンドウを表示

![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/843b5dd1-7728-7327-c996-816d5445193e.png)


Proxy Settingウィンドウ  

![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/6f0be97c-de0d-54bc-3128-eb2059fe5a91.png)


### 2.3 Proxy listenerに新規設定追加

「Proxy listenrs」セクションの「Add」ボタンを押下  

![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/7e0f7a96-72e4-a254-beb9-e54e09988bc7.png)


新規プロキシリスナー作成ウィンドウが表示されるので任意のポート番号と、使用しているPCのローカルIPアドレスを指定し「OK」押下

![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/6079bd4d-b45d-6c6f-b4d1-ae1c70650796.png)


## 手順.3 iphoneのプロキシ設定

### 3.1  iphoneのWi-Fi設定を開き、接続しているネットワークを選択(PCと同じネットワーク)

![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/1040ad3d-6a4b-b0e0-8591-a5a5fb51b398.png)


### 3.2  プロキシ設定を選択し、Proxy listenerに設定したIPアドレスとポート番号を指定

![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/99f010ff-c0c8-06d7-915b-2b3f531426d7.png)



## 手順.4 Burp Suiteの証明書をiphoneにインストール

### 4.1 Burp Suiteで、Proxy > Intercept > Open Browserをクリック

![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/18f93394-1837-e222-253a-817dfc3d9ea3.png)


### 4.2 Burp Suiteの内蔵ブラウザが開くので、以下のURLにアクセスし、CA証明書をダウンロード
```
http://burp/cert
```

![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/f6ce97a0-6b88-46fd-57e7-6740b83cdbec.png)


### 4.3 ダウンロードしたCA証明書をiphoneに送信

iphone内にCA証明書を格納し、CA証明書をタップする

![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/89f6aa7e-761d-a3c8-7e37-6646e9cc6691.png)


タップすると以下の表示が出る

![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/92b46e79-e307-c077-ba5f-71c0a9909b1d.png)


### 4.4 設定画面からCA証明書をインストールする

設定画面に「ダウンロード済みのプロファイル」と表示されるので選択し、
CA証明書をインストールする

![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/77ef0ed4-ae14-3538-e2e7-8b105fd11e5d.png)



### 4.5 インストールしたCA証明書の信頼設定をする

iphoneの設定アプリで、一般 > 情報 > 証明書信頼設定を開き、
インストールしたCA証明書の信頼設定をする

![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/9d970f21-5d57-1457-6404-2f0064c9025d.png)


## 手順.5 Burp Suite上でiphoneのHTTPトラフィックを確認

Proxy > HTTP historyを開き、実際にHTTPトラフィックを補足できてるか確認する  

以下、iphoneでGoogle検索を使用して「柴犬」と検索した際の様子  

![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/fd1efed8-bb05-b36b-9830-52d82344dc06.png)


![24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3631355/ba566010-4469-effd-61db-b1d7123ace30.png)


## 終わりに
本記事では、Burp Suiteを使用してプロキシを構成し、  
iPhone上で行われるHTTPトラフィックを解析することができる環境を構築した。  

なお本手順を実行する際にPCのファイアウォールやiPhoneのセキュリティの設定を変更した場合は、作業終了後に設定を戻すことを強く推奨する。