AeyeScan blog 第5回「生成AIオプション詳説:認可制御の不備の脆弱性の自動検出成功」 | ScanNetSecurity
2024.04.29(月)

AeyeScan blog 第5回「生成AIオプション詳説:認可制御の不備の脆弱性の自動検出成功」

認可制御の不備は、ページに対する本来のアクセス権限を推測する必要があるため、ツールでの自動検出は困難というのが通説でした。しかし、AeyeScanの自動巡回エンジンとChatGPTのような高性能の生成AIを組み合わせることにより、高い精度で検出することが可能になります。

製品・サービス・業界動向
(イメージ画像)
  • (イメージ画像)
  • HTMLの情報をChatGPTに入力して、管理者メニューかどうかを判別するプロンプトを作成

 前回は、生成AIオプションのスキャン機能のうち、セカンドオーダーXSS の検出方法を解説しました。

 今回は、認可制御の不備の脆弱性の検出方法について解説します。

●認可制御の不備の脆弱性

 Webアプリケーションにおける認可制御の不備とは、どの利用者にどの操作を許可するかを制御する、認可制御の仕組みが適切に実装されていない状態を言います。認可制御の不備の脆弱性がある場合、権限のないユーザーが機密データにアクセスしたり、他のユーザーのアカウントを操作したりすることが可能になります。

 典型的な脆弱性とその影響には以下があります。

- 権限昇格: 低い権限のユーザーが、高い権限を必要とする操作を実行できる。
- なりすまし: ユーザーが他のユーザーと同等の権限を持ちながら、他のユーザーのデータにアクセスできる。
- アクセス制御の回避: 権限のないエンドポイントや機能へアクセスできる。

●攻撃シナリオ

 攻撃シナリオについて、OWASP Top10 2021 の記載例をベースに説明します。

 攻撃者は、ブラウザで管理者ページの URL を直接指定してアクセスします。本来、管理者ページにアクセスするには管理者権限が必要です。

https://example.com/app/admin_getappInfo

 管理者権限のないユーザが管理者のページにアクセスできるなら、脆弱であると判定できます。

●ChatGPT を活用した認可制御の不備の検出方法

 認可制御の不備は、ページに対する本来のアクセス権限を推測する必要があるため、ツールでの自動検出は困難というのが通説でした。

 しかし、AeyeScan の自動巡回エンジンと ChatGPT のような高性能の生成AI を組み合わせることにより、高い精度で検出することが可能になります。

 ツールで認可制御の不備を検出する仕組みを構築するにあたり、まずは検出フローから整理していきます。

●検出フロー

 手動診断を行う人間(脆弱性診断士)は、下記のような工程を経て、脆弱性の有無を判定します。

1.管理者アカウント(権限の高いアカウント)でサイトを巡回
2.一般ユーザアカウント(権限の低いアカウント)でサイトを巡回
3.巡回結果の差分を抽出し、管理者アカウントのみに存在するメニューを特定。それを管理者メニューとする。
4.一般ユーザアカウントで管理者メニューにアクセス可能かどうかを確認する。アクセスできたら脆弱と判定する。

 各工程を自動化することができれば、認可制御の不備のツール検出が可能であるといえます。
ここからは、AeyeScan でどのように自動化を進めたかを説明していきます。

●各工程の自動化方法

・管理者アカウント(権限の高いアカウント)でサイトを巡回

・一般ユーザアカウント(権限の低いアカウント)でサイトを巡回
AeyeScan には自動巡回機能が備わっており、上記2点の条件は達成できていました。

・巡回結果の差分を抽出し、管理者メニューを特定
管理者アカウントとユーザアカウントの巡回結果を比較すれば抽出可能と思われますが、ユーザに紐付く登録データの違いなどでも差分が発生するため、単純な差分の比較だけで管理者メニューを特定することは困難でした。そこで ChatGPT の力を借りることにしました。

・一般ユーザアカウントで管理者メニューにアクセス可能かどうかを確認
AeyeScan の画面遷移再現機能を使用して、一般ユーザアカウントで管理者メニューの URL にアクセスし、アクセス可否を確認します。

工程

実現方法

備考

管理者アカウントでサイトを巡回

AeyeScanの自動巡回機能

一般ユーザアカウントでサイトを巡回

AeyeScanの自動巡回機能

巡回結果の差分を抽出し、管理者メニューを特定

ChatGPTの支援

ロジックのみでは困難

一般ユーザアカウントで管理者メニューに

アクセス可能かどうかを確認

AeyeScanの画面遷移再現機能

●管理者メニューを特定するプロンプトの作成

 必要な機能が分かったので、管理者メニューを特定するためのプロンプトを作成していきます。

 対象サイトの HTML は、以下としました。

<div class="menu">
  <!-- 共通メニュー項目 (全ユーザー対象) -->
  <a href="/home" class="menu-item">ホーム</a>
  <a href="/products" class="menu-item">製品・サービス</a>
  <a href="/about" class="menu-item">会社概要</a>
  <a href="/news" class="menu-item">ニュース・ブログ</a>
  <a href="/contact" class="menu-item">お問い合わせ</a>

  <!-- 管理者専用メニュー項目 (管理権限のあるユーザーのみ表示) -->
  <a href="/dashboard" class="menu-item">ダッシュボード</a>
  <a href="/user-management" class="menu-item">ユーザー管理</a>
  <a href="/content-management" class="menu-item">コンテンツ管理</a>
  <a href="/settings" class="menu-item">設定</a>
  <a href="/reports" class="menu-item">レポート</a>
</div>

 HTML の情報を ChatGPT に入力して、管理者メニューかどうかを判別するプロンプトを作成してみましょう。

 シンプルなプロンプトで、管理者メニューである

- ダッシュボード (/dashboard)
- ユーザー管理 (/user-management)
- コンテンツ管理 (/content-management)
- 設定 (/settings)
- レポート (/reports)

を抽出することが出来ました。
簡単な HTML での実験ではありますが、正確に抽出できていることがわかります。

 ただし、これだけでは、管理者メニューと断定するのに十分確認したとは言えません。ダッシュボードや設定などのメニューは、一般ユーザにも存在するメニューの可能性があります。管理者メニューかどうかを判定するために、一般ユーザアカウントでログインし、表示されるメニューを確認する必要があります。

 一般ユーザアカウントでのログイン時に表示されたメニューが以下であれば、判定結果は正しいといえそうです。

<div class="menu">
  <a href="/home" class="menu-item">ホーム</a>
  <a href="/products" class="menu-item">製品・サービス</a>
  <a href="/about" class="menu-item">会社概要</a>
  <a href="/news" class="menu-item">ニュース・ブログ</a>
  <a href="/contact" class="menu-item">お問い合わせ</a>
</div>

 ここまでの手順で、管理者メニューの URL を特定することが出来ました。

●脆弱性の検出

 最後に、脆弱性の有無を確認します。

 確認手順は以下の通りです。

1. 一般ユーザアカウントでログインする
2. 管理者メニューの URL に直接アクセスしてみる
 a. /dashboard
 b. /user-management
 c. /content-management
 d. /settings
 e. /reports

3. コンテンツの中身が正常に表示されたら脆弱であると判定する(表示権限がありません、などのエラーメッセージが表示されず、管理者アカウントでのアクセス時と類似の内容が描画される)

 最終的には、上記のようなシンプルな Aタグ以外からでも管理者メニューを抽出できるようにプロンプトをブラッシュアップし、全ての手順を自動化することで、認可不備の脆弱性を検出することが可能になりました。

●まとめ

 以上、生成AIオプションのスキャン機能のうち、認可不備の脆弱性について解説しました。

 生成AI の技術を活用することにより、自動化が難しいとされている脆弱性の検出に今後もチャレンジしていきます。

《株式会社エーアイセキュリティラボ 取締役副社長 安西 真人》

編集部おすすめの記事

特集

製品・サービス・業界動向 アクセスランキング

  1. 漫画内容を無断配信していたネットカフェ経営者らが摘発された事件について概要を発表(ACCS)

    漫画内容を無断配信していたネットカフェ経営者らが摘発された事件について概要を発表(ACCS)

  2. Twitterでのスパムや嫌がらせ、アカウント凍結を減らしシャドウバンを増やす方針

    Twitterでのスパムや嫌がらせ、アカウント凍結を減らしシャドウバンを増やす方針

  3. P2Pネットワーク監視サービス「P2P FINDER」がBitTorrentに対応(クロスワープ)

    P2Pネットワーク監視サービス「P2P FINDER」がBitTorrentに対応(クロスワープ)

  4. イエラエセキュリティ牧田誠が作った「エンジニアの楽園」、創業10 年でかなえた夢 10 年後にかなえた夢

  5. NTTコミュニケーションズの業務委託先社長を恐喝未遂容疑で逮捕

  6. アマゾンからの返品の質と量に出版業界団体が抗議

  7. NTTデータ先端技術のSOCが忘れられた理由

  8. 脆弱性診断の新たな選択肢「ちょうどいいレベルの診断」を AeyeScan活用でサービス化 ~ NTTデータ先端技術

  9. サウンドハウス、顧客情報流出の補償と経緯の詳細を発表

  10. Winny開発者の金子勇氏が急逝、42歳

アクセスランキングをもっと見る

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×