ITインフラをトータル支援するサポートサービスインテグレーター

株式会社アルファネット



Webアプリケーションセキュリティの検証のためのローカルプロキシツール(Burp Suite)の利用

2024/11/27更新

1.初めに

Webアプリケーションにてセキュリティの検証を行う場合、Webサーバとブラウザ間にて、どのようなデータ(パラメータとその値)を送って、そのレスポンスを受けているのかを確認したい場合があると思います。

このような場合、ローカルプロキシーツールがあると便利です。

ローカルプロキシーツールは、Webサーバとブラウザ間のデータのやり取りを中間で受けることが出来るツールです。クライアントマシン上で動作します。

・ローカルプロキシーの仕組み

ローカルプロキシーツールを使うと下記のことが出来るようになります。

  • hiddenパラメータのようにユーザが入力できない項目でも、任意のパラメータ値を簡単に指定することができます。
  • ブラウザからのリクエストをローカルプロキシーツールにて一旦キャプチャして、内容を変更した上でWebサーバへリクエストすることが可能です。

ローカルプロキシーツールには、主にZed Attack Proxy (ZAP)、Fidller、Burp Suiteといった製品があります。

今回は、その中でBurp Suiteを紹介します。

2.Burpのインストールと設定

2-1.Burp Suiteとは

Burp Suite は、PortSwigger 社が提供している製品です。

Burp Suiteには、有償版の「Burp Suite Professional」や「Burp Suite Enterprise Edition」、無償で利用可能な「Burp Suite Community Edition」があります。

「Burp Suite Community Edition」は機能制限がありますが、Webサーバとブラウザ間のデータのやり取りを確認・編集する目的ならば、問題なく利用出来ます。

Burp Suiteには、下記のプラットフォーム用のプログラムが提供されています。

  • Windows (x64)
  • Windows (ARM)
  • JAR
  • Linux (x64)
  • Linux (ARM)
  • Mac OSX (x64)
  • Mac OSX (Apple Silicon)

※JAR(Java ARchive)版は、動作させるために別途JRE (Java Runtime Environment)のインストールが必要です。

2-2.インストール

インストール手順となります。今回は、Windows版の手順を説明します。

  1. Burp Suite Community EditionのダウンロードページにアクセスしてBurp Suite Community Editionをダウンロードします。
  2. Download Burp Suite Community Edition_
    >https://portswigger.net/burp/communitydownload

    2024年11月時点の最新バージョンは、「2024.10.2」となります。以後、バージョン「2024.10.2」で説明します。

    また、「ダウンロードするエディション」は「Burp Suite Community Edition」、対応プラットフォームは「Windows (x64)」を選択します。

  3. ダウンロードが完了しましたら、ダウンロードしたプログラム(burpsuite_community_windows-x64_v2024_10_2.exe)を実行します。
  4. Welcome to the Burp Suite Community Edition Setup Wizard」画面が表示されます。
  5. 「Next」ボタンを押して進みます。

  6. 「Select Destination Directory」画面が表示されます。
  7. インストール先ディレクトリが表示されますので、問題がなければ「Next」ボタンを押して進みます。

  8. 「Select Start Menu Folder」画面が表示されます。
  9. 「Create a Start Menu folder」チェックボックスにチェックが入っており、フォルダー名として「Burp Suite Community Edition」が入った状態となっています。

    問題がなければ「Next」ボタンを押して進みます。

  10. インストールが始まります。
  11. 「Completing the Burp Suite Community Edition Setup Wizard」画面が表示されます。
  12. これでインストールが完了です。「Finish」ボタンを押して終了します。

2-3.Burpの起動

  1. スタートメニューから「Burp Suite Community Edition」を選択してBurp Suiteを起動します。
  2. 「Burp Suiteの起動画面」

  3. 「Welcom to Burp Suite Community Edition. Use the options below to Create or open a project.」画面が表示されます。
  4. デフォルトで「Temporary project in memory」ラジオボタンが選択されています。そのまま「Next」ボタンを押して進みます。

  5. 「Select the configuration that you would like to load for this project.」画面が表示されます。
  6. デフォルトで「Use Burp defaults」にラジオボタンが選択されています。そのまま「Start Burp」ボタンを押して進みます。

  7. 初回はBurp SuiteのLearnタブの画面が表示されます。
  8. また、次回以降はBurp SuiteのDashboardタブの画面が表示されますが、タブはマウスでドラックすることで移動可能です。

    【Learnタブの画面】

    【Dashboardタブの画面】

2-4.通信キャプチャの準備

ブラウザからの通信をBurp Suiteでキャプチャするには、利用するブラウザとBurp Suiteにて準備を行う必要があります。

2-4-1.ローカルプロキシポートの設定(Burp Suite側)
  1. Burp Suiteの画面の「Proxy」タブを選択して「Proxy」画面を表示します。
  2. 「Proxy」画面の「Proxy settings」タブを選択して「Settings」画面を表示します。

    「Settings」画面の「Tools > Proxy」の「Proxy Listeners」にてローカルプロキシポートの設定を行います。

    デフォルトでは、ループバックアドレス(127.0.0.1)の8080/TCPポートが設定されています。

    既に8080/TCPを利用していて変更の必要がある場合は、「Edit」ボタンを押して表示される画面より利用していない任意のポート番号へ変更することができます。

    問題なければこのままの値で使用します。

2-4-2.レスポンス取得設定(Burp Suite側)
  1. 「Settings」画面の「Tools > Proxy」の「Response interception rules」にてレスポンス取得設定を行います。
  2. デフォルトでは、リクエスト(送信)のみキャプチャされる設定になっているため、レスポンス(応答)もキャプチャできるように「Intercept responses based on the following rules:」のチェックを入れます。

2-4-3.ローカルプロキシポートの設定(ブラウザ側)

Burp Suiteで設定したポートと同じポート番号をブラウザのプロキシサーバのポートとして設定します。
下記は、FireFoxを例として説明しています。

  1. FireFoxのメニューを開き、設定を選択します。
  2. 「設定」画面が表示されます。
  3. 画面の一番下にある「ネットワーク設定」の「接続設定...(E)」ボタンを押して進みます。

  4. 「インターネット接続」画面が表示されます。
  5. デフォルトで「システムのプロキシー設定を利用する(U)」ラジオボタンが選択されています。

    「手動でプロキシーを設定する(M)」ラジオボタンを選択して、入力可能な状態にします。

  6. 下記を入力します。
  7. HTTPプロキシー(X)  BurpSuiteで設定したポートと同じポート番号をブラウザのプロキシサーバのポートとして設定します。

    下にある「このプロキシーをFTPとHTTPSでも使用可能にする(S)」のチェックボックスにチェックを入れます。

    「OK」ボタンを押します。

    これで、Burp Suiteを使う準備が整いました。

3. Burp Suiteの利用方法(Proxy)

それでは、Burp SuiteにてWebサーバとブラウザ間のデータのやり取りを中間で確認・変更する方法をご説明します。

  1. ブラウザで評価したい対象画面へアクセスします。
  2. 対象画面で操作を行う前に「Inctercept is off」をクリックし、キャプチャを有効化(「Intercept is on」)します。
  3. ブラウザで開いた対象画面を操作します。
  4. 対象画面の操作によりサーバへのリクエストが発生すると、送信リクエストが一旦BurpSuite上にキャプチャされます(リクエストはまだサーバへ到達していません)。
  5. 送信するパラメータ値の変更
  6. リクエストをキャプチャした際に、右側の「Inspector」に表示されている「Request body parameters」を選択することでリクエストされるパラメータ一覧を確認することができます。

    さらに、パラメータ一覧のパラメータの行を選択することで、対象パラメータの項目にアクセス出来ます。

    この状態ではパラメータ名(NAME)や値(VALUE)を変更することが出来るため、リクエストされる値を任意のものへ変更することができます。

    変更した後で「Apply Changes」ボタンを押します。

    「Apply Changes」ボタンを押すとリクエストに変更内容が反映されます。

    Forwardボタンを押すと、キャプチャされた内容がサーバへリクエストされ、その結果(サーバからのレスポンス)がキャプチャされます。

    続けてForwardボタンを押すと、キャプチャされた内容がブラウザに表示されます。以降は、①から⑥の繰り返しになります。

4.その他の設定

その他Burp SuiteのDefault設定にて注意しておいた方が良いものをご紹介します。

  1. Default設定では、Burp Suiteを自動アップデートする設定になっています。自動アップデートされることに不都合がある場合は、「Settings」画面の「Suite > Updates」の「Enable auto-updates(requires restart)」のチェックを外して下さい。
  2. Default設定では、Burpのパフォーマンス改善のため、匿名のフィードバックを送信する設定になっています。
    匿名のフィードバックを送信されることに不都合がある場合は、「Settings」画面の「Suite > Performance feedback」の「Automatically Submit feedback about Burp'sPerformance」のチェックを外して下さい。

5.終わりに

今回は、ローカルプロキシーツールBurp Suiteを使ったWebサーバとブラウザ間のデータのやり取りを中間で確認・変更する方法を簡単にご説明しました。

Webアプリケーションにてセキュリティの検証を行う場合の項目としては、IPAの「ウェブ健康診断 仕様」があります。

こちらは診断項目として基本的なものが紹介されておりますので、ご参照下さい。

また、セキュリティの要件としてご確認される際は、IPAの「セキュア・プログラミング講座2007年版 Webアプリケーション編」をご参照下さい。

ウェブ健康診断 仕様 - IPA

https://www.ipa.go.jp/security/vuln/websecurity/ug65p900000196e2-att/000017319.pdf

IPA「セキュア・プログラミング講座2007年版 Webアプリケーション編」

https://www.ipa.go.jp/archive/security/vuln/programming/web/index.html

なお、これら内容は自らが管理しているサイト以外への実施は厳禁となりますので、ご注意下さい。

Page Top
資料ダウンロードはこちら