サイト内の現在位置

「Auth Analyzer」を使ってみた

NECセキュリティブログ

2025年10月10日

本記事では、WebアプリケーションのセキュリティテストツールBurp Suiteの拡張機能である「Auth Analyzer」についてご紹介します。

目次

はじめに

代表的なWebアプリケーションのセキュリティテストツールであるBurp Suitenew window[1]には標準で搭載されている機能に加え、よりテストを効率化するための多くの拡張機能が存在します。例えば、sqlmapnew window[2]を呼び出すことができる拡張機能やレスポンス内のJSONを整形して可読性を高めることができる便利な拡張機能があります。その中でも今回はアクセス制御の不備をテストできる拡張機能「Auth Analyzer」をご紹介します。
アクセス制御の不備とはOWASP Top 10 2021new window[3]の第1位にもなっている代表的なWebアプリケーションの脆弱性です。非常に多くのWebアプリケーションでアクセス制御の不備が指摘されています。OWASP Top 10 2021では、

  • テストされたアプリケーションのうち、平均3.81%が1つ以上の共通脆弱性タイプ一覧(CWE)を持つ
  • 「アクセス制御の不備」カテゴリにマッピングされたCWEを持つことが判明したアプリケーションの総数は318,000件以上存在

とされています。ページ数の多いWebサイトでは、アクセス制御の不備に関するテストが膨大になる可能性があります。Burpの拡張機能を用いることでそのようなテストにかかる時間を短縮することができます。

Auth Analyzerとは

Auth Analyzerとは、Webアプリケーションにおけるアクセス制御の不備を効率的にテストできる拡張機能ですnew window[4]。Auth Analyzerは権限の異なるユーザ(例:管理者ユーザと一般ユーザ)で同一のWebページへアクセスした際のレスポンスを比較します。この結果から、「管理者ユーザのみに許可されるべき情報に一般ユーザがアクセス可能」といった問題を検出することができます。

Auth Analyzerの主な機能として、以下が挙げられます。

  • リクエストの繰り返しの自動化
  • ヘッダーとパラメータの置換/削除の自動化
  • パラメータ抽出の自動化
    • 例:セッションクッキー/CSRFトークン
  • 詳細な処理フィルター
  • ユーザーフレンドリーなリクエスト/レスポンス比較ビュー
  • 保存とエクスポート機能

このようにAuth Analyzerを用いることで、アクセス制御の不備をテストする上で煩雑な部分を自動化し、テスト結果をエクスポート可能な形式で見やすく可視化してくれます。

Auth Analyzerの検証

Auth Analyzerのインストール

Auth AnalyzerはBApp Storeから簡単にインストールすることができます。BApp Storeには、Burp Suiteの「Extensions」タブ > 「BApp Store」タブからアクセスすることができます(図1)。

図 1 BApp Store画面

また、BApp Storeで拡張機能を選択すると、拡張機能の基本的な説明のほかに、図2のような拡張機能の基本情報を確認できます。特に「Updated」「Rating」「Popularity」などの項目は拡張機能をインストールする際の目安として活用できます。

図 2 Auth Analyzerの基本情報

検証に使用したWebサービス

今回、Auth Analyzerの検証をOWASP Juice Shopnew window[5]で行いました。OWASP Juice Shopとは、SQLインジェクションなどの代表的な脆弱性が作りこまれたやられサイトです(図3)。

図 3 OWASP Juice Shopトップページ

OWASP Juice Shopには管理者ユーザと一般ユーザが存在します。管理者ユーザ/一般ユーザのユーザ名・パスワードは本来であれば脆弱性を悪用して入手しますが、今回はこれらユーザ名・パスワードを入手している前提で進めていきます。
Burp Suiteを使用し、OWASP Juice Shopのログイン時の動作を確認します(図4)。Burp SuiteのProxyでログインした後のリクエストを確認すると、AuthorizationヘッダーとCookieのtokenに同じ値が格納されています。検証の結果、tokenパラメータがセッション管理を行っていることが確認できました。

図 4 OWASP Juice Shopの動作確認

Auth Analyzerの基本的な使い方

図5のように、Auth Analyzerでは、「Add New Session」から新しいセッションを開始します。その後、セッション名の入力を求められます。ここでのセッション名はユーザが任意に設定でき、結果出力の際に使われます。次に、セッションを管理しているパラメータを入力する画面に遷移するため、先ほど確認したtokenを入力します。また、Filterを用いることで、テストを行うリクエストの範囲を指定することができます。
設定後、「Analyzer Stopped」をクリックすることでスタートします。

図 5 Auth Analyzerでの事前設定

スタート後、図6のようなメイン画面に遷移します。
Auth Analyzerでは、パラメータ設定、テストしたWebページの結果表示(Table)、リクエスト/レスポンスの詳細表示の画面がわかりやすくまとめられています。「Analyzer Running」となっている状態でWebページにアクセスすると、そのリクエストは入力したパラメータで自動的に書き換えられ、元のリクエストと書き換え後のリクエストに対するレスポンスが比較されます。その結果はTableから確認でき、TableにアクセスしたURL・比較した結果などが追加されます。

図 6 Auth Analyzerの画面

Auth Analyzerの出力結果

図7の出力結果は、Originalとuser、Originalとadminを比較したときの結果を表示しています。ここで言うOriginial、user、adminはそれぞれ以下の通りです。

  • Original:管理者の認証情報を使用してログインし、Webページにアクセスしたときのリクエスト(比較元)
  • user:Originalが一般ユーザでログインしたときのセッションパラメータに置き換えられたリクエスト
  • admin:Originalが管理者でログインしたときのセッションパラメータに置き換えられたリクエスト

また、出力結果のStatusは以下の3種類が存在します。

  • SAME:Originalと同一のレスポンス
  • SIMILAR:Originalと似たレスポンス
  • DIFFERENT:Originalと異なるレスポンス

今回の場合は、一般ユーザのレスポンスであるuser StatusがSAMEのとき、アクセス制御の不備が存在する可能性があります。例えば、/profile(プロフィール表示画面)へのリクエストに対するレスポンスの比較結果に着目します。user Statusは似ているが異なるページなので、SIMILARである一方、admin Statusは完全に同じページなのでSAMEとなります。リクエスト/レスポンスの詳細表示画面からは、どのようなレスポンスの違いからStatusが判定されたのかを確認することができます。

図 7 Auth Analyzerの出力結果

まとめ

今回は、Burp Suiteの拡張機能「Auth Analyzer」をご紹介しました。
使ってみた所感としては、Filter機能やパラメータ設定などが直感的に操作しやすく、出力結果も理解しやすいと感じました。この他にもBurp Suiteには様々な拡張機能があるため、使いこなしてテストの効率化を行いたいです。

参考文献

執筆者プロフィール

S澤(えすざわ)※ハンドルネーム
担当領域:リスクハンティング

脆弱性診断、インシデント対応などに従事。

執筆者の他の記事を読む

アクセスランキング