令和3年度 秋期 情報処理安全確保支援士試験 午後Ⅱ 問1 ファイル受渡しシステムのXSS脆弱性対策とSaaS移行時のセキュリティ評価

学習ガイド

半導体製造業のU社が、協力会社とのファイル受渡しに使うシステムのXSS脆弱性に対応し、SaaSへの移行を検討する問題です。前半では、診断用URLとHTTPレスポンスからXSSの原因を特定し、Uアプリの改修とCSP導入時のスクリプトの扱いを確認します。後半では、クラウドサービスの認証制度、海外の法律を踏まえたファイルの保護、ログからの不正アクセスの検知、IDaaSとFIDO認証器による多要素認証を読み解きます。

この記事で押さえる論点

  • XSS脆弱性の原因箇所を特定し、出力時のエスケープやURLの検証などの適切な改修方法を説明できる
  • Content-Security-Policyの仕組みを理解し、既存のインラインスクリプトへの影響と改修方針を説明できる
  • SaaS利用時のデータ保護において、クラウドサービスの認証制度や自社の鍵による暗号化を述べられる
  • SaaSのログを使ったSIEMでの不正アクセスの検知と、IDaaSとFIDO認証による多要素認証の仕組みを説明できる

問題本文

協力会社とのファイルの受渡しに関する次の記述を読んで,設問1〜5に答えよ。

U社は,従業員 10,000 名の半導体製造業であり,国内に工場を置いている。U社では,幾つかの工程を国内の 40 社の協力会社に委託しており,生産計画や設計書類のファイルを協力会社との間で受け渡す必要がある。ファイルの受渡し件数は,協力会社によって異なるが,1日当たり 1 件から 10 件である。U社では,生産管理課が協力会社とのファイルの受渡しを担当している。ファイルの受渡しには,Webベースのファイル交換システム(以下,Dシステムという)を使用している。Dシステムは,HTTPサーバ及びU社が開発したWebアプリケーションプログラム(以下,Uアプリという)から成る。Dシステムでは受発注に関するファイルは取り扱っていない。

図1は,Dシステムに関係する機器の全体構成である。

図1 Dシステムに関係する機器の全体構成
図の説明テキスト

ネットワーク構成図。

  • 左側の枠「U社ネットワーク」の中に,Dシステム,FW,ファイル受渡し用PCがある。Dシステム — FW,ファイル受渡し用PC — FW がそれぞれ接続され,FW はインターネット(楕円)に接続されている。
  • 右側の枠「協力会社 社内ネットワーク」(中にファイル受渡し用PC)は複数が重ねて描かれ,それぞれインターネットに接続されている(「⋮」で複数を示す)。
    凡例: FW:ファイアウォール

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に示す。

図2 XSS脆弱性が発見された箇所
図の説明テキスト

画面A(備考などの入力画面)と画面B(入力後に遷移する確認画面)の関係図。画面Aから画面Bへ「内容を確認する」ボタンによる遷移の矢印が引かれている。
【画面Aの内容】
URL: https://dsys.u-sha.co.jp/description
ファイル備考の入力
フォルダ: 協力会社A > 生産計画
ファイル: 部品10293.pdf
備考: [テキストエリア内に「部品10293の生産計画です。完成した部品の納品場所は参考URLのとおりです。」]
参考URLあり: ☑
参考URL: [テキストボックス内に「http://www.u-sha.co.jp/map001.html」]
ボタン: [キャンセル] [内容を確認する]
【画面Bの内容】
URL: https://dsys.u-sha.co.jp/submitdescription
ファイル備考の入力
フォルダ: 協力会社A > 生産計画
ファイル: 部品10293.pdf
備考: 部品10293の生産計画です。完成した部品の納品場所は参考URLのとおりです。
参考URL: http://www.u-sha.co.jp/map001.html (下線あり)
上記の内容でアップロードしますか。
ボタン: [戻る] [アップロードする]
【注記】
注記1 矢印は画面Aの入力欄に適切な値を入力してボタンがクリックされたときの遷移を示す。
注記2 画面Bの下線は,リンクであることを示している。

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

図3 XSS脆弱性の報告(抜粋)
図の説明テキスト

枠で囲まれた箇条書きの文章。
(1) XSS脆弱性の診断は,URLをWebブラウザのアドレスバーに入力し,HTTPレスポンス及び表示される画面の内容を確認することによって行った。
(2) まず,図2の画面Aと画面Bの診断のために,診断用URL1と診断用URL2の二つを入力した。診断用URL1を図4,診断用URL1を入力した時に得られたサーバからのHTTPレスポンスのボディ部を図5,診断用URL2を図6,診断用URL2を入力した時に得られたサーバからのHTTPレスポンスのボディ部を図7に示す。
(3) 図5から,descriptionパラメタの値を画面Bの備考に出力する際には,エスケープ処理が正しく行われており,XSS脆弱性は認められない。
(4) 診断用URL2を入力した時に表示された画面B上で,参考URLのリンクをクリックすると,“XSS!”という内容のダイアログボックスが表示された。
(5) 上記(4)と,図7から,refURLパラメタの値を画面Bの参考URLのリンクとして出力する際の処理に問題があり,XSS脆弱性が存在すると認められる。
(6) 上記(5)で示した脆弱性の原因は,refURLパラメタの出力部において,プログラミングに関する次の二つの誤りのうちのどちらかによるものと想定される。

  • XSSを防ぐための処理を一切していない。
  • XSSを防ぐための基本的な処理はしているが,HTMLタグの属性値の出力時に必要な処理が行われていない。
    (7) 次に,いずれの誤りなのかを調べるために,図8に示す診断用URL3を入力した。その時に得られたサーバからのHTTPレスポンスのボディ部が図9である。
図4 診断用 URL1
図の説明テキスト

枠内に以下のURLが記述されている。
https://dsys.u-sha.co.jp/submitdescription?fileID=001023&description=&checkbox=on&refURL=http%3A%2F%2Fwww.u-sha.co.jp/

図5 診断用 URL1 を入力した時の HTTP レスポンスのボディ部
図の説明テキスト

枠内にレスポンスボディが記述されており、空欄a, bが含まれる。
(省略)
備考:ascriptbalert('XSS!')a/scriptb

(省略)
参考 URL:http://www.u-sha.co.jp/
(省略)

図6 診断用 URL2
図の説明テキスト

枠内に以下のURLが記述されており、末尾に空欄cが含まれる。
https://dsys.u-sha.co.jp/submitdescription?fileID=001023&description=test2&checkbox=on&refURL=c

図7 診断用 URL2 を入力した時の HTTP レスポンスのボディ部
図の説明テキスト

枠内にレスポンスボディが記述されており、空欄cが含まれる。
(省略)
備考:test2

(省略)
参考 URL:c
(省略)

図8 診断用 URL3
図の説明テキスト
図9 診断用 URL3 を入力した時の HTTP レスポンスのボディ部
図の説明テキスト

枠内にレスポンスボディが記述されている。
(省略)
備考:test3

(省略)
参考 URL:" onmouseover=alert('XSS!') foo="
(省略)

〔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アプリのメンテナンスを継続するよりもメリットが多そうなので,更に詳細に検討することにした。

表1 Gサービスの概要
図の説明テキスト
項目 内容
基本機能 ・利用者は,Web ブラウザでアクセスする。
・G サービス上のストレージにファイルをアップロードしたり,ローカルのストレージにダウンロードしたりできる。
・アップロードしたファイルは,複数階層にわたるフォルダで管理される。利用者は,アクセス権に従ってフォルダを作成することができる。
アクセス権 ・ファイル及びフォルダに対して,利用者ごとにアクセス権を設定できる。
契約に伴う制限 ・契約で定められた容量が割り当てられる。
・ほかの契約者に割り当てられた領域には,アクセスできない。
・契約では発行できるアカウント数の上限が定められている。

Yさんは,Gサービスへの移行について,Dシステムの利用規約の継続を前提として,次の項目を検討することにした。

項目1:必要なセキュリティ対策のGサービスでの実現可否

項目2:SIEMとの連携

〔項目1の検討〕

Yさんは,項目1について検討した。表2は,その検討結果である。

表2 項目1の検討結果
図の説明テキスト
必要なセキュリティ対策 Gサービスでの実現可否
協力会社以外からのアクセス禁止 G サービスで,送信元 IP アドレスの制限を行うことができないので否
Web アプリケーションプログラムの脆弱性への対応 G 社が実施するので可
サーバ OS 及び HTTP サーバへの脆弱性修正プログラムの適用 G 社が実施するので可
ファイルを G サービス上のストレージに保存するときの暗号化 G サービスの機能として,自動的に暗号化され,暗号鍵はG社が管理するので可
ファイルの完全削除 ファイルを削除しても,G サービス上のストレージに情報が残る可能性があるので否
災害時の業務継続 ファイルや管理情報が,日本国内とF国の両方のデータセンタに保存されており,片方が災害に遭ってもデータの消失とサービスの停止を防ぐことができるので可

次は,検討結果に関する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へ取り込めることが分かった。

表3 提供しているログ
図の説明テキスト
対象 実行された操作
アカウント ログイン, ログアウト, 作成, 削除, 権限変更
フォルダ 作成, 削除, 名称変更, アクセス権変更
ファイル ダウンロード, アップロード, 削除, 名称変更, アクセス権変更

ログには,操作対象,実行された操作とともに,日付,時刻,実行した利用者ID,アクセス元IPアドレス,及び結果(成功又は失敗)が記録される。

続いて,Yさんは,Gサービスが提供している,利用者IDとパスワードによる認証を利用した場合に,SIEMを利用してログから不正アクセスが検知できるかどうかを検討した。表4は,Yさんが考えた,ログから不正アクセスを検知する方法である。

表4 ログから不正アクセスを検知する方法 (抜粋)
図の説明テキスト
項番 不正アクセスの方法 検知の方法
1 利用者 ID を固定して,パスワードを総当たりする。 一定時間当たりの f の回数がしきい値を超えたら,不正アクセスとして検知する。
2 少数のパスワードについて,利用者 ID を総当たりする。 一定時間当たりの同一 IP アドレスからの異なる利用者 ID によるログイン失敗の回数がしきい値を超えたら,不正アクセスとして検知する。

表4を確認したTさんは,いずれの不正アクセスもゆっくりと実行された場合には見逃すことがあることと,項番2については,⑤ほかの場合にも見逃すことがあることを指摘した。さらに,不正アクセスを防ぐには,多要素認証を採用する方がよいことと,多要素認証は,Gサービス単独では実現できないが,IDaaSとの連携で実現できることを説明した。

〔IDaaSとの連携による多要素認証の実現方式の検討〕

Yさんは,IDaaSとの連携による多要素認証の実現方式の検討を開始した。幾つかのIDaaSを検討した結果,国内の互いに地理的に離れた複数のデータセンタで運用されているKサービスとの連携による実現が最適であると考えた。Kサービスでは,様々な認証方式を選択できるが,Yさんは,Gサービスを利用した新たなファイル交換システム(以下,Eシステムという)には,FIDO認証が最もふさわしいと考え,FIDO認証器として何を選択するべきか,検討を開始した。まず,Kサービスで利用できるFIDO認証器の仕組みについて調査し,表5にまとめた。

表5 FIDO認証器の仕組み
図の説明テキスト
認証器 Web ブラウザとの通信方法 認証器使用時の利用者確認 (User Verification) 複数利用者による認証器の共用 組合せ 1)
スマートフォン Bluetooth 経由 スマートフォンに組み込まれた生体認証装置による生体認証 できない 限定されない
USB 接続外部認証器 USB ポート経由 なし できない 限定されない
OS 内蔵の生体認証機能 OS 内部処理 OS に内蔵された生体認証機能による生体認証 OS の利用者 ID 間で可能 限定される

注 1) K サービスにアクセスする PC と,認証器の組合せ

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

図10 利用者認証の流れ
図の説明テキスト

シーケンス図「利用者認証の流れ」
エンティティ:

  • 認証器 (スマートフォン)
  • Webブラウザ (Kサービスに未ログイン)
  • Kサービスの認証サーバ

通信経路:

  • 認証器とWebブラウザ間: Bluetooth接続
  • Webブラウザと認証サーバ間: TCP/IP接続

処理フロー:

  1. WebブラウザからKサービスの認証サーバへメッセージ送信: (1) 利用者ID
  2. Kサービスの認証サーバ内で処理: IDcの選択、乱数c´の生成
  3. Kサービスの認証サーバからWebブラウザへメッセージ送信: (2) IDc,ドメイン,乱数c´
  4. Webブラウザから認証器 (スマートフォン)へメッセージ送信: (3) 利用者ID,IDc,ドメイン,H(オリジンb || 乱数c´)
  5. 認証器 (スマートフォン)内で処理: 生体認証による利用者確認
  6. 認証器 (スマートフォン)からWebブラウザへメッセージ送信: (4) IDc,H(ドメイン),署名M
  7. WebブラウザからKサービスの認証サーバへメッセージ送信: (5) IDc,H(ドメイン),オリジンb,署名M
  8. Kサービスの認証サーバ内で処理: オリジンbがKサービスのものであることの確認、(5)の正当性確認,署名Mの検証

注記:

  • IDc:認証器の登録時に,利用者IDとドメインの組みに対して,認証器ごとに発行するID
  • H(A):Aのハッシュ値
  • A || B:AとBを連結
  • オリジンb:WebブラウザがアクセスしているWebサイトのオリジン
  • 署名M:H(ドメイン),H(オリジンb || 乱数c´)に対するディジタル署名

Yさんは,図10中の(3)〜(5)のメッセージの生成にオリジンbが使われていることについてTさんにその目的を尋ねた。Tさんは,攻撃者が,gするための特別なサーバをインターネット上に用意し,何らかの方法で被害者をそのサーバに誘導し,認証情報を不正に入手して悪用するという攻撃を防御するためだと答えた。

続いてYさんは,Eシステムにおいて,それぞれの認証器を使用した場合を想定し,認証器の取扱いを表6に,運用上のリスクと対策を表7にまとめた。

表6 認証器の取扱い
図の説明テキスト
認証器 Kサービスにおける取扱い Eシステムにおける認証器の所有者 Eシステムにおける認証器の配布方法
スマートフォン 供給せず,要件を提示している。 各協力会社又は利用者個人 協力会社によって異なる。
USB接続外部認証器 専用機器を契約者だけに販売している。 U社の一括購入となるので,U社 U社から必要個数を各協力会社に配布する。
OS内蔵の生体認証機能 供給せず,要件を提示している。 各協力会社 ファイル受渡し用PCが認証器を兼ねるので,認証器の別途配布は不要である。
表7 運用上のリスクと対策(抜粋)
図の説明テキスト
認証器 認証器の紛失・盗難時のリスクと対策 退職時のリスクと対策 1)
スマートフォン 認証器の使用時に h が必要なので,不正利用される可能性は低い。 退職者による不正なアクセスを防ぐために,個人所有のスマートフォンを利用していた場合も想定して,退職時又は退職後直ちに,i では,j する必要がある。
USB接続外部認証器 第三者による不正利用を防ぐために,直ちに k する必要がある。 (省略)
OS内蔵の生体認証機能 認証器の使用時に h が必要なので,不正利用される可能性は低い。 休眠アカウントを悪用した不正アクセスを防ぐために,ファイル受渡し用PCにログインするためのアカウントを忘れずに削除する必要がある。

注 1) Eシステムの利用者だった従業員が退職した場合のリスクと対策

Yさんは,各認証器を比較し,次のようにまとめた。

  • Kサービスのアカウントに対して認証器を登録する際は,いずれの認証器でも,不正がないように確認する必要があり,登録について大きな差はない。
  • USB接続外部認証器は,紛失・盗難に備えた体制を整えるのが難しいので,採用しない。
  • スマートフォン及びOS内蔵の生体認証機能は,認証器として大きな差はないが,⑥Dシステムで要求されていたセキュリティ要件を技術的に実現できるので,OS内蔵の生体認証機能の方が望ましい。

上記からYさんは認証器としてOS内蔵の生体認証機能を採用することにした。

その後,Yさんは検討を続け,DシステムをEシステムに移行する案をまとめた。
U社では,その案を承認し,Eシステムへの移行を開始した。

設問と解答・解説

設問1

〔Dシステムの脆弱性診断〕について,(1),(2)に答えよ。

(1)配点 6点

図5中の a に入れる適切な文字列を,4字で答えよ。

模範解答

<

採点基準

知識・理解度(内容)3点
  • 3点: HTMLの特殊文字 `<` に対する正しい文字実体参照 `&lt;` を正確に導出できている。
  • 1点: エスケープ処理の概念は理解しているが、導出された文字列に一部不正確な点がある。
  • 0点: 正しい実体参照が導出できていない。
論理性(構造)3点
  • 3点: 正しい文字として明確に記述されている。
  • 1点: 意図は伝わるが表現が不明瞭である。
  • 0点: 意図が伝わらない表現となっている。

解説

XSS脆弱性の診断結果として、図5のHTTPレスポンスのボディ部では、入力した <script>alert('XSS!')</script> に対して「エスケープ処理が正しく行われており」と報告されています。
HTMLにおけるエスケープ処理では、タグを構成する特殊文字である < と > を、それぞれ文字実体参照に変換します。
したがって、< は &lt; に変換されて出力されます。

高得点のポイント

  • HTMLの特殊文字 < に対する正しい文字実体参照 &lt; を導出できていること。
(2)配点 6点

図5中の b に入れる適切な文字列を,4字で答えよ。

模範解答

&gt;

採点基準

知識・理解度(内容)3点
  • 3点: HTMLの特殊文字 `>` に対する正しい文字実体参照 `&gt;` を正確に導出できている。
  • 1点: エスケープ処理の概念は理解しているが、導出された文字列に一部不正確な点がある。
  • 0点: 正しい実体参照が導出できていない。
論理性(構造)3点
  • 3点: 正しい文字として明確に記述されている。
  • 1点: 意図は伝わるが表現が不明瞭である。
  • 0点: 意図が伝わらない表現となっている。

解説

設問1(1)と同様に、図5のHTTPレスポンスにおいて、<script>alert('XSS!')</script> の > はエスケープ処理によって無害化されて出力されます。
> の正しい文字実体参照は &gt; です。

高得点のポイント

  • HTMLの特殊文字 > に対する正しい文字実体参照 &gt; を導出できていること。
(3)配点 4点

図6中及び図7中の c に入れる適切な文字列を,解答群の中から選び,記号で答えよ。

ア. onmouseover=alert('XSS!')
イ. ">
ウ. http:
エ. javascript:alert('XSS!')

模範解答

選択肢エ: javascript:alert('XSS!')

解説

図3の(4)において、診断用URL2を入力した画面Bで「参考URLのリンクをクリックすると、“XSS!”という内容のダイアログボックスが表示された」と報告されています。
図7のHTTPレスポンスを見ると、参考URLは <a href='c'>c</a> のように href 属性に直接入力値が出力されています。
リンクをクリックした際にスクリプトを実行させるためには、URLのスキームとして javascript: を指定する必要があります。

各選択肢の解説

  • ア: 誤り。onmouseover はイベントハンドラ属性であり、href 属性の値としてそのまま入れてもクリック時のスクリプト実行にはなりません。
  • イ: 誤り。図7の出力において href 属性の値はシングルクォーテーションで囲まれているため、そのまま挿入すると文法エラーになります。
  • ウ: 誤り。http: スキームの後にスクリプトタグを記述しても、ブラウザは不正なURLとして扱い、スクリプトは実行されません。
  • エ: 正解。javascript:alert('XSS!') を href 属性に指定することで、リンククリック時にダイアログを表示させることができます。

設問2

〔Dシステムの脆弱性対策〕について,(1)〜(3)に答えよ。

(1)配点 6点

本文中の下線①について,改修方法を45字以内で具体的に述べよ。

模範解答

http://又はhttps://で始まるURLだけを出力するようにする。

採点基準

知識・理解度(内容)3点
  • 3点: http://又はhttps://で始まるURLに限定する必要性が正確に記述されている。
  • 1点: 妥当性確認の必要性には触れているが、具体的なスキーム名などに不正確な点がある。
  • 0点: スキームの妥当性確認についての理解が見られない。
論理性(構造)3点
  • 3点: 「http://又はhttps://で始まる」「だけを出力する」という構成で明確に記述されている。
  • 1点: 論理構成に飛躍や不明瞭な点がある。
  • 0点: 論理的な説明がなされていない。

解説

図3の(6)で想定された二つの誤りのうち、図9で " が &quot; にエスケープされていることから、「XSSを防ぐための基本的な処理はしているが,HTMLタグの属性値の出力時に必要な処理が行われていない」の方に当たります。そのため、href 属性に javascript: などのスキームが指定された場合にXSSが発生する状態です。
これを根本的に解消するためには、href 属性に出力される値が、意図した安全なURL形式であるかを制限する必要があります。
具体的には、WebサイトのURLとして正規に利用される http:// または https:// で始まる文字列のみを許可し、それ以外が出力されないようにする改修が必要です。

高得点のポイント

  • href 属性に出力する値として、http:// または https:// で始まる正規のURLスキームに限定することを明記していること。
  • それ以外の不正なスキーム(javascript:など)の出力を防ぐ論理を表現できていること。
(2)配点 6点

本文中の下線②について,実行が許可されるのはどのようなスクリプトファイルか。40字以内で述べよ。

模範解答

URLと同じオリジンであるスクリプトファイル

採点基準

知識・理解度(内容)3点
  • 3点: URLと同じオリジンであることが正確に記述されている。
  • 1点: オリジンの概念について言及しているが、表現に不正確な点がある。
  • 0点: オリジンの概念が理解できていない。
論理性(構造)3点
  • 3点: URLと同じオリジンであるスクリプトファイルであることが明確に記述されている。
  • 1点: 表現にやや不明瞭な点がある。
  • 0点: 意図が伝わらない構成となっている。

解説

Content-Security-Policy (CSP) の script-src ディレクティブは、スクリプトの読み込み元を制限します。
ヘッダフィールドとして script-src 'self'; を指定した場合、'self' は、そのWebページ自体と同一のオリジン(スキーム、ホスト、ポート番号の組み合わせ)を意味します。
したがって、実行が許可されるのは、URLと 同じオリジン にあるスクリプトファイルのみとなります。

高得点のポイント

  • CSPの 'self' が、アクセスしているURLと 同じオリジン(同一オリジン)を意味することを正しく理解して記述できていること。
(3)配点 6点

本文中の下線③について,実行が制限されてしまうのはどのようなスクリプトか。30字以内で述べよ。

模範解答

HTMLファイル中に記載されたスクリプト

採点基準

知識・理解度(内容)3点
  • 3点: HTMLファイル中に記載されたスクリプトであることが正確に記述されている。
  • 1点: 制限対象について言及しているが、インラインスクリプトであることの表現が不正確である。
  • 0点: 制限対象の仕様が理解できていない。
論理性(構造)3点
  • 3点: HTMLファイル中に記載されたスクリプトであることが明確に記述されている。
  • 1点: 表現にやや不明瞭な点がある。
  • 0点: 意図が伝わらない構成となっている。

解説

Content-Security-Policy: script-src 'self'; を適用した場合、同一オリジンからの外部スクリプトファイル(.js)の読み込みは許可されますが、HTMLファイル内に直接記述されたスクリプトは、デフォルトで実行が制限されます。
具体的には、<script> タグ内に記述されたコードや、要素のイベントハンドラ属性(onmouseoverなど)に記述されたインラインスクリプトが該当します。
したがって、HTMLファイル中に記載されたスクリプト は意図したとおりに動作しなくなります。

高得点のポイント

  • script-src 'self' の制限対象として、外部ファイル化されていない HTMLファイル中に記載されたスクリプト(インラインスクリプト)を明確に挙げていること。
(4)配点 6点

本文中の下線③について,変更後の呼出し方法を50字以内で具体的に述べよ。

模範解答

スクリプトを別ファイルとして同一オリジンに保存して,HTMLファイルから呼び出す。

採点基準

知識・理解度(内容)3点
  • 3点: 別ファイルへの分離と同一オリジンでの保存が正確に記述されている。
  • 1点: 外部ファイル化には触れているが、同一オリジンなどの条件に欠落がある。
  • 0点: 外部ファイル化の解決策が理解できていない。
論理性(構造)3点
  • 3点: 手順が順序立てて明確に記述されている。
  • 1点: 手順の説明に飛躍や不明瞭な点がある。
  • 0点: 論理的な手順として説明されていない。

解説

HTMLファイル内に記載されたインラインスクリプトがCSPによって制限される場合、そのスクリプトを外部ファイルに分離することで実行可能になります。
具体的には、スクリプトの内容を 別ファイル として抽出し、許可されている 同一オリジン のサーバに保存した上で、HTMLファイルからは <script src="..."> のようにそのファイルを 呼び出す 方法に変更します。

高得点のポイント

  • インラインスクリプトを 別ファイル に分離することを記述していること。
  • 分離したファイルを許可対象である 同一オリジン に保存することを記述していること。
  • HTMLファイルからその外部ファイルを 呼び出す 構成に変更することを記述していること。

設問2(2)及び(3)では,CSPがクロスサイトスクリプティング(XSS)脆弱性を防ぐ仕組みを理解できていないと思われる解答が一部に見られた。従来型のコンテンツにCSPを適用するためにはコンテンツの修正が必要ではあるが,XSSによって被害が発生する可能性は著しく低くなる。CSPの適用は,有効な手段であるので,この仕組みを理解しておいてほしい。

設問3

〔項目1の検討〕について,(1),(2)に答えよ。

(1)配点 4点

本文中の d に入れる適切な字句を,解答群の中から選び,記号で答えよ。

ア. 個人情報保護
イ. システム監査
ウ. 情報セキュリティ管理策
エ. 審査及び認証

模範解答

選択肢ウ: 情報セキュリティ管理策

解説

本文中のTさんの発言において、クラウドサービスのための実践の規範であるISO/IEC 27017に関する説明が行われています。
ISO/IEC 27017(JIS Q 27017)は、クラウドサービスにおける 情報セキュリティ管理策 のための実践の規範を定めた国際規格です。

各選択肢の解説

  • ア: 誤り。個人情報保護の規範は ISO/IEC 27701 や JIS Q 15001 などです。
  • イ: 誤り。システム監査の規範は JIS Q 19011 などです。
  • ウ: 正解。ISO/IEC 27017は、クラウドサービス特有の 情報セキュリティ管理策 を規定しています。
  • エ: 誤り。審査及び認証に関する規格は ISO/IEC 27006 などです。
(2)配点 4点

本文中の e に入れる適切な字句を,解答群の中から選び,記号で答えよ。

ア. 個人情報保護
イ. システム監査
ウ. 情報セキュリティ管理策
エ. 審査及び認証

模範解答

選択肢ア: 個人情報保護

解説

本文中のTさんの発言において、パブリッククラウドにおける実践の規範であるISO/IEC 27018に関する説明が行われています。
ISO/IEC 27018は、パブリッククラウドにおいてPII(個人識別情報)プロセッサとしての役割を担う組織に向けた、個人情報保護 のための実践の規範を定めた国際規格です。

各選択肢の解説

  • ア: 正解。ISO/IEC 27018はパブリッククラウドにおける 個人情報保護 に焦点を当てた規格です。
  • イ: 誤り。システム監査は別の規格の対象です。
  • ウ: 誤り。情報セキュリティ管理策は ISO/IEC 27017 などに該当します。
  • エ: 誤り。審査及び認証は別の規格の対象です。
(3)配点 6点

本文中の下線④について,取り得る措置を40字以内で述べよ。

模範解答

ファイルをU社が管理する鍵で暗号化してからアップロードする。

採点基準

知識・理解度(内容)3点
  • 3点: U社が鍵を管理して暗号化する必要性が正確に記述されている。
  • 1点: 暗号化の必要性には触れているが、鍵の管理主体(U社)が明記されていないなど不十分である。
  • 0点: 利用者側での暗号化の必要性が理解できていない。
論理性(構造)3点
  • 3点: 対策の手順が明確な構成で記述されている。
  • 1点: 手順の説明にやや飛躍や不明瞭な点がある。
  • 0点: 手順として論理的に説明されていない。

解説

表2の項目1の検討結果によれば、Gサービスではファイルが「自動的に暗号化され,暗号鍵はG社が管理する」仕様となっています。
F国政府からデータの強制提出を求められた場合、G社が鍵を管理していると、データが復号されて内容が漏えいするリスクがあります。
これを防ぐためには、Gサービスへファイルをアップロードする前に、U社が自ら管理する暗号鍵 を用いてファイルを 暗号化 する措置が必要です。U社の鍵で暗号化されていれば、F国側でファイルが押収されても内容は保護されます。

高得点のポイント

  • G社ではなく U社が管理する鍵 を使用することを明記していること。
  • クラウドへアップロードする前に 暗号化 する手順を記述していること。

設問4

〔項目2の検討〕について,(1),(2)に答えよ。

(1)配点 6点

表4中の f に入れる適切な内容を20字以内で答えよ。

模範解答

同一利用者IDでのログイン失敗

採点基準

知識・理解度(内容)3点
  • 3点: 同一利用者IDに対するログイン失敗であることが正確に記述されている。
  • 1点: ログイン失敗には着目できているが、同一利用者IDなどの条件が欠落している。
  • 0点: 総当たり攻撃のログ上の特徴が理解できていない。
論理性(構造)3点
  • 3点: 検知条件が明確な構成で簡潔に記述されている。
  • 1点: 条件の記述にやや不明瞭な点がある。
  • 0点: 条件として意図が伝わらない表現となっている。

解説

表4の項番1は「利用者 ID を固定して,パスワードを総当たりする」攻撃(ブルートフォース攻撃や辞書攻撃)を検知する方法です。
この攻撃が行われると、特定の利用者IDに対して多数の誤ったパスワードが試行されるため、認証エラーのログが大量に発生します。
したがって、表3の提供されているログを用いて、「一定時間当たりの 同一利用者IDでのログイン失敗」の回数がしきい値を超えたかどうかを確認することで、この不正アクセスを検知できます。

高得点のポイント

  • パスワード総当たり攻撃の特徴である、同一利用者ID に対する試行であることを特定できていること。
  • ログ上の事象として ログイン失敗 に着目できていること。
(2)配点 6点

本文中の下線⑤について,ほかの場合とはどのような場合か。40字以内で述べよ。

模範解答

アクセス元IPアドレスを変えながら,不正アクセスを続けた場合

採点基準

知識・理解度(内容)3点
  • 3点: IPアドレスを変えながら攻撃を継続する状況が正確に記述されている。
  • 1点: IPアドレスの変更には触れているが、状況の説明に不正確な点がある。
  • 0点: IPアドレス分散による検知回避が理解できていない。
論理性(構造)3点
  • 3点: 状況が明確な構成で論理的に記述されている。
  • 1点: 論理構成にやや飛躍や不明瞭な点がある。
  • 0点: 論理的な状況説明となっていない。

解説

表4の項番2では、「一定時間当たりの同一 IP アドレスからの異なる利用者 ID によるログイン失敗の回数」をしきい値としてリバースブルートフォース攻撃を検知しようとしています。
しかし、攻撃者がボットネットなどを利用して、アクセス元IPアドレスを変えながら(分散させて)攻撃を行った場合、一つのIPアドレスあたりの失敗回数は少なくなり、設定したしきい値を超えなくなります。
このため、IPアドレスを分散させた攻撃に対しては、不正アクセスを見逃してしまう可能性があります。

高得点のポイント

  • 検知条件である「同一 IP アドレス」を回避する手段として、アクセス元IPアドレスを変える(分散させる) 攻撃手法を明記していること。
  • IPアドレスを変えながら 不正アクセスを続ける 状況を論理的に説明できていること。
(1)配点 6点

本文中の g に入れる適切な内容を,20字以内で具体的に答えよ。

模範解答

メッセージをKサービスとの間で中継

採点基準

知識・理解度(内容)3点
  • 3点: 特別なサーバがメッセージを中継する役割を持つことが正確に記述されている。
  • 1点: 攻撃手法には触れているが、メッセージの中継という役割の説明が不正確である。
  • 0点: オリジン検証が防ぐ攻撃の仕組みを理解していない。
論理性(構造)3点
  • 3点: メッセージを中継することが簡潔かつ明確な構成で記述されている。
  • 1点: 表現にやや不明瞭な点がある。
  • 0点: 意図が伝わらない表現となっている。

解説

FIDO認証の利用者認証の流れ(図10)において、Webブラウザは現在アクセスしているWebサイトのオリジン(オリジンb)を署名計算に含め、Kサービスの認証サーバがそれを検証します。
この仕組みは、攻撃者がインターネット上に偽のWebサイト(特別なサーバ)を用意し、被害者のWebブラウザと正規のKサービスとの間に介在して メッセージを中継 する、中間者攻撃(Man-in-the-Middle Attack)やフィッシング攻撃を防ぐためのものです。
中継された場合、オリジンbが偽サイトのものとなるため、Kサービス側で不一致として検知・防御できます。

高得点のポイント

  • 攻撃者の特別なサーバが、被害者と正規サービスの間で メッセージを中継 する役割を持つことを明確に表現できていること。
(2)配点 6点

表7中の h に入れる,適切な内容を10字以内で答えよ。

模範解答

生体認証

採点基準

知識・理解度(内容)3点
  • 3点: 生体認証であることが正確に導出できている。
  • 1点: 生体認証に関連する言及はあるが不正確である。
  • 0点: 利用者確認手段が特定できていない。
論理性(構造)3点
  • 3点: 正しい用語として明確に記述されている。
  • 1点: 意図は伝わるが表現が不明瞭である。
  • 0点: 意図が伝わらない表現となっている。

解説

表7のスマートフォンの欄における「認証器の紛失・盗難時のリスクと対策」では、「認証器の使用時に h が必要なので,不正利用される可能性は低い」と記述されています。
表5「FIDO認証器の仕組み」を参照すると、スマートフォンおよびOS内蔵の生体認証機能の「認証器使用時の利用者確認」の項目には、いずれも「生体認証」を利用することが明記されています。
認証器を動作させるために持ち主の生体情報が必要となるため、紛失時でも第三者による不正利用を防ぐことができます。

高得点のポイント

  • 表5の記載内容から、認証器使用時に要求される利用者確認手段が 生体認証 であることを正しく抜き出し・特定できていること。
(3)配点 6点

表7中の i に入れる,適切な内容を10字以内で答えよ。

模範解答

Kサービス

採点基準

知識・理解度(内容)3点
  • 3点: Kサービスであることが正確に特定できている。
  • 1点: 管理主体への言及はあるがシステム名が不正確である。
  • 0点: 管理主体を特定できていない。
論理性(構造)3点
  • 3点: 正しいシステム名として明確に記述されている。
  • 1点: 意図は伝わるが表現が不明瞭である。
  • 0点: 意図が伝わらない表現となっている。

解説

表7において、退職者が個人所有のスマートフォンを利用していた場合、「退職時又は退職後直ちに,i では,j する必要がある」とされています。
Eシステムにおける利用者認証は、IDaaSである Kサービス と連携して行われます(図10参照)。
したがって、退職者のアクセス権を無効化するためのアカウント管理操作は、認証の基点となる Kサービス 上で実施する必要があります。

高得点のポイント

  • 認証を統制しているIDaaSのシステム名が Kサービス であることを文脈から正しく特定できていること。
(4)配点 6点

表7中の j に入れる,適切な内容を10字以内で答えよ。

模範解答

アカウントを削除

採点基準

知識・理解度(内容)3点
  • 3点: アカウントの削除に関する内容が正確に記述されている。
  • 1点: アカウント管理操作には触れているが、削除という手段が不明確である。
  • 0点: アカウント管理の基本操作が特定できていない。
論理性(構造)3点
  • 3点: 具体的な操作として明確な構成で記述されている。
  • 1点: 意図は伝わるが表現にやや不明瞭な点がある。
  • 0点: 意図が伝わらない表現となっている。

解説

退職者による不正なアクセスを防ぐためには、Kサービス上の管理対象に対してアクセス権の無効化処理を行う必要があります。
表3に示されているアカウントに対する実行可能な操作(作成、削除、権限変更など)に基づき、利用されなくなった退職者の アカウントを削除(または無効化)することで、以降のログインを確実に拒否することができます。

高得点のポイント

  • 退職者のアクセスを遮断するための具体的なシステム操作として、アカウントを削除 することを的確に記述できていること。
(5)配点 5点

表7中の k に入れる,適切な内容を10字以内で答えよ。

模範解答

アカウントを無効に

採点基準

知識・理解度(内容)3点
  • 3点: アカウントの無効化に関する内容が正確に記述されている。
  • 1点: 無効化の対象や手段について一部不正確な部分がある。
  • 0点: アカウントの無効化に関する内容が記述されていない。
論理性(構造)2点
  • 2点: 「アカウントを無効に」という構成で明確に記述されている。
  • 1点: 構成にやや不明瞭な点がある。
  • 0点: 意図が伝わらない構成となっている。

解説

表7のUSB接続外部認証器の紛失・盗難時の対策として、「第三者による不正利用を防ぐために,直ちに k する必要がある」と記載されています。
USB接続外部認証器は表5にあるように認証器使用時の利用者確認(生体認証など)がないため、紛失・盗難時には拾得した第三者がそのまま利用できてしまうリスクが高くなります。
そのため、被害を防ぐには直ちにKサービス上で該当利用者の アカウントを無効に する(あるいは認証器の登録を解除する)手続きが必要です。

高得点のポイント

  • 第三者による不正利用を即座に止めるための操作として、Kサービス上の アカウントを無効に する措置を的確に記述できていること。
(6)配点 5点

本文中の下線⑥のように考えた理由は何か。50字以内で述べよ。

模範解答

Gサービスへのアクセスを,ファイル受渡し用PCからのアクセスだけに限定できるから

採点基準

知識・理解度(内容)3点
  • 3点: セキュリティ要件の対象がファイル受渡し用PCからのアクセス限定であることが正確に記述されている。
  • 1点: セキュリティ要件に関する記述に一部不正確な点がある。
  • 0点: セキュリティ要件が特定できていない。
論理性(構造)2点
  • 2点: 「ファイル受渡し用PCからだけアクセスする」という利用規約の要件を技術的に強制できる、という理由が成立している。
  • 1点: 要件との対応が曖昧である。
  • 0点: 理由になっていない。

解説

Yさんが「Dシステムで要求されていたセキュリティ要件を技術的に実現できるので,OS内蔵の生体認証機能の方が望ましい」と考えた理由についてです。
本文の〔セキュリティインシデントの発生〕において、Dシステムの利用規約では「ファイル受渡し用PCからだけアクセスすること」が求められていました。
OS内蔵の生体認証機能を採用した場合、表6に「ファイル受渡し用PCが認証器を兼ねる」とある通り、認証器とPCが一体となります。これにより、許可された特定のPC(ファイル受渡し用PC)以外からの Gサービスへのアクセスを技術的に限定できる ため、スマートフォンのようなPCを選ばない認証器よりもセキュリティ要件に合致します。

高得点のポイント

  • 満たされる要件が、Gサービスへのアクセスを限定 することであることを明記していること。
  • 限定されるアクセス元が、利用規約で定められた ファイル受渡し用PC であることを論理的に説明できていること。

設問5(2)は,全体的に正答率が高かったが,FIDO認証器の利用状況を想定できていないと思われる解答が一部に見られた。リスク分析は,対象となる情報システムの利用状況に基づいて行うものであり,あらかじめよく整理しておくことを心掛けてほしい。

Spineチーム