概要
キャプチャーしたHTTP、HTTPS、FTPの通信内容を閲覧したり、変更したりすることができるプロキシサーバーです。Fiddlerには複数の製品が用意されており、macOS、Windows、Linuxに対応したFiddler EverywhereやWindowsに特化したFiddler Classicなどがあります。本記事で掲載する画面は、Fiddler Classicを用います。
なお、HTTP、HTTPS、FTP通信以外のプロトコルには対応していないため、他のプロトコルによる通信をキャプチャーするためには、別のツール(Wireshark、Network Monitorなど)を使用する必要があります。
下図は、本サイトであるサイバーセキュリティ情報局(https://eset-info.canon-its.jp/malware_info/)にアクセスした通信をFiddlerでキャプチャーした画面です。青枠にキャプチャーしたパケットの一覧が表示されており、選択するとその通信の詳細がオレンジ枠と緑枠に表示されます。
マルウェア解析における利用方法
以下にマルウェア解析におけるFiddlerの利用方法を3つ紹介します。
通信先を特定する
マルウェアの中には、攻撃者が用意したサーバー(ダウンロードサーバー、C&Cサーバーなど)と通信を行うものがあります。HTTP、HTTPS、FTP通信に限られますが、Fiddlerを利用することで、その通信先の一覧を取得することができます。また、通信先と接続できた場合には、送受信されるデータの確認も可能です。
通信を行うプロセスを特定する
Fiddlerはキャプチャーしたパケットに対して、各々がどのプロセスで処理(送受信)されているかを表示します(上図青枠内の右端列”Process”)。上図の場合、サイバーセキュリティ情報局(https://eset-info.canon-its.jp/malware_info/)にアクセスしたプロセスはmsedge(Microsoft Edge)で、そのプロセスIDが6544であることがわかります。
通信先を変更し、ダミー通信を確立する
通信を行うマルウェアを解析する際、その通信先に接続できないことがあります。これは、攻撃者の用意したサーバーが、数時間から数日でオフラインになることが多いためです。
加えて、マルウェア解析環境をインターネットに接続する行為は、DDoS攻撃やスパムメールの送信など、サイバー攻撃に加担してしまう危険性があるため、最小限に留める必要があります。
これらの理由から、マルウェアアナリストは解析環境がインターネットや攻撃者の用意したサーバーと通信できない状態で解析を進めなければならないことがあります。このような場合に選択できる方法の1つに、キャプチャーしたパケットの通信先を自身で構築したサーバーなどへ変更し、疑似的な通信を確立させるものがあります。Fiddlerはこのような解析を行う際にも活用できます。
以下では、192.168.1.1へのHTTP通信を、Fiddlerを用いて192.168.1.2:8080へ変更する様子を紹介します。
本検証環境では、192.168.1.1は存在せず、192.168.1.2の8080番ポートにWebサーバーを構築しています。
①ブレークポイントを設置
キャプチャーした全通信に対して、リクエストが処理される前にブレークポイントが設置されるモードにします。
その結果、存在しない192.168.1.1に通信を送信するとエラーにはならず、待機状態となります。
②通信内容を変更
待機状態の通信に対して、通信先を自身で作成したWebサーバー(192.168.1.2:8080)に変更します。
以上の操作により、通信内容を変更し、疑似的に通信を確立することができました。