2018/03/18公開
【2021.3.19追記】
「Burp Suite Community Edition」を紹介した記事を新たに投稿しています。
こちらもご参照下さい。
Webアプリケーションセキュリティの検証のためのローカルプロキシツール(Burp Suite)の利用
https://www.anet.co.jp/security/engineer_blog/webburp_suite.html
Webアプリケーション開発時の検証において、Webサーバとブラウザ間の通信内容を確認するケースがあると思いますが、このような時にローカルプロキシツールはとても役に立ちます。URLに表示されるパラメータに対しては、ブラウザからも任意の文字列の指定ができますが、hiddenパラメータのようにユーザが入力できない項目はブラウザから直接指定することは困難です。このような場合も、ローカルプロキシツールを利用すれば、任意のパラメータ値を簡単に指定することができます。また、送信に対する応答も併せて確認することができます。
ローカルプロキシツールは、クライアントマシン上で動作します。これによりブラウザからのリクエストを一旦キャプチャして、内容を変更した上でWebサーバへリクエストすることができるようになります。
・ローカルプロキシツールのしくみ
出典:『セキュア・プログラミング講座 (Webアプリケーション編)』 ブートアップセミナー資料の「HTTPの通信を観察する」より
http://www.ipa.go.jp/security/awareness/vendor/programmingv2/web.html
ローカルプロキシツールにはいくつか種類がありますが、ここでは一般的に広く利用されている「BurpSuite」を紹介します。
BurpSuiteはスタンドアロンで動作するJavaアプリケーションのため、実行にはJREを予め導入しておく必要があります。(JREの導入方法の詳細は本ページでは割愛します。)
https://java.com/ja/download/
以下のサイトからFree Editionをダウンロードします。
http://portswigger.net/burp/download.html
BurpSuiteを起動するとライセンス同意画面になります。「I Accept」で先に進みます。製品の品質向上に協力(Help improve~)のチェックは任意で選択してください。
デフォルトでは、ループバックアドレス(127.0.0.1)の8080/TCPポートが設定されています。
既に8080/TCPを利用していて変更の必要がある場合は、OptionsタブからEditボタンにより利用していない任意のポート番号へ変更することができます。
BurpSuiteで設定したポートと同じポート番号をブラウザのプロキシサーバのポートとして設定します。
・Internet Explorerの例
デフォルトでは、リクエスト(送信)のみキャプチャされる設定になっているため、レスポンス(応答)もキャプチャできるように「Intercept responses based on~」のチェックを入れます。
リクエストをキャプチャした際に、「Params」タブを選択するとリクエストされるパラメータ一覧を確認することができます。
リクエストされる値を任意のものへ変更することができます。
続けてForwardボタンを押すと、キャプチャされた内容がブラウザに表示されます。以降は、1から5の繰り返しになります。
今回は、ローカルプロキシツールのBurpSuiteに関する基本的な利用方法についての紹介しました。ローカルプロキシツールは、セキュリティ要件の確認にも利用できるとても有効なツールですので、是非活用していただければと思います。
セキュリティ要件については、IPAの「セキュア・プログラミング講座 (Webアプリケーション編)」で詳しく紹介されていますので、こちらも併せて参照して頂くことをお勧めします。
http://www.ipa.go.jp/security/awareness/vendor/programmingv2/web.html
以上