HTTPS パケット キャプチャ ツール Fiddler のインストールから使用開始まで。

#はじめに

Fiddler は HTTPS 通信の中身を decrypt して解析ができるツールなので、サポート業務としても大変重宝しているツールになります。
基本的には、ダウンロードして、「Capture Traffic」をクリックするだけで、パケットキャプチャが開始できるのですが、 HTTPS 通信をDecrypt するためにはひと手間加えてあげないといけません。

実際に、 HTTPS 通信を decrypt しない場合とした場合に、 Fiddler でどのように見えるかについて、触れたいと思います。

#インストールから設定まで

1.下記 URL にアクセスし、 Fiddler をダウンロードします。 

https://www.telerik.com/download/fiddler
 
2.下記画面にて「I accept the Fiddler End User Lincense Agreement」のチェック ボックスにチェックを入れた後に、「Dowanload for Windows」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/29cc20fe-3cf1-42b8-6431-93b300fa2588.png)

3.FiddlerSetup.exe ファイルを任意のフォルダに保存します。
4.ダウンロードした exe ファイルをダブルクリックし、下記画面にて「I Agree」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/640e1e44-1f6f-e79b-0e12-37971595ac2b.png)

5.インストール フォルダを指定(基本デフォルトのままで問題ありません)し、「Install」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/a28de6e3-b839-fa9d-6b3c-52e5836cdea7.png)

6.インストールが完了すると下記画面が表示されますので、そのままブラウザを閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/9ec6a835-1aac-7e6d-cb24-9315d5e7c489.png)

7.インストール ウィザードも「Completed」となっていることを確認し、「Close」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/84263aba-c687-7de3-919d-3fd7108cbb26.png)

8.「Windows」→「Fiddler 4」の順に選択し、 Fiddler を起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/4e00e56d-8fa2-a2af-8c98-747ee7605b45.png)

9.下記警告画面は無効化したいので、「Cancel」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/5933a8a4-5b4c-61fb-289b-a145767acd67.png)

10.下記画面が表示された場合は「いいえ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/ac490603-c77f-50ca-b376-51bd90355fc3.png)

11.ここから HTTPS トラフィックを Decrypt するように設定を行います。上部バーの「Tools」→「Options」の順に選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/14ac39ae-286f-60ed-3c51-b6ae369839e5.png)

12.Options 画面より「HTTPS」タブをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/79ce409f-6b6f-9997-771b-b43a9bebc5a7.png)

13.HTTPS タブより「Decrypt HTTPS traffic」のチェック ボックスにチェックを入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/0c6ea35f-1d4e-e959-f7fe-7b388e712e17.png)

14.次に同画面にて、「Ignore server certificate errors (unsafe)」のチェック ボックスにチェックを入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/af82d1ae-bc7b-4469-660c-f5faf1193ae8.png)

15.最後に「OK」ボタンをクリックします。

これで準備完了です。

#HTTPS 通信が decrypt された場合とされない場合を比較してみる。

キャプチャーを行っているときは「Capture Traffic」にチェックマークが入っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/63865293-109e-b62d-5715-26028f7eed0b.png)

既存のキャプチャ ログをすべて削除する場合は、「Ctrl + A」で全選択後に「Remove」→「All Sessions」で全削除できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/cbedf189-fc67-348c-cbc1-95945d15da75.png)

全削除すると下記のとおり、キャプチャがすべて削除されます。
ログ解析などを開始するときなどは、一度既存のパケットキャプチャをすべて消しておくと良いでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/0f37bdf2-d3a9-ce09-ce4c-5a7e689e0169.png)


では HTTPS Decrypt 状態で www.office.com にアクセスしてみます。

UPN を入力して「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/0f79fb27-82ce-1edc-6fef-0746e3841880.png)

パスワードを入力して「サインイン」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/67d561ba-e74c-9a58-dbce-757d7cfdd850.png)

この状態で Fiddler の内容を見てみましょう。
今回の確認作業で注目すべきログは下記の office 365 のエンドポイントにアクセスしたときのログになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/ca0f9aff-ef0f-c5ea-8095-b94ff34f52a5.png)

そもそもエンドポイントって何？って思う人もいるかと思いますが、エンドポイント自体は IT の共通言語で、 Office 365 については下記のように定義されています。

https://docs.microsoft.com/ja-jp/office365/enterprise/office-365-endpoints

>Endpoints are the set of destination IP addresses, DNS domain names, and URLs for Office 365 traffic on the Internet.

一般的には、ユーザーがそのエンドポイントにアクセスすると、あとはサービス(プログラム)側で自動処理が行われるため、ユーザーは何もしなくていいという意味で、「エンド」という言葉が使われているといわれています。
簡単にいうと終着点ですかね。

さて、 HTTPS Decrypt した場合の Office 365 エンドポイントにアクセスしたときのログは、 Fiddler の右画面に「Inspectors」→「Webforms」と選択するとみることができます。
下記はログイン画面で入力した UPN の情報。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/ada95b84-5b38-7c3d-9a18-e992a1e201b5.png)

カーソルを下げると、入力した passwd も見ることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/380a2b5d-0b79-b21b-1074-2953a6af07ca.png)

上記と同じ操作を 「Decrypt HTTPS traffic」のチェックを外した状態で行ってみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/5454f0db-335c-dabd-49f4-fca071e06aaa.png)

すると、下記のとおり、鍵マークがついて、 HTTPS 通信の中身を見ることができません。右側の Webforms も確認してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/f46b2de1-40fd-49d1-ff01-a565b385205e.png)

Decrypt が無効になっているため、何も中身を解析することができません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373423/63b1288a-0d10-933d-0465-f0c774cca973.png)

#おわりに
いかがでしたでしょうか。
せっかく Fiddler を入れても、 「Decrypt HTTPS traffic」のチェックを入れないままパケットキャプチャを取得してしまうと、 HTTPS 通信の中身を何も見ることができないということが分かりました。
最初から HTTPS 通信の decrypt を有効にしてくれれば良いのに…と思わなくもないですが、ログを取るときは上述の設定がちゃんと有効になっているか確認の上、ログを取得しましょう。
最後まで読んでいただきありがとうございました。