[問題文・解答]
平成26年度10月に実施された情報セキュリティスペシャリスト試験の午後2問題 問1の解説を2回に分けて行います。今回は2回目(後半)です。
平成26年度10月の情報セキュリティスペシャリスト 午後2試験の問題・解答はIPA公式ページからダウンロード出来ます。(以下リンク)
[H26秋 午後2 問題文] [H26秋 午後2 解答]
[問題概要]
題材は、グループ企業のセキュリティインシデントとWebサイトのセキュリティ対策についてです。概要は以下の通りで、今回は後半部分の解説を行います。
(前半部分)P.16〜P.22上段 設問1〜2該当範囲
- 多様な業種を展開するA社グループ(A社〜G社)では、Webサイト構築に関してグループ全体でのセキュリティ対策推進計画を立案した。
- F社の運営するショッピングサイトがSQLインジェクション攻撃を受け、調査したところ、被害は無かったもののサイト全体に脆弱性があることが判明。
- F社のセキュリティ事故を分析し、Webサイトの脆弱性診断ガイドラインを作成し、グループ各社に展開する。
- 今後Webサイトに最近の脆弱性(DOMベースのXSS、クリックジャッキング)対策や新技術(HSTS)の使用についてセキュアサイト構築ガイドラインに追加することを検討する。
[設問3]
(1)
この問題特にg)はHTMLの知識が無いと厳しいです。
図2のHTMLではJavaScriptにより「location.hash」でURLのハッシュ値を取得し、それをdecodeURIComponentでURIの構成要素にデコードした後、document.writeでページに表示しています。
ブラウザで図3に示すURIを指定すると、<script></script>で囲まれたalert(1)が実行され"1"という警告ダイアログが表示されることから、ハッシュ値に<script>alert(1)</script>が割り当てられている事が分かります。従って、g)にはハッシュタグを示す「#」、h)には<script>の終了タグである「</script>」が当てはまります。
図2のHTMLではJavaScriptにより「location.hash」でURLのハッシュ値を取得し、それをdecodeURIComponentでURIの構成要素にデコードした後、document.writeでページに表示しています。
ブラウザで図3に示すURIを指定すると、<script></script>で囲まれたalert(1)が実行され"1"という警告ダイアログが表示されることから、ハッシュ値に<script>alert(1)</script>が割り当てられている事が分かります。従って、g)にはハッシュタグを示す「#」、h)には<script>の終了タグである「</script>」が当てはまります。
[答] g) # h) </script>
(2)
反射型XSSの診断ではWebフォームにスクリプトを含む文字列を入力し、そのWebサイトからの応答中にスクリプトの内容が書き込まれているかどうかを確認します。
P.23上段に「反射型(reflected型、non-persistent型)のXSSと違って、DOMベースのXSSでは攻撃者が注入するデータがWebサイトからの応答中に出力されない。」とあることから、反射型のXSSの診断方法では、確認が出来ない事が分かります。
[答]
診断方法:スクリプトを含むデータをWebアプリに入力し、それがWebサイトからの応答中に出力されているかを確認する。
理由:Webサイトからの応答中に不正なスクリプトが含まれていないから
P.23上段に「反射型(reflected型、non-persistent型)のXSSと違って、DOMベースのXSSでは攻撃者が注入するデータがWebサイトからの応答中に出力されない。」とあることから、反射型のXSSの診断方法では、確認が出来ない事が分かります。
[答]
診断方法:スクリプトを含むデータをWebアプリに入力し、それがWebサイトからの応答中に出力されているかを確認する。
理由:Webサイトからの応答中に不正なスクリプトが含まれていないから
(3)
[サイト]
表3より、フレーム内での表示の有無が「あり」となっているサイト5及びサイト6では、下線部④の対策を行うと正常に表示できなくなります。
[変更内容]
これは知らないと解答は出来ない問題です。
X-FRAME-OPTIONSヘッダに指定できる値には以下の3つがあり、今回はSAMEORIGINが当てはまります。
・DENY:フレーム内のページ表示を全ドメインで禁止
・SAMEORIGIN:同一ドメイン内のみ表示を許可
・ALLOW FROM <URI>:指定のドメインのみ表示を許可
[答] サイト:サイト5、サイト6
変更内容:X-FRAME-OPTIONSヘッダのDENYをSAMEORIGINにする。
表3より、フレーム内での表示の有無が「あり」となっているサイト5及びサイト6では、下線部④の対策を行うと正常に表示できなくなります。
[変更内容]
これは知らないと解答は出来ない問題です。
X-FRAME-OPTIONSヘッダに指定できる値には以下の3つがあり、今回はSAMEORIGINが当てはまります。
・DENY:フレーム内のページ表示を全ドメインで禁止
・SAMEORIGIN:同一ドメイン内のみ表示を許可
・ALLOW FROM <URI>:指定のドメインのみ表示を許可
変更内容:X-FRAME-OPTIONSヘッダのDENYをSAMEORIGINにする。
(4)
この問題も知らないと解答は厳しいですが、HSTS(HTTP Strict Transport Security)の応答ヘッダフィールドはそのまま「Strict Transport Security」と記載されます。
[答] ウ
[答] ウ
(5)
HTTP通信かHTTPS通信かはブラウザのアドレスバーで確認することが出来ます。従って、中間者攻撃でブラウザがHTTP通信で接続しているかどうかはブラウザのアドレスバーを見れば分かります。
[答] ブラウザのアドレスバーの情報で、httpsで通信していることを確認する
[答] ブラウザのアドレスバーの情報で、httpsで通信していることを確認する
(6)
P.23下段の解説にもありますがWebサイト側でHSTSを設定すると、Webブラウザがhttpでアクセスしてきた際に次回以降は必ずhttpsで当該サイトにアクセスするようにWebブラウザに指示します。その結果、Webブラウザは今後同じサイトにアクセスする際は自動的にhttpsを使用するようになります。しかし、最初の一回目のアクセスについてはhttpをそのまま使用してしまうため、盗聴の危険性があります。
このリスクを避ける為にHSTSを使用しているWebサイトのリストに登録しておき、ブラウザがそのリストを読み込むことで初回からhttpsでアクセスするプリロードHSTSという仕組みがあります。
参考ページ
[答] 初回にブラウザでWebサイトへhttpでアクセスした場合
このリスクを避ける為にHSTSを使用しているWebサイトのリストに登録しておき、ブラウザがそのリストを読み込むことで初回からhttpsでアクセスするプリロードHSTSという仕組みがあります。
参考ページ
[答] 初回にブラウザでWebサイトへhttpでアクセスした場合
上記の解説は問題と解答を元に自分なりの考え方を記述しており、間違っている部分もあるかと思いますので、ご了承願います。また、誤りについては正しい考え方をご指摘・ご教授頂けると助かります。
過去問の解説探しててこちらを見つけました。
返信削除とても助かってます。ありがとうございます。
(6)ですが、
Webサイトから応答があってブラウザでHSTSが有効になるので、
応答をもらう初回アクセスはHTTPでも行けてしまうってことではないでしょうか。
本ブログをご覧頂きありがとうございます!
削除ご指摘の通り、初回アクセス時はhttpのままで通信してしまう点がHSTSの問題点でした。
解説を追記致しました。非常に助かります。