情報セキュリティ

基本情報技術者試験クロスサイトスクリプティング」の問題

情報セキュリティ情報セキュリティ難易度:hard
あるWebサービスで二つの不具合が報告された。(1)商品レビュー投稿欄に入れたスクリプトがデータベースに保存され、以後そのページを開いた全利用者のブラウザで実行される。(2)検索結果ページが、URLの検索語パラメータをそのまま画面に出力するため、細工したURLを踏ませた相手のブラウザだけでスクリプトが実行される。これらの攻撃の種別の理解として、最も適切なものはどれか。
(1)はサーバに残った内容が後続の閲覧者へ反復配信される型、(2)は要求の内容が同じ応答へその場で折り返される型である。
(1)も(2)も、利用者のログイン状態を悪用して外部サイトから意図しない更新要求を送り込ませる手口に当たる。
(1)が要求その場で折り返される型、(2)がサーバに残り反復配信される型で、保存の有無と被害範囲の対応が逆になっている。
(1)はDB問合せ、(2)はファイルパスを狙う攻撃で、いずれもブラウザ上でのスクリプト実行を伴わない別系統である。
正解
(1)はサーバに残った内容が後続の閲覧者へ反復配信される型、(2)は要求の内容が同じ応答へその場で折り返される型である。

XSSは入力されたスクリプトが他者のブラウザで実行される脆弱性で、(1)のように内容がサーバに保存され同じページを開く全員に繰り返し配信されるものを格納型(蓄積型)、(2)のように要求パラメータが応答にそのまま反射され細工URLを踏んだ被害者だけで実行されるものを反射型と区別する。被害の継続性と対象範囲が両者の違いを端的に表す。

?選択肢ごとの解説

イ ○XSSは入力されたスクリプトが他者のブラウザで実行される脆弱性で、(1)のように内容がサーバに保存され同じページを開く全員に繰り返し配信されるものを格納型(蓄積型)、(2)のように要求パラメータが応答にそのまま反射され細工URLを踏んだ被害者だけで実行されるものを反射型と区別する。被害の継続性と対象範囲が両者の違いを端的に表す。
ア ×これはCSRFの説明であり、利用者のログイン状態を悪用して意図しない更新要求を送らせる攻撃で、スクリプトがブラウザで実行される(1)(2)とは仕組みが異なる。
ウ ×格納型と反射型の対応が逆である。保存され全員に繰り返し配信される(1)が格納型、即時に反射される(2)が反射型であり、ウは説明が入れ替わっている。
エ ×(1)(2)はいずれもスクリプトがブラウザで実行されるXSSであり、データベース問合せを狙うSQLインジェクションやファイルパスを狙うディレクトリトラバーサルとは別物である。

くわしく

XSSの分類は『スクリプトがどこを経由して被害者に届くか』で整理できる。格納型はサーバに保存され受動的に多数へ配信されるため影響が大きく持続的、反射型は要求のたびに生成され被害者を罠URLへ誘導する能動的攻撃を要する。いずれも根本対策は出力時の文脈に応じたエスケープである。

本番での押さえどころ

試験のコツ

XSSは『保存され全員に繰り返し=格納型』『要求が即時に反射され踏んだ人だけ=反射型』で区別する。

覚え方

格納型は『棚に置いて誰でも手に取る』、反射型は『投げ返したボールを受けた人だけ当たる』。

よくある誤り

保存されるか即時に反射されるかの対応を取り違え、格納型と反射型を逆に覚える。被害が『繰り返し全員』なら格納型と押さえる。

情報セキュリティの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-b-sec-0098

【基本情報技術者試験】クロスサイトスクリプティングの問題 — 解答・解説|ukamiru 過去問