Proxyツール mitmproxy編

 今回はプロキシツールである、「mitmproxy」について話したいと思います。

 以前投稿した「Proxyツール Burp Suite編」という記事でBurpについて話しています。その中で、脆弱性診断サービスを提供する日本企業の多くは、プロキシツールとしてBurpを使っていると書きました。恐らく今も大きくは変わらないだろうと思います。一方で情報セキュリティのコミュニティやセキュリティエンジニアの人と話していると、「mitmproxyの話が最近よく出てくるようになったな」という印象を受けます。

mitmproxyとは?

 「mitmproxy」の特徴としては以下のものがよくあがります。

  • 無料のOSS(オープンソースソフトウェア)のHTTPプロキシ
  • CLI、GUIで通信の傍受・リクエストの編集、再送信などの操作ができる
  • Pythonでアドオンやスクリプトを追加できる
  • Linux、Windows、macOS上で利用できる

 もちろん他にも様々な特徴があるので、詳細を知りたい方は公式ドキュメントをご確認ください。

なぜmitmproxyを利用するのか?

 ここまで読んでいただいて、「他のプロキシツールと、mitmproxyはどう違うの?」と思った方も多いと思います。

 あくまで個人の感想ですが、mitmproxyも単なるHTTPプロキシツールなので、何も他のとは変わらないと言えば変わらないです。ただし、HTTPプロキシツールの性能がどんどん上がってきた結果、「通信をちょこっと確認したり、少しリクエストの中身をいじるだけならシンプルなツールで十分だな」と思う脆弱性診断やペンテスト領域のセキュリティエンジニアが出てきたのが大きな理由なのではないかと思います。

 脆弱性スキャナという使い方をしないエンジニアにとっては、(ブラウザの開発者モードよりは使いやすい)シンプルなプロキシツールとしてmitmproxyを利用しているというイメージです。

 また、その他の理由としては脆弱性診断やペンテスト領域のセキュリティエンジニアはPythonの学習をしている人が多いため、mitmproxyはPythonで機能を追加できるという点がより自分好みにカスタマイズしたい人にハマっている印象です。

 あとは、スマホアプリケーションの脆弱性診断の方々でPacketProxyを利用していた方々が流れてきているという話も聞きます(なぜ流れてきているのか理由を聞き忘れました、申し訳ございません)

最後に

 ここまでざっとmitmproxyについて話してきて、「じゃあ結局HTTPプロキシツールはどれを使えばよいの?」という話ですが、結論としては自分の好みや目的にあったものをお使いください、です!

 私自身HTTPプロキシツールを自作したいと思ったことがあるぐらいなので、恐らく様々なHTTPプロキシツールが今後も出てくると思います。興味を持てれば触ってみて、楽しむ。業務で本格的に利用するのであれば本気で使い倒す。みたいにその都度その都度、対応は使い分ければいいと思います。