※令和3年度秋期の情報処理安全確保支援士試験(SC)の解答は、本記事作成時点(2021年10月30日時点)で公開されていないため、筆者の解答例となります。そのため、解答が間違っている可能性があります。
※本記事は問題を解いた考え方と解答を記載していますので、事前に令和3年度秋期の情報処理安全確保支援士試験(SC)の午後二を解いてからご確認ください。
令和3年度秋期の情報処理安全確保支援士試験(SC)の午後問題
令和3年度秋期の情報処理安全確保支援士試験(SC)の午後問題は以下の5つあります。
それぞれの問題について、解説を記載しました。
情報処理安全確保支援士試験(問1 協力会社とのファイルの受渡し)
問1は協力会社とのファイルの受渡しに関する記載を通して、以下の内容に関する知識を問う問題でした。
(a) セキュアプログラミング
(b) セキュリティに関する国際標準化(ISO/IEC)
(c) 利用者認証のリスクと対策
設問1と設問2では、セキュアプログラムのXSS対策に関する問題です。
設問3では、セキュリティに関する国際標準化(ISO/IEC)とファイルやり取り時の注意事項に関する問題です。
設問4では、利用者認証のリスクと対策に関する問題です。
情報処理安全確保支援士試験(問1の設問1の解答)
設問1は、システムのXSS(クロスサイトスクリプティング)の脆弱性に関する問題です。
設問を解く前にシステムのパラメータとHTTPレスポンスの内容を理解する必要があります。
本文中の図4から図9のURLとHTTPレスポンスの内容は以下の通りです。
図4から図9の内容を確認したところ、「URLのパラメータ」は「HTTPレスポンスのボディ」の以下の箇所に表示されます。
〇診断用URL1のURLの内容
https://dsys.u-sha.co.jp/submitdescription?fileID=001023&description=[備考]&checkbox=on&refURL=[参考URL]
〇診断用URL1を入力した時のHTTPレスポンスのボディ部
備考:[備考]
(省略)
参考URL:<a href="[参考URL]">[参考URL]</a>
(省略)
(1)
WebページのURLとエスケープ処理に関する問題です。
a と b の内容はdescriptionパラメタの値を表示させていますので、図3の中からdescriptionパラメタに関する記載を探します。
以下の赤線の箇所にdescriptionパラメータはエスケープ処理されている旨の記載があります。
そのため、図4のパラメータを確認したところ、以下の内容が答えです。
・aは「<」をエスケープ処理した文字列(<)
・bは「>」をエスケープ処理した文字列(>)
ご参考までに、以下の代表的な特殊文字のエスケープ処理後の文字列は暗記することを推奨します。
記号 | エスケープ処理後の文字列 | 意味 |
---|---|---|
< | < | 小なり |
> | > | 大なり |
‘ | ' | シングルクォーテーション |
“ | " | ダブルクォーテーション |
& | & | アンド |
【解答例】
a : <
b : >
(2)
XSSの攻撃コードに関する問題です。
cの穴埋め問題で、それぞれの選択肢の文字列をURLに入れると、以下のような処理をします。
選択肢 | 選択肢の値(パラメタ) | HTTPレスポンスのボディと処理 |
---|---|---|
ア | onmouseover=alert(‘XSS!’) | 【HTTPレスポンスのボディ】 <a href=”onmouseover=alert(‘XSS!’)”>onmouseover=alert(‘XSS!’)</a> 【処理】 hrefの中に記載されるため、onmouseoverは属性ではなく、URLとして処理されるため、alert()関数は実行されない。 |
イ | “><script>alert(‘XSS!’)</script> | 【HTTPレスポンスのボディ】 <a href=””><script>alert(‘XSS!’)</script>”>”><script>alert(‘XSS!’)</script></a> 【処理】 Webページを表示した時に2回alert()関数が実行されるため、2回ダイアログボックスが表示される。 参考URLをクリックしても、2回ダイアログボックスが表示される。 |
ウ | http:<script>alert(‘XSS!’)</script> | 【HTTPレスポンスのボディ】 <a href=”http:<script>alert(‘XSS!’)</script>”>http:<script>alert(‘XSS!’)</script></a> 【処理】 hrefの中に記載されるため、URLとして処理される。 |
エ | javascript:alert(‘XSS!’) | 【HTTPレスポンスのボディ】 <a href=”javascript:alert(‘XSS!’)”>javascript:alert(‘XSS!’)</a> 【処理】 参考URLをクリックすると、ダイアログボックスが1回表示される。 |
ここで、本文中(図3の(4))に参考URLをクリックすると、ダイアログボックスが表示されたという記載があります。
そのため、Webページ表示の時もダイアログボックスが表示される「イ ”><script>alert(‘XSS!’)</script>」ではなく、参考URLクリック時のみ表示される「エ javascript:alert(‘XSS!’)」が答えです。
【解答例】
c : エ javascript:alert(‘XSS!’)
情報処理安全確保支援士試験(問1の設問2の解答)
(1)
XSSの脆弱性対策に関する問題です。
IPAの「安全なウェブサイトの作り方 – 1.5 クロスサイト・スクリプティング」に根本的対策として以下の4つがあります。
- A : ウェブページに出力する全ての要素に対して、エスケープ処理を施す。
- B : URLを出力するときは、「http://」や 「https://」で始まるURLのみを許可する。
- C : <script>…</script>要素の内容を動的に生成しない。
- D : スタイルシートを任意のサイトから取り込めるようにしない。
ここで「図3の(7)」で試した結果を確認したところ、スケープ処理されていますので、「XSSを防ぐための基本的な処理はしているが、HTMLタグの属性値の出力時に必要な処理をしていない」ことが分かります。
そのため、今回は根本対策のBの[URLを出力するときは、「http://」や 「https://」で始まるURLのみを許可する。]のみ実施したら脆弱性の対策ができます。
ご参考までに、もし「XSSを防ぐための処理を一切していない」場合は、根本対策のAも実施する必要があります。
【解答】
refURLパラメタの値の出力時に、httpやhttpsで始まるURLのみを許可する。
(2)
HTTPのContent-Security-Policy(CSP)ヘッダーに関する知識問題です。
今回問題で問われているヘッダー(Content-Security-Policy: script-src ‘self’;)の概要は以下のサイトをご確認ください。
- Content-Security-Policy(CSP)の概要は「https://developer.mozilla.org/ja/docs/Web/HTTP/CSP」をご確認ください。
- script-srcの概要は「https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Content-Security-Policy/script-src」をご確認ください。
上記のヘッダーの説明をまとめると、「Webページと同一オリジンから読み込んだスクリプトファイル」が実行を許可されます。
【解答】
Webページと同一オリジンから読み込んだスクリプトファイル
(3)
HTTPのContent-Security-Policy(CSP)ヘッダーに関する知識問題です。
ヘッダー(Content-Security-Policy: script-src ‘self’;)の概要については、設問2の(2)で説明した内容をご確認ください。
実行が制限されるスクリプトについて、
問題文のヘッダーを付与した場合、「Dシステムと同一オリジンでない(クロスオリジンの)URLに配置されたスクリプト」の実行が制限されてしまいます。
呼び出し方法について、
クロスオリジンのURLに配置されたスクリプトを実行は実行できないため、必要なスクリプトファイルをDシステムに格納することでスクリプトファイルを呼び出すことができます。
【解答】
[実行が制限されるスクリプト]
Dシステムと同一オリジンでないURLに配置されたスクリプト
[変更後の呼び出し方法]
スクリプトファイルをDシステムに格納して、Dシステム上でスクリプトファイルを呼び出す。
情報処理安全確保支援士試験(問1の設問3の解答)
(1)
ISO/IECの知識に関する問題です。
今回穴埋めになっている d と e の「ISO/IEC 27017」と「ISO/IEC 27018」の概要は以下の通りです。
- ISO/IEC 27017は、クラウドセキュリティに関する情報セキュリティ管理策
- ISO/IEC 27018は、パブリッククラウドにおける個人情報保護
【解答】
d : ウ 情報セキュリティ管理策
e : ア 個人情報保護
(2)
クラウドストレージ(Gサービス)を用いたファイルの受け渡しのセキュリティに関する問題です。
Gサービスの機能を確認したところ、「アクセス権の設定」にて利用者ごとにアクセスできるフォルダ及びファイルを制限しています。
しかし、送信元IPアドレスを制限できないため、不正アクセスされてファイルにアクセスされる可能性があります。
そのため、「Gサービスに格納するファイルを暗号化」することで対策します。
ご参考までに、表2に「ファイルをGサービス上のストレージに保存するときの暗号化」は実施していますが、
暗号鍵がG社にて管理しているので、Gサービスからローカルストレージにダウンロードされた際に自動で復号化されると思われます。
そのため、「ストレージの盗難時のデータ読み込み対策」にはなりますが、ファイル転送時の対策にはなりません。
【解答】
各社にてファイルの暗号化及び復号化をして、Gサービスには暗号化されたファイルを格納する。
情報処理安全確保支援士試験(問1の設問4の解答)
(1)
パスワードの総当たり攻撃を検知するための方法に関する問題です。
以下の f の箇所の穴埋め問題です。
上記の赤線の箇所に利用者IDを固定する旨の記載がありますので、「同一利用者IDへのログイン失敗の回数がしきい値を超えた」時に検知します。
本文中の以下の箇所にパスワード試行の結果(成功又は失敗)など必要なログが出力されることを確認します。
今回のログ検知で使用する項目は以下の赤線の箇所です。
【解答】
f : 同一利用者IDへのログイン失敗
(2)
セキュリティのログ検知の漏れを探す問題です。
以下の項目2にて検知できないパターンを答える問題です。
赤線の箇所に「同一IPアドレス」からのログイン失敗回数のみを検知していますが、「複数の送信元IPアドレスから異なる利用者IDにログイン試行」した場合は検知されません。
【解答】
送信元IPアドレスを変更しながら異なる利用者IDにログイン試行した場合
情報処理安全確保支援士試験(問1の設問5の解答)
(1)
認証の偽造に関する問題です。
以下の図10の利用者認証の流れにおいて、「オリジンb」の利用目的を問う問題です。
図10中に「オリジンbがKサービスのものであることの確認」との記載があるため、Kサービスのものであることを確認する理由を確認します。
「Webブラウザ」と「Kサービスの認証サーバ」の間の通信に、「偽のKサービスの認証サーバ」を経由させて認証情報を収集されたら不正ログインされる懸念があります。
しかし、今回はオリジンbを用いて、正規のKサービスの認証サーバから送られたデータであることを確認できますので、偽の認証サーバを中継することによる不正アクセスはできません。
【解答】
g : 偽のKサービスの認証サーバへの通信を経由
(2)
認証器の紛失や社員退職時のリスクと対策に関する問題です。
以下の表7の h、i、j、k の内容を埋める問題です。
h について、
スマートフォンの紛失時の対策ですので、仕組みを確認するために表5を確認します。
以下の赤線の箇所に「h : 生体認証」を用いるとの記載があるので、機器が紛失した場合でも利用者の生体情報(指紋など)がないと認証成功しないことが分かります。
i と j について、
今回の問題に限らず、社員が退職した場合はアカウントを無効化することがセキュリティ運用で重要です。
個人所有のスマホで認証していた場合、利用者の生体認証でログインできるため、退職時に「i : Kサービス」の「k : 利用者IDの無効化」をします。
k について、
USB接続外部認証器が紛失した時のリスクと対策に関する穴埋め問題です。
USB接続外部認証器が攻撃者に渡った場合、認証が成功して不正ログインされてしまう可能性がありますので、早急に「j : 利用者IDを削除」する必要があります。
【解答】
h : 生体認証
i : Kサービス
j : 利用者IDを削除
k : 利用者IDの無効化
(3)
OS内臓の生体機能の方が望ましいと考えた理由を問う問題です。
OS内臓であるメリットを考えると、認証成功するPCを制限できることです。
余談ですが、本問題の「OS内臓の生体認証機能」は以下の多要素認証の3つの要素、全て満たすことでログインできますので、かなりセキュリティが高いです。
- 知識認証 : パスワード認証
- 所有物認証 : 生体認証機能内蔵のPC
- 生体認証 : 指紋などの利用者の生体情報
【解答】
ファイル受渡し用PCが認証器を兼ねており、EシステムにアクセスするPCを制限できるため。