@shinyaz

AWS Security Agent のペンテストは HTML リンクがないとエンドポイントを発見できない

GraphQL API に対するペンテスト検証で気づいた挙動。GET /{"graphql_endpoint": "/graphql"} という JSON を返すアプリに対してペンテストを実行したところ、Agent は /graphql に一度もアクセスしなかった。ドキュメント(SDL + API doc)を documents として提供しても、エンドポイントを http://<host>/graphql と明示指定しても結果は同じで、Finding 0 件だった。

/ を HTML ページに変更し <a href="/graphql"> リンクと <form method="POST" action="/graphql"> フォームを追加したところ、Agent は /graphql を発見して 3,601 回の POST リクエストを送信し、8 件の Finding を検出した。

Agent の SCANNER は HTML の <a> タグやフォームを起点にクローリングしていると推測される。JSON レスポンスの値を解析してリンク先に遷移する挙動は観測されなかった。GraphQL に限らず、API-only のバックエンド(SPA のバックエンド等)をテストする場合は、テスト用の HTML エントリポイントを一時的にデプロイするのが有効だと考えられる。

共有する

田原 慎也

田原 慎也

ソリューションアーキテクト @ AWS

AWS ソリューションアーキテクトとして金融業界のお客様を中心に技術支援をしており、クラウドアーキテクチャや AI/ML に関する学びをこのサイトで発信しています。このサイトの内容は個人の見解であり、所属企業の公式な意見や見解を代表するものではありません。