‹ ぱすてく

情報処理安全確保支援士試験

平成29年度 秋期 午後Ⅱ(旧試験)

平成29年度 秋期に実施された情報処理安全確保支援士試験 午後Ⅱの全2問(記述式)の全設問に,運営者が独自に書いた解説を付けています。事例本文のどこが根拠になるかを示し,IPA の解答例・採点講評と並べています。

この試験について:情報処理安全確保支援士試験について

この年度を解いてみる

問1 IoT システムのセキュリティ対策

IoT システムのセキュリティ対策に関する次の記述を読んで,設問 1〜3 に答えよ。

Z 社は,従業員数 100 名のファブレス企業であり,ネットワークカメラを使ったクラウド型ビデオ監視システム(以下,Z システムという)を開発し,個人及び小規模事業者向けに提供している。Z システムは,留守宅や事務所を監視する防犯用途での利用が多いが,最近では,外出中にペットの様子を確認するなど,用途が広がっている。Z システムの概要を図 1 に示す。

Z クラウドは,内部ネットワークと DMZ から成る。内部ネットワークには,大容量ストレージ(動画を保管),Web アプリケーションサーバ,DB サーバ(DB)がある。DMZ には Web サーバがある。Z クラウドの FW が,内部ネットワーク及び DMZ とインターネットを接続する。インターネットには,Web ブラウザ,モバイル端末(Z アプリが動作する),無線 LAN アクセスポイントが接続される。Z カメラは無線 LAN アクセスポイント経由でインターネットに接続され,Z カメラとモバイル端末(Z アプリ)の間は Bluetooth で接続される。凡例:DB はデータベース,FW はファイアウォール,モバイル端末はスマートフォン又はタブレット,Z カメラは Z 社が販売しているネットワークカメラ,Z クラウドは Z カメラを利用するための様々な機能を提供するクラウドサービス,Z アプリは Z カメラの設定や Z クラウドの操作のためのモバイルアプリケーション。注記 1:DMZ から内部ネットワークへは,Web サーバから Web アプリケーションサーバへの HTTP 通信だけが,FW で許可されている。内部ネットワークから DMZ への通信は,FW で拒否されている。注記 2:Z クラウドの管理者は,管理用端末を用いて,インターネット経由で Z クラウドを運用管理している。運用管理作業は次のルールに従い実施される。通常時:管理用端末を用いて,Z 社内又は委託先社内で実施。緊急時:貸与された管理用モバイル端末を用いて,自宅で実施することも可。注記 3:Web サーバのコンテンツ,及び Web アプリケーションサーバのプログラムの変更は,Z クラウドの管理者だけが実施できる。これらの変更作業は全てログに記録される。
図 1 Z システムの概要

Z 社には,本社機能と,次の四つの部がある。

〔Z カメラの詳細〕

Z カメラの仕様は,次のとおりである。

〔Z クラウドの詳細〕

Z クラウドは,Z カメラ操作及び動画管理のアプリケーションを提供する SaaS 型のサービスであり,パブリッククラウド事業者 W 社の IaaS サービス上で稼働している。Z クラウドの構築と運用は,アプリケーション開発・運用サービスを提供している V 社に委託している。Z クラウドの仕様は,次のとおりである。

(1) アプリケーションプログラムの種類と呼出し

Web サーバの URL に応じて,Web アプリケーションサーバ上の異なるアプリケーションプログラムが呼び出される。アプリケーションプログラムの一覧を表 1 に示す。

名称,URL,用途の 3 列の表。Web IF:https://xxxx/web-if/ ,Web ブラウザから,利用者情報と Z カメラを登録・変更する。アプリ IF:https://xxxx/apl-if/ ,Z アプリから,Z カメラの操作,動画参照を行う。カメラ IF:https://xxxx/cam-if/ ,Z カメラから,動画を受信する。Z カメラからのリクエストに応じて,操作コマンド及び設定情報を送信し,ファームウェアを配信する。注 1) アプリケーションプログラムのコンテキストルートに対応する Web サーバのリクエスト URL。注 2) URL 中の xxxx は Z クラウドの Web サーバの FQDN を示す。注 3) Web アプリケーションサーバ上で動作させる,個々のアプリケーションプログラムの最上位のパス。
表 1 アプリケーションプログラムの一覧

(2) 利用者情報の登録・変更

利用者が Z カメラを登録する際に,利用者情報の登録が済んでいないと,利用者情報の登録を求められる。利用者は,Web ブラウザを用いて Web IF にアクセスし,次の利用者情報を登録する。

登録時には自動的に 10 進数 12 桁の利用者番号が付与される。利用者番号は,Web IF の利用者登録完了画面上に表示される。また,利用者登録完了通知書に記載され,登録した住所に郵送される。

利用者情報と利用者番号は,DBMS で暗号化され,DB に格納される。ここで,パスワードは 256 ビットのハッシュ値に変換された後に暗号化されて格納される。DB へのアクセスは,DB アクセスログに記録される。

利用者は,Web ブラウザを用いて Web IF にアクセスし,利用者情報の変更を行うことができる。利用者情報が変更された場合,電子メールで利用者に通知される。

(3) Z カメラの登録

利用者は,Web ブラウザを用いて Web IF にアクセスし,登録した利用者 ID とパスワードでログインした後,利用者 ID ごとに 10 台までの Z カメラを登録できる。登録時に入力する項目は,Z カメラのシリアル番号の英数字 16 桁と,製品パッケージに同梱されている初期設定用パスコードの英数字 24 桁である。シリアル番号は利用者の利用者番号とともに,DBMS で暗号化され,DB に格納される。パスコードは 256 ビットのハッシュ値に変換された後に暗号化されて格納される。

譲渡や転売などの理由で,登録済みの Z カメラが他の利用者によって登録された場合,Z カメラの利用者を変更するとともに,変更されたことを元の利用者に電子メールを送って通知する。

パスコードはカスタマセンタを通じて申請することによって,再生成することができる。

(4) 動画の保管

Z クラウドの大容量ストレージには,利用者 ID ごとのフォルダが設定され,Z カメラ 1 台当たり 12 時間分の動画を無償で保管できる。さらに,有償オプションで 720 時間分に容量を拡大できる。動画は,暗号化されずに保管される。

(5) 接続・通信

〔Z アプリの詳細〕

Z アプリの仕様は,次のとおりである。

(1) 初回の利用者認証

Z アプリは,モバイル端末にインストールされると,自動的に UUID バージョン 4 形式の 128 ビットのデータ(以下,UUID という)を生成し,端末内に保存する。Z アプリの初回利用時には,次のように利用者認証が行われ,Z クラウドに UUID を通知する。

(2) 2 回目以降の利用者認証

Z アプリの 2 回目以降の利用時には,次のように利用者認証が行われる。

(3) Z カメラの無線 LAN 接続の設定

Z アプリは,Bluetooth のシリアルポートプロファイルで Z カメラに接続し,Z カメラの無線 LAN 接続の設定を行う。この際,Z カメラは利用者が入力した Z カメラのシリアル番号と初期設定用パスコードを使って利用者を認証する。

(4) Z カメラの操作と撮影した動画の参照

Z アプリは,利用者認証に成功すると,カメラ操作又は動画参照のいずれかを選択する画面を表示する。

カメラ操作が選択された場合,利用者 ID に関連付けて登録されている Z カメラの一覧を表示する。利用者は操作するカメラを一覧から選択し,操作を指示する。Z アプリは,アプリ IF に要求を送信し,結果を表示する。

動画参照が選択された場合,動画の一覧を表示する。利用者は一覧から動画を選択し,再生やダウンロードなどの操作を指示する。Z アプリは,アプリ IF に要求を送信し,結果を表示する。

〔IoT 機器のマルウェア感染〕

ある日,Z 社のカスタマセンタに外部のセキュリティ研究者 X 氏から,Z カメラにセキュリティ上の脆弱性があり,マルウェア M に感染するリスクがあるという連絡があった。国内外の多数の IoT 機器が,マルウェア M に感染してボット化し,攻撃者に悪用されて大規模 DDoS 攻撃を引き起こしているので,Z カメラは速やかに対応する必要があるとのことであった。

これを受けて Z 社では,対策チームを編成した。品質保証部の B 主任が責任者として選任され,部下の E 君とともに対応することになった。指摘を受けた Z カメラの脆弱性について,B 主任が X 氏から得た情報は,次のとおりである。

マルウェア M の感染の仕組みを図 2 及び表 2 に示す。

マルウェア M に感染した IoT 機器(マルウェア M が動作)から,矢印 1 が C&C サーバへ,矢印 4 がサーバ P へ向かう。矢印 2 及び 3 は,マルウェア M に感染した IoT 機器から,インターネット経由で,マルウェア M に感染する脆弱性をもった IoT 機器へ向かう。サーバ P から,インターネット経由でサーバ R へ矢印 5 が向かう。サーバ R から,マルウェア M に感染する脆弱性をもった IoT 機器へ矢印 6 が向かう。注記:矢印に付記した数字 1〜6 の動作の概要を,表 2 の項番 1〜6 に示す。
図 2 マルウェア M の感染の仕組み(概要)
項番と動作の概要の 2 列の表。項番 1:HTTP を用いて C&C サーバと通信し,ボットとして活動する。項番 2:ランダムに IP アドレスを選び,TCP ポート 23,2323 への TELNET 接続,及び TCP ポート 22,6789 への SSH 接続を要求する。項番 3:項番 2 で TELNET 又は SSH 接続に成功した場合は,様々な IoT 機器で用いられたことのある,工場出荷時のログイン ID とパスワードのリストを用いて,ログインを試行する。項番 4:項番 3 でログインに成功した場合,接続先 IP アドレス,ポート番号,ログイン ID 及びパスワードの情報をサーバ P に送信する。項番 5:サーバ P は,受信した情報をサーバ R に送信する。項番 6:サーバ R は,サーバ P から受信した情報に基づいて対象機器にアクセスしてログインする。その後,wget 又は tftp コマンドを用いてマルウェア M を対象機器にダウンロードし,実行する。項番 7:項番 6 でダウンロードされたマルウェア M は,項番 1〜4 の動作を行う。
表 2 マルウェア M の感染の仕組み(動作の概要)

〔Z カメラのセキュリティ検査と対策〕

B 主任は,マルウェア M 又はその亜種に Z カメラが感染するおそれがあるかを調べるため,図 2 と表 2 の情報を基にしたセキュリティ検査を,セキュリティ専門業者の D 社に依頼した。D 社によるセキュリティ検査の内容と結果の概要を表 3 に示す。

項番,検査項目,検査内容,検査結果の 4 列の表。項番 1:検査項目は[ a ]。検査内容は“1〜65535 の TCP ポートに SYN を送信し,応答結果からポートが開いているかどうか確認する。”(この内容の“応答結果からポートが開いているかどうか確認する。”に下線①が付いている)。検査結果は“TCP ポート 2323 が開いていた。”。項番 2:プロトコル確認。開いているポートに対し,様々なプロトコルで接続を試みる。TELNET で接続できた。項番 3:ログイン試行。項番 2 で確認したプロトコルで接続し,マルウェア M が使用するログイン ID とパスワードのリストを用いて,ログインを試みる。同一のログイン ID で複数回ログインに失敗しても,アカウントロックは発生しなかった。最終的に,ログインできた。項番 4:ダウンロード。ログイン後に,wget,tftp コマンドを用いて,外部サーバからファイルがダウンロードできるか確認する。wget コマンドによって,外部サーバからファイルをダウンロードできた。項番 5:プロセス起動。項番 4 でダウンロードしたファイルが起動できるか確認する。ダウンロードしたファイルを起動できた。項番 6:検査項目は(省略)。検査内容は“項番 5 で起動したプロセスが,[ b ]できるか確認する。”。検査結果は(省略)。
表 3 Z カメラのセキュリティ検査の内容と結果の概要

検査結果から,Z カメラがマルウェア M 又はその亜種に感染するおそれがあることが判明した。

表 3 の項番 1 の検査結果について,B 主任が開発部に確認したところ,委託先が開発時に使ったデバッグ用プログラムとその起動スクリプトが,出荷版のファームウェアにそのまま残されていたことが分かった。B 主任は,既に出荷済みの Z カメラがあることに配慮し,②対策を関係部署に依頼した。

さらに,Z カメラの脆弱性がほかにないか D 社に調査を依頼した。発見された脆弱性は開発部で対処した。

〔Z システムにおけるリスクの特定〕

Z 社では,Z カメラに脆弱性が複数あったことを受け,Z システムの脆弱性がほかにないことを確認することにした。Z カメラについては対処したので対象外とし,Z システムの構成に従って,次を対象とした脅威について,D 社に調査を依頼した。

〔カメラ IF 通信に対する脅威〕

カメラ IF 通信に対する脅威については,次のように調査し,対応した。

(1) 想定される攻撃と検査方法

D 社からは,カメラ IF 通信について,想定される攻撃が幾つか提示された。具体的な攻撃とその攻撃が成功するかの検査方法を表 4 に,検査システムの概要を図 3 に示す。

項番,想定される攻撃,検査方法の 3 列の表。項番 1:想定される攻撃は“[ c ]による暗号通信の盗聴”。検査方法は,“TLS 終端装置(注 1)の付いたプロキシサーバを用いて,Z カメラと Z クラウド間の HTTPS 通信の内容を復号して確認できるか検査する。”及び“TLS 終端装置が,クライアントとの TLS 接続において使用するサーバ証明書を複数準備し,サーバ証明書の違いによる動作の違いを検証する。”。項番 2:想定される攻撃は“攻撃者による[ d ]を使った偽 Z クラウドへの誘導”。検査方法は,“偽 Z クラウド上で稼働している偽カメラ IF に Z カメラを接続させて,Z カメラが操作できるか検査する。”,“同様に,偽カメラ IF を使用して,偽 Z クラウドが Z カメラから動画を受信できるか検査する。”及び“偽 Z クラウドにおける Web サーバのサーバ証明書は,項番 1 で TLS 終端装置が使用したものを流用する。”。注 1) クライアントと Web サーバの間に設置され,クライアントからの TLS 接続を終端し,Web サーバと新たな TLS 接続を開始することによって HTTPS 通信の内容を確認できる装置。
表 4 カメラ IF 通信に対して想定される攻撃と検査方法(抜粋)
Z クラウドがインターネットを介して L3SW に接続される。L3SW には,プロキシサーバ(内部に TLS 終端装置),DNS サーバ,偽 Z クラウド,L2SW が接続される。L2SW には無線 LAN アクセスポイントが接続され,Z カメラは無線 LAN で無線 LAN アクセスポイントに接続される。凡例:L2SW はレイヤ 2 スイッチ,L3SW はレイヤ 3 スイッチ。
図 3 検査システムの概要

D 社は,一般的な無線 LAN に対する攻撃としては,暗号化されていない又は暗号強度の弱い無線 LAN の盗聴があることを説明した。これに対し,B 主任は,カメラ IF 通信は,eによって暗号化されているので,通信内容を盗聴されるおそれがないことを説明した。

(2) 検査システムとサーバ証明書

検査では,次の二つのサーバ証明書をプライベート認証局で発行し,TLS 終端装置で一つずつ使用した。

なお,検査に当たっては,③プライベート認証局のルート証明書を,テスト対象の Z カメラに,信頼されたルート証明機関のものとして登録していない。

(3) 検査結果と対応

D 社は,検査結果を受けて,表 4 の項番 1,2 の攻撃について Z カメラにおける問題点と対策案をまとめ,B 主任に報告した。B 主任はこの報告を基に,対策を関係部署に依頼した。

〔Z クラウドに対する脅威〕

Z クラウドに対する脅威と対策状況について,D 社から表 5 が提示された。

整理番号,想定される脅威,対策状況の 3 列の表。A1:利用者アカウントのなりすまし。Web IF・アプリ IF における不正ログイン対策が不足している。A2:管理者アカウントのなりすまし。“第三者による不正アクセスを防止するため,利用者認証に加えて,アクセス元の端末を制限しており,十分な対策が取られている。”(この内容に下線④が付いている)。B1:DDoS 攻撃。V 社が DDoS 対策ソリューションを導入しており,十分な対策が取られている。C1:Web アプリケーションサーバ上のアプリケーションプログラムの脆弱性を突いた攻撃。Web アプリケーションサーバ上のアプリケーションプログラムの脆弱性を突いた攻撃のリスクを軽減するための対策が取られていない。C2:OS やミドルウェアなどのシステム基盤の脆弱性を突いた攻撃。未確認であり,V 社の脆弱性管理の状況を確認する必要がある。D1:業務委託先を含めた従業員・役員(以下,内部者という)による犯行。(省略)。D2:内部者の過失。(省略)。
表 5 Z クラウドに対する脅威と対策状況

次は,表 5 についての,B 主任と E 君の会話である。

次は,表 5 の整理番号 A1 についての B 主任と E 君の会話である。

表 5 の整理番号 C1 については,開発委託先との契約に⑨必要な条項を追加することにした上で,納品時に Web アプリケーションプログラムの脆弱性検査を実施することが決まった。

表 5 の整理番号 C2 について,運用統括部に確認した結果は,次のとおりである。

D 社からは,脆弱性を突いた攻撃が頻繁に発生する昨今の状況を踏まえると,⑩構成管理を導入した脆弱性対応の仕組みを構築する必要があるとの指摘を受けた。B 主任は,運用統括部に,構成管理と脆弱性対応の仕組みを見直すよう依頼した。

次は,表 5 の整理番号 D1,D2 についての E 君と B 主任の会話である。

Z 社は,D 社の協力の下,ほかの脅威についても検討し,対策を立案した。開発部は,これらの対策を取り入れた次期バージョンの開発に着手した。

出題趣旨(IPA)

昨今,Miraiボットネットに代表される,今までに類を見ないほど大量のIoT機器から成るボットネットによる,DDoS攻撃が発生している。ネットワークカメラやインターネットルータ,ネットワークストレージなどのメーカが,これらへの対策として販売停止,あるいはファームウェア更新を実施する必要に追われたのは記憶に新しい。IoTマルウェアの感染手法はITシステムにおいては古典的であるとも言えるが,ITシステムにおいては常識になっているセキュリティ対策が,IoT機器では実施されていないことが多いという点と,IoT機器の脆弱性が悪用されて,大規模な攻撃が発生したという点で,注目に値する。本問では,IoTシステムについて,ネットワークカメラを使ったビデオ監視システムを題材に,セキュリティ検査を実施し,セキュリティ対策を立案する能力を問う。

採点講評(問全体・IPA)

問1では,クラウドサービスとIoTを組み合せたシステムを題材に,セキュリティについての検査と対策立案について出題した。

設問と解答例

設問1(1) 解答欄1つ

表 3 中の a に入れる検査項目の名称を答えよ。

〔a〕解答例

  • SYNスキャン
解説

本文の根拠

表3 項番1 検査内容

1〜65535 の TCP ポートに SYN を送信し,応答結果からポートが開いているかどうか確認する。

表3 項番1 検査結果

TCP ポート 2323 が開いていた。

表3 の項番1 の検査内容は,1〜65535 の TCP ポートに SYN を送り,その応答結果からポートが開いているかどうかを確認するというものである。TCP の接続は SYN,SYN ACK,ACK の 3 ウェイハンドシェークで確立する(RFC 793)。接続を確立せず,最初の SYN への応答だけでポートの状態を判定する検査を,SYN スキャンという。解答例は“SYNスキャン”である。

検査結果の“TCP ポート 2323 が開いていた。”は,表2 の項番2 でマルウェア M が接続を要求するポート(23,2323,22,6789)のうち 2323 が開いていたということである。項番2 以降の“プロトコル確認”“ログイン試行”は,開いていたポートを見つけたあとの検査で,項番1 の名称にはならない。

字数の制限はない。“ポートスキャン”と書くと検査の種類を表すだけで,SYN を送るという検査内容そのものは出ない。検査内容に“SYN を送信し”とあるので,名称にも SYN を入れる。

採点講評(IPA)

設問1(1)及び設問2(1)は,いずれも知識問題であり,正答率が高かった。情報セキュリティに関する一般的な用語については,受験者の知識が高いことがうかがえる。

設問1(2) 解答欄2つ

表 3 中の下線①について,ポートが開いている場合と閉じている場合に期待される応答結果を,それぞれ解答群の中から全て選び,記号で答えよ。 解答群 ア ACK 受信 イ FIN ACK 受信 ウ FIN 受信 エ RST ACK 受信 オ RST 受信 カ SYN ACK 受信 キ SYN 受信 ク 応答なし

〔開いている場合〕解答例

  • カ

〔閉じている場合〕解答例

  • エ,ク
解説

本文の根拠

表3 項番1 検査内容

1〜65535 の TCP ポートに SYN を送信し,応答結果からポートが開いているかどうか確認する。

表3 項番1 検査結果

TCP ポート 2323 が開いていた。

検査は SYN を送るだけなので,期待される応答は SYN への返事に限られる。ポートが開いている(待ち受けている)場合は,3 ウェイハンドシェークの 2 番目の SYN ACK を返す。したがって“開いている場合”はカ(SYN ACK 受信)である。

ポートが閉じている場合,RFC 793 は,存在しない接続宛てのセグメントには RST を返すと定めている。受け取った SYN には ACK の欄が無いので,この RST には ACK も付く(RST ACK)。したがって“閉じている場合”はエ(RST ACK 受信)である。解答例はこれに加えてク(応答なし)も挙げている。これは,途中のファイアウォールなどがパケットを破棄して,ポートが閉じていても何も返ってこないことがあるからだと考えられる。

解答群の ACK 受信(ア)・SYN 受信(キ)・FIN 系(イ,ウ)は,SYN を送った側が受け取る応答として現れない。オ(RST 受信)は RST ACK との区別が付きにくいが,解答例は RST ACK(エ)だけを選んでいる。“全て選び”とあるので,閉じている場合はエとクの両方を答える。

採点講評(IPA)

設問1(2)は,TCP/IPの3ウェイハンドシェークについての知識を問う問題であるが,特に“閉じている場合”について,正答率が低かった。サイバー攻撃に関するインシデント対応やセキュリティ検査においては,ネットワークの知識は重要である。基本的な事項は理解しておいてほしい。

設問1(3) 解答欄1つ

表 3 中の b に入れるプロセスの動作を,30 字以内で具体的に述べよ。

〔b〕解答例

  • HTTPを用いて,インターネット上のサーバと通信
解説

本文の根拠

表3 項番6 検査内容

項番 5 で起動したプロセスが,bできるか確認する。

表2 項番1

HTTP を用いて C&C サーバと通信し,ボットとして活動する。

表3 項番5 検査内容

項番 4 でダウンロードしたファイルが起動できるか確認する。

表3 の検査は,表2 のマルウェア M の動作を順に確かめる構成である。項番2 のプロトコル確認と項番3 のログイン試行は表2 の項番2・3,項番4 のダウンロードと項番5 のプロセス起動は表2 の項番6(wget 又は tftp で入手して実行)に当たる。その次は,起動したマルウェアが表2 の項番1 の動作をするかである。表2 の項番1 は,HTTP を用いて C&C サーバと通信し,ボットとして活動する,という動作である。解答例は“HTTPを用いて,インターネット上のサーバと通信”である。

Z カメラが感染するおそれがあるかを調べるのが検査の目的である(“検査結果から,Z カメラがマルウェア M 又はその亜種に感染するおそれがあることが判明した。”)。項番5 までで,ログイン,ダウンロード,起動ができている。残るのは,起動したプロセスが外部と通信してボットとして動けるかである。

字数は 30 字以内で,解答例は 24 字である。“HTTP を用いる”と“インターネット上のサーバと通信”の二つを残す。“ボットとして活動できるか”だけでは,何ができれば活動できたと言えるのかが示されず,表2 の動作(HTTP での通信)まで書く必要がある。

設問1(4) 60字以内

本文中の下線②について,出荷済みの Z カメラに対する対策を,60 字以内で具体的に述べよ。

解答例

  • デバッグ用プログラムとその起動スクリプトを削除したファームウェアを作成し,Zカメラに配布する。
解説

本文の根拠

〔Z カメラのセキュリティ検査と対策〕

委託先が開発時に使ったデバッグ用プログラムとその起動スクリプトが,出荷版のファームウェアにそのまま残されていたことが分かった。

〔Z カメラのセキュリティ検査と対策〕

B 主任は,既に出荷済みの Z カメラがあることに配慮し,②対策を関係部署に依頼した。

〔Z クラウドの詳細〕(5) 接続・通信

Z クラウドから Z カメラへの各種操作コマンド及び設定情報の送信とファームウェアの配信は,Z カメラが定期的にカメラ IF にアクセスすることによって行われる。

表3 の項番1 で TCP ポート 2323 が開いていたのは,委託先が開発時に使ったデバッグ用プログラムとその起動スクリプトが,出荷版のファームウェアに残っていたからである。そこで,原因のデバッグ用プログラムとその起動スクリプトを削除したファームウェアを作る。出荷済みの Z カメラは手元にないが,ファームウェアの配信は,Z カメラが定期的にカメラ IF にアクセスして行われる。つまり,新しいファームウェアを Z カメラに配布すれば,出荷済みのものにも反映できる。解答例は“デバッグ用プログラムとその起動スクリプトを削除したファームウェアを作成し,Zカメラに配布する。”である。

設問は“出荷済みの Z カメラに対する対策”を問う。今後の出荷分の対策(出荷前にデバッグ用プログラムを残さない手順にする)では答えにならず,すでに利用者の手元にある機器へどう届けるかまで書く。

字数は 60 字以内で,解答例は 47 字である。“デバッグ用プログラムとその起動スクリプトの削除”“ファームウェアの作成”“Z カメラへの配布”の三つを残す。“ファームウェアを更新する”だけでは,何を直すのかが分からない。

設問2(1) 解答欄2つ

表 4 中の c,d に入れる攻撃手法を解答群の中から選び,記号で答えよ。 解答群 ア DNS キャッシュポイズニング攻撃 イ サービス不能攻撃 ウ サイドチャネル攻撃 エ 辞書攻撃 オ セッション固定攻撃 カ 中間者攻撃 キ 水飲み場型攻撃 ク リフレクション攻撃

〔c〕解答例

  • カ

〔d〕解答例

  • ア
解説

本文の根拠

表4 項番1 検査方法

TLS 終端装置(注 1)の付いたプロキシサーバを用いて,Z カメラと Z クラウド間の HTTPS 通信の内容を復号して確認できるか検査する。

表4 項番2 検査方法

偽 Z クラウド上で稼働している偽カメラ IF に Z カメラを接続させて,Z カメラが操作できるか検査する。

図3 検査システムの概要

L3SW には,プロキシサーバ(内部に TLS 終端装置),DNS サーバ,偽 Z クラウド,L2SW が接続される。

項番1 は,通信の途中にプロキシサーバ(TLS 終端装置)を置いて,Z カメラとの TLS 接続を終端し,Z クラウドとは別の TLS 接続を開始して,HTTPS の内容を復号して見る検査である。通信する二者の間に割り込んで内容を見る攻撃なので,c はカ(中間者攻撃)である。

項番2 は,偽の Z クラウドに Z カメラを接続させる検査である。図3 の検査システムには DNS サーバがあり,Z カメラが Z クラウドの FQDN を問い合わせたときに偽 Z クラウドのアドレスを返せば,Z カメラを偽 Z クラウドに誘導できる。DNS の応答を偽って利用者を別のサーバに誘導する攻撃なので,d はア(DNS キャッシュポイズニング攻撃)である。

解答群の紛らわしい選択肢を除く。イ(サービス不能攻撃)とク(リフレクション攻撃)は通信を止めたり妨害したりする攻撃で,内容の盗聴や誘導ではない。エ(辞書攻撃)は認証の突破,オ(セッション固定攻撃)は Web セッションの乗っ取り,キ(水飲み場型攻撃)は利用者が訪れるサイトを改ざんする攻撃,ウ(サイドチャネル攻撃)は消費電力や処理時間などから情報を推定する攻撃である。

採点講評(IPA)

設問1(1)及び設問2(1)は,いずれも知識問題であり,正答率が高かった。情報セキュリティに関する一般的な用語については,受験者の知識が高いことがうかがえる。

設問2(2) 解答欄1つ

本文中の e に入れる適切な字句を英字で答えよ。

〔e〕解答例

  • HTTPS
解説

本文の根拠

〔Z クラウドの詳細〕(5) 接続・通信

Z カメラにはカメラ IF の URL が,Z アプリにはアプリ IF の URL が,それぞれ組み込まれており,Z カメラ及び Z アプリは Web サーバに HTTPS の POST メソッドを用いて通信する。

〔Z クラウドの詳細〕(5) 接続・通信

インターネットから Web サーバへの接続は,HTTP over TLS(以下,HTTPS という)だけが許可されている。

カメラ IF 通信は,Z カメラがカメラ IF(Z クラウドの Web サーバ)にアクセスする通信で,Z カメラ及び Z アプリは Web サーバに HTTPS の POST メソッドを用いて通信する。Web サーバへの接続は HTTPS だけが許可されているので,無線 LAN の区間を含む通信全体が,HTTPS(HTTP over TLS)の TLS によって暗号化されている。解答例は“HTTPS”である。

直前の D 社の説明は,暗号化されていない又は暗号強度の弱い無線 LAN の盗聴だった。B 主任の反論は,無線 LAN の暗号方式の強さに頼るのではなく,その上を流れる通信そのものが暗号化されているから盗聴されても内容は分からない,というものである。

字数の制限はなく,“英字で”と指定されている。TLS だけでも暗号化の技術としては正しいが,本文が定義している“HTTP over TLS(以下,HTTPS という)”に合わせて HTTPS と書く。無線 LAN の暗号方式(WPA2 など)を答えないように注意する。

設問2(3) 30字以内

本文中の下線③について,プライベート認証局のルート証明書を信頼されたルート証明機関のものとして登録してはいけない理由を,30 字以内で述べよ。

解答例

  • 証明書パスの検証が行われているかを確認できなくなるから
解説

本文の根拠

〔カメラ IF 通信に対する脅威〕(2) 検査システムとサーバ証明書

なお,検査に当たっては,③プライベート認証局のルート証明書を,テスト対象の Z カメラに,信頼されたルート証明機関のものとして登録していない。

〔カメラ IF 通信に対する脅威〕(2) 検査システムとサーバ証明書

証明書 2:CN が,Z クラウドの FQDN と異なる証明書

〔カメラ IF 通信に対する脅威〕(3) 検査結果と対応

表 4 の項番 1 の検査結果:証明書 1 を使用した場合は通信でき,さらに通信内容を復号して確認することができた。しかし,証明書 2 を使用した場合は通信できなかった。

TLS のクライアントは,サーバ証明書を受け取ると,発行元をたどって,信頼されたルート証明機関にたどり着けるか(証明書パスの検証)を確認する。検査で使った二つの証明書はプライベート認証局が発行したもので,Z カメラにそのルート証明書を登録していない。それにもかかわらず,証明書1 を使うと通信できた。つまり Z カメラは,信頼されたルート証明機関まで到達できない証明書も受け入れている。証明書パスの検証が行われていないことが,この検査で分かる。

逆に,プライベート認証局のルート証明書を信頼されたルート証明機関として登録すると,そのルート証明書を使って証明書パスの検証が成功してしまう。Z カメラが検証をしていなくても,検証をしていても同じ結果(通信できる)になるので,検証の有無を確認できなくなる。解答例は“証明書パスの検証が行われているかを確認できなくなるから”である。

字数は 30 字以内で,解答例は 27 字である。“証明書パスの検証”と“確認できなくなる”の二つを残す。“検査結果が変わるから”のように結果だけを書くと,何の確認ができなくなるのかが示されない。

採点講評(IPA)

設問2(3)は,正答率が低かった。セキュリティ検査では,検査の目的に応じて,手法とテスト環境を検討し選択することが必要である。

設問3(1) 25字以内

表 5 中の下線④について,アクセス元の端末を制限する方法として Z システムに適した方法を,25 字以内で具体的に述べよ。

解答例

  • クライアント証明書を用いた端末認証を行う。
解説

本文の根拠

図1 注記2

Z クラウドの管理者は,管理用端末を用いて,インターネット経由で Z クラウドを運用管理している。

図1 注記2

緊急時:貸与された管理用モバイル端末を用いて,自宅で実施することも可

表5 整理番号A2

第三者による不正アクセスを防止するため,利用者認証に加えて,アクセス元の端末を制限しており,十分な対策が取られている。

下線④は,管理者アカウントのなりすましへの対策として,利用者認証に加えてアクセス元の端末を制限するというものである。Z クラウドの管理者は,インターネット経由で運用管理しており,通常は Z 社内又は委託先社内の管理用端末,緊急時は貸与された管理用モバイル端末を自宅で使う。自宅やモバイル回線では送信元の IP アドレスが一定せず,IP アドレスで制限する方法は Z システムに適さない。端末そのものを識別する必要があり,貸与した管理用端末だけにクライアント証明書を入れておき,TLS のクライアント認証で端末を確認する。解答例は“クライアント証明書を用いた端末認証を行う。”である。

貸与された端末に証明書を入れる方法なので,緊急時の自宅からのアクセスも通せる。端末に入っていない証明書は,第三者が利用者 ID とパスワードを知っても用意できない。

字数は 25 字以内で,解答例は 21 字である。“クライアント証明書”と“端末認証”の二つを残す。“IP アドレスで制限する”のように,通常時だけを想定した答えにならないようにする。

採点講評(IPA)

設問3(1)は,正答率が低かった。クラウドの利用拡大によって,クラウドにアクセスする端末が増える一方で,不正アクセス対策の重要度が増している。利用者認証だけでなく,端末を認証する方法についても理解を深めてほしい。

設問3(2) 解答欄1つ

本文中の f に該当する全ての脅威を,表 5 中の整理番号で答えよ。

〔f〕解答例

  • A2,C2,D1,D2
解説

本文の根拠

図1 注記3

Web サーバのコンテンツ,及び Web アプリケーションサーバのプログラムの変更は,Z クラウドの管理者だけが実施できる。

表5

A2:管理者アカウントのなりすまし。

表5

D2:内部者の過失。

Web サーバ上のコンテンツを変更できるのは Z クラウドの管理者だけである。したがって,コンテンツの予期せぬ変更の原因は,管理者の権限が第三者や内部者に渡るか,管理者自身が誤るかのいずれかである。A2(管理者アカウントのなりすまし)は,管理者になりすませば変更できる。C2(OS やミドルウェアなどのシステム基盤の脆弱性を突いた攻撃)は,基盤の脆弱性を突いて管理者権限を得られれば変更できる。D1(内部者による犯行)と D2(内部者の過失)は,内部者が管理者権限を持つ場合に変更が起こり得る。解答例は“A2,C2,D1,D2”である。

A1(利用者アカウントのなりすまし)は,利用者の権限でのアクセスなので,管理者だけができるコンテンツの変更には至らない。B1(DDoS 攻撃)は可用性を損なう脅威である。C1(アプリケーションプログラムの脆弱性を突いた攻撃)は,動画の漏えいには結び付くが,ここで問われているのは Web サーバのコンテンツの変更である。

字数の制限はない。“該当する全ての脅威”とあるので,四つ全てを整理番号で答える。動画の漏えいの原因(A1,A2,C1,C2,D1,D2)との違いは,A1 と C1 が入らない点である。

設問3(3) 40字以内

リバースブルートフォース攻撃の攻撃手法を,40 字以内で述べよ。

解答例

  • 利用者IDを変更しながら,よく用いられるパスワードでログインを試行する。
解説

本文の根拠

〔Z クラウドに対する脅威〕B 主任と E 君の会話

認証に失敗するごとに,その利用者 ID でログインできない期間を 5 秒間から最大 24 時間まで指数関数的に長くしていき,成功すると元に戻す仕組み(以下,ログイン制限という)

〔Z クラウドに対する脅威〕B 主任と E 君の会話

ブルートフォース攻撃ならログイン制限で防げる可能性が高いですが

ブルートフォース攻撃は,一つの利用者 ID に対してパスワードを総当たりで試す攻撃である。リバースブルートフォース攻撃は,その逆で,パスワードを固定し,利用者 ID を次々に変えて試す攻撃である。よく使われるパスワードを一つ選び,利用者 ID の方を変えながらログインを繰り返す。解答例は“利用者IDを変更しながら,よく用いられるパスワードでログインを試行する。”である。

本文はログイン制限(失敗するごとにその利用者 ID でログインできない期間を延ばす)をブルートフォース攻撃への対策としている。同じ利用者 ID を繰り返し試すブルートフォース攻撃は制限に掛かりやすいが,リバースブルートフォース攻撃は,利用者 ID が毎回違うので掛かりにくい。

字数は 40 字以内で,解答例は 36 字である。“利用者 ID を変更する”と“よく用いられるパスワードを使う”の二つを残す。“ID を固定してパスワードを総当たりにする”と書くとブルートフォース攻撃の説明になる。

設問3(4) 40字以内

本文中の下線⑤について,ログイン制限では防ぐのが難しい理由を,40 字以内で述べよ。

解答例

  • 一つの利用者IDでのログイン試行が1回ないしは少ない回数しか行われないから
解説

本文の根拠

〔Z クラウドに対する脅威〕B 主任と E 君の会話

認証に失敗するごとに,その利用者 ID でログインできない期間を 5 秒間から最大 24 時間まで指数関数的に長くしていき,成功すると元に戻す仕組み(以下,ログイン制限という)

〔Z クラウドに対する脅威〕B 主任と E 君の会話

リバースブルートフォース攻撃やリスト型攻撃は,ログイン制限では防ぐのが難しい

ログイン制限は,認証に失敗するごとに,その利用者 ID でログインできない期間を長くする仕組みで,数える単位は利用者 ID である。リバースブルートフォース攻撃は利用者 ID を変えながら試し,リスト型攻撃は漏えいした利用者 ID とパスワードの組を一組ずつ試す。どちらも一つの利用者 ID に対する試行は 1 回か少数回で終わるので,失敗の回数が増えず,ログインできない期間が延びない。解答例は“一つの利用者IDでのログイン試行が1回ないしは少ない回数しか行われないから”である。

設問(3) の攻撃手法の説明と対になる設問で,ログイン制限が利用者 ID ごとの失敗回数に基づくことが分かれば答えられる。

字数は 40 字以内で,解答例は 37 字である。“一つの利用者 ID ごとの試行”と“回数が少ない”の二つを残す。“攻撃が分散されるから”のように曖昧にすると,何が分散されるのか(ID 単位の失敗回数)が伝わらない。

設問3(5) 50字以内

本文中の下線⑥について,防げないのはどのような場合か。50 字以内で具体的に述べよ。

解答例

  • ほかのWebサイトから漏えいした情報に電話番号や電子メールアドレスが含まれていた場合
解説

本文の根拠

〔Z クラウドに対する脅威〕B 主任と E 君の会話

最近は,ほかの Web サイトから漏えいした利用者 ID とパスワードのリストを悪用した,いわゆるリスト型攻撃が増えているそうです。

〔Z クラウドに対する脅威〕B 主任と E 君の会話

それでは,利用者 ID とパスワードに加えて,ほかの利用者情報,例えば電話番号や電子メールアドレスも使って認証するように変更すれば,防げるのではないでしょうか。

リスト型攻撃は,ほかの Web サイトから漏えいした利用者 ID とパスワードの組を使う攻撃である。E 君の案は,認証に電話番号や電子メールアドレスを加える方法で,攻撃者が ID とパスワードしか持たなければ防げる。ところが,ほかの Web サイトから漏えいした情報に電話番号や電子メールアドレスも含まれていた場合,攻撃者はそれらも入力できるので,追加の認証要素が意味を持たない。解答例は“ほかのWebサイトから漏えいした情報に電話番号や電子メールアドレスが含まれていた場合”である。

リバースブルートフォース攻撃は利用者 ID を推測で変えるだけなので,電話番号などを要求すれば当てられずに防げる。リスト型攻撃では,攻撃者が持つリストの中身が防御の成否を決める。

字数は 50 字以内で,解答例は 42 字である。“ほかの Web サイトから漏えいした情報”と“電話番号や電子メールアドレスを含む”の二つを残す。“情報が漏えいした場合”だけでは,どの情報かが分からない。

設問3(6) 25字以内

本文中の下線⑦について,Z カメラが譲渡や転売される可能性を考慮に入れて,追加認証する適切な方法を,25 字以内で述べよ。

解答例

  • 利用者番号の入力を求める。
解説

本文の根拠

〔Z カメラの詳細〕(2) 利用者情報の登録・変更

登録時には自動的に 10 進数 12 桁の利用者番号が付与される。利用者番号は,Web IF の利用者登録完了画面上に表示される。また,利用者登録完了通知書に記載され,登録した住所に郵送される。

〔Z クラウドの詳細〕(3) Z カメラの登録

譲渡や転売などの理由で,登録済みの Z カメラが他の利用者によって登録された場合,Z カメラの利用者を変更するとともに,変更されたことを元の利用者に電子メールを送って通知する。

〔Z クラウドに対する脅威〕B 主任と E 君の会話

Z クラウドと各利用者だけが知っていて,利用者以外が入手するのが困難な情報で追加認証すれば

追加認証に使う情報は,下線⑦のとおり,Z クラウドと各利用者だけが知っていて,利用者以外が入手しにくいものでなければならない。Z カメラを譲渡や転売すると,新しい持ち主は,Z カメラのシリアル番号,製品パッケージに同梱されたパスコードなどを知ることになり,これらは追加認証の情報にならない。元の利用者の電話番号や電子メールアドレスは,ほかの Web サイトから漏えいする可能性が上の設問で挙がっている。一方,利用者番号は,利用者登録完了画面と,登録した住所に郵送される通知書に記載されるだけで,Z カメラとは結び付いていない。そこで,利用者番号の入力を求める。解答例は“利用者番号の入力を求める。”である。

Z カメラの登録で入力する項目は,Z カメラのシリアル番号と初期設定用パスコードで,利用者番号は含まれない。

字数は 25 字以内で,解答例は 13 字である。“利用者番号”と“入力を求める”の二つを残す。“ユーザ ID”や“メールアドレス”は,上で述べた理由から答えにならない。

設問3(7) 40字以内

本文中の下線⑧について,Z クラウドにおけるログイン認証の状況を踏まえて,平常時と異なる状況だと判断されるのはどのような場合か。40 字以内で述べよ。

解答例

  • 全利用者の単位時間当たりの認証失敗数がしきい値を超えた場合
解説

本文の根拠

〔Z クラウドに対する脅威〕B 主任と E 君の会話

利用者 ID とパスワードによる認証が必要となるのはごく限られた状況だけなので,平均すると利用者 1 人当たり,年 1 回程度です。

〔Z クラウドに対する脅威〕B 主任と E 君の会話

リバースブルートフォース攻撃やリスト型攻撃を念頭に置いて,⑧平常時と異なる状況が発生していると判断される場合において,追加認証する方法を考えてみます。

Z アプリは,2 回目以降は UUID で認証されるので,利用者 ID とパスワードによる認証が行われるのは,平均すると利用者 1 人当たり年 1 回程度である。全利用者の認証失敗は,平常時はごく少ない。リバースブルートフォース攻撃やリスト型攻撃は,一つの利用者 ID では失敗が少なくても,全体としては失敗が増える。そこで,全利用者の単位時間当たりの認証失敗数が,あらかじめ決めたしきい値を超えた場合を異常と判断し,その間は追加認証を求める。解答例は“全利用者の単位時間当たりの認証失敗数がしきい値を超えた場合”である。

利用者 ID ごとの失敗回数で数えると,設問(4) のとおり,これらの攻撃は見逃される。そのため,全利用者を合計して見る。

字数は 40 字以内で,解答例は 29 字である。“全利用者の”“単位時間当たりの認証失敗数”“しきい値を超えた場合”の三つを残す。“失敗が多い場合”だけでは,何を数えるのかが分からない。

設問3(8) 25字以内

本文中の下線⑨について,委託契約に盛り込むべき条項を,25 字以内で具体的に述べよ。

解答例

  • 脆弱性検査合格を受入条件とする。
解説

本文の根拠

〔Z クラウドに対する脅威〕C1

表 5 の整理番号 C1 については,開発委託先との契約に⑨必要な条項を追加することにした上で,納品時に Web アプリケーションプログラムの脆弱性検査を実施することが決まった。

表5 整理番号C1

Web アプリケーションサーバ上のアプリケーションプログラムの脆弱性を突いた攻撃のリスクを軽減するための対策が取られていない。

C1 の対策は,納品時に Web アプリケーションプログラムの脆弱性検査をすることである。ただし,検査をして脆弱性が見つかっても,契約に定めがなければ,委託先に修正を求めたり納品を受け入れなかったりする根拠にならない。そこで,委託契約に,脆弱性検査に合格することを受入条件とする条項を入れる。解答例は“脆弱性検査合格を受入条件とする。”である。

検査の実施そのものは,条項を追加した上での手続として本文に書かれている。条項で決めるべきは,検査の結果を受け入れの可否に結び付けることである。

字数は 25 字以内で,解答例は 16 字である。“脆弱性検査合格”と“受入条件”の二つを残す。“脆弱性検査を実施する”だけでは,すでに本文にある検査の実施と同じで,契約条項としての意味が出ない。

設問3(9) 40字以内

本文中の下線⑩について,構成管理を導入していない場合の問題点を,40 字以内で述べよ。

解答例

  • 脆弱性がZ社のシステムに影響するかを短時間で判断できない。
解説

本文の根拠

〔Z クラウドに対する脅威〕C2

OS,ミドルウェアなど,Z クラウドのシステム基盤については,V 社が毎年,年度末にセキュリティ専門業者の脆弱性検査を受けている。

〔Z クラウドに対する脅威〕C2

脆弱性検査の結果,重大な問題が指摘された場合,V 社は,定期メンテナンス時に,脆弱性修正プログラムを適用するか,又は回避策を実装している。

〔Z クラウドに対する脅威〕C2

脆弱性を突いた攻撃が頻繁に発生する昨今の状況を踏まえると,⑩構成管理を導入した脆弱性対応の仕組みを構築する必要がある

現在の C2 の対応は,年度末の脆弱性検査と,重大な問題が指摘されたときの定期メンテナンス時の対応である。脆弱性は検査の時期とは関係なく公表され,それを突く攻撃も頻繁に発生する。構成管理は,システムを構成する OS やミドルウェアなどの種類やバージョンを把握しておく管理で,これを導入していないと,新しい脆弱性が公表されたときに,自社のシステムが対象かどうかをすぐに調べられない。解答例は“脆弱性がZ社のシステムに影響するかを短時間で判断できない。”である。

判断が遅れる間,対応が次の検査や定期メンテナンスまで先送りされる。構成管理があれば,公表された脆弱性と照合して影響の有無を短時間で判断し,必要な対応を早められる。

字数は 40 字以内で,解答例は 29 字である。“脆弱性が Z 社のシステムに影響するか”と“短時間で判断できない”の二つを残す。“脆弱性管理ができない”のように抽象的に書くと,構成管理がなぜ要るのかが伝わらない。

設問3(10) 解答欄4つ

本文中の下線⑪について,表 5 の整理番号 D1,D2 への対策として,共通鍵暗号方式による暗号化を検討する。内部者のうち,特に Z クラウドの管理者に見られないことを重視した場合,共通鍵の生成,動画の暗号化及び復号を行う Z システムの構成要素を,それぞれ図 1 中から選んで答えよ。また,その場合の共通鍵の安全な共有方法を,25 字以内で述べよ。

〔共通鍵の生成を行うZシステムの構成要素〕解答例

  • Zアプリ

〔動画の暗号化を行うZシステムの構成要素〕解答例

  • Zカメラ

〔動画の復号を行うZシステムの構成要素〕解答例

  • Zアプリ

〔共通鍵の安全な共有方法〕解答例

  • Bluetooth経由で受け渡す。
解説

本文の根拠

〔Z クラウドの詳細〕(4) 動画の保管

動画は,暗号化されずに保管される。

〔Z クラウドに対する脅威〕E 君と B 主任の会話

故意か過失かにかかわらず,内部者にも見ることができないような仕組みが必要です。

〔Z アプリの詳細〕(3) Z カメラの無線 LAN 接続の設定

Z アプリは,Bluetooth のシリアルポートプロファイルで Z カメラに接続し,Z カメラの無線 LAN 接続の設定を行う。

Z クラウドの管理者に見られないようにするには,Z クラウド側で鍵を作ったり保管したり,動画を復号したりしてはいけない。鍵を扱うのは,利用者の側にある Z アプリと Z カメラだけにする。動画を撮影して送る Z カメラが暗号化し,動画を参照する Z アプリが復号する。共通鍵は,Z アプリで生成する。解答例は,生成が“Zアプリ”,暗号化が“Zカメラ”,復号が“Zアプリ”である。

鍵を Z カメラに渡す経路が問題である。Z クラウド経由で渡すと管理者に見える。Z アプリは Bluetooth で Z カメラに直接接続して無線 LAN の設定を行っている(本文のとおり,Z カメラ自体には操作インタフェースが無く,外部記憶媒体も接続できない)ので,同じ経路で鍵を渡す。解答例は“Bluetooth経由で受け渡す。”である。

字数は 25 字以内で,共有方法の解答例は 17 字である。“Bluetooth 経由”と“受け渡す”の二つを残す。“安全に共有する”のように書くと方法が示されない。

出典:平成29年度 秋期 情報処理安全確保支援士試験 午後Ⅱ 問1(表記を一部改変)

問2 データ暗号化の設計

データ暗号化の設計に関する次の記述を読んで,設問 1〜4 に答えよ。

X 社は,従業員数 10,000 名の生命保険会社である。X 社では,業務担当者が契約の情報を管理するシステム(以下,K1 システムという)を,15 年前から運用している。K1 システムは,X 社データセンタに設置されており,次の 4 種類のサーバ及び共有ストレージで構成されている。

K1 システムの論理構成を図 1 に示す。

X 社本社,支店の社内 PC(Web ブラウザ)が,広域イーサ網(広域イーサネットサービス網)を介して,X 社データセンタの K1 システムの認証サーバに接続される。K1 システムは,認証サーバ,LDAP サーバ,Web アプリケーションサーバ,DB サーバ,共有ストレージで構成される。認証サーバは LDAP サーバ及び Web アプリケーションサーバに接続され,また共有ストレージにも接続される。LDAP サーバは共有ストレージに接続される。Web アプリケーションサーバは DB サーバ及び共有ストレージに接続される。DB サーバは共有ストレージに接続される。
図 1 K1 システムの論理構成

〔K1 システムの現在の運用〕

現在,K1 システムは,次のように運用されている。

(1) 災害対策

(2) 本番環境における作業担当

(3) オペレータ及び管理者に付与される権限

(4) リスク対策

X 社では,契約情報の漏えい防止に最優先で取り組んでいる。そのため,K1 システムでは,次のような対策を行っている。

〔K1 システムにおける課題〕

現在,X 社は,K1 システムの更改を計画している。更改後のシステム(以下,K2 システムという)では,契約者が PC の Web ブラウザ及びスマートフォンのアプリからインターネットを介して K2 システムにアクセスし,契約情報の参照,被保険者情報の更新などを行えるようにする。また,K2 システムにおいても,K1 システムにおける運用を引き継ぎ,契約情報の漏えい防止を最優先とした。

X 社は,K2 システムの要件定義において,システム開発ベンダ Y 社の支援を受けることにした。Y 社が K1 システムの仕様を確認したところ,DB サーバに保管する契約情報の暗号化及び復号の仕組みに問題があることが判明した。Y 社は,X 社に対して次の指摘を行った。

指摘 1 に関して,Y 社から次の根拠が示された。

a の安全対策基準(日本国内において金融機関などがよりどころとすべき共通の安全対策基準)では,b 暗号リスト(電子政府における調達のために参照すべき暗号のリスト)などに記載されている暗号技術を採用するのが望ましいとしているが,当該暗号リストにおいて,56bitDES は推奨されていない。また,次の前提条件に基づいて試算した結果から,今日では,56bitDES の解読に必要な PC の台数は,攻撃者が現実的に調達可能な台数である。

〔暗号方式の検討〕

X 社には,危たい化した暗号技術を使っているシステムが K1 システム以外にも複数あった。そこで,Y 社からの指摘を踏まえ,X 社は,暗号技術を含む暗号方式の社内標準について検討した。その結果,契約情報を業務アプリケーションではなく DBMS で暗号化して DB に保管する方式(以下,DB 暗号方式という)を社内標準として,X 社の全システムに適用することにした。DB 暗号方式の設計に当たって,X 社は次のシステム標準と要件を定義した。

暗号モジュールとは,暗号化,復号,乱数生成,鍵管理などの機能を提供するハードウェア又はソフトウェアのことである。NIST が定めた c 140-2 は,暗号モジュールに求められるセキュリティ要件を定義したものである。

X 社は,暗号モジュールに,Q 社の製品 H を採用した。また,X 社は,複数のサーバからネットワーク経由で 1 台の製品 H の機能を利用するために,Q 社が提供しているソフトウェア製品である H クライアントと H サーバも採用した。

製品 H は,c 140-2 Level 4 の要件を満たすハードウェアの暗号モジュールであり,サーバに取り付けられる PCI Express カードである。製品 H は,製品 H を取り付けたサーバ(以下,HSM サーバという)上で稼働するプログラム(以下,ローカルプログラムという)に対して独自の API(以下,API-X という)を提供し,ローカルプログラムから API-X を呼び出すことで,暗号化,復号,乱数生成,データの暗号化及び復号に使用する鍵(以下,データ鍵という)の生成,データ鍵の保管,並びに保管したデータ鍵の削除を行う。また,製品 H は,製品 H,及び製品 H に保管するマスタ鍵を管理するプログラム(以下,ユーティリティプログラムという)を導入した専用の管理端末に対して,製品 H 自身に対する管理インタフェースを提供する。

K2 システムにおける契約情報の暗号化機能の概要を図 2 に示す。図 2 において,H サーバはローカルプログラムに該当する。

Web アプリケーションサーバ内の業務アプリケーションが,JDBC で DB サーバ内の製品 D(表領域暗号化機能)と接続される。製品 D の表領域暗号化機能は,PKCS#11 で H クライアントと接続される。H クライアントは,HSM サーバ内の H サーバと,API-X の実行要求/応答(HTTP over TLS)で接続される。HSM サーバ内で,H サーバは API-X で製品 H と接続される。製品 H は,IC カードリーダ/ライタ(IC カードを含む)と管理端末(ユーティリティプログラムが動作)のうち,管理端末のユーティリティプログラムと接続され,ユーティリティプログラムは IC カードと接続される。共有ストレージには,DB,設定ファイル,鍵ストアファイルがあり,DB と設定ファイルは製品 D の表領域暗号化機能と接続され,鍵ストアファイルは製品 H と接続される。凡例:設定ファイルは製品 D の設定パラメタが保存されるファイル,鍵ストアファイルは製品 H が鍵を保管し管理するファイル。
図 2 K2 システムにおける契約情報の暗号化機能の概要

製品 H の仕様は次のとおりである。

仕様 1 初期化

管理端末上でユーティリティプログラムを起動し,製品 H 経由で鍵ストアファイルを作成した後,マスタ鍵を生成し,製品 H を利用可能な状態にする。

仕様 2 乱数の生成

ローカルプログラムから乱数を生成する API-X を呼び出すと,製品 H が乱数を生成し,API-X の出力値として返す。

仕様 3 鍵の生成

仕様 4 暗号化又は復号

仕様 5 マスタ鍵のゼロ化

製品 H には,内蔵バッテリで駆動するセンサが内蔵されている。①センサが次のいずれかを検知すると,製品 H は,メモリ上に保持されているマスタ鍵をゼロ化するとともに,自身を使用不能で,かつ,元に戻せない状態にする。

内蔵バッテリが切れそうな場合,製品 H は HSM サーバを介して警告メッセージを出力し,早期のバッテリ交換を促す。内蔵バッテリの交換手順として,(a)の発生を回避する手順が提供されている。

H クライアントと H サーバを用いると,HSM サーバとは別のサーバで稼働するプログラム(以下,リモートプログラムという)からネットワークを介して製品 H を利用できる。H クライアントは,リモートプログラムが稼働するサーバに導入され,リモートプログラムに対して PKCS#11 の API を提供する。H サーバは HSM サーバに導入され,TLS 通信を介して H クライアントに製品 H の機能を提供する。

H クライアントと H サーバの仕様は次のとおりである。

(1) API-X の実行要求

(2) H サーバに対する負荷分散

H クライアントは,複数の H サーバに API-X の実行要求を振り分ける負荷分散機能をもっている。負荷分散機能の概要は次のとおりである。

製品 D の表領域暗号化機能には,PKCS#11 の API を提供する暗号モジュールが必要である。製品 D の表領域暗号化機能の仕様は次のとおりである。

K2 システムの DB 暗号方式では,製品 D の表領域暗号化機能に必要な暗号モジュールとして製品 H が用いられる。また,製品 D の表領域暗号化機能の仕様における DB マスタ鍵及び DB マスタ鍵 ID が,それぞれ,製品 H の仕様におけるデータ鍵及びデータ鍵 ID に該当する。

K2 システムの DB 暗号方式における DB の初期化処理の概要を,図 3 に示す。図 3 中では,製品 D の表領域暗号化機能の仕様のうち,仕様 A と仕様 B を記載している。

業務アプリケーション管理者,製品 D,H クライアント,H サーバ,製品 H の間のシーケンス図。上から順に,業務アプリケーション管理者が製品 D に起動コマンドを送り,起動完了メッセージが返る。DB 作成コマンドを送ると,製品 D は H クライアントに鍵生成()を呼び出し,H クライアントはデータ鍵 ID の採番を行い,H サーバに鍵生成(データ鍵 ID)を送り,H サーバは製品 H に鍵生成(データ鍵 ID)を送る。製品 H は,データ鍵の生成,マスタ鍵によるデータ鍵の暗号化,データ鍵 ID 及び暗号化されたデータ鍵の保存を行い(注 2:製品 H によって生成されたデータ鍵は,DB マスタ鍵として扱われる),OK を H サーバに返す。H サーバは OK を H クライアントに返し,H クライアントはデータ鍵 ID を製品 D に返す。製品 D は,データ鍵 ID を DB マスタ鍵 ID として保存し,DB 作成完了メッセージを返す。表領域作成コマンドを送ると,製品 D は H クライアントに乱数生成()を呼び出し,H クライアントは H サーバに,H サーバは製品 H に乱数生成()を送る。製品 H は乱数を生成して返し,乱数は H サーバ,H クライアントを経て製品 D に返る。製品 D は乱数を DB データ鍵として保持する。製品 D は暗号化(DB データ鍵,DB マスタ鍵 ID)を H クライアントに送り,H クライアントは H サーバに,H サーバは製品 H に同じ暗号化(DB データ鍵,DB マスタ鍵 ID)を送る。製品 H は DB マスタ鍵で DB データ鍵を暗号化し,暗号化された DB データ鍵が H サーバ,H クライアントを経て製品 D に返る。製品 D は,表領域の作成,暗号化された DB データ鍵を表領域に保存し,表領域作成完了メッセージを返す。凡例:実線の矢印はコマンド呼出しメッセージ,破線の矢印はコマンド応答メッセージ(戻りメッセージ),コマンド(パラメタ 1,パラメタ 2,…)の細い実線の矢印は API 呼出しメッセージ,出力値又は応答メッセージの細い破線の矢印は API 応答メッセージ。注記 1:製品 D と H クライアント間のコマンドは,PKCS#11 の API を意味する。注記 2:H クライアントと H サーバ間のコマンドは,API-X の実行要求を意味する。注記 3:H サーバと製品 H 間のコマンドは,API-X を意味する。注 1) 製品 H の初期化は既に行われている。注 2) 製品 H によって生成されたデータ鍵は,DB マスタ鍵として扱われる。
図 3 K2 システムの DB 暗号方式における DB の初期化処理の概要

〔DB サーバ及び HSM サーバの構成設計〕

X 社は,K2 システムのサーバ構成について,Y 社に次の要件で設計を依頼した。

Y 社が設計した K2 システムのサーバ構成を図 4 に示す。

X 社データセンタには,Web アプリケーションサーバ 1(業務アプリケーション),Web アプリケーションサーバ 2(業務アプリケーション),DB サーバ 1(製品 D-1,H クライアント 1),DB サーバ 2(製品 D-2,H クライアント 2),HSM サーバ 1(H サーバ 1,製品 H-1),HSM サーバ 2(H サーバ 2,製品 H-2),共有ストレージ 1(DBα,DBβ,鍵ストアファイル 1,鍵ストアファイル 2)がある。バックアップセンタには,Web アプリケーションサーバ 3(業務アプリケーション),DB サーバ 3(製品 D-3,H クライアント 3),HSM サーバ 3(H サーバ 3,製品 H-3),共有ストレージ 2(DBδ,DBγ,鍵ストアファイル 3)がある。通常時の通信(実線):Web アプリケーションサーバ 1 の業務アプリケーションは製品 D-1 と通信し,製品 D-1 は H クライアント 1 及び DBα,DBβ と通信する。H クライアント 1 は H サーバ 1 と通信し,H サーバ 1 は製品 H-1 と,製品 H-1 は鍵ストアファイル 1 と通信する。Web アプリケーションサーバ 2 の業務アプリケーションは製品 D-1 と通信する(線は製品 D-1 に向かう)。H クライアント 2 は H サーバ 2 と通信し,H サーバ 2 は製品 H-2 と,製品 H-2 は鍵ストアファイル 2 と通信する。H クライアント 1 から H サーバ 2 への線もある。バックアップセンタでは,Web アプリケーションサーバ 3 の業務アプリケーションは製品 D-3 と通信し,製品 D-3 は H クライアント 3 と通信し,H クライアント 3 は H サーバ 3 と通信し,H サーバ 3 は製品 H-3 と,製品 H-3 は鍵ストアファイル 3 と通信する。障害発生時の通信(破線):Web アプリケーションサーバ 1 の業務アプリケーションから製品 D-2 へ,製品 D-2 から DBα 及び DBβ へ,H クライアント 2 から H サーバ 1 へ,製品 D-3 から DBδ 及び DBγ へ。災害対策のためのデータコピーの流れ(破線の矢印):DBα から DBδ へ,DBβ から DBγ へ。注記 1:製品 D-2 は,製品 D-1 に対するスタンバイ構成である。注記 2:DBα 及び DBγ には被保険者情報が保管され,DBβ 及び DBδ には契約条件が保管される。
図 4 K2 システムのサーバ構成(抜粋)

Y 社は,K2 システムにおける DB 及び表領域の作成手順を次のように設計した。

(以下,省略)

Y 社は,DB 暗号方式において,H クライアント及び H サーバの仕様では複数システムの DB サーバから 1 台の HSM サーバを共有することはできないと X 社に伝えた。そこで,X 社が開発元の Q 社に問い合わせたところ,Q 社からは,来月リリースされる新しいバージョンの H クライアント及び H サーバに次の機能を追加するという回答を得た。

複数の業務システムの DB サーバが 1 台の HSM サーバを共有する場合の構成を,図 5 に示す。

V システムの DB サーバ(H クライアント V,H クライアント ID:V,製品 D-V),K2 システムの DB サーバ(H クライアント K2,H クライアント ID:K2,製品 D-K2),Z システムの DB サーバ(H クライアント Z,H クライアント ID:Z,製品 D-Z)が,いずれも 1 台の HSM サーバ(H サーバ,製品 H)に接続される。HSM サーバは鍵ストアファイルに接続される。鍵ストアファイルには,マスタ鍵で暗号化された製品 D-K2 の DB マスタ鍵(データ鍵 ID:K2.nnnnnnnn),マスタ鍵で暗号化された製品 D-V の DB マスタ鍵(データ鍵 ID:V.nnnnnnnn),マスタ鍵で暗号化された製品 D-Z の DB マスタ鍵(データ鍵 ID:Z.nnnnnnnn)が保管される。
図 5 複数の業務システムの DB サーバが 1 台の HSM サーバを共有する場合の構成

〔K2 システムにおけるリスク対策の補完〕

X 社は,DB 暗号方式を実装した K2 システムについて,契約情報の漏えいリスクを分析した。リスク分析の結果,次の対策を追加することになった。

K2 システムの設計を終えた X 社は,更改作業に向けて準備を開始した。

出題趣旨(IPA)

2005年の個人情報保護法施行以降,個人情報を暗号化して保存することが求められるようになった。DBMS製品においてもデータ暗号化の機能が備わってきており,重要なデータを暗号化してデータベースに保管するシステムが増えてきている。データベース暗号化及び暗号鍵の管理においては,やみくもにデータ暗号化や鍵管理機能を実装するのではなく,想定するリスクと残存リスクを明確にし,目的に沿って設計・実装することが重要である。鍵管理においては,暗号化に使用する鍵を安全に管理するための手段として,ハードウェア暗号モジュールが用いられてきた。本問では,データ暗号化を題材に,暗号方式及びハードウェア暗号モジュールに関する基本的な知識並びに目的に沿ったデータ暗号方式の設計能力を問う。

採点講評(問全体・IPA)

問2では,DBMSとハードウェアセキュリティモジュール(以下,HSMという)を用いたシステムを題材に,データ暗号化の設計について出題した。

設問と解答例

設問1(1) 解答欄2つ

本文中の a,b に入れる適切な字句を,a は英字 4 字で,b は英字 8 字で,それぞれ答えよ。

〔a〕解答例

  • FISC

〔b〕解答例

  • CRYPTREC
解説

本文の根拠

〔K1 システムにおける課題〕指摘 1 の根拠

a の安全対策基準(日本国内において金融機関などがよりどころとすべき共通の安全対策基準)では,b 暗号リスト(電子政府における調達のために参照すべき暗号のリスト)などに記載されている暗号技術を採用するのが望ましいとしているが,当該暗号リストにおいて,56bitDES は推奨されていない。

〔K1 システムにおける課題〕

X 社は,従業員数 10,000 名の生命保険会社である。

a は,日本国内で金融機関などがよりどころとすべき共通の安全対策基準で,金融情報システムセンター(FISC)が定めている。英字 4 字なので FISC である。b は,電子政府における調達のために参照すべき暗号のリストを示す語で,CRYPTREC(暗号技術検討会などによる暗号技術の評価・監視の取組み)の名を冠した暗号リストである。英字 8 字なので CRYPTREC である。解答例は a が“FISC”,b が“CRYPTREC”である。

X 社は生命保険会社なので,金融機関などの安全対策基準が当てはまり,その基準が採用を望ましいとする暗号技術は CRYPTREC 暗号リストに載っているものである。56bitDES はそのリストで推奨されていないので,指摘 1 の根拠になる。

字数は英字 4 字と 8 字に指定されている。講評も,業界ごとの代表的なセキュリティ基準と暗号に関する基準は,セキュリティ要件を定義する際に参照すべきものなので知識をもっておいてほしいと述べている。

採点講評(IPA)

設問1(1)は,知識問題であるが,正答率が低かった。業界ごとの代表的なセキュリティ基準,データ暗号化に関する基準は,セキュリティ要件を定義する際に参照すべきものであり,代表的なものについては知識をもっておいてほしい。

設問1(2)

Y 社が提示した前提条件に基づいて試算した場合,2017 年製の PC を利用したとして,同じ時間内に 56bitDES を解読するには,PC は最低何台必要か。答えは,小数第 1 位を切り上げて整数で求めよ。ここで,133,920=540×248 である。

解答例

  • 162
解説

本文の根拠

〔K1 システムにおける課題〕

1998 年に開催された第 2 回 DES 解読コンテストにおいて,4 万台の PC で 56bitDES の全鍵空間の 80%を探索し,40 日で解読した。

〔K1 システムにおける課題〕

解読所要時間はプロセッサの MIPS 値に反比例する。

〔K1 システムにおける課題〕

2017 年製の PC に搭載されたプロセッサの MIPS 値を,133,920 MIPS と仮定する。

1998 年のコンテストの PC は 540 MIPS で,2017 年製の PC は 133,920 MIPS である。設問の注記のとおり 133,920=540×248 なので,2017 年製の PC は 1 台で 248 台ぶんの処理ができる。解読所要時間は MIPS 値に反比例するので,同じ時間(40 日)で同じ範囲(全鍵空間の 80%)を探索するのに要る台数は 40,000÷248=161.29… となる。小数第 1 位を切り上げて 162 台である。解答例は“162”である。

検算は,台数×MIPS 値が同じになることで行える。40,000×540=21,600,000 で,162 台では 162×133,920=21,695,040 となり足りている。161 台だと 161×133,920=21,561,120 となって 21,600,000 に届かない。

字数の制限はなく,台数を整数で答える。単純に切り捨てて 161 と答えると,同じ時間内に解読できない。“切り上げて整数”という指定は,この点を問うている。

採点講評(IPA)

設問1(2)及び設問1(3)は,正答率が高かった。多くの受験者が,比較的簡単な前提条件に基づいて,リスクを特定したり数値化したりする能力をもっていることがうかがえる。

設問1(3) 60字以内

指摘 2 の状況によって,誰が,どのような方法で契約情報を取得するリスクが発生するか。60 字以内で述べよ。

解答例

  • オペレータ及びシステム管理者が,暗号化された契約情報を暗号化・復号に用いられる鍵を用いて復号し,取得するリスク
解説

本文の根拠

〔K1 システムの現在の運用〕(2)

システム管理者が担当

〔K1 システムの現在の運用〕(3)

オペレータとシステム管理者には,DBMS と Web アプリケーションサーバソフトウェアとを除くミドルウェア及び OS 上の全ての操作権限が付与されており,その他の権限は付与されていない。

〔K1 システムにおける課題〕指摘 2

契約情報の暗号化及び復号に用いる鍵が平文でファイルに保管されており,オペレータ及びシステム管理者に当該ファイルのアクセス権が付与されている状況である。

〔K1 システムの現在の運用〕(4)

契約情報は,業務アプリケーションが,共通鍵暗号方式で暗号化し,DB サーバに保管している。

契約情報は,業務アプリケーションが共通鍵暗号方式で暗号化して DB サーバに保管している。その鍵が平文でファイルに保管されており,オペレータとシステム管理者に当該ファイルのアクセス権が付与されている。この二つの職種には OS 上の全ての操作権限があるので,暗号化された契約情報と鍵のファイルを入手でき,鍵で復号して契約情報を取得できる。解答例は“オペレータ及びシステム管理者が,暗号化された契約情報を暗号化・復号に用いられる鍵を用いて復号し,取得するリスク”である。

指摘 2 は,暗号化していても鍵が平文で置かれ,その鍵に触れる者がいれば,暗号化の意味が薄れるという指摘である。解答に必要なのは,“誰が”(オペレータ及びシステム管理者)と“どのような方法で”(鍵を用いて復号)である。

字数は 60 字以内で,解答例は 55 字である。“オペレータ及びシステム管理者”,“鍵を用いて復号”,“契約情報を取得するリスク”の三つを残す。“内部者が不正に取得する”のように書くと,どの職種が,何を使うのかが分からない。

採点講評(IPA)

設問1(2)及び設問1(3)は,正答率が高かった。多くの受験者が,比較的簡単な前提条件に基づいて,リスクを特定したり数値化したりする能力をもっていることがうかがえる。

設問2(1) 解答欄1つ

本文中の c に入れる適切な英字 4 字を答えよ。

〔c〕解答例

  • FIPS
解説

本文の根拠

〔暗号方式の検討〕

NIST が定めた c 140-2 は,暗号モジュールに求められるセキュリティ要件を定義したものである。

〔暗号方式の検討〕

製品 H は,c 140-2 Level 4 の要件を満たすハードウェアの暗号モジュールであり

NIST が定めた暗号モジュールのセキュリティ要件の規格は FIPS 140-2(Security Requirements for Cryptographic Modules)で,レベル 1〜4 の 4 段階がある。本文の“140-2 Level 4”がその最上位のレベルである。英字 4 字なので FIPS である。解答例は“FIPS”である。

FIPS は NIST が公表する連邦情報処理標準(Federal Information Processing Standards)で,暗号モジュールの要件はその 140 番である。英字 4 字の指定と“NIST が定めた”が手掛かりになる。

字数は英字 4 字に指定されている。講評は,設問 2 の HSM に関する知識問題は(5)を除いて正答率があまり高くなかったと述べている。暗号モジュールの検証規格として FIPS 140-2 を押さえておく。

採点講評(IPA)

設問2は,HSMに関する知識問題であるが,(5)を除いて正答率があまり高くなかった。HSMは,データ暗号化に用いられる鍵を安全に管理する技術である。基本的な知識をもっておいてほしい。

設問2(2) 25字以内

製品 H の仕様 1 の効果を,1 人の鍵管理者が三つの部分鍵を入力し,3 枚の IC カードに保管して管理する場合と比べて,25 字以内で述べよ。

解答例

  • 単独の鍵管理者ではマスタ鍵を復元できない。
解説

本文の根拠

製品 H の仕様 1 初期化

マスタ鍵は,3 人の鍵管理者が別々に管理端末から入力した 256 ビットの値(以下,部分鍵という)の排他的論理和によって生成され,製品 H のメモリ内に保持される。

仕様 1 では,マスタ鍵は 3 人の鍵管理者が別々に入力した部分鍵の排他的論理和で作られる。1 人が知っているのは自分の部分鍵だけで,ほかの二人の部分鍵が分からなければマスタ鍵は求まらない。比較対象の,1 人の鍵管理者が三つの部分鍵を入力して 3 枚の IC カードに保管する場合は,その 1 人が三つの部分鍵を全部知るので,単独でマスタ鍵を復元できる。したがって仕様 1 の効果は,単独の鍵管理者ではマスタ鍵を復元できないことである。解答例は“単独の鍵管理者ではマスタ鍵を復元できない。”である。

部分鍵を別々の IC カードに別々に保管するという仕様 1 の条件も,同じ考え方である。鍵を分けて,複数の者が揃わないと使えない状態にする。

字数は 25 字以内で,解答例は 21 字である。“単独の鍵管理者”と“マスタ鍵を復元できない”の二つを残す。“不正が防げる”のような抽象的な書き方だと,仕様 1 の効果として何が起きるのかが示されない。

採点講評(IPA)

設問2は,HSMに関する知識問題であるが,(5)を除いて正答率があまり高くなかった。HSMは,データ暗号化に用いられる鍵を安全に管理する技術である。基本的な知識をもっておいてほしい。

設問2(3) 解答欄2つ

IC カードに記録される部分鍵は,何を実施した場合にどのような目的のために必要か。場合と目的をそれぞれ 15 字以内で述べよ。

〔場合〕解答例

  • 製品Hを交換した場合

〔目的〕解答例

  • マスタ鍵を復元するため
解説

本文の根拠

製品 H の仕様 1 初期化

部分鍵は,管理端末に接続された IC カードリーダ/ライタを用いて,別々の IC カードに保管することができる。

製品 H の仕様 1 初期化

製品 H のメモリは,製品 H の内蔵バッテリによって駆動する。

製品 H の仕様 5 マスタ鍵のゼロ化

①センサが次のいずれかを検知すると,製品 H は,メモリ上に保持されているマスタ鍵をゼロ化するとともに,自身を使用不能で,かつ,元に戻せない状態にする。

マスタ鍵は製品 H のメモリ内にしか保持されず,そのメモリは内蔵バッテリで駆動する。製品 H が故障して交換したり,仕様 5 のゼロ化(自身を使用不能で,かつ,元に戻せない状態にする)が起きたりした場合は,新しい製品 H にマスタ鍵が無い。鍵ストアファイルのデータ鍵はマスタ鍵で暗号化されているので,マスタ鍵が無いとデータ鍵を復号できず,契約情報を復号できなくなる。そこで,IC カードの部分鍵を管理端末から入力して,マスタ鍵を復元する。場合は“製品Hを交換した場合”,目的は“マスタ鍵を復元するため”である。

IC カードに記録されるのは,部分鍵であってマスタ鍵そのものではない。3 人の鍵管理者が別々に保管する点は,設問(2) の効果と合わせて読む。

字数は場合・目的ともに 15 字以内で,解答例は 10 字と 11 字である。場合は“製品 H を交換した”,目的は“マスタ鍵を復元する”を軸にする。“故障した場合”だけでは,故障したとなぜ必要になるのかが示されない。

採点講評(IPA)

設問2は,HSMに関する知識問題であるが,(5)を除いて正答率があまり高くなかった。HSMは,データ暗号化に用いられる鍵を安全に管理する技術である。基本的な知識をもっておいてほしい。

設問2(4) 7字以内

本文中の下線①によって実現される暗号モジュールの性質を,7 字以内で答えよ。

解答例

  • 耐タンパ性
解説

本文の根拠

製品 H の仕様 5 マスタ鍵のゼロ化

①センサが次のいずれかを検知すると,製品 H は,メモリ上に保持されているマスタ鍵をゼロ化するとともに,自身を使用不能で,かつ,元に戻せない状態にする。

製品 H の仕様 5 マスタ鍵のゼロ化

(b) 製品 H のカバーのこじ開け又は損傷

下線①は,センサが電圧の異常やカバーのこじ開け又は損傷という物理的な攻撃を検知すると,製品 H がマスタ鍵をゼロ化して自分自身を使えなくするという仕組みである。外から物理的に攻撃されても,内部の鍵などの情報を取り出せないようにする性質を,耐タンパ性という。解答例は“耐タンパ性”である。

“タンパ”は tamper(不正に手を加える)に由来し,耐タンパ性は tamper resistance の訳である。暗号モジュールは,鍵を守るために,ソフトウェアの面だけでなく物理的な攻撃への耐性も備える。

字数は 7 字以内で,解答例は 5 字である。“耐タンパ性”と書く。“物理的な保護”のように性質の名前でなく説明を書くと,7 字を超えるうえに,用語を問う設問の答えにならない。

採点講評(IPA)

設問2は,HSMに関する知識問題であるが,(5)を除いて正答率があまり高くなかった。HSMは,データ暗号化に用いられる鍵を安全に管理する技術である。基本的な知識をもっておいてほしい。

設問2(5) 解答欄2つ

X 社の運用規程で,製品 H を運搬する場合,必ず静電気防止シートで覆うように定めた。これは,静電気防止シートで覆わなかった場合に発生し得る不都合な事象を想定し,配慮したものである。その事象及びその事象によって実行される製品 H の機能を,それぞれ 40 字以内で述べよ。

〔事象〕解答例

  • 静電気の放電による規定の範囲を超える電源電圧の発生

〔機能〕解答例

  • 事象をセンサが検知し,製品H自身を使用不能で戻せない状態にする。
解説

本文の根拠

製品 H の仕様 5 マスタ鍵のゼロ化

(a) 電気的短絡(ショート)の発生などによる規定の範囲を超える電源電圧の発生

製品 H の仕様 5 マスタ鍵のゼロ化

①センサが次のいずれかを検知すると,製品 H は,メモリ上に保持されているマスタ鍵をゼロ化するとともに,自身を使用不能で,かつ,元に戻せない状態にする。

製品 H の仕様 5 マスタ鍵のゼロ化

内蔵バッテリの交換手順として,(a)の発生を回避する手順が提供されている。

仕様 5 は,センサが(a)規定の範囲を超える電源電圧の発生,又は(b)カバーのこじ開け・損傷のいずれかを検知すると,マスタ鍵をゼロ化して製品 H を使用不能にすると定めている。静電気防止シートで覆わずに運搬すると,静電気の放電が起きて,規定の範囲を超える電源電圧が生じるおそれがある。これが(a)に当たり,センサが検知して,製品 H はマスタ鍵をゼロ化し,自身を使用不能で戻せない状態にする。事象の解答例は“静電気の放電による規定の範囲を超える電源電圧の発生”,機能の解答例は“事象をセンサが検知し,製品H自身を使用不能で戻せない状態にする。”である。

本文は,内蔵バッテリの交換でも(a)の発生を避ける手順を設けていて,電源電圧の異常を避けることが運用上の関心であると分かる。

字数は 40 字以内で,解答例は事象が 25 字,機能が 32 字である。事象は“静電気の放電”と“規定の範囲を超える電源電圧の発生”,機能は“センサが検知”と“使用不能で戻せない状態にする”を残す。“製品 H が壊れる”のような一般的な書き方は,仕様 5 の機能として答えにならない。

設問3(1) 解答欄3つ

DB 及び表領域の作成手順中,(ⅰ)の代わりに HSM サーバ 1 と HSM サーバ 2 の両方を稼働させておいた場合,(ⅱ)から(ⅷ)までのどの手順がエラーとなるか。一つ選び,記号で答えよ。また,エラーが発生する API-X のコマンド及び API-X のエラーの原因を,それぞれ 35 字以内で具体的に述べよ。なお,コマンドについては図 3 の形式,図 3 中の用語,及び図 4 中の用語を用い,鍵はどの DB のものかも記述すること。ここで,最初の API-X の実行要求は,H サーバ 1 に送信される。

〔エラーとなる手順〕解答例

  • (ⅴ)

〔API-Xのコマンド〕解答例

  • 暗号化(DBαのDBデータ鍵,DBαのDBマスタ鍵ID)

〔API-Xのエラーの原因〕解答例

  • DBαのDBマスタ鍵が鍵ストアファイル2に存在しないこと
解説

本文の根拠

H クライアントと H サーバの仕様 (2) H サーバに対する負荷分散

H クライアントは,登録された H サーバのうち稼働している H サーバに,ラウンドロビン方式で API-X の実行要求を送信する。

製品 H の仕様 3 鍵の生成

生成されたデータ鍵は,製品 H においてマスタ鍵で暗号化され,データ鍵 ID とともに鍵ストアファイルに保管される。

製品 H の仕様 4 暗号化又は復号

鍵ストアファイルに存在しないデータ鍵 ID を指定して暗号化又は復号を行おうとすると,API-X の処理結果はエラーとなる。

DB 及び表領域の作成手順

(ⅷ) 鍵ストアファイル 1 を,鍵ストアファイル 2 及び鍵ストアファイル 3 にコピーする。

H クライアントは稼働している H サーバに順番に実行要求を送り,最初の要求は H サーバ 1 に送られる。図3 では,DB 作成は鍵生成の要求 1 回,表領域作成は乱数生成と暗号化の要求 2 回である。(ⅲ)の DBα 作成の鍵生成は H サーバ 1 に送られ,DBα の DB マスタ鍵は鍵ストアファイル 1 に保管される。(ⅳ)の DBβ 作成の鍵生成は次の H サーバ 2 に送られ,鍵ストアファイル 2 に保管される。(ⅴ)の表領域 1 の作成では,乱数生成が H サーバ 1 に送られ,暗号化(DBαのDBデータ鍵,DBαのDBマスタ鍵ID)が H サーバ 2 に送られる。鍵ストアファイル 2 には DBα の DB マスタ鍵が無く,仕様 4 のとおり API-X の処理結果はエラーとなる。解答例は手順が“(ⅴ)”,コマンドが“暗号化(DBαのDBデータ鍵,DBαのDBマスタ鍵ID)”,原因が“DBαのDBマスタ鍵が鍵ストアファイル2に存在しないこと”である。

(ⅰ)で HSM サーバ 1 だけを稼働させるのは,鍵の作成を鍵ストアファイル 1 だけに集め,(ⅷ)でそれを他の鍵ストアファイルにコピーするためである。2 台を稼働させると,鍵ストアファイルが別々に更新される。

字数は 35 字以内で,コマンドの解答例は 28 字,原因の解答例は 28 字である。コマンドは図3 の形式に,図4 の用語(DBα)を当てはめる。“どの DB のものか”を落とすと,設問の指定に反する。原因は“鍵ストアファイル 2”と“DB マスタ鍵が存在しない”の二つを残す。

採点講評(IPA)

設問3(1)は,DBMSの暗号化機能,HSM,及びHSMをネットワーク経由で利用するためのソフトウェアの3種類の構成要素を組み合わせたデータ暗号化の設計に関する設問であるが,正答率が低かった。鍵を安全に保護した上でデータを暗号化する仕組みについての理解を深めてほしい。また,設問文で求められている解答形式から大きく逸脱した解答が多かった。他者と協力して業務を行う技術者は,問いと解答形式を正しく理解し,求められている解答を的確に表現できるよう基本的なコミュニケーション能力を身につけてほしい。

設問3(2) 40字以内

H クライアントにおいて,H クライアント ID をデータ鍵 ID に付け加える機能がなかった場合,特定の条件において DB 作成がエラーになる。その条件を 40 字以内で述べよ。

解答例

  • 複数のHクライアントが送信したデータ鍵IDが重複した場合
解説

本文の根拠

H クライアントと H サーバの仕様 (1) API-X の実行要求

H クライアントは,内部でデータ鍵 ID を 0 から順番に採番して H サーバに API-X の実行要求を送信し,鍵生成が成功した場合にデータ鍵 ID を API-X の出力値としてリモートプログラムに返す。

製品 H の仕様 3 鍵の生成

既に鍵ストアファイルに存在しているデータ鍵 ID を指定してデータ鍵を生成しようとすると,API-X の処理結果はエラーとなる。

〔DB サーバ及び HSM サーバの構成設計〕

HSM サーバは,K2 システム以外のシステムの DB サーバを含めた全 DB サーバからも共有できるようにする。

H クライアントは,鍵生成のたびにデータ鍵 ID を 0 から順に採番して H サーバに要求する。H クライアント ID を付け加える機能が無いと,この ID は H クライアントごとに独立した番号になる。HSM サーバを複数のシステムの DB サーバが共有する図5 の構成では,複数の H クライアントが同じデータ鍵 ID(例えば 0)で鍵生成を要求することになる。既に存在するデータ鍵 ID での鍵生成は仕様 3 のとおりエラーになるので,後から要求した DB 作成が失敗する。解答例は“複数のHクライアントが送信したデータ鍵IDが重複した場合”である。

追加される機能は,H クライアント ID と従来のデータ鍵 ID を結合した新たなデータ鍵 ID にする(K2.nnnnnnnn や V.nnnnnnnn の形)ことで,H クライアントごとに ID が重複しない。

字数は 40 字以内で,解答例は 28 字である。“複数の H クライアント”と“データ鍵 ID が重複”の二つを残す。“同時に DB を作成した場合”とだけ書くと,なぜエラーになるのかの原因(ID の重複)が示されない。

設問4(1) 45字以内

対策 1 は,誰がどのような方法で契約情報を取得するリスクに対する対策か。リスクを 45 字以内で述べよ。

解答例

  • 業務担当者及び契約者が業務アプリケーションを利用して持ち出すリスク
解説

本文の根拠

〔K2 システムにおけるリスク対策の補完〕

不審なアクセスがないか監視する。具体的には,週次で,業務アプリケーションのログから,業務時間外のアクセス及び大量の契約情報へのアクセスがないかチェックし,もしあれば,その内容を確認する。

〔K1 システムの現在の運用〕(4)

業務処理を行う際,業務アプリケーションは,DB サーバから契約情報を読み出して復号する。

〔K1 システムにおける課題〕

契約者が PC の Web ブラウザ及びスマートフォンのアプリからインターネットを介して K2 システムにアクセスし,契約情報の参照,被保険者情報の更新などを行えるようにする。

対策 1 は,業務アプリケーションのログから,業務時間外のアクセスと大量の契約情報へのアクセスを調べる。これは,業務アプリケーションを使う正規の利用者による持ち出しを見つける対策である。DB 暗号方式(表領域の暗号化)は,ディスクやバックアップなどに保管された契約情報を守る。しかし業務アプリケーションは,業務処理を行う際,契約情報を復号して扱うので,利用権限のある者が業務アプリケーションを使って取得した情報は,暗号化では守れない。K2 システムでは契約者もインターネットから業務アプリケーションを使えるようになる。解答例は“業務担当者及び契約者が業務アプリケーションを利用して持ち出すリスク”である。

監視の方法が“業務アプリケーションのログ”であることが,持ち出しの手段が業務アプリケーションの利用であることの手掛かりになる。DB サーバ上のデータを直接取得する者への対策なら,DB の暗号化がそれに当たる。

字数は 45 字以内で,解答例は 33 字である。“業務担当者及び契約者”と“業務アプリケーションを利用して持ち出す”の二つを残す。“内部者が持ち出す”だけでは,誰が,どの手段でが示されない。

採点講評(IPA)

設問4は,セキュリティ対策後の残留リスクに関する設問であるが,正答率が低かった。セキュリティ対策の設計において,対策後の残留リスクを正しく分析する能力を身につけてほしい。

設問4(2) 50字以内

対策 2 は,誰がどのような方法で契約情報を取得するリスクに対する対策か。リスクを 50 字以内で述べよ。

解答例

  • オペレータ及びシステム管理者が,メモリダンプから平文の契約情報を読み出し,持ち出すリスク
解説

本文の根拠

〔K2 システムにおけるリスク対策の補完〕

DB サーバ又は Web アプリケーションサーバのメモリダンプをファイルに出力した場合,次の作業に対して,作業者,作業日時及び作業内容を履歴として残す。

〔K1 システムの現在の運用〕(3)

オペレータとシステム管理者には,DBMS と Web アプリケーションサーバソフトウェアとを除くミドルウェア及び OS 上の全ての操作権限が付与されており,その他の権限は付与されていない。

製品 D の表領域暗号化機能の仕様 B

生成された乱数は,データの暗号化鍵・復号鍵(以下,DB データ鍵という)として,製品 D のメモリ上に保持される。

メモリダンプには,その時点のメモリの内容がそのまま入る。DB サーバでは,製品 D が DB データ鍵をメモリ上に保持し,ディスクから読み込んだデータを復号するので,メモリ上には平文のデータや鍵が現れる。Web アプリケーションサーバのメモリにも,業務アプリケーションが扱う平文の契約情報がある。オペレータとシステム管理者には OS 上の全ての操作権限があり,メモリダンプを OS から出力して,ファイルや外部記憶媒体に持ち出せる。DB の暗号化は,メモリ上の平文までは守らない。解答例は“オペレータ及びシステム管理者が,メモリダンプから平文の契約情報を読み出し,持ち出すリスク”である。

対策 2 が履歴を残す対象は,メモリダンプのファイルへの出力・アクセス,ダンプを保管した外部記憶媒体の利用,ファイルの消去で,ダンプの取得から持ち出しまでの流れと一致する。これらに作業者と日時を残すことで,持ち出しを抑止し,起きたときに追跡できる。

字数は 50 字以内で,解答例は 44 字である。“オペレータ及びシステム管理者”,“メモリダンプから平文の契約情報を読み出す”,“持ち出す”の三つを残す。設問(1) の答え(業務アプリケーションの利用)と混同しないように,メモリダンプという手段を書く。

採点講評(IPA)

設問4は,セキュリティ対策後の残留リスクに関する設問であるが,正答率が低かった。セキュリティ対策の設計において,対策後の残留リスクを正しく分析する能力を身につけてほしい。

出典:平成29年度 秋期 情報処理安全確保支援士試験 午後Ⅱ 問2(表記を一部改変)