情報処理安全確保支援士 2021年 秋期 午後2 問01
協力会社とのファイルの受渡しに関する次の記述を読んで、設問1~5に答えよ。
U社は、従業員10,000名の半導体製造業であり、国内に工場を置いている。U社では、幾つかの工程を国内の40社の協力会社に委託しており、生産計画や設計書類のファイルを協力会社との間で受け渡す必要がある。ファイルの受渡し件数は、協力会社によって異なるが、1日当たり1件から10件である。U社では、生産管理課が協力会社とのファイルの受渡しを担当している。ファイルの受渡しには、Webベースのファイル交換システム(以下、Dシステムという)を使用している。Dシステムは、HTTPサーバ及びU社が開発したWebアプリケーションプログラム(以下、Uアプリという)から成る。Dシステムでは受発注に関するファイルは取り扱っていない。
図1は、Dシステムに関係する機器の全体構成である。

U社の生産管理課及び協力会社に設置したファイル受渡し用PCからDシステムまでのアクセスは、HTTPSで行われている。U社ネットワーク内からDシステムにアクセスできる端末は、FWの設定によって、生産管理課に設置したファイル受渡し用PCだけに制限している。
Dシステムのアカウントは、協力会社の拠点ごとに一つ、U社が発行している。Dシステムの利用者認証は、利用者IDとパスワードによって行われている。
〔セキュリティインシデントの発生〕
ある日、Dシステムのトップページが改ざんされるというセキュリティインシデントが発生した。調査したところ、HTTPサーバの既知の脆弱性を悪用した攻撃によって改ざんされたと分かり、脆弱性修正プログラムの適用などをしてから復旧した。
セキュリティインシデントの調査の過程で、HTTPサーバのアクセスログから、協力会社P社に発行したアカウントを用いて海外のIPアドレスからアクセスした履歴が見つかった。このアクセスは、Dシステムの利用規約や法令に違反しているおそれがあるので、P社に問い合わせたところ、P社の従業員の1人が海外出張先からアクセスしていたことが分かった。
Dシステムの利用規約では、ファイル受渡し用PCには、各協力会社の社内への設置、並びに盗難対策、マルウェア対策及びファイルの不正持出し対策を求めている。また、Dシステムには、ファイル受渡し用PCからだけアクセスすることを求めている。しかし、U社ではいずれの遵守状況も確認していなかった。
こういった利用規約違反への対策として、海外からのアクセスをFWで禁止した。さらに、協力会社以外からのアクセスを検知するために、SIEM(Security Information and Event Management)を導入した。
〔Dシステムの脆弱性診断〕
U社は、ほかにもDシステムに対策が必要な脆弱性がないかどうかを確認するために、脆弱性診断をセキュリティ専門会社であるN社に依頼した。
診断の結果、クロスサイトスクリプティング(以下、XSSという)脆弱性などが発見された。XSS脆弱性が発見された箇所を、図2に示す。

N社の、XSS脆弱性についての報告を図3に示す。




〔Dシステムの脆弱性対策〕
XSS脆弱性の報告を受けたU社は、N社の支援を受けて、DシステムのXSS脆弱性対策を進めることにした。支援を担当した情報処理安全確保支援士(登録セキスペ)であるR氏は、二つの対策を提案した。
一つ目の対策は、①図3で特定されたXSS脆弱性を解消するためのUアプリの改修である。
二つ目の対策は、“Content-Security-Policy: script-src 'self';”というヘッダフィールドを、HTTPレスポンスのヘッダに追加することによって、Webブラウザに対して②指定したスクリプトファイルの実行だけを許可するというものである。この対策は、一つ目の対策に比べて短期間で実施可能であるが、Dシステムが用いている正規のスクリプトが意図したとおりに動作するように、③実行が制限されてしまうスクリプトの有無を確認し、もしあれば、当該箇所の呼出し方法を変更する必要がある。
一部の古いWebブラウザはContent-Security-Policyに対応していないので、万全の対策のためには、二つの対策を両方実施することが必要である。
U社は、R氏の提案どおり、Content-Security-Policyを速やかに追加するとともに、Uアプリの改修計画の策定を開始した。
〔DシステムのSaaSへの移行の検討〕
U社の情報システム部のYさんがUアプリの改修を計画していたところ、将来にわたりU社でUアプリのメンテナンスを続けるよりもSaaSに移行する方が機能面でもセキュリティ対策の面でもよいのではないかという意見が出た。
そこで、Yさんは、Uアプリのメンテナンス継続とSaaSへの移行のメリットとデメリットを比較した。比較の結果、表1に概要を示すG社提供のSaaS(以下、Gサービスという)に移行する方が、Uアプリのメンテナンスを継続するよりもメリットが多そうなので、更に詳細に検討することにした。

Yさんは、Gサービスへの移行について、Dシステムの利用規約の継続を前提として、次の項目を検討することにした。
項目1:必要なセキュリティ対策のGサービスでの実現可否
項目2:SIEMとの連携
〔項目1の検討〕
Yさんは、項目1について検討した。表2は、その検討結果である。


次は、検討結果に関するYさんとU社のCSIRTリーダであるTさんの会話である。
Yさん:表2のとおり、セキュリティ対策の大部分はGサービスで実現できますが、Gサービスが信頼できるかどうかの見極めが必要です。
Tさん:そのとおりだね。例えば、クラウドサービスのためのdの実践の規範であるISO/IEC 27017に基づく認証や、Dシステムとは直接関係がないが、パブリッククラウドにおけるeの実践の規範であるISO/IEC 27018に基づく認証を取得しているサービスであれば信頼してよいのではないかな。
Yさん:Gサービスは、ISO/IEC 27017に基づく認証を取得しているので、信頼できそうですね。
Tさん:そうだね。ところで、F国では安全保障上の要請があれば、F国内に保存されているデータを、F国政府に強制的に提出させる国内法が存在する。④Gサービスを経由して協力会社との間で受け渡すファイルの内容を保護するという観点で、どのような措置が当社として取り得るか、考えてほしい。
Yさん:分かりました。
〔項目2の検討〕
現行のDシステムでは、協力会社以外からのアクセスを検知するためにSIEMを利用しているが、GサービスではSIEMの機能は提供していない。Yさんが調査した結果、Gサービスに移行した場合でも、GサービスのAPIを利用すれば、表3に示すログをU社のSIEMへ取り込めることが分かった。

ログには、操作対象、実行された操作とともに、日付、時刻、実行した利用者ID、アクセス元IPアドレス、及び結果(成功又は失敗)が記録される。
続いて、Yさんは、Gサービスが提供している、利用者IDとパスワードによる認証を利用した場合に、SIEMを利用してログから不正アクセスが検知できるかどうかを検討した。表4は、Yさんが考えた、ログから不正アクセスを検知する方法である。
表4を確認したTさんは、いずれの不正アクセスもゆっくりと実行された場合には見逃すことがあることと、項番2については、⑤ほかの場合にも見逃すことがあることを指摘した。さらに、不正アクセスを防ぐには、多要素認証を採用する方がよいことと、多要素認証は、Gサービス単独では実現できないが、IDaaSとの連携で実現できることを説明した。
〔IDaaSとの連携による多要素認証の実現方式の検討〕
Yさんは、IDaaSとの連携による多要素認証の実現方式の検討を開始した。幾つかのIDaaSを検討した結果、国内の互いに地理的に離れた複数のデータセンタで運用されているKサービスとの連携による実現が最適であると考えた。Kサービスでは、様々な認証方式を選択できるが、Yさんは、Gサービスを利用した新たなファイル交換システム(以下、Eシステムという)には、FIDO認証が最もふさわしいと考え、FIDO認証器として何を選択するべきか、検討を開始した。まず、Kサービスで利用できるFIDO認証器の仕組みについて調査し、表5にまとめた。

認証器としてスマートフォンを利用した場合の利用者認証の流れは図10のとおりであった。

Yさんは、図10中の(3)~(5)のメッセージの生成にオリジンbが使われていることについてTさんにその目的を尋ねた。Tさんは、攻撃者が、gするための特別なサーバをインターネット上に用意し、何らかの方法で被害者をそのサーバに誘導し、認証情報を不正に入手して悪用するという攻撃を防御するためだと答えた。
続いてYさんは、Eシステムにおいて、それぞれの認証器を使用した場合を想定し、認証器の取扱いを表6に、運用上のリスクと対策を表7にまとめた。

Yさんは、各認証を比較し、次のようにまとめた。
・Kサービスのアカウントに対して認証器を登録する際は、いずれの認証器でも、不正がないように確認する必要があり、登録について大きな差はない。
・USB接続外部認証器は、紛失・盗難に備えた体制を整えるのが難しいので、採用しない。
・スマートフォン及びOS内蔵の生体認証機能は、認証器として大きな差はないが、⑥Dシステムで要求されていたセキュリティ要件を技術的に実現できるので、OS内蔵の生体認証機能の方が望ましい。
上記からYさんは認証器としてOS内蔵の生体認証機能を採用することにした。
その後、Yさんは検討を続け、DシステムをEシステムに移行する案をまとめた。U社では、その案を承認し、Eシステムへの移行を開始した。
設問1:〔Dシステムの脆弱性診断〕について(1)、(2)に答えよ。
問題文を見る模範解答
a:<
b:>
解説
解答の論理構成
- 図3の報告(3)には「descriptionパラメタの値を画面Bの備考に出力する際には、エスケープ処理が正しく行われており、XSS脆弱性は認められない。」と記載されています。
つまり、送信された <script>alert('XSS!')</script> という文字列は、そのままタグとして解釈されないようにエスケープされて応答に埋め込まれている必要があります。 - HTMLにおけるタグ開始文字 < とタグ終了文字 > を画面に表示させるための代表的なエスケープは
• < → <
• > → >
の2つです。どちらも4文字で構成されます。 - 図5の該当箇所は「備考: ascriptbalert('XSS!')a/scriptb」という書式で示され、scriptと /scriptの前後に4文字のエスケープシーケンスが入ることが想定されています。
- 以上より、
a には「<」、
b には「>」
が入るのが妥当です。
誤りやすいポイント
- < と > の末尾セミコロンを忘れて <や >としてしまう。
- < など二重エスケープをしてしまい、表示結果が <script> になる。
- < と > を全角文字で書いてしまい4文字に収まらなくなる。
- 「4字」という条件から短絡的に < や > そのものを記入してしまう。
FAQ
Q: なぜ & ではなく </> なのですか?
A: & はアンパサンド自体を表示させるエスケープです。タグ開始・終了を表す < と > を無害化する目的であれば </> を使用します。
A: & はアンパサンド自体を表示させるエスケープです。タグ開始・終了を表す < と > を無害化する目的であれば </> を使用します。
Q: 4文字にセミコロンが含まれるのは不自然では?
A: HTML実体参照はセミコロンまでが1つの「文字列」です。< は「&」「l」「t」「;」の4文字で構成されます。
A: HTML実体参照はセミコロンまでが1つの「文字列」です。< は「&」「l」「t」「;」の4文字で構成されます。
Q: JavaScriptのエスケープ関数を使えば自動で安全になりますか?
A: 出力先(タグ内・属性値・スクリプト内など)によって適切なエスケープ方法が異なるため、万能ではありません。文脈に応じた処理が必要です。
A: 出力先(タグ内・属性値・スクリプト内など)によって適切なエスケープ方法が異なるため、万能ではありません。文脈に応じた処理が必要です。
関連キーワード: HTMLエスケープ、クロスサイトスクリプティング、実体参照、出力時無害化
設問1:〔Dシステムの脆弱性診断〕について(1)、(2)に答えよ。
問題文を見る解答群
ア:onmouseover=alert('XSS!')
イ:"><script>alert('XSS!')</script>
ウ:http:<script>alert('XSS!')</script>
エ:javascript:alert('XSS!')
模範解答
c:エ
解説
解答の論理構成
- 図7のHTTPレスポンスには
「参考URL:<a href="c">c</a>」
と記載されています。すなわち、c が href属性の値にもリンクテキストにもそのまま出力 されています。 - 図3(4)には、
「診断用URL2を入力した時に表示された画面B上で、参考URLのリンクをクリックすると、“XSS!”という内容のダイアログボックスが表示された。」
とあります。クリック時にJavaScriptが実行されたことが分かります。 - クリックだけでスクリプトを実行させる最も単純な方法は、javascript: スキームを用いて リンク先をスクリプトにする ことです。
- 解答群を確認すると、エ:javascript:alert('XSS!') だけが
・javascript: スキームを持つ
・alert関数を呼び出し “XSS!” というダイアログを表示する
という条件を同時に満たします。 - したがって、図6・図7の c に入る文字列は 「javascript:alert('XSS!')」、すなわち 解答群エ です。
誤りやすいポイント
- onmouseoverなど イベントハンドラ属性 でのXSSと混同しやすい。今回はリンクを「クリック」した瞬間に実行されることがヒントです。
- 候補「イ」や「ウ」は <script> タグを含むため、ブラウザのHTMLパーサがタグを閉じられる位置を探す必要があり、href属性にそのまま入れても実行されません。
- " を含む文字列を選ぶと ダブルクォーテーションのエスケープ が発生し、クリックによる即時実行には至らない点を見落としがちです。
FAQ
Q: なぜjavascript: スキームは危険なのですか?
A: ブラウザはhrefにjavascript: が指定されると、その後ろのコードをJavaScriptとして実行します。HTMLエスケープが十分でない場合、簡単にXSSを発生させます。
A: ブラウザはhrefにjavascript: が指定されると、その後ろのコードをJavaScriptとして実行します。HTMLエスケープが十分でない場合、簡単にXSSを発生させます。
Q: onmouseoverではダメなのですか?
A: 図3(4)で「リンクをクリックすると」とあるため、クリックイベントで発火する形でなければなりません。onmouseoverはマウスオーバー時なので条件が合いません。
A: 図3(4)で「リンクをクリックすると」とあるため、クリックイベントで発火する形でなければなりません。onmouseoverはマウスオーバー時なので条件が合いません。
Q: こうしたXSSを防ぐにはどうすればよいですか?
A: hrefやsrcの属性値を出力する際も 属性用エスケープ を行う、あるいはホワイトリスト方式でhttp/httpsスキームのみ許可するといった対策が有効です。
A: hrefやsrcの属性値を出力する際も 属性用エスケープ を行う、あるいはホワイトリスト方式でhttp/httpsスキームのみ許可するといった対策が有効です。
関連キーワード: XSS, 属性エスケープ、javascriptスキーム、URLパラメータ、ハッシュサニタイズ
設問2:〔Dシステムの脆弱性対策〕について、(1)〜(3)に答えよ。
問題文を見る(1)本文中の下線①について、改修方法を45字以内で具体的に述べよ。
解説
解答の導き方
設問は下線①、すなわちUアプリの改修でXSS脆弱性を解消する方法を問うています。図の記述から順にたどると次のように考えます。
-
残っている問題
エスケープ処理をしていても、href属性に「javascript:」で始まる文字列を出力すると、リンクをクリックしたときにスクリプトが実行されます。refURLパラメタの値をそのままhref属性に出力しているので、「javascript:alert(…)」のようなURLを与えられると、XSSが成立します。エスケープでは引用符などの記号は無害化されますが、「javascript:」というスキームそのものは無害化されません。 -
改修方法
href属性に出力するURLを、「http://」又は「https://」で始まるものだけに限定すれば、「javascript:」スキームによるスクリプトの実行を防げます。
誤りやすいポイント
- 図9の出力を読み落とし、引用符による属性の切断が成立していると考えてしまう。図9では引用符が「"」にエスケープされています。
- 「エスケープ処理を追加する」と答えてしまう。エスケープは既に行われており、それでは「javascript:」スキームを防げません。
- 出力を禁止するスキームを「javascript:」だけに限定してしまう。ほかの危険なスキームもあり得るので、許可するスキーム(http・https)を限定する方が確実です。
FAQ
Q: 図9の出力でスクリプトが実行されないのはなぜですか?
A: 引用符が「"」に変換されているため、onmouseover以降もhref属性の値の一部として扱われ、イベント属性として解釈されないからです。
A: 引用符が「"」に変換されているため、onmouseover以降もhref属性の値の一部として扱われ、イベント属性として解釈されないからです。
Q: 「javascript:」で始まるURLを禁止するだけではだめですか?
A: 大文字・小文字の混在や前後の空白など、表記を変えて検出を回避される可能性があります。http://又はhttps://で始まるものだけを許可する方が確実です。
A: 大文字・小文字の混在や前後の空白など、表記を変えて検出を回避される可能性があります。http://又はhttps://で始まるものだけを許可する方が確実です。
Q: CSPを設定すればXSS対策は不要ですか?
A: CSPは補助的な抑止策として有効ですが、既存の脆弱性を根本的に除去するものではありません。Uアプリの改修と併用します(本文の二つ目の対策がCSPです)。
A: CSPは補助的な抑止策として有効ですが、既存の脆弱性を根本的に除去するものではありません。Uアプリの改修と併用します(本文の二つ目の対策がCSPです)。
関連キーワード: クロスサイトスクリプティング、javascriptスキーム、URL検証、HTML属性エスケープ、CSP
設問2:〔Dシステムの脆弱性対策〕について、(1)〜(3)に答えよ。
問題文を見る(2)本文中の下線②について、実行が許可されるのはどのようなスクリプトファイルか。40字以内で述べよ。
模範解答
URLと同じオリジンであるスクリプトファイル
解説
解答の論理構成
- 問題文では、XSS対策の二つ目として“Content-Security-Policy: script-src 'self';”を付加し、Webブラウザに対し「②指定したスクリプトファイルの実行だけを許可する」と記載されています。
- 'self' はContent-Security-Policy(CSP)のキーワードであり、【仕様上】“現在表示しているページと同じオリジン(スキーム+ホスト+ポート)に属するリソースのみを許可する”ことを意味します。
- よって、実行が許可されるのは「アクセス中のページと同一オリジンのサーバに置かれたスクリプトファイル」です。
- 以上より、模範解答「URLと同じオリジンであるスクリプトファイル」となります。
誤りやすいポイント
- 'self' を「自サイトに置いた全ファイル」と広く捉え、CDNなど別ドメインのスクリプトまで許可されると誤解しやすい点。
- script-src 'self' はインラインJavaScriptをデフォルトでブロックすることを忘れ、インラインスクリプトも許可されると勘違いするケース。
- “同一ドメイン”と“同一オリジン”を混同し、ポート番号の違いを見落とすミス。
FAQ
Q: 'self' 以外に外部ドメインを許可したい場合はどうすればよいですか?
A: script-srcにホワイトリストとしてドメイン名(例https://example.com)を追加すれば、そのドメインのスクリプトも読み込めます。
A: script-srcにホワイトリストとしてドメイン名(例https://example.com)を追加すれば、そのドメインのスクリプトも読み込めます。
Q: インラインスクリプトをどうしても使いたい場合は?
A: 'unsafe-inline' を追加する方法がありますが、XSSリスクが高まるためnonce方式やhash方式の利用が推奨されます。
A: 'unsafe-inline' を追加する方法がありますが、XSSリスクが高まるためnonce方式やhash方式の利用が推奨されます。
Q: CSPを導入すればXSS対策は十分ですか?
A: いいえ。CSPは防御層の一つであり、入力値のエスケープやサーバ側の脆弱性修正と組み合わせることで初めて効果を発揮します。
A: いいえ。CSPは防御層の一つであり、入力値のエスケープやサーバ側の脆弱性修正と組み合わせることで初めて効果を発揮します。
関連キーワード: Content-Security-Policy, 同一オリジン、XSS, スクリプト制限、ホワイトリスト
設問2:〔Dシステムの脆弱性対策〕について、(1)〜(3)に答えよ。
問題文を見る(3)本文中の下線③について、実行が制限されてしまうのはどのようなスクリプトか。30字以内で述べよ。また、変更後の呼出し方法を50字以内で具体的に述べよ。
模範解答
スクリプト:HTMLファイル中に記載されたスクリプト
呼出し方法:スクリプトを別ファイルとして同一オリジンに保存して、HTMLファイルから呼び出す。
解説
解答の論理構成
- 対策②では、HTTPレスポンスに“Content-Security-Policy: script-src 'self';”を付加し、【問題文】のとおり「②指定したスクリプトファイルの実行だけを許可」します。
- 'self' だけを許容すると、
- オリジン外部のJavaScript
- <script>…</script> のようなHTML内に直接書いたコード(=インラインスクリプト)
がいずれも実行できなくなります。
- このうち社内開発で頻出し、呼出し方法を変えるだけで対応できるのは2. です。
- したがって③で確認すべきは「HTMLファイルに直接埋め込まれたスクリプト」。
- 実行させるには、「ファイルとして同一オリジンに配置し <script src=…> で参照する」ように変更すれば、'self' に合致し正常動作が回復します。
誤りやすいポイント
- 'self' を指定すると外部サイトだけが遮断され、インラインは許可されると誤解しやすい。実際には 'unsafe-inline' を付けない限りインラインも遮断されます。
- <script src="//cdn.example.com/…"> のようにプロトコル相対URLを使えば許可されると考えがちですが、オリジンが異なるため拒否されます。
- <img onerror=…> などイベント属性に埋めたJavaScriptもインライン扱いである点を見落としやすい。
FAQ
Q: インラインスクリプトを残したまま 'self' ポリシを適用し、安全に実行させる方法はありますか?
A: 'unsafe-inline' を追記すれば実行可能ですが、XSS攻撃面を広げるため推奨されません。
A: 'unsafe-inline' を追記すれば実行可能ですが、XSS攻撃面を広げるため推奨されません。
Q: 同一オリジンに置いた外部JSが大量にあり、個別に許可ドメインを書くのが面倒です。省略できますか?
A: 同一オリジンであれば 'self' だけで一括許可されるので追加指定は不要です。
A: 同一オリジンであれば 'self' だけで一括許可されるので追加指定は不要です。
Q: HTMLテンプレートエンジンで動的に <script> ブロックを生成しています。対応策は?
A: 生成後にファイルへ分離するか、DOM生成後にsrc属性で読み込む方式に切り替えてください。
A: 生成後にファイルへ分離するか、DOM生成後にsrc属性で読み込む方式に切り替えてください。
関連キーワード: Content Security Policy, インラインスクリプト、同一オリジン、外部JavaScript, XSS
設問3:〔項目1の検討〕について、(1)、(2)に答えよ。
問題文を見る(1)本文中のd、eに入れる適切な字句を、解答群の中から選び、記号で答えよ。
解答群
ア:個人情報保護
イ:システム監査
ウ:情報セキュリティ管理策
エ:審査及び認証
模範解答
d:ウ
e:ア
解説
解答の論理構成
- 問題文には
「クラウドサービスのためのdの実践の規範であるISO/IEC 27017」
とあります。
ISO/IEC 27017は “Code of practice for information security controls for cloud services” を正式名称としており、キーワードは「情報セキュリティ管理策」です。よって
d =「ウ:情報セキュリティ管理策」
となります。 - 続けて
「パブリッククラウドにおけるeの実践の規範であるISO/IEC 27018」
とあります。
ISO/IEC 27018は “Code of practice for protection of personally identifiable information (PII) in public clouds” を正式名称としており、キーワードは「個人情報保護」です。したがって
e =「ア:個人情報保護」
となります。 - 解答群の残りの語句
・「イ:システム監査」
・「エ:審査及び認証」
は、ISO/IEC 27017・27018の主題と合致しないため除外できます。
誤りやすいポイント
- ISO番号と対象領域を混同し、「27017=クラウド個人情報保護」と覚えていると逆転選択をしやすいです。
- 「審査及び認証」をキーワードに選びたくなりますが、ISO規格の“コード・オブ・プラクティス”は管理策・保護策を示す指針であり、審査そのものをテーマにはしていません。
- システム監査はISO/IEC 27017・27018とは直接の関連がないため、監査という言葉に引きずられないよう注意が必要です。
FAQ
Q: ISO/IEC 27017と27002の関係は?
A: ISO/IEC 27017は、ISO/IEC 27002の管理策をクラウドサービス向けに拡張・詳細化した指針です。
A: ISO/IEC 27017は、ISO/IEC 27002の管理策をクラウドサービス向けに拡張・詳細化した指針です。
Q: 認証取得済みサービスを選べば必ず安全なのですか?
A: 認証は一定の管理策実装を第三者が確認した証拠ですが、利用者側の設定・運用が不適切ならばリスクは残ります。
A: 認証は一定の管理策実装を第三者が確認した証拠ですが、利用者側の設定・運用が不適切ならばリスクは残ります。
Q: ISO/IEC 27018は個人情報保護法対応にも使えますか?
A: 企業がクラウドでPIIを扱う際の管理策整備に役立ちますが、国内法令や業界ガイドラインとの突合せも必要です。
A: 企業がクラウドでPIIを扱う際の管理策整備に役立ちますが、国内法令や業界ガイドラインとの突合せも必要です。
関連キーワード: ISO27017, ISO27018, クラウドセキュリティ、情報セキュリティ管理策、個人情報保護
設問3:〔項目1の検討〕について、(1)、(2)に答えよ。
問題文を見る(2)本文中の下線④について、取り得る措置を40字以内で述べよ。
模範解答
ファイルをU社が管理する鍵で暗号化してからアップロードする。
解説
解答の論理構成
-
事実の整理
- 本文には「F国では安全保障上の要請があれば、F国内に保存されているデータを、F国政府に強制的に提出させる国内法が存在する。」とあります。
- さらに下線④で「Gサービスを経由して協力会社との間で受け渡すファイルの内容を保護するという観点で、どのような措置が当社として取り得るか」と問われています。
-
リスクの特定
- Gサービスのストレージに平文で保存すると、G社やF国政府が鍵なしに内容を閲覧できるリスクがあります。
- 「ファイルを削除しても、Gサービス上のストレージに情報が残る可能性がある」(表2)ことも示され、保管中の暗号化が必須です。
-
求められる要件
- 保護対象はファイル「内容」であり、G社やF国政府が取得しても閲覧できない状態にする必要があります。
- したがって暗号鍵はU社側が管理し、クラウド事業者が保持しない形が望ましいです。
-
措置の導出
- 上記要件を同時に満たす手段は「アップロード前にU社管理の鍵で暗号化」以外ありません。
- これによりクラウド側には暗号化済みデータしか置かれず、鍵を保持しないG社やF国政府は復号できません。
-
結論
- 「ファイルをU社が管理する鍵で暗号化してからアップロードする」となります。
誤りやすいポイント
- 「日本国内だけのデータセンタに保管させる」と回答する誤り
(F国側データセンタにも保存されるサービス仕様のため実現不能) - 「契約で提出拒否を定める」と回答する誤り
(国家法による強制提出に契約条項は対抗できません) - Gサービスの「自動暗号化機能」を根拠にする誤り
(鍵が「G社が管理」なので閲覧リスクを解消できません)
FAQ
Q: Gサービス自動暗号化と何が違うのですか?
A: Gサービスは「暗号鍵はG社が管理するので可」とあります。鍵が事業者管理のため、強制提出時に復号可能です。U社管理の鍵なら第三者は復号できません。
A: Gサービスは「暗号鍵はG社が管理するので可」とあります。鍵が事業者管理のため、強制提出時に復号可能です。U社管理の鍵なら第三者は復号できません。
Q: ファイルを分割して機密部分を別送ではだめですか?
A: 分割しても全片がクラウドに残れば同様のリスクがあります。暗号化なら単一の対策で確実に内容を秘匿できます。
A: 分割しても全片がクラウドに残れば同様のリスクがあります。暗号化なら単一の対策で確実に内容を秘匿できます。
Q: VPNでGサービスへ接続するだけでは不十分ですか?
A: 通信経路は保護できますが、クラウド内に保管された後の閲覧リスクは残ります。保存時暗号化が必要です。
A: 通信経路は保護できますが、クラウド内に保管された後の閲覧リスクは残ります。保存時暗号化が必要です。
関連キーワード: クライアント側暗号化、アップロード前暗号化、鍵管理、データ主権、機密保持
設問4:〔項目2の検討〕について、(1)、(2)に答えよ。
問題文を見る(1)表4中のfに入れる適切な内容を20字以内で答えよ。
模範解答
f:同一利用者IDでのログイン失敗
解説
解答の論理構成
- 問題文では攻撃手法を
「表4 項番1 不正アクセスの方法:『利用者IDを固定して、パスワードを総当たりする。』」
と説明しています。 - これに対し検知方法として
「一定時間当たりの f の回数がしきい値を超えたら、不正アクセスとして検知する。」
と記載されています。 - 固定された利用者IDに対し繰り返しパスワードを試すブルートフォース攻撃では、一つの利用者IDでログイン失敗が連続します。
- 従って、しきい値判定に用いるべきメトリクスは「同一利用者IDで発生したログイン失敗回数」です。
- 以上より、f に入る語句は
「同一利用者IDでのログイン失敗」
となります。
誤りやすいポイント
- 「ログイン試行回数」だけでは成功を含む場合があり検知精度が下がります。
- 「同一IPアドレスでのログイン失敗」と混同しがちですが、表4項番1は“利用者IDを固定”する攻撃を対象としているため利用者ID基準で考える必要があります。
- 「パスワード誤り回数」など結果を限定せず記述すると、成功・失敗が混在し曖昧になります。
FAQ
Q: 成功したログインはカウント対象になりますか?
A: なりません。失敗のみを計数し、一定閾値を超えた場合にアラートを発報します。
A: なりません。失敗のみを計数し、一定閾値を超えた場合にアラートを発報します。
Q: 同一利用者IDでの成功・失敗が交互に記録された場合は?
A: 成功がある場合でも失敗回数が閾値を超えれば検知対象です。ただし成功でカウンタをリセットする運用ポリシも考慮できます。
A: 成功がある場合でも失敗回数が閾値を超えれば検知対象です。ただし成功でカウンタをリセットする運用ポリシも考慮できます。
Q: しきい値はどのように設定すべきですか?
A: システム利用状況や業務特性に応じて決定します。運用開始後は誤検知と漏れ検知のバランスを見て随時調整することが推奨されます。
A: システム利用状況や業務特性に応じて決定します。運用開始後は誤検知と漏れ検知のバランスを見て随時調整することが推奨されます。
関連キーワード: ブルートフォース攻撃、ログイン失敗、しきい値、SIEM, 不正アクセス検知
設問4:〔項目2の検討〕について、(1)、(2)に答えよ。
問題文を見る(2)本文中の下線⑤について、ほかの場合とはどのような場合か。40字以内で述べよ。
模範解答
アクセス元IPアドレスを変えながら、不正アクセスを続けた場合
解説
解答の論理構成
- 【問題文】では、表4の「項番2」において
「一定時間当たりの同一IPアドレスからの異なる利用者IDによるログイン失敗の回数がしきい値を超えたら、不正アクセスとして検知する。」
と記載されています。 - すなわち検知条件は「同一IPアドレス」という一点に依存しています。
- 攻撃者がIPアドレスを切り替えながら試行すれば、①短時間に試行しても各IPごとの失敗回数がしきい値を下回り、②SIEMが閾値超過を検知できません。
- したがって「ほかの場合」とは、攻撃者がアクセス元IPアドレスを順次変更して総当たりを継続するケースであり、結論は
「アクセス元IPアドレスを変えながら、不正アクセスを続けた場合」
となります。
誤りやすいポイント
- 「少数のパスワード」「利用者IDを総当たり」に気を取られ、IPアドレス条件の弱点を見落としやすいです。
- 「ゆっくり実行」=時間間隔だけと誤解し、IPローテーションという手口を連想できない受験者が多いです。
- しきい値超過のロジックを“累積失敗回数”と解釈し、IP依存という本質を外す失点が頻発します。
FAQ
Q: 「同一IPアドレス」に限定しない検知方法はありますか?
A: IPに加えて利用者ID・端末指紋・地理情報など多軸で相関分析する方法や、振る舞い分析を行うUEBA製品を併用すると効果的です。
A: IPに加えて利用者ID・端末指紋・地理情報など多軸で相関分析する方法や、振る舞い分析を行うUEBA製品を併用すると効果的です。
Q: そもそもIPアドレスを変えられる状況は現実的ですか?
A: モバイル回線やボットネット、匿名化サービス(VPN・Tor)を使えば容易に変えられます。攻撃者はこうした手段で検知回避を試みます。
A: モバイル回線やボットネット、匿名化サービス(VPN・Tor)を使えば容易に変えられます。攻撃者はこうした手段で検知回避を試みます。
Q: 多要素認証を導入すれば、この問題は解決しますか?
A: はい。パスワードリスト攻撃や総当たり攻撃の成功確率を大幅に下げられます。本文でも「多要素認証は、Gサービス単独では実現できないが、IDaaSとの連携で実現できる」と示されています。
A: はい。パスワードリスト攻撃や総当たり攻撃の成功確率を大幅に下げられます。本文でも「多要素認証は、Gサービス単独では実現できないが、IDaaSとの連携で実現できる」と示されています。
関連キーワード: 送信元IPアドレス、総当たり攻撃、SIEM, ログイン失敗、しきい値
設問5:〔IDaaSとの連携による多要素認証の実現方式の検討〕について、(1)〜(3)に答えよ。
問題文を見る(1)本文中のgに入れる適切な内容を、20字以内で具体的に答えよ。
模範解答
g:メッセージをKサービスとの間で中継
解説
解答の論理構成
- 問題文では、FIDO認証のメッセージ列 (3)~(5) にオリジンが含まれる理由をTさんが説明しています。
引用︓
「攻撃者が、gするための特別なサーバをインターネット上に用意し…という攻撃を防御するため」 - 攻撃者が立てるサーバの目的は、利用者と真正の「Kサービス」の間に入り込み、やり取りを代理で転送しながら認証情報を盗むことです。これは “リレー攻撃” や “中継” 型フィッシングの典型です。
- オリジンをハッシュに含めて署名させることで、Kサービス側は「届いたメッセージが自分の正当なオリジンで生成されたか」を検証できます。中継サーバは自分のオリジンでしか署名を作れないため、検証に失敗して攻撃は成立しません。
- よって g には「メッセージをKサービスとの間で中継」と入れると整合します。
- 20字以内という要件にも適合し、攻撃の意図と防御策が明確になります。
誤りやすいポイント
- 「オリジン偽装」「なりすまし」など抽象的に書き、実際に何をするサーバかを示せず減点される。
- 「MITM(中間者攻撃)」とだけ書いて具体性を欠く。設問は“何をするためのサーバか”を問うているので「中継」が必須。
- 「Kサービス」を別の表記(例:Kサービス、kサービス)にしてしまい固有名詞の引用ルール違反となる。
FAQ
Q: 単なるフィッシングサイトとの違いは?
A: 中継型は被害者の入力をリアルタイムに「Kサービス」へ転送し応答も返すため、見た目は本物そのものです。静的な偽サイトより検知が難しい点が特徴です。
A: 中継型は被害者の入力をリアルタイムに「Kサービス」へ転送し応答も返すため、見た目は本物そのものです。静的な偽サイトより検知が難しい点が特徴です。
Q: オリジンをハッシュに含めてもDNS偽装で回避されませんか?
A: FIDOはWebAuthnの仕組みでブラウザが保持するオリジンを利用するため、DNSを書き換えてもブラウザが示すオリジンは攻撃者ドメインになります。結果として署名検証で検知できます。
A: FIDOはWebAuthnの仕組みでブラウザが保持するオリジンを利用するため、DNSを書き換えてもブラウザが示すオリジンは攻撃者ドメインになります。結果として署名検証で検知できます。
Q: 中継攻撃への追加対策はありますか?
A: TLS証明書の検証強化、ユーザ教育、FIDOキーのPIN/生体認証義務化などを合わせて実施するとさらに安全性が高まります。
A: TLS証明書の検証強化、ユーザ教育、FIDOキーのPIN/生体認証義務化などを合わせて実施するとさらに安全性が高まります。
関連キーワード: オリジン、リレー攻撃、FIDO, WebAuthn, 中間者攻撃
設問5:〔IDaaSとの連携による多要素認証の実現方式の検討〕について、(1)〜(3)に答えよ。
問題文を見る模範解答
h:生体認証
i:Kサービス
j:アカウントを削除
k:アカウントを無効に
解説
解答の論理構成
- [問題文] 表5には
“スマートフォン…生体認証装置による生体認証”、 “OS内蔵…生体認証機能による生体認証”
と明記されています。表7で “認証器の使用時にhが必要” とあるのは、この生体認証を指すので h=生体認証 となります。 - 退職時の操作対象はIDaaS側のアカウントです。
[問題文] “IDaaSとの連携…国内…複数のデータセンタで運用されているKサービス” とあり、表6の “Kサービスにおける取扱い” も該当します。したがって “退職時又は退職後直ちに、iでは…” の i は Kサービス に他なりません。
さらに不正アクセス防止の具体的操作は “利用を完全に断つ” こと、すなわち アカウントを削除 です。よって j=アカウントを削除。 - USB接続外部認証器の行には “第三者による不正利用を防ぐために、直ちにkする必要がある。” と記されています。不正利用を防ぐ最速手段はアカウントを使えない状態にすることなので k=アカウントを無効に が妥当です。
誤りやすいポイント
- 表5の“生体認証”と表7のhとの対応を見落とし、PINやパスワードと誤記する。
- 退職時の操作対象をGサービスと勘違いし、i にGサービスを入れてしまう。
- j と k を入れ替え、“無効化”と“削除”を逆に答えてしまう。
- USB接続外部認証器の対策を “認証器を回収” と物理的措置だけで済むと誤解する。
FAQ
Q: 生体認証でも本人以外が使えてしまう場合はありませんか?
A: 表7では“不正利用される可能性は低い”とあるだけでゼロとは述べていません。生体情報の再登録や端末の設定変更が可能な管理者権限を誰が持つかが実務上の追加対策になります。
A: 表7では“不正利用される可能性は低い”とあるだけでゼロとは述べていません。生体情報の再登録や端末の設定変更が可能な管理者権限を誰が持つかが実務上の追加対策になります。
Q: “アカウントを削除”と“アカウントを無効に”はどう使い分けるのですか?
A: スマートフォンの場合は個人所有が前提で、退職と同時に恒久的に利用を停止させるため“削除”します。USB認証器は企業が一括購入し再配布する可能性があるため、まず“無効化”して誤用を防ぎ、再発行手続を別途行う想定です。
A: スマートフォンの場合は個人所有が前提で、退職と同時に恒久的に利用を停止させるため“削除”します。USB認証器は企業が一括購入し再配布する可能性があるため、まず“無効化”して誤用を防ぎ、再発行手続を別途行う想定です。
Q: Kサービス側のアカウント削除を忘れた場合、どのようなリスクがありますか?
A: クラウド上に認証情報が残り続け、退職者や第三者が資格情報を悪用してEシステムへアクセスできるリスクがあります。SIEMでの検知が難しい低頻度アクセスやAPI直叩きも想定されるため、完全削除が必須です。
A: クラウド上に認証情報が残り続け、退職者や第三者が資格情報を悪用してEシステムへアクセスできるリスクがあります。SIEMでの検知が難しい低頻度アクセスやAPI直叩きも想定されるため、完全削除が必須です。
関連キーワード: 生体認証、アカウント削除、アカウント無効化、多要素認証、IDaaS
設問5:〔IDaaSとの連携による多要素認証の実現方式の検討〕について、(1)〜(3)に答えよ。
問題文を見る(3)本文中の下線⑥のように考えた理由は何か。50字以内で述べよ。
模範解答
Gサービスへのアクセスを、ファイル受渡し用PCからのアクセスだけに限定できるから
解説
解答の論理構成
-
利用規約の継続
– 本文に「Gサービスへの移行について、Dシステムの利用規約の継続を前提として」とある。 -
重要な規約内容
– 「Dシステムには、ファイル受渡し用PCからだけアクセスすることを求めている。」という制限が明記されている。 -
認証器ごとのアクセス経路
– 表6で、 ・「スマートフォン」は〈Bluetooth接続〉でPCと分離され、所有者も「各協力会社又は利用者個人」。
・「OS内蔵の生体認証機能」は「ファイル受渡し用PCが認証器を兼ねる」。
よってスマートフォンはPC以外からも利用できるが、OS内蔵方式は物理的にPC以外からの認証が不可能。 -
Yさんの判断
– 下線⑥で「Dシステムで要求されていたセキュリティ要件を技術的に実現できるので、OS内蔵の生体認証機能の方が望ましい」と述べ、要件=“PC限定アクセス” を満たすことを理由としている。 -
したがって「Gサービスへのアクセスを、ファイル受渡し用PCからのアクセスだけに限定できるから」という模範解答となる。
誤りやすいポイント
- 「生体認証だから安全」という理由に終始し、“PC限定” という根本要件を見落とす。
- スマートフォンでもPC近傍なら問題ないと思い込み、外出先からのアクセス可能性を軽視する。
- 表6の「認証器の所有者」欄を読み飛ばし、管理範囲の違いを把握できない。
FAQ
Q: スマートフォンでもMDMで管理すればPC限定と同等では?
A: 物理的・技術的にPCと一体化しているOS内蔵方式に比べ、管理設定の解除や通信経路変更の余地が残り、規約の「PCからだけ」に対する担保が弱くなります。
A: 物理的・技術的にPCと一体化しているOS内蔵方式に比べ、管理設定の解除や通信経路変更の余地が残り、規約の「PCからだけ」に対する担保が弱くなります。
Q: OS内蔵生体認証はPC交換時に再登録が必要?
A: はい。ハードウェアが変わるためKサービスのアカウントに新しい認証器を登録し、旧認証器を失効させる運用が必要です。
A: はい。ハードウェアが変わるためKサービスのアカウントに新しい認証器を登録し、旧認証器を失効させる運用が必要です。
Q: USB接続外部認証器をPCと一緒に保管すれば同じでは?
A: 紛失・盗難リスクに加え、別のPCに挿して利用できる可搬性があり、「PC限定アクセス」を完全には保証できません。
A: 紛失・盗難リスクに加え、別のPCに挿して利用できる可搬性があり、「PC限定アクセス」を完全には保証できません。
関連キーワード: アクセス制御、多要素認証、FIDO, 生体認証、オリジンバインディング








