令和6年度 春期 情報処理安全確保支援士試験 午後 問題 問3 XSS・CSRF・SSRFの攻撃分析

テクノロジセキュリティ技術

この問題は2024(R6)春 情報処理安全確保支援士 午後に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

学習ガイド

クラウド上のWebサイトを舞台に、XSS・CSRF・認可制御の不備・SSRFという代表的な脆弱性を横断して攻撃手順と対策を問う問題です。本試験では正答率がやや低く、攻撃の主体(攻撃者・被害者のブラウザ・サーバ)を取り違えると軒並み失点する構成になっています。この記事では、各攻撃を「どのリクエストを誰が送るのか」で図式化し、対策の○×判定を原理から導けるように解説します。

この記事で押さえる論点

  • XSS・CSRF・認可制御不備・SSRFの攻撃手順をリクエストレベルで説明する
  • 対策の有効性を「○×」で判定する根拠を各脆弱性の原理から導く
  • クラウドのメタデータサービスを狙うSSRFの手口と対策を理解する

問題本文

Webセキュリティに関する次の記述を読んで,設問に答えよ。

 D社は,従業員 1,000 名の小売業である。自社のホームページや ECサイトなどの Webサイトについては,Webアプリケーションプログラム(以下,Webアプリという)に対する診断(以下,Webアプリ診断という)を専門会社の Z社に委託して実施している。Webアプリ診断は,Webサイトのリリース前だけではなく,リリース後も定期的に実施している。Z社の Webアプリ診断は,脆弱性診断ツールによるスキャンだけではなく,手動による高度な分析も行う。

〔新たなWebサイトの構築〕

 D社では,新たに ECサイト X(以下,サイトXという)と商品企画サイト Y(以下,サイトYという)を W社が提供するクラウドサービス(以下,クラウドWという)上に構築することになった。
 サイトXでは,D社が取り扱う商品をインターネットを介して会員に販売する予定である。取引は毎月 10,000 件ほどを見込んでいる。サイトYでは,サイトXで販売する新商品の企画・開発を顧客参加型で行う。サイトXとサイトYは,いずれも Webサーバとデータベースサーバ(以下,DBサーバという)で構成する。WebサーバについてはクラウドWの仮想 Webサーバサービスを利用し,DBサーバについてはクラウドWのリレーショナルデータベースサービスを利用する。サイトXとサイトYはいずれも,コンテンツマネジメントシステム(以下,CMSという)を使って構築される。サイトXとサイトYにはいずれも,Webアプリ,HTMLによる静的コンテンツ,DBサーバに格納したデータを使った動的コンテンツなどを用意する。
 D社は,V大学と新商品開発の共同研究を行っている。新商品開発の共同研究では,V大学が運用する情報交換サイト(以下,サイトPという)を利用している。サイトYは,サイトPで取り扱っている情報などを表示する。
 D社は,Webサイト構築に関連するデータやドキュメントの保存場所として,クラウドWのストレージサービス(以下,ストレージWという)を利用する。
 D社は,サイトX及びサイトYの設計書を作成した。設計書のうち,サイトX,サイトY及びサイトPのネットワーク構成を図1に,サーバやサービスの説明を図2に示す。

図1 サイトX,サイトY及びサイトPのネットワーク構成
図の説明テキスト

「図1 サイトX,サイトY及びサイトPのネットワーク構成」というタイトルのネットワーク構成図。大きく「クラウドW」「D社」「インターネット」「V大学」の4つの領域が描かれている。
・クラウドW内には「ストレージW」「IMDS」「VPC」が存在する。VPC内には「サイトX」(WebサーバX, DBサーバX)と「サイトY」(WebサーバY, DBサーバY)があり、WebサーバとDBサーバはそれぞれIMDSと繋がっている。VPCは「IG 1)」を介してインターネットと、「VG 2)」を介してD社の内部ネットワークと繋がっている。
・D社内には「内部ネットワーク」があり、そこに「D社管理者PC」が接続されている。また、内部ネットワークはインターネットに接続している。
・V大学内には「学内ネットワーク」があり、そこに「サイトP」(WebサーバP, DBサーバP)が存在する。学内ネットワークは「FW」を介してインターネットに接続している。
図の下部には、FW(ファイアウォール)、IG(インターネットゲートウェイ)、IMDS(インスタンスメタデータサービス)、VG(VPNゲートウェイ)、VPC(仮想プライベートクラウド)の略語説明と、注1)・注2)の説明が記載されている。

図2 サーバやサービスの説明
図の説明テキスト

「図2 サーバやサービスの説明」というタイトルの枠囲みの文章。3つの項目に分けて説明が書かれている。
・[クラウドWにあるサーバ及びストレージWについて]: クラウドW上のサービス管理のアクセスに関するクレデンシャル情報の利用について記載。
・[IMDSについて]: IMDSの機能、プライベートIPアドレスの設定、アクセス方式(方式1、方式2)の違いについて記載。
・[CMSについて]: WebサーバXおよびYのCMS管理ログイン画面へのアクセス方法、ログイン時のメソッドの制限、アクセス元のIP制限、パスワードの運用方針について記載。

〔サイトX〕

サイトXには,会員用の利用者アカウントとD社管理者用の利用者アカウントがある。サイトXのログインセッション管理は,cookieパラメータのSESSIONIDで行う。SESSIONIDには,値とSecure属性だけがセットされる。なお,サーバ側のセッションの有効期間は24時間である。設計書のうち,サイトXの機能一覧を表1に示す。

表1 サイトXの機能一覧(抜粋)
図の説明テキスト

表1 サイト X の機能一覧(抜粋)

項番 機能 詳細機能 機能概要
1 ログイン機能 ログイン機能 利用者IDとパスワードを入力し,ログインに成功すると利用できる機能が表示されるページに遷移する。
2 利用者機能(ログイン前) 会員機能(登録) 登録画面では最初にメールアドレスを入力する。そのメールアドレス宛てに送られた電子メールに記載されたURLにアクセスして利用者情報を入力し,登録する。
3 利用者機能(ログイン後) 注文機能(商品検索,注文,注文履歴閲覧) 商品には商品コードが付与されており,商品検索画面で検索できる。注文履歴は,注文年月である数字6桁とランダムな英大文字6桁の値をハイフンでつないだ注文管理番号で管理される。注文履歴を閲覧する際は,注文管理番号を基に検索する。
4 会員機能(編集) 登録した利用者情報を編集できる。
5 問合せ機能 問合せ情報を入力できる。入力した問合せ情報は,数字10桁の管理番号が発番され,管理される。
6 サイト管理機能(ログイン後) 商品管理機能(登録,編集,削除) 商品情報を登録,編集,削除できる。商品情報が登録されると,数字10桁の商品コードが割り当てられ,その商品を会員が注文できるようになる。
7 売上管理機能(売上情報閲覧,検索) 商品の売上情報を閲覧できる。また,条件を指定して検索することができる。
8 会員管理機能(閲覧,変更,削除) 登録された会員の利用者情報を閲覧,変更,削除できる。
9 問合せ管理機能 問合せ機能で入力された問合せ情報が閲覧できる。

サイト管理機能は,D社の内部ネットワーク以外からも利用する可能性があり,サイトXでは,接続元の制限は行わない。

サイトXとサイトYの構築は順調に進み,D社はリリース前のWebアプリ診断をZ社に委託した。Z社は,サイトXとサイトYそれぞれに対してWebアプリ診断を実施した。

〔サイトXに対するWebアプリ診断〕

サイトXに対するWebアプリ診断では,次の三つの脆弱性が検出された。

  • クロスサイトスクリプティング(以下,XSSという)
  • クロスサイトリクエストフォージェリ(以下,CSRFという)
  • 認可制御の不備

〔XSSについて〕

Z社がXSSを検出した経緯は,次のとおりであった。
(1) 問合せ機能で,脆弱性診断ツールによるリクエストとレスポンスを確認した。
このときのリクエストとレスポンスは,図3のとおりであった。

図3 問合せ機能のリクエストとレスポンス
図の説明テキスト

[リクエスト]
POST /shop/contact HTTP/1.1
Host: (省略)
(省略)
Content-Type: application/x-www-form-urlencoded
Content-Length: (省略)
Cookie: SESSIONID=nt1t3dmxmlmwuicyiz3h4nq1

subject_id=004&name=%22%3e%3cscript%3ealert%281%29%3c%2fscript%3e%3c%22&tel= (省略) &
mail= (省略) &mail2= (省略) &comment= (省略)

[レスポンス]
(省略)

問合せを受け付けました。

(省略)

注記 パラメータ name の値は "><" を URL エンコードした値である。

(2) 図3中のレスポンスボディには,問合せ機能で入力した値は出力されていない。
しかし,Z社は,設計書を調査した上で手動による分析を行い,図3中のリクエスト内のスクリプトが別の機能の画面に出力されることを確認した。

Z社は,攻撃者がこのXSSを悪用してサイトX内の全会員の利用者情報を取得する可能性があると説明した。

〔CSRFについて〕

Z社がCSRFを検出した経緯は,次のとおりであった。
(1) 会員機能(編集)において,図4に示すリクエストを送ってその応答を確認した。リクエストは正常に処理された。

図4 会員機能(編集)のリクエスト
図の説明テキスト

POST /shop/editmember HTTP/1.1
Host: (省略)
(省略)
Content-Type: application/x-www-form-urlencoded
Content-Length: (省略)
Cookie: SESSIONID=b9y33f89umt6uua1pe4j4jn7

sei=sato&mei=taro&mail=aaa%40example.jp&csrf_token=KCRQ88ERH2G8MGT319E50SMOAJFDIVEM

(2) リクエスト内のメッセージボディの一部を変更して送り,その応答を確認した。
リクエスト内のメッセージボディと応答は表2のとおりであった。

表2 リクエスト内のメッセージボディと応答
図の説明テキスト
手順 リクエスト内のメッセージボディ 応答
1 sei=sato&mei=taro&mail=aaa%40example.jp&csrf_token= エラー
2 sei=sato&mei=taro&mail=aaa%40example.jp エラー
3 sei=sato&mei=taro&mail=aaa%40example.jp&csrf_token=(異なる利用者アカウントで取得した csrf_token の値) 正常に処理

(3) Z社は,手順1,2の応答が“エラー”であることから一定のCSRF対策ができているが,手順3の応答が“正常に処理”であることから利用者に被害を与える可能性があると判断した。

Z社は,対策には二つの方法があることを説明した。

  • csrf_tokenの処理の修正
  • cookieへのSameSite属性の追加

サイトXの構成次第では,SameSite属性をcookieに付与することも有効な対策となり得る。SameSite属性は,Strict,Lax,Noneの三つの値のうちのいずれかを取る。サイトXにログインした利用者のWebブラウザにおいて,サイトX内で遷移する場合と外部WebサイトからサイトXに遷移する場合では,SameSite属性の値によってサイトXのcookie送信の有無が表3のように異なる。

表3 SameSite属性の値の違いによるcookie送信の有無
図の説明テキスト
SameSite属性の値 サイトX内で遷移 GET サイトX内で遷移 POST 外部WebサイトからサイトXに遷移 GET 外部WebサイトからサイトXに遷移 POST
Strict a b
Lax c d
None (省略) (省略)

注記 “〇”は cookie が送られることを示す。“×”は cookie が送られないことを示す。

〔認可制御の不備について〕

Z社が認可制御の不備を検出した経緯は,次のとおりであった。
(1) Z社は,利用者α,利用者βという二つの利用者アカウントを用いて,注文履歴を閲覧した際のリクエストを確認した。注文履歴を閲覧した際のリクエストを図5及び図6に示す。

図5 利用者αで注文履歴を閲覧した際のリクエスト
図の説明テキスト

POST /shop/order-history HTTP/1.1
Host: (省略)
(省略)
Content-Type: application/x-www-form-urlencoded
Content-Length: (省略)
Cookie: SESSIONID=ac9t66bxlxmwuiiki53h4nq3

order-code=202404-AHUJKI 1)

注1) 表1の注文管理番号のことである。値から利用者を特定することができる。

図6 利用者βで注文履歴を閲覧した際のリクエスト
図の説明テキスト

POST /shop/order-history HTTP/1.1
Host: (省略)
(省略)
Content-Type: application/x-www-form-urlencoded
Content-Length: (省略)
Cookie: SESSIONID=k1ctghbxbx5wuj3ki33hlnq5

order-code=202404-BAKCXW

(2) 図5のリクエストのパラメータ order-code の値を図6中の値に改変してリクエストを送った。

(3) 利用者 α が,本来は閲覧できないはずの利用者 β の注文履歴を閲覧できるという攻撃が成功することを確認した。

(4) さらに,ある利用者がほかの利用者が注文した際の order-code を知らなくても,ある攻撃手法を用いれば攻撃が成功することを確認した。

Z社は,サイトXのWebアプリに追加すべき処理を説明した。

〔サイトYに対するWebアプリ診断〕

サイトYに対するWebアプリ診断では,次の脆弱性が検出された。

  • サーバサイドリクエストフォージェリ(以下,SSRFという)

〔SSRFについて〕

Z社がSSRFを検出した経緯は,次のとおりであった。

(1) サイトPの新着情報を取得する際に,利用者のWebブラウザがWebサーバYに送るリクエストを確認したところ,図7のとおりであった。

図7 利用者の Web ブラウザが Web サーバY に送るリクエスト
図の説明テキスト

GET /top?page=https://△△△.jp/topic/202404.html HTTP/1.1
Host: (省略)
(省略)
Cookie: SESSIONID=pq4ikd31op215jebter41sae

注記 △△△.jpはサイトPのFQDNである。

(2) 図7のリクエストのパラメータの値をWebサーバYのCMSの管理ログイン画面のURLに変更することで,その画面にアクセスできるが,ログインはできないことを確認した。

(3) 図7のリクエストのパラメータの値を別のURLに変更するという方法(以下,方法Fという)でSSRFを悪用して,クレデンシャル情報を取得し,ストレージWから情報を盗み出すことができることを確認した。

(4) IMDSにアクセスする方式を方式1から方式2に変更すると,方法Fではクレデンシャル情報を取得できないので,ストレージWから情報を盗み出すことができない。しかし,図7のリクエストのパラメータの値を変更することで,WebサーバYから送られるリクエストに任意のメソッドの指定及び任意のヘッダの追加ができる方法(以下,方法Gという)がある。方法Gを用いれば,方式2に変更しても,クレデンシャル情報を取得し,ストレージWから情報を盗み出すことができることを確認した。

Z社は,クラウドW上のネットワークでのアクセス制御の設定,及びサイトYのWebアプリに追加すべき処理を提案した。

リリース前の脆弱性診断で検出された脆弱性の対策が全て完了し,サイトXとサイトYは稼働を開始した。

設問と解答・解説

設問1

〔XSSについて〕について答えよ。

(1)

本文中の下線①について,図3中のリクエスト内のスクリプトが出力されるのはどの機能か。表1の詳細機能に対する項番を選び答えよ。

模範解答

9

採点基準(配点 5点)

正確性(内容)(5点)

  • 5: 「9」と正しく解答している。
  • 2: 解答の意図は読み取れるが、指定された形式(項番)での解答になっていない。
  • 0: 無解答、または誤った項番を解答している。

解説

解説

本問は、クロスサイトスクリプティング(XSS)の検出箇所から、スクリプトが実行される機能と権限を特定する問題です。
問合せ管理機能においてスクリプトを実行できるのは管理者であることが分かるため、表1の詳細機能から該当する項番を特定します。サイトXの機能概要に基づき、問合せ内容を確認・管理する機能の項番である 9 が正解となります。

高得点のポイント

  • 表1の詳細機能から、管理者が問合せを確認する機能の項番を正しく選択していること。

(2)

本文中の下線②について,攻撃者はどのような手順で利用者情報を取得するか。具体的に答えよ。

模範解答

攻撃者がわなリンクを用意し,管理者にそのリンクを踏ませることで管理者権限のcookieを攻撃者のWebサイトに送信させ,その値を読み取って利用することで管理者としてサイトXにアクセスし,利用者情報を取得する。

採点基準(配点 5点)

知識・理解度(内容)(3点)

  • 3: 管理者のcookieを窃取する手順と、それを利用して管理者としてアクセスする手順の両方が過不足なく記述されている。
  • 1: cookieの窃取、あるいは管理者としてのアクセスのいずれか一方のみが記述されている。
  • 0: 無解答、または攻撃手順として不適切な内容である。

論理性(構造)(2点)

  • 2: わなリンクのクリックから情報の取得まで、時系列と因果関係が論理的に説明されている。
  • 1: 要素は含まれているが、手順のつながりや因果関係の記述にやや不自然な点がある。
  • 0: 文意が通らない、または論理構成が破綻している。

解説

解説

攻撃者が管理者の権限を奪取し、その権限を利用して会員管理機能から利用者情報を取得するプロセスを説明する問題です。
XSSの脆弱性を悪用して、攻撃者はまず管理者に わなリンク を踏ませます。これにより、管理者権限に紐づく cookie(セッションIDなど)が攻撃者のWebサイトに送信されます。攻撃者はその値を読み取り、管理者になりすましてサイトXにアクセスすることで、利用者情報を取得します。

高得点のポイント

  • 管理者にわなリンクを踏ませ、管理者権限のcookieを攻撃者側に送信させる手順が含まれていること。
  • 取得したcookieを利用し、管理者としてサイトXにアクセスして利用者情報を取得する目的が明確に記述されていること。

設問1(2)は,正答率が低かった。クロスサイトスクリプティング(XSS)の検出箇所から,問合せ管理機能でスクリプトを実行できるのは管理者であることが分かる。一方,サイトXの機能概要から,利用者情報を取得するには,会員管理機能を利用すればよいことが分かる。この二つをどう結びつけるかを考えて,解答してほしい。

設問2

〔CSRFについて〕について答えよ。

(1)

本文中の下線③について,被害を与える攻撃の手順を,具体的に答えよ。

模範解答

攻撃者が自らのアカウントで取得したcsrf_tokenと一緒に利用者情報をサイトXに送るように構成したわなフォームに,詐欺メールなどで利用者を誘導し,利用者情報を変更させる。

採点基準(配点 6点)

知識・理解度(内容)(3点)

  • 3: 攻撃者自身のアカウントで取得したトークンを使用する点と、わなフォームへ利用者を誘導する点が正確に記述されている。
  • 1: わなフォームへの誘導のみ記述されており、自身のトークンを使用する点に言及がない。
  • 0: 無解答、またはCSRFの攻撃手順として不適切である。

論理性(構造)(3点)

  • 3: 攻撃の準備(わなの構成)から実行(誘導と情報変更)までの一連の流れが論理的に破綻なく構成されている。
  • 1: 一部の因果関係が飛躍しているか、説明が不足している。
  • 0: 論理構成が不明確であり、意味が通じない。

解説

解説

本問は、クロスサイトリクエストフォージェリ(CSRF)において、攻撃者がどのように自身の取得したトークンを悪用するかを問う問題です。
CSRF対策としてトークンが使用されていても、その検証が不十分な場合、攻撃者は 自身のアカウントで取得した正規のトークン(csrf_token) を使ってわなフォームを作成できます。そのわなフォームへ詐欺メールなどで利用者を誘導し、利用者のブラウザからリクエストを送信させることで、利用者自身の情報を変更させることが可能になります。

高得点のポイント

  • 攻撃者自身のアカウントで取得した csrf_token を悪用することが明記されていること。
  • わなフォームへの誘導と、それによる情報変更の実行手順が明確であること。

(2)

表3中のaに入れる適切な内容を,“〇”又は“×”から選び答えよ。

  1. ×

模範解答

選択肢イ: ×

配点 2

解説

解説

本問は、CSRF対策の有効性を評価する問題です。CSRFは利用者の意図しないリクエストを強制する攻撃であり、その対策にはトークンの検証やRefererの確認などが用いられます。本文の状況と表3の条件に照らし合わせ、該当する対策の成否を判定します。

各選択肢の解説

  • ア (〇): 今回のケースにおいては適切ではありません。
  • イ (×): 条件に対して適切に評価・判断しており、正解となります。

(3)

表3中のbに入れる適切な内容を,“〇”又は“×”から選び答えよ。

  1. ×

模範解答

選択肢イ: ×

配点 2

解説

解説

引き続き、CSRF対策の有効性を問う問題です。提供されたシナリオにおいて、対象となる検証メカニズムが攻撃を防ぐことができるかを判断します。

各選択肢の解説

  • ア (〇): 該当する条件において、対策として十分ではないため不適切です。
  • イ (×): 対策として不十分であることを正しく判定しており、正解となります。

(4)

表3中のcに入れる適切な内容を,“〇”又は“×”から選び答えよ。

  1. ×

模範解答

選択肢ア: 〇

配点 2

解説

解説

CSRF対策における正しい挙動・有効な手段を評価する問題です。強固なCSRF対策が施されている場合、攻撃は成立しません。

各選択肢の解説

  • ア (〇): 対象となる対策が有効であることを正しく示しており、正解となります。
  • イ (×): この条件下では対策が有効であるため不適切です。

(5)

表3中のdに入れる適切な内容を,“〇”又は“×”から選び答えよ。

  1. ×

模範解答

選択肢イ: ×

配点 2

解説

解説

CSRFについての最終的な条件判定です。トークンの使われ方や検証プロセスにおける不備を突くことができるかを評価します。

各選択肢の解説

  • ア (〇): この条件下では攻撃を防ぐことができない(あるいは条件として成立しない)ため不適切です。
  • イ (×): 正しく状況を判断しており、正解となります。

設問2(1)は,正答率が低かった。クロスサイトリクエストフォージェリ(CSRF)の攻撃手法に関する問題であったが,攻撃者が取得したトークンを悪用する部分について解答できていない受験者が多かった。本文の状況に即して解答してほしい。

設問3

〔認可制御の不備について〕について答えよ。

(1)

本文中の下線④について,どのような攻撃手法を用いれば攻撃が成功するか。30字以内で答えよ。

模範解答

order-codeの下6桁を総当たりで試行する。

採点基準(配点 5点)

知識・理解度(内容)(3点)

  • 3: 「order-codeの下6桁」と「総当たり(で試行)」の2要素が含まれている。
  • 1: 総当たり攻撃であることは示されているが、対象(order-codeの下6桁)が不明確である。
  • 0: 無解答、または的外れな攻撃手法を挙げている。

論理性(構造)(2点)

  • 2: 指定文字数内で端的に過不足なく記述されている。
  • 1: 意味は通じるが、表現に冗長な部分がある。
  • 0: 意味が通じない。

解説

解説

認可制御の不備に関する問題です。
order-code は注文や取引を特定する識別子ですが、桁数が少なく推測可能な規則性を持つ場合、攻撃者はこれに対して 総当たり攻撃(ブルートフォース攻撃) を行うことで、他人の情報に不正アクセスできる可能性があります。今回は下6桁が標的となります。

高得点のポイント

  • 標的となる order-code の下6桁に言及していること。
  • 「総当たり」や「順番に試行する」といった、網羅的な試行による攻撃手法であることが示されていること。

(2)

本文中の下線⑤について,サイトXの Webアプリに追加すべき処理を,60字以内で具体的に答えよ。

模範解答

cookieの値で利用者アカウントを特定し,order-codeの値から特定したものと違っていれば,エラーにする。

採点基準(配点 5点)

知識・理解度(内容)(3点)

  • 3: cookieによる利用者の特定と、order-codeに紐づく利用者との照合・エラー処理が両方とも正確に記述されている。
  • 1: 利用者アカウントの照合については言及しているが、cookieによる特定などの具体性に欠ける。
  • 0: 無解答、または認可制御としての記述になっていない。

論理性(構造)(2点)

  • 2: 判定条件とエラー処理の因果関係が論理的に記述されている。
  • 1: 条件と結果のつながりがやや曖昧である。
  • 0: 論理構成が破綻している。

解説

解説

認可制御の不備を防ぐための具体的な対策処理を答える問題です。
アクセス要求があった際、単にパラメータとして渡された order-code の存在を確認するだけでなく、現在ログインしている利用者(cookieの値から特定されるアカウント) と、対象の order-code に紐づく所有者 が一致するかどうかを検証し、一致しない場合はエラーとする(アクセスを拒否する)処理が必要です。

高得点のポイント

  • cookieの値を用いてアクセス元の利用者アカウントを特定することが記述されていること。
  • order-code から特定されるアカウントと比較し、不一致の場合はエラーとする認可チェックのロジックが示されていること。

設問4

〔SSRFについて〕について答えよ。

(1)

本文中の下線⑥について,ログインができないのはなぜか。SSRF攻撃の特徴を基に,35字以内で答えよ。

模範解答

変更後のURLにPOSTデータは送ることができないから

採点基準(配点 4点)

知識・理解度(内容)(4点)

  • 4: 変更後のURLに対してPOSTデータが送信できないという特性が明確に記述されている。
  • 2: POSTデータに関する言及はあるが、理由としての説明が不十分である。
  • 0: 無解答、または不適切な理由が記述されている。

解説

解説

サーバーサイドリクエストフォージェリ(SSRF)における攻撃時の制約を問う問題です。
SSRFによって内部のサーバーやリダイレクト先にアクセスさせる際、元のリクエストがPOSTであったとしても、変更後のURL(あるいはリダイレクト先のURL)に対してPOSTデータをそのまま引き継いで送信することはできない というHTTP通信やSSRF攻撃の手法の特性が理由となります。

高得点のポイント

  • 変更後(リダイレクト先)のURLに対してPOSTデータが送れない(引き継がれない)という特性を明記していること。

(2)

本文中の下線⑦について,クレデンシャル情報を取得する方法を,具体的に答えよ。

模範解答

パラメータpageの値をIMDSのクレデンシャル情報を返すURLに変更する。

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: パラメータpageの値をIMDSのクレデンシャル情報を返すURLに変更する旨が正確に記述されている。
  • 1: IMDSのURLに変更することは記述されているが、パラメータの指定が抜けているなどやや不十分である。
  • 0: 無解答、または不適切な攻撃手法である。

論理性(構造)(2点)

  • 2: 操作対象と設定値の関係が明確で、分かりやすく記述されている。
  • 1: 意味は伝わるが表現が曖昧である。
  • 0: 文意が通らない。

解説

解説

クラウド環境特有のメタデータサービス(IMDS)を悪用する問題です。
単純なSSRF脆弱性が存在する場合、攻撃者は入力パラメータ(ここでは page)に、クラウド環境内部からのみアクセス可能な IMDSのクレデンシャル情報を返すURL を指定することで、WebサーバーにそのURLへアクセスさせ、応答としてクレデンシャル情報を取得させます。

高得点のポイント

  • パラメータ page の値を書き換える点が含まれていること。
  • 指定する値が「IMDSのクレデンシャル情報を返すURL」であることが明記されていること。

(3)

本文中の下線⑧について,方法Gを用いてクレデンシャル情報を取得する方法を,具体的に答えよ。

模範解答

トークンを発行するURLにPUTメソッドでアクセスしてトークンを入手し,そのトークンをリクエストヘッダに含めて,IMDSのクレデンシャル情報を返すURLにアクセスする。

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: PUTメソッドによるトークンの取得と、ヘッダへの付与による情報取得の2段階が明確に記述されている。
  • 1: トークンを用いたアクセスであることは分かるが、PUTメソッドやヘッダへの付与などの技術的詳細が欠けている。
  • 0: 無解答、または全く異なる手法を記述している。

論理性(構造)(2点)

  • 2: 2段階のプロセスが順序立てて論理的に説明されている。
  • 1: 手順の前後にやや曖昧な点がある。
  • 0: 手順が破綻している。

解説

解説

IMDSv2など、より強固なメタデータサービスからクレデンシャル情報を取得する手法を問う問題です。
この方式では、単一のGETリクエストでは情報を取得できません。まず PUTメソッド で特定のURLにアクセスして トークンを入手 し、次にそのトークンを リクエストヘッダに含めて クレデンシャル情報を返すURLにアクセスするという2段階の手順が必要となります。

高得点のポイント

  • トークンを発行するURLにPUTメソッドでアクセスし、トークンを取得する手順が含まれていること。
  • 取得したトークンをリクエストヘッダに含めて、情報のURLにアクセスする手順が含まれていること。

(4)

本文中の下線⑨について,サイトYの Webアプリに追加すべき処理を,35字以内で具体的に答えよ。

模範解答

パラメータpageの値がサイトP以外のURLならエラーにする。

採点基準(配点 4点)

知識・理解度(内容)(4点)

  • 4: パラメータpageの値がサイトP以外のURLならエラーにするというホワイトリスト方式の対策が明確に記述されている。
  • 2: アクセス先の制限については記述されているが、パラメータや対象サイトの指定が曖昧である。
  • 0: 無解答、またはSSRF対策として不適切である。

解説

解説

SSRF攻撃を防ぐための対策ロジックを答える問題です。
外部からのパラメータ(page)を用いて動的にURLへアクセスする機能においては、意図しない内部ネットワークやサービスへのアクセスを防ぐため、許可されたドメイン(サイトPなど)以外へのアクセスを遮断するホワイトリスト方式の検証 を実装する必要があります。

高得点のポイント

  • 検証対象がパラメータ page の値であることが明記されていること。
  • サイトP以外のURLであった場合にエラーとする(アクセスを許可しない)処理であることが示されていること。

設問4(3)は,正答率がやや低かった。クレデンシャル情報を取得する方式について解答できていない受験者が多かった。方式が二つあり,その違いに即して解答してほしい。