クロスサイトスクリプティング攻撃の防御策|情報処理安全確保支援士 平成27年 秋期午前Ⅱ試験 問12

出典:平成27年秋期 午前Ⅱ 問12 分野:セキュリティ / セキュリティ実装技術
クロスサイトスクリプティングによる攻撃を防止する対策はどれか。
  • ア:WebサーバにSNMPエージェントを常駐稼働させ,Webサーバの負荷状態を監視する。
  • イ:WebサーバのOSのセキュリティパッチについて,常に最新のものを適用する。
  • ウ:Webサイトへのデータ入力について,許容範囲を超えた大きさのデータの書込みを禁止する。
  • エ:Webサイトへの入力データを表示するときに,HTMLで特別な意味をもつ文字のエスケープ処理を行う。
解説

クロスサイトスクリプティング(XSS)は、Webサイトへの入力値に不正なスクリプトを埋め込み、その入力値がWebページに表示されたときに、利用者のWebブラウザ上でスクリプトを実行させる攻撃です。

XSSダウンロード

対策として、利用者から入力されたデータをWebページに表示するときに、HTMLで特別な意味をもつ「<」「>」「&」などの文字をエスケープ処理します。これによって、入力値がHTMLタグやスクリプトとして解釈されず、単なる文字列として表示されるようにできます。

したがって、エが適切です。

❌他選択肢が誤りの理由
ア:WebサーバにSNMPエージェントを常駐稼働させ,Webサーバの負荷状態を監視する。
⇒SNMPによる監視は、Webサーバの負荷や稼働状態などを把握するためのものです。XSSによる不正なスクリプトの実行を防止する対策ではありません。
イ:WebサーバのOSのセキュリティパッチについて,常に最新のものを適用する。
⇒OSの脆弱性対策としては重要ですが、XSSはWebアプリケーションが入力値を安全に出力していないことによって発生します。そのため、OSのパッチ適用だけでは防止できません。
ウ:Webサイトへのデータ入力について,許容範囲を超えた大きさのデータの書込みを禁止する。
⇒入力データの長さを制限することは、異常に大きなデータへの対策などには役立ちますが、短いスクリプトでもXSSは成立する可能性があります。XSS対策としては、出力時のエスケープ処理が重要です。
TSUNAGARU-ADVICE

まず押さえたいこと

クロスサイトスクリプティング(XSS)は、Webページに表示される入力値などに不正なスクリプトを混入させ、利用者のブラウザ上で実行させる攻撃です。対策の基本は、HTMLで特別な意味をもつ文字をエスケープして、入力値をコードとして解釈させないことです。

迷ったときの判断軸

SNMPによる負荷監視やOSへのパッチ適用は重要ですが、入力値がHTMLやJavaScriptとして解釈されることを直接防ぐ対策ではありません。また、入力サイズの制限だけでもXSSは防げません。XSSでは、入力データが画面表示時にHTMLとして解釈されないようにするという観点で判断しましょう。

科目Bにつなげるために

科目Bでは、XSS・CSRF・SQLインジェクション・Cookie・セッション管理などと組み合わせて問われることがあります。攻撃を見分けるときは、入力値が最終的にHTML・JavaScript・SQL・OSコマンドのどこで解釈されるのかを確認し、解釈される場所に応じた対策を選ぶ視点を持ちましょう。