基本情報技術者試験「HTTPセキュリティヘッダ」の問題
あるWebサービスでは出力時のエスケープを進めているが、開発規模が大きく、万一エスケープ漏れが残った場合にスクリプト実行による被害を抑える多層防御を追加したい。ブラウザ側で、読み込み・実行を許可するスクリプトの取得元を制限する仕組みを導入したい。この目的に適した応答ヘッダはどれか。
アContent-Security-Policy を設定し、読み込んでよいスクリプトの出どころを宣言で限る。
イContent-Type を text/plain に固定し、サーバが返す応答をすべて単なる文字データとしてブラウザに解釈させる。
ウCache-Control を no-store に設定し、サーバの応答がブラウザや経路上に残らないようにする。
エAccept-Language を ja に固定し、サーバが返す内容の表示を日本語に統一するようにする。
正解
ア.Content-Security-Policy を設定し、読み込んでよいスクリプトの出どころを宣言で限る。
Content-Security-Policy(CSP)は、ブラウザに対しスクリプトやスタイル等の読み込みを許可する取得元を宣言し、それ以外の実行を抑止する応答ヘッダである。出力エスケープを主対策としつつ、万一漏れが残ってもインラインスクリプトの実行や信頼外ドメインからの読込みを制限でき、XSS被害を低減する多層防御として機能する。目的に適合する。
?選択肢ごとの解説
ア ○Content-Security-Policy(CSP)は、ブラウザに対しスクリプトやスタイル等の読み込みを許可する取得元を宣言し、それ以外の実行を抑止する応答ヘッダである。出力エスケープを主対策としつつ、万一漏れが残ってもインラインスクリプトの実行や信頼外ドメインからの読込みを制限でき、XSS被害を低減する多層防御として機能する。目的に適合する。
イ ×Content-Typeはコンテンツの種類を伝えるヘッダで、これをtext/plain固定にすると正常なHTMLが表示できなくなり、スクリプト取得元の制限という目的も果たさない。
ウ ×Cache-Controlはキャッシュ動作を制御するヘッダで、機微情報のキャッシュ抑止には有効だが、スクリプトの取得元制限とは無関係である。
エ ×Accept-Languageは要求側が希望する言語を伝えるヘッダで、応答のセキュリティ制御やスクリプト取得元の制限とは関係がない。
✎くわしく
XSS対策は『出力エスケープ(主対策)+CSP(多層防御)』の組合せが定石である。CSPは取得元の制限やインライン実行の禁止により、コードに残った漏れの影響を緩和する保険であり、単独の主対策ではなく深層防御の一枚として位置づける点が理解の要である。
✓本番での押さえどころ
試験のコツ
『スクリプトの取得元をブラウザ側で制限する多層防御』はCSP(Content-Security-Policy)。出力エスケープを補う保険と位置づける。
覚え方
CSPは『このサイトのスクリプトはここからだけ』という入場制限リスト。漏れがあっても素性の悪い者を入れない。
よくある誤り
CSPをXSSの唯一の対策と誤認したり、他の用途のヘッダ(Content-Type等)と混同する。CSPは取得元制限による多層防御である。
情報セキュリティの他の問題
A社の経理担当者が、取引先を装ったメールに添付された請求書ファイルを業務PCで開いたところ、見慣れない画面が一瞬表示されて消…B社のWebサービスで、複数の利用者アカウントに対し正しいIDとパスワードの組合せによるログインが短時間に外部から成立する事…C社では、退職予定者や異動者のアカウント権限の見直しが滞り、業務上不要になった共有フォルダへのアクセス権が残り続けている。情…D社のファイルサーバがランサムウェアに感染し、業務ファイルが暗号化された。D社は日次でバックアップを取得しているが、バックア…E社の従業員に、取引先銀行を名乗る『口座情報の更新が必要』というメールが届いた。本文中のリンク先URLにアクセスすると、銀行…F社は社外の従業員が、カフェなどの公衆無線LANを利用して社内システムへアクセスしている。通信内容が経路上で第三者に盗聴・改…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-b-sec-0105