ローカルプロキシツール(BurpSuite)の紹介
- 2018/3/18
- コラム

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