‹ ぱすてく

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

平成27年度 秋期 午後Ⅰ(旧試験)

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

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

この年度を解いてみる

問1 ソフトウェアの脆弱性への対応

ソフトウェアの脆弱性への対応に関する次の記述を読んで,設問1~5に答えよ。

Q 社は従業員数 300 名の食品販売会社であり,消費者向けにインターネットを介して健康食品を販売している。

Q 社の社外向け情報システムは,販売システム(以下,E システムという)と広報システム(以下,F システムという)から成り,G 社のデータセンタに設置されている。E システムは Q 社の販売チャネルの大部分を担っており,保守のための時間帯を除き,常時稼働している。F システムは投資家などに対する財務情報・会社情報を提供している。両システムは,Q 社のシステム部が構築,運用している。

E システムは,E サーバ,待機サーバ,データベースサーバ(以下,DB サーバという)などから成る。E サーバは,E サーバ1と E サーバ2から成る冗長構成であり,ロードバランサ(以下,LB という)によって負荷分散を行っている。待機サーバは,E サーバ1及び E サーバ2がともに停止した際に,E システムの利用者に停止を告知するためのものである。Q 社の社外向け情報システムのネットワーク構成を図1に示す。

ネットワーク構成図。インターネットが G社データセンタのルータに接続している。ルータの下に FW,その下に L2SW がある。L2SW から E システム(破線の枠)の LB へ線が延び,LB-L2SW の先に E サーバ1,E サーバ2,待機サーバが並列に接続している。E サーバ1と E サーバ2は L2SW-FW を経て DB サーバに接続している。また,ルータの下の L2SW から F システム(破線の枠)の F サーバへ線が延びている。凡例:FW:ファイアウォール,L2SW:レイヤ2スイッチ。
図1 社外向け情報システムのネットワーク構成

E サーバでは,HTTP サーバ,Web アプリケーションサーバ(以下,WAS という)及び Web アプリケーションソフトウェア(以下,Web アプリ E という)が稼働している。Web アプリ E は,オープンソースソフトウェアの Web アプリケーションフレームワーク(以下,WF という)を使用して開発された。Web アプリ E と WF は,WAS と同じ権限で動作する。また,HTTP サーバにはオープンソースソフトウェアの WAF が付属しており,HTTP サーバの一部として動作する。WAF にはルールを設定することができるが,現在は何も設定していない。Web アプリ E は,商品情報,購入者情報,購入履歴情報などが格納された DB サーバにアクセスする。E サーバのソフトウェア構成を表1に示す。

列は“ソフトウェア”,“現在の動作権限設定”,“備考”。OS:-,-。HTTP サーバ(WAF 含む):管理者権限,-。WAS:管理者権限,-。Web アプリ E(WF 使用):-,WAS の動作権限と同一。注記 HTTP リクエストは,LB → HTTP サーバ(WAF 含む) → WAS → Web アプリ E の順に処理される。
表1 E サーバのソフトウェア構成

F システムは,F サーバ1台から成る。F サーバは HTTP サーバを搭載しており,静的な HTML コンテンツを公開している。F サーバには,WF,WAF を導入していない。Q 社では,社外向け情報システムの開発検証用に図1中の E システム,F システムと同一構成のシステムをそれぞれ別に用意している。

WAF のルールの記述形式を図2に,WAF の動作を図3に示す。

枠内の文章。・ルールは,[検証対象],[パターン]及び[動作]の三つを1行に記述する。(例:POST abc¥.exe 検知) ・[検証対象]には,次のいずれかを指定する。GET:GET メソッドのパラメタ名を検証対象とする。POST:POST メソッドのパラメタ名を検証対象とする。ANY:任意のメソッドのパラメタ名を検証対象とする。COOKIE:Cookie の名前を検証対象とする。Multipart:Multipart/form-data のフィールド名を検証対象とする。 ・[パターン]には,次の要素で構成される正規表現を指定する。^:文字列の先頭にマッチする。¥W:任意の非英数字にマッチする。x|y:x 又は y にマッチする。(x|y)z:xz 又は yz にマッチする。[xyz]:x,y 又は z のいずれかにマッチする。.:任意の文字とマッチする。¥.:“.”とマッチする。*:直前の要素と0回以上マッチする。 ・[動作]には,次のいずれかを指定する。遮断:通信を遮断し,ログに記録する。検知:通信を通過させ,ログに記録する。許可:通信を通過させ,ログに記録しない。
図2 WAF のルールの記述形式
枠内の文章。・WAF は,HTTP リクエストにおける[検証対象]に対して,[パターン]とのマッチングを行う。 ・設定されたルールを順に検証する。最初にマッチしたルールの[動作]に指定された処理を行い,残りのルールは検証しない。 ・どのルールにもマッチしなかった場合,その HTTP リクエストを通過させる。 注記 Multipart/form-data による HTTP リクエストは,[検証対象]に Multipart が指定されたときだけ[パターン]とのマッチングを行う。
図3 WAF の動作

〔脆弱性の確認〕

ある日,システム開発担当の S 主任に別の部署の社員から WF の特定バージョン(以下,バージョン Z という)の脆弱性(以下,脆弱性 X という)が公表されたという連絡があった。S 主任が,Q 社での WF のバージョン Z の使用の有無を調査したところ,E サーバの WF が該当していた。早速,脆弱性 X への対応を S 主任と部下の T さんとで行うことになった。

T さんが確認したところ,次のことが分かった。

S 主任は脆弱性 X の確認結果を経営陣に報告し,E サーバ1及び E サーバ2を停止させるとともに,LB の設定を変えて待機サーバに切り替えた。次は,その後の S 主任と T さんの会話である。

列は“項番”,“攻撃コード”,“説明”。項番1:GET /app1/app.action?▲▲.directory=webapps/ROOT。WAS ログの出力先を公開ディレクトリ上に変更する。項番2:GET /app1/app.action?▲▲.prefix=shell。項番3:GET /app1/app.action?▲▲.suffix=.jsp。項番2・3の説明(共通):WAS ログのファイル名を指定する。ファイル名のプレフィックスを“shell”という文字列にして,拡張子を jsp にする。項番4:GET /app1/app.action?▲▲.fileDateFormat=1。WAS ログの日付フォーマットの設定を“1”という文字にする。WAS ログのファイル名が,shell1.jsp となる。項番5:GET /app1/app.action?a=<%Runtime.getRuntime().exec("XXXX");%>。任意のコマンド“XXXX”を実行させるためのコードが WAS ログに記録される。項番6:GET /shell1.jsp。shell1.jsp を呼び出すことで,コマンド“XXXX”を WAS と同じ動作権限で実行する。注記 ▲▲は,“class.classLoader.resources.context.parent.pipeline.first”という文字列を示す。
表2 攻撃コードの例

S 主任と T さんは念のため,Q 社の社外向け情報システムの全サーバと FW のログを調査したが,不審な内容は見つからなかった。

〔脆弱性への対策〕

S 主任と T さんは,脆弱性 X への対策として,修正モジュールによる方法と WAF による方法の二つを比較検討した。Q 社では,ビジネス上の理由から,E システムを5日以内に再稼働させる必要がある。しかし,修正モジュール適用後の Web アプリ E の動作検証に 10 日間を要することが分かった。一方,WAF による対策は,脆弱性 X を悪用した攻撃を防ぐ効果があり,動作検証を含めて2日間で実施可能と分かった。そこで,WAF による対策について,更に検討することにした。次は,WAF のルールについての S 主任と T さんの会話である。

列は“項番”,“[検証対象]”,“[パターン]”,“[動作]”。項番1:[ b ],(^|¥W)[cC]lass¥W,[ c ]。項番2:[ d ],(^|¥W)[cC]lass¥W,[ e ]。項番3:[ f ],(^|¥W)[cC]lass¥W,[ g ]。
表3 WAF のルール例

S 主任は,修正モジュールが提供されている場合は,一般的には修正モジュール適用による対策が望ましいが,本ケースでは WAF による対策を選択すべきと判断し,経営陣に説明して了承を得た。開発検証用のシステムで③動作検証を実施し,問題ないことを確認後,本番環境のシステムで設定を行い,E システムを再稼働させた。

本来ならば,追加した WAF のルールで攻撃を遮断する前に,④本番環境のシステムに追加したルールの[動作]に“検知”を指定し,一定期間運用するのが望ましい。しかし,今回は緊急対応のため,そのような運用はしなかった。

その後,Q 社では,脆弱性 X の修正モジュール適用による悪影響がないことを確認し,それを適用した。

出題趣旨(IPA)

近年,ソフトウェアの脆弱性を悪用した攻撃について,脆弱性情報サイトなどからその攻撃手法が公開され対策が促される事例が増加している。本問では,攻撃手法が公開されたソフトウェア脆弱性についての基礎知識及び与えられた条件の中でその影響範囲を考え対応策を検討する能力を問う。

採点講評(問全体・IPA)

問1では,ソフトウェアの脆弱性への対応について出題した。

WAFの理解を手助けする資料として,IPAが“Web Application Firewall読本”を公開しているので,学習の参考とともに実運用にも役立ててほしい。

設問と解答例

設問1 解答欄4つ

E システム及び F システムそれぞれについて,Q 社のビジネスを踏まえて,情報セキュリティの3要素のうち重視すべき要素とその理由を,重視すべき要素は5字以内,理由は 25 字以内でそれぞれ述べよ。

〔Eシステム要素〕解答例

  • 可用性

〔Eシステム理由〕解答例

  • 販売チャネルの大部分を担い,常時稼働が必要なため

〔Fシステム要素〕解答例

  • 完全性

〔Fシステム理由〕解答例

  • 投資家に正確な財務情報,会社情報を提供するため
解説

本文の根拠

冒頭

E システムは Q 社の販売チャネルの大部分を担っており,保守のための時間帯を除き,常時稼働している。

冒頭

F システムは投資家などに対する財務情報・会社情報を提供している。

情報セキュリティの3要素は,機密性・完全性・可用性である。JIS Q 27000 は,可用性を“認可されたエンティティが要求したときに,アクセス及び使用が可能である特性”,完全性を“正確さ及び完全さの特性”と定めている。どれを重視すべきかは,そのシステムが Q 社のビジネスで何を担っているかで決まる。E システムは販売チャネルの大部分を担って常時稼働しているので,止まれば売上がそのまま失われる。したがって可用性を重視する。F システムは投資家などに財務情報・会社情報を提供しているので,内容が改ざんされたり誤っていたりすると投資家の判断を誤らせる。したがって完全性を重視する。

本文の“販売チャネルの大部分”“常時稼働”と“投資家”“財務情報・会社情報”がそれぞれの根拠である。F システムは静的な HTML コンテンツを公開しているだけで,公開情報なので機密性は問題になりにくい。講評は,3要素の意味を誤解している解答が散見されたとしている。“止まっては困る”が可用性,“正しくなければ困る”が完全性,“漏れては困る”が機密性と結び付けて覚えるとよい。

要素は5字以内で,解答例は“可用性”(3字)と“完全性”(3字)。理由は 25 字以内で,解答例は E システムが“販売チャネルの大部分を担い,常時稼働が必要なため”(24字),F システムが“投資家に正確な財務情報,会社情報を提供するため”(23字)。E は“常時稼働”,F は“正確な”という語を入れて,要素との結び付きを示す。

採点講評(IPA)

設問1は,情報セキュリティの3要素とその根拠となる理由を問う問題であったが,3要素の意味を誤解している解答が散見された。情報セキュリティの3要素は,基本的な知識であり,正確に理解してほしい。

設問2 15字以内 解答欄1つ

本文中の a に入れる適切な字句を,表2中の字句を用いて 15 字以内で答えよ。

〔a〕解答例

  • 公開ディレクトリ
解説

本文の根拠

表2 項番1

WAS ログの出力先を公開ディレクトリ上に変更する。

表2 項番6

shell1.jsp を呼び出すことで,コマンド“XXXX”を WAS と同じ動作権限で実行する。

表2の攻撃は,WAS ログの設定を書き換えて,ログファイルを JSP ファイルとして実行させるものである。項番1で WAS ログの出力先を公開ディレクトリ上に変え,項番2~4でファイル名を shell1.jsp にし,項番5でコマンドを実行するコードをログに書き込ませる。したがって,WAS ログのファイルは公開ディレクトリに作成される。

公開ディレクトリに置かれるからこそ,項番6の“GET /shell1.jsp”で外部からこのファイルを呼び出せ,ログに記録されたコードが WAS と同じ動作権限で実行される。講評は,この設問の正答率は高かったとしている。

15 字以内で表2中の字句を用いる。解答例は“公開ディレクトリ”(8字)で,表2 項番1の説明の字句そのままである。“webapps/ROOT”のようなパスを書くより,設問の指示どおり表2の日本語の字句を使う。

採点講評(IPA)

設問2は,攻撃コードによるアクセスログのファイルをどこに作成するかを表中の字句を用いて解答する問題であり,正答率は高かった。

設問3(1) 解答欄6つ

表3中の b ~ g に入れる適切な字句を,図2中の字句を用いて答えよ。

〔b〕解答例

  • ANY

〔c〕解答例

  • 遮断

〔d〕解答例

  • COOKIE

〔e〕解答例

  • 遮断

〔f〕解答例

  • Multipart

〔g〕解答例

  • 遮断

〔備考〕b,d,fは,順不同

解説

本文の根拠

T さんの発言

今回の脆弱性情報によると,GET メソッドに限らず POST メソッド,Multipart/form-data の POST メソッド,Cookie による攻撃の可能性もあります。

図2

ANY:任意のメソッドのパラメタ名を検証対象とする。COOKIE:Cookie の名前を検証対象とする。Multipart:Multipart/form-data のフィールド名を検証対象とする。

図3 注記

Multipart/form-data による HTTP リクエストは,[検証対象]に Multipart が指定されたときだけ[パターン]とのマッチングを行う。

図2

遮断:通信を遮断し,ログに記録する。

攻撃の経路は,GET・POST のパラメタ,Multipart/form-data の POST,Cookie の四つである。GET と POST はどちらも[検証対象]の ANY(任意のメソッドのパラメタ名)で一度に覆える。Multipart/form-data のリクエストは図3の注記により Multipart を指定したときだけマッチングされるので,ANY では検証されず,別に Multipart の行が要る。Cookie は COOKIE で検証する。よって b・d・f は ANY・COOKIE・Multipart(順不同)で,攻撃を止めるのが目的なので[動作]の c・e・g はどれも遮断である。

講評は,この設問の正答率は低く,問題文中の全ての攻撃パターンと WAF のルールを比較すれば解答できるのに,完全には防御できない組合せの解答が散見されたとしている。GET と POST を別々の行にすると3行では Cookie か Multipart のどちらかが漏れる。また“検知”は通信を通過させるので,攻撃を防ぐ設定にならない。

字数制限は無く,図2中の字句を用いる。解答例は b が“ANY”,d が“COOKIE”,f が“Multipart”(b,d,f は順不同),c・e・g が“遮断”。図2の表記どおり COOKIE は大文字,Multipart は先頭だけ大文字で書く。

採点講評(IPA)

設問3(1)は,WAFの設定を攻撃内容から判断して,解答する問題であったが,正答率は低かった。問題文中の全ての攻撃パターンとWAFのルールを比較することで解答できる問題であったが,完全には防御できない組合せの解答が散見された。

設問3(2)

本文中の下線①に示した[パターン]にマッチする文字列を解答群の中から全て選び,記号で答えよ。解答群 ア anObject.class.classLoader イ class.ClassLoader ウ class.classLoader エ class['classLoader']

解答例

  • イ,ウ
解説

本文の根拠

T さんの発言(下線①)

①“^class¥..*”という[パターン]がセキュリティ専門家によって公表されましたが,これでは遮断されない攻撃が見つかりました。

図2

^:文字列の先頭にマッチする。

図2

¥.:“.”とマッチする。*:直前の要素と0回以上マッチする。

“^class¥..*”は,先頭(^)に“class”があり,その直後が“.”(¥.)で,その後に任意の文字(.)が0回以上(*)続く文字列にマッチする。つまり“class.”で始まる文字列である。イ“class.ClassLoader”とウ“class.classLoader”は“class.”で始まるのでマッチする。アは先頭が“anObject”なのでマッチせず,エは“class”の直後が“[”なのでマッチしない。

アとエがマッチしないことが“これでは遮断されない攻撃が見つかりました”の中身である。表3の正しいパターン“(^|¥W)[cC]lass¥W”は,先頭か非英数字の直後にある“class”又は“Class”で,その後が非英数字であるものにマッチする。アの“.class.”もエの“class[”も捕まえられる。

字数制限は無く,全て選ぶ。解答例は“イ,ウ”。“^”があるので“class”が文字列の先頭にあることが条件になる点と,“¥.”は任意の文字ではなく“.”そのものである点を読み落とさないこと。

設問3(3) 解答欄1つ

本文中の h に入れる適切な字句を解答群の中から選び,記号で答えよ。解答群 ア フェールセーフ イ フェールソフト ウ フォールスネガティブ エ フォールスポジティブ

〔h〕解答例

  • エ
解説

本文の根拠

T さんの発言(h)

攻撃ではない HTTP リクエストを遮断してしまう h に注意する必要があります。例えば,表3のルールでは,“class.abc”を含む HTTP リクエストが遮断されてしまいます。

攻撃ではない正常な通信を攻撃と誤って判定することをフォールスポジティブ(偽陽性,誤検知)という(エ)。表3のパターンは“class”の前後が非英数字であればマッチするので,攻撃と関係の無い“class.abc”のようなパラメタ名を含む正常なリクエストまで遮断してしまう。

誤りの選択肢との違い。フォールスネガティブ(ウ)は逆に,攻撃を見逃して通してしまうことで,下線①のパターンで遮断されない攻撃が見つかったのがこれに当たる。フェールセーフ(ア)は故障時に安全側に倒す設計,フェールソフト(イ)は故障時に機能を縮小しても稼働を続ける設計で,どちらも誤判定の話ではない。

字数制限は無く,記号で答える。解答例は“エ”。“ポジティブ=攻撃と判定した”“フォールス=その判定が誤り”と分解すると,ウとエを取り違えにくい。設問5の“誤検知”も同じ意味である。

設問3(4) 25字以内

本文中の下線②について,設定をどのように見直すべきか。25 字以内で述べよ。

解答例

  • WASを必要最小限の権限で動作させる。
解説

本文の根拠

表1

WAS:管理者権限,-。Web アプリ E(WF 使用):-,WAS の動作権限と同一。

〔脆弱性の確認〕

攻撃者が“class.classLoader”という文字列を含む HTTP リクエストを送信することによって,任意のファイルへの書込みなど,WAS の動作権限で任意の攻撃コードを実行できる。

脆弱性 X を突かれると,攻撃コードは WAS の動作権限で実行される。表1によると WAS は管理者権限で動作しているので,攻撃が成功すれば E サーバ上で何でもできてしまう。WAS を業務に必要な最小限の権限で動作させれば,WAF をすり抜ける攻撃があっても,攻撃者ができることはその権限の範囲に限られる。これが下線②の“攻撃時のリスク軽減対策”である。

Web アプリ E と WF も WAS と同じ権限で動作する(表1 備考)ので,WAS の権限を下げればまとめて被害を小さくできる。最小権限の原則と呼ばれる考え方で,攻撃そのものを防ぐのではなく,侵入されたときの影響を抑える対策である。

25 字以内で,解答例は“WASを必要最小限の権限で動作させる。”(19字)。“管理者権限をやめる”だけでなく“必要最小限の権限で動作させる”と,見直し後の設定を書く。

設問4 30字以内 解答欄2つ

本文中の下線③について,WAF に関して具体的に何を検証すべきか。二つ挙げ,それぞれ 30 字以内で述べよ。

〔①〕解答例

  • 脆弱性Xを突く攻撃を防げること

〔②〕解答例

  • Eシステム利用のための正常な通信が許可されること
解説

本文の根拠

〔脆弱性への対策〕

一方,WAF による対策は,脆弱性 X を悪用した攻撃を防ぐ効果があり,動作検証を含めて2日間で実施可能と分かった。

〔脆弱性への対策〕(下線③)

開発検証用のシステムで③動作検証を実施し,問題ないことを確認後,本番環境のシステムで設定を行い,E システムを再稼働させた。

T さんの発言(h)

攻撃ではない HTTP リクエストを遮断してしまう h に注意する必要があります。

WAF にルールを追加したときに確かめるべきことは二つある。一つは,追加したルールで脆弱性 X を突く攻撃を実際に防げること(表2のような攻撃コードが遮断されること)。もう一つは,E システムを利用するための正常な通信が遮断されずに許可されること(設問3(3)のフォールスポジティブが起きないこと)である。

E システムは Q 社の販売チャネルの大部分を担うので,攻撃を防げても正常な注文まで止めてしまえば再稼働の意味が無い。講評は,正答率は高かったが,WAF ではなく修正モジュール適用に関する検証内容を解答した例も散見されたとしている。設問は“WAF に関して”検証すべきことを問うており,Web アプリ E の動作検証(10日間を要する方)を書くのは誤りである。

それぞれ 30 字以内で,解答例は①“脆弱性Xを突く攻撃を防げること”(15字),②“Eシステム利用のための正常な通信が許可されること”(24字)。“防げる”と“正常な通信を止めない”の両面を一つずつ書く。

採点講評(IPA)

設問4は,WAFに関する検証内容を問う問題であったが,正答率は高かった。ただし,WAFではなく修正モジュール適用に関する検証内容を解答した例も散見された。問題文をよく読んで解答してほしい。

設問5 45字以内

本文中の下線④について,WAF のルールの[動作]に“検知”を指定し,一定期間運用することにはどのような利点があるか。45 字以内で述べよ。

解答例

  • 販売機会損失など,ビジネスへの影響を与えずに誤検知の検証ができる。
解説

本文の根拠

図2

検知:通信を通過させ,ログに記録する。

〔脆弱性への対策〕(下線④)

本来ならば,追加した WAF のルールで攻撃を遮断する前に,④本番環境のシステムに追加したルールの[動作]に“検知”を指定し,一定期間運用するのが望ましい。

冒頭

E システムは Q 社の販売チャネルの大部分を担っており,保守のための時間帯を除き,常時稼働している。

“検知”は通信を通過させたうえでログに記録する。これで本番環境を一定期間運用すれば,実際の利用者の通信のうちどれがルールにマッチしたかをログで確かめられる。正常な通信がマッチしていれば誤検知(フォールスポジティブ)であり,ルールを直してから“遮断”に切り替えればよい。その間も通信は止まらないので,販売機会の損失などビジネスへの影響を与えずに誤検知を検証できる。

開発検証用のシステムでの動作検証(設問4)では,本番の多様な利用者の通信までは再現しきれない。E システムは販売チャネルの大部分を担っているので,いきなり遮断して正常な注文を止めると売上に直結する。この利点を捨ててでも急いで遮断したのが本文の“今回は緊急対応のため,そのような運用はしなかった”である。

45 字以内で,解答例は“販売機会損失など,ビジネスへの影響を与えずに誤検知の検証ができる。”(33字)。“誤検知の検証ができる”という利点に,“ビジネスへの影響を与えずに”という Q 社の事情を添える。

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

問2 特権 ID の管理

特権 ID の管理に関する次の記述を読んで,設問1~3に答えよ。

Y 社は,従業員数 1,000 名の食品製造販売会社であり,一般消費者に食品を通信販売している。Y 社では,顧客情報管理システム(以下,Y システムという)を利用し,顧客情報を管理している。Y システムの保守作業は,開発元であるソフトウェア開発会社の S 社に委託している。保守作業のために,Y 社は S 社に対して,特権 ID の一部(以下,委託用特権 ID という)について使用を許可している。S 社に使用を許可した委託用特権 ID には,OS のシステム管理権限をもつ ID,DBMS の管理権限をもつ ID,及び DBMS 上のデータに対する操作権限をもつ ID(以下,それぞれ,システム管理 ID,DBMS 管理 ID,DBMS 操作 ID という)の3種類がある。

Y システムは,4台の業務サーバ,1台のデータベースサーバ(以下,DB サーバという)及び Y 社と S 社の PC から構成されており,業務サーバでは Y システムのサービスを提供するためのアプリケーションソフトウェア(以下,業務アプリという)が稼働している。各業務アプリは,DBMS 操作 ID を用いて,DB サーバから顧客情報を取得して Y 社の従業員にサービスを提供している。Y システムのサーバは,Y 社のグループ会社が運営するデータセンタ(以下,YDC という)に設置している。Y システムの構成を図1に示す。

構成図。S社の Y システム保守用LAN に S社PC(複数)と FW1 が接続している。Y社の Y社LAN に FW2 と Y社PC(複数)が接続している。YDC のサーバLAN に業務サーバ(複数),DBサーバ,FW3 が接続している。FW1 は IP-VPN を経由して FW3 に,FW2 も別の IP-VPN を経由して FW3 に接続している。凡例:FW:ファイアウォール。
図1 Y システムの構成

S 社に委託している保守作業は,機能追加などに際しての業務アプリの更新,Y システムに障害が発生した場合の原因調査,Y システムの設定変更などである。保守作業は,次の手順で依頼している。

システム管理 ID と DBMS 管理 ID のパスワードは Y 社が半年ごとに変更し,S 社に通知している。S 社 PC と FW1 は,S 社の資産である。Y システム保守用 LAN からサーバ LAN へのアクセスは,FW3 で保守作業に必要となるプロトコルだけに限定しているが,送信元 IP アドレスは限定していない。

〔調査の実施と対策方針の策定〕

Y 社と同業の C 社で,C 社の保守作業委託先の従業員が個人情報を不正に持ち出して名簿業者に売却するという情報漏えい事件が起きた。持出しに特権 ID が不正に使用されたが,それを検知できなかったという C 社の委託先管理の不備が連日報道された。Y 社の経営幹部は,C 社の事件をきっかけに,自社においても同様の問題が起きる可能性がないか早急に調査をするよう,情報システム部長に指示した。表1に示す調査結果にあるように,Y システムにおいても委託用特権 ID を用いた保守作業に問題があることが判明し,情報システム部の L 主任がリーダとなって対策を検討することになった。

列は“項番”,“項目”,“内容”。項番1 委託用特権 ID 使用者の特定:委託用特権 ID が共用されており,使用した者を特定できないおそれがある。また,作業者以外も委託用特権 ID を使用するおそれがある。項番2 サーバへのアクセスの制限:Y システム保守用 LAN からサーバ LAN へのアクセスについては,サーバごとのアクセス制御をしていない。そのため,作業計画書に記載された作業対象サーバ以外のサーバにもアクセスできてしまう。項番3 委託用特権 ID の操作のモニタリング:作業計画書とアクセスログを突き合わせる手順が定められておらず,委託用特権 ID を使ったアクセスが作業計画書どおりに行われたかをチェックしていない。
表1 調査結果(概要)

〔要件と実現方式の検討〕

L 主任は部下の N 君に次の要件を示した上で,対策を実現する方式の検討を指示した。

N 君は,要件を満たすためには,委託用特権 ID のパスワードの S 社への通知の停止,個人ごとに付与され特権をもたない ID(以下,個人 ID という)の作業者への付与,及び特権 ID を管理するソフトウェアパッケージの導入から成る対策案を考えた。そこで,ソフトウェアパッケージとして製品 P 及び製品 Q を候補に選び,次の案を検討した。

検討の結果,N 君は,案2の方が製品の導入が容易であると判断し,案2による実現方式案をまとめて,L 主任に報告した。実現方式案の概要を表2に示す。

列は“項目”,“概要”。ID の登録:・[ a ]が,プログラム K の ID 登録画面において,委託用特権 ID をあらかじめ登録する。また,作業者の個人 ID をあらかじめ登録する。個人 ID は,プログラム K にログインするために付与される。作業計画の入力と特権 ID の使用申請:・プログラム K の作業計画入力・委託用特権 ID 使用申請画面において,保守責任者が,作業者の個人 ID,作業者氏名,作業期間,作業対象サーバ及び作業内容を入力し,委託用特権 ID の使用を申請する。特権 ID の使用許可:・[ a ]が,使用申請を確認した後に,委託用特権 ID の使用許可操作を行う。この操作によって,作業対象サーバでの委託用特権 ID の使用が可能になる。作業対象サーバへのログイン:・作業者は,個人 ID を用いてプログラム K にログインし,作業対象サーバへの接続要求を行う。・プログラム K は,作業者の個人 ID による委託用特権 ID の使用が許可されていることを確認する。確認できた場合は,委託用特権 ID とパスワードを用いて作業対象サーバに自動ログインする。操作履歴の取得:・プログラム K は,委託用特権 ID による操作履歴を入力コマンドはテキストで,操作画面は動画で記録する。・作業対象サーバでの操作履歴は管理用サーバに保存される。保存された操作履歴へのアクセスには管理用サーバのシステム管理権限が必要であり,Y 社内の限られた者だけがアクセスできる。・操作履歴のうち,入力コマンドのテキストは作業対象サーバにも保存される。作業完了報告:・作業終了後,プログラム K の報告画面において,保守責任者が作業完了報告を行う。特権 ID の使用解除:・[ a ]が,作業完了報告を確認した後に,プログラム K の管理画面において,委託用特権 ID の使用解除操作を行う。・使用解除操作を行うと,作業対象サーバでの委託用特権 ID の使用が不可となる。作業内容の確認:・プログラム K の機能によって,操作履歴と委託用特権 ID の使用申請で入力された作業内容を突き合わせ,その結果をレポートに出力する。・[ a ]が,レポートを確認する。
表2 実現方式案の概要

〔実現方式案の要件の確認〕

L 主任は N 君の対策案に対して,要件1と要件3について補足説明を求め,要件2と要件4について問題を指摘した。

要件1について,N 君は,作業者以外は委託用特権 ID を使用できないことを説明し,L 主任の了解を得た。

要件2について,L 主任は,次のように指摘した。

指摘1に対して N 君は,追加対策を検討すると回答した。また,指摘2に対しては,DB サーバ上のアクセスログを利用せずとも,DB サーバへアクセスした者を特定できることとその理由を回答した。

要件3について,N 君は,bからは cへのアクセスだけを許可するように FW3 の設定を変更することによって,アクセス先を作業対象サーバに限定できると説明し,L 主任の了解を得た。

要件4について,L 主任は,作業者が作業対象サーバ上のアクセスログを書き換えると,作業計画の作業内容以外の操作,つまり不正操作が検知できなくなるのではないかと指摘した。これに対して N 君は,②不正操作を検知できることとその理由を回答した。

〔追加対策の検討〕

N 君は,要件2についての指摘1を踏まえて,次の追加対策を L 主任に提案した。

最後に L 主任は,案2を採用すべき理由を再確認した。N 君は,要件を満たすためには製品を適切に運用するための資産管理が必要だが,Y 社の状況においては⑤案1に比べて案2の方が必要な資産管理を実施しやすいと説明した。L 主任は,案2による実現方式案と追加対策を承認した。

〔対策の実施〕

案2による実現方式案と追加対策は,経営幹部に報告され,実施された。対策によって,保守作業時のケーブル A の結線と取外しが不要となった。

出題趣旨(IPA)

内部不正による情報漏えいを防止するためには,特権IDの管理を含む委託先の管理が重要である。本問では,特権IDの管理を題材に,内部不正防止についての基本的知識を確認し,内部不正に対する課題を整理して対策を立案する能力を問う。

採点講評(問全体・IPA)

問2では,特権IDの管理について出題した。

特権IDの管理は,情報漏えいの防止対策として重要な役割を果たしている。特権IDの管理に関する情報セキュリティ対策について,理解を深めてほしい。

設問と解答例

設問1 10字以内 解答欄1つ

表2中の a に入れる適切な字句を,10 字以内で答えよ。

〔a〕解答例

  • Y社の管理者
解説

本文の根拠

保守作業の手順 1.

Y 社の管理者が作業依頼書を作成し,S 社へ送付する。

保守作業の手順 7.

作業完了の連絡を受けて,Y 社の管理者は,ケーブル A を FW3 から取り外すよう YDC 作業員に依頼し,作業報告書によって作業内容を確認する。

表2 作業計画の入力と特権 ID の使用申請

保守責任者が,作業者の個人 ID,作業者氏名,作業期間,作業対象サーバ及び作業内容を入力し,委託用特権 ID の使用を申請する。

表2の a は,委託用特権 ID と個人 ID の登録,使用申請の確認と使用許可,作業完了報告の確認と使用解除,作業内容のレポートの確認を行う者である。申請するのは S 社の保守責任者なので,それを確認して許可し,結果をチェックするのは委託元の Y 社の側でなければならない。現行の手順でも,作業を依頼し,作業報告書で作業内容を確認しているのは Y 社の管理者である。したがって a は Y 社の管理者である。

申請する者と許可・確認する者を分けるのは,特権 ID の管理の基本である。S 社の保守責任者や作業者が自分で許可や確認をすると,表1 項番3 のモニタリングの不備が解消しない。講評は,この設問の正答率は高かったとしている。

10 字以内で,解答例は“Y社の管理者”(6字)。“情報システム部”や“L 主任”のように対策を検討した者を書くのではなく,本文の保守手順に出てくる役割名を使う。

採点講評(IPA)

設問1は,特権IDの管理者について問う問題であったが,正答率は高かった。

設問2(1) 解答欄2つ

本文中の下線①について,DB サーバへアクセスした者を特定することができない委託用特権 ID を 10 字以内で答えよ。また,特定することができない理由を 35 字以内で述べよ。

〔委託用特権ID〕解答例

  • DBMS操作ID

〔理由〕解答例

  • 業務アプリがDBサーバにアクセスするIDと同じIDであるから
解説

本文の根拠

冒頭

各業務アプリは,DBMS 操作 ID を用いて,DB サーバから顧客情報を取得して Y 社の従業員にサービスを提供している。

冒頭

DBMS 上のデータに対する操作権限をもつ ID(以下,それぞれ,システム管理 ID,DBMS 管理 ID,DBMS 操作 ID という)

指摘2(下線①)

①使用される委託用特権 ID によっては,DB サーバへアクセスした者を DB サーバ上のアクセスログから特定することができない。

委託用特権 ID のうち DBMS 操作 ID は,4台の業務サーバの業務アプリが DB サーバにアクセスするときにも使っている ID である。作業者が DBMS 操作 ID で DB サーバにアクセスしても,DB サーバ上のアクセスログには業務アプリのアクセスと同じ ID で記録されるので,そのアクセスが業務アプリによるものか作業者によるものかを区別できない。

システム管理 ID は作業対象サーバごとに異なり,DBMS 管理 ID も業務アプリは使わないので,製品 Q で個人 ID と結び付ければ使用者をたどれる。DBMS 操作 ID だけが業務アプリと共用になっている点が指摘2の中身である。講評は,この設問の正答率は低く,特権 ID の利用状況の違いによって,利用者の特定ができない場合があることを理解してほしいとしている。

委託用特権 ID は 10 字以内,理由は 35 字以内。解答例は“DBMS操作ID”(8字)と“業務アプリがDBサーバにアクセスするIDと同じIDであるから”(30字)。“共用されているから”だけでは表1 項番1 と同じになるので,“業務アプリと同じ ID”であることを書く。

採点講評(IPA)

設問2(1)は,特権IDの種類によるモニタリングの可否について問う問題であったが,正答率が低かった。特権IDの利用状況の違いによって,利用者の特定ができない場合があることを理解してほしい。

設問2(2) 解答欄2つ

本文中の b,c に入れる適切な機器名を答えよ。

〔b〕解答例

  • S社PC

〔c〕解答例

  • 管理用サーバ
解説

本文の根拠

案2

管理用サーバはサーバ LAN 上に設置する。作業者は,S 社 PC から個人 ID でプログラム K にログインした後に,プログラム K から作業対象サーバへ自動ログインによってアクセスし,操作する。

冒頭

Y システム保守用 LAN からサーバ LAN へのアクセスは,FW3 で保守作業に必要となるプロトコルだけに限定しているが,送信元 IP アドレスは限定していない。

要件3(b,c)

bからは cへのアクセスだけを許可するように FW3 の設定を変更することによって,アクセス先を作業対象サーバに限定できると説明し,L 主任の了解を得た。

案2では,作業者は S 社 PC から管理用サーバ上のプログラム K にログインし,作業対象サーバへはプログラム K が自動ログインでアクセスする。作業者の通信が FW3 を通るのは“S 社 PC から管理用サーバへ”の部分だけになる。そこで FW3 で S 社 PC(b)からは管理用サーバ(c)へのアクセスだけを許可すれば,作業者は作業対象サーバに直接アクセスできず,プログラム K を経由するしかなくなる。プログラム K は使用が許可された作業対象サーバにしか自動ログインしないので,アクセス先を作業対象サーバに限定できる。

これで表1 項番2 の“作業計画書に記載された作業対象サーバ以外のサーバにもアクセスできてしまう”が解消される。FW3 は今は送信元 IP アドレスを限定していないので,送信元も宛先も機器単位で絞ることになる。

字数制限は無く,機器名で答える。解答例は b が“S社PC”(4字),c が“管理用サーバ”(6字)。c に“作業対象サーバ”を書くと,作業者が直接アクセスできてプログラム K の操作履歴を経由しなくなるので誤りである。

設問2(3) 35字以内

本文中の下線②について,不正操作を検知できる理由を 35 字以内で述べよ。

解答例

  • 不正操作の記録が管理用サーバの操作履歴に残るから
解説

本文の根拠

表2 操作履歴の取得

作業対象サーバでの操作履歴は管理用サーバに保存される。保存された操作履歴へのアクセスには管理用サーバのシステム管理権限が必要であり,Y 社内の限られた者だけがアクセスできる。

要件4についての指摘

作業者が作業対象サーバ上のアクセスログを書き換えると,作業計画の作業内容以外の操作,つまり不正操作が検知できなくなるのではないかと指摘した。

表2 作業内容の確認

プログラム K の機能によって,操作履歴と委託用特権 ID の使用申請で入力された作業内容を突き合わせ,その結果をレポートに出力する。

作業者が作業対象サーバ上のアクセスログを書き換えても,プログラム K は委託用特権 ID による操作履歴を管理用サーバにも保存している。管理用サーバの操作履歴へのアクセスにはそのシステム管理権限が要り,Y 社内の限られた者しかアクセスできないので,作業者は書き換えられない。プログラム K はこの操作履歴と使用申請の作業内容を突き合わせるので,不正操作の記録が管理用サーバの操作履歴に残り,検知できる。

入力コマンドのテキストは作業対象サーバにも保存されるが,そちらは作業者が書き換えうる。管理用サーバに入力コマンドのテキストと操作画面の動画が別に残ることが,L 主任の指摘への答えになる。

35 字以内で,解答例は“不正操作の記録が管理用サーバの操作履歴に残るから”(24字)。“作業者が書き換えられない場所に記録が残る”ことを,“管理用サーバの操作履歴”という本文の語で書く。

設問3(1) 35字以内

本文中の下線③について,具体的には何を確認すべきか。35 字以内で述べよ。

解答例

  • 個人IDが本人以外に使われるおそれがないように管理していること
解説

本文の根拠

指摘1

製品 Q の導入だけではこの要件を満たすのに不十分である。

要件2

委託用特権 ID を使用した者を特定可能にすること

〔追加対策の検討〕(下線③)

③S 社におけるプログラム K の個人 ID の管理状況を Y 社が確認する。

保守作業の手順 5.

作業者は,共用の ID を用いて S 社 PC にログインした後に,委託用特権 ID とパスワードを用いて,S 社 PC から作業対象サーバにアクセスし,作業する。

製品 Q は,委託用特権 ID の使用をプログラム K にログインした個人 ID と結び付けて記録する。しかし個人 ID のパスワードが他人に教えられていたり,共用されていたりすれば,記録上の個人 ID の持ち主が実際に操作した者とは限らない。要件2の“使用した者を特定可能にすること”を満たすには,個人 ID が本人以外に使われるおそれがないように S 社で管理されていることを,Y 社が確認する必要がある。これが指摘1の“製品 Q の導入だけでは不十分”の中身である。

S 社では現に S 社 PC へのログインに共用の ID を使っており,ID を共用する運用があることが本文から読み取れる。講評は,この設問の正答率は低く,特権 ID を管理するシステムを導入しても不適切な利用を放置すれば効果が期待できず,システムによる管理に加えて,人的,組織的な管理策が必要であることを理解してほしいとしている。

35 字以内で,解答例は“個人IDが本人以外に使われるおそれがないように管理していること”(31字)。“パスワードを適切に管理していること”のような一般論より,“本人以外に使われない”という要件2につながる点を書く。

採点講評(IPA)

設問3(1)は,特権IDの利用に関し,委託先に確認すべき事項を問う問題であったが,正答率が低かった。特権IDを管理するシステムを導入したとしても,不適切な利用を放置すればシステム導入の効果が期待できない。システムによる管理に加えて,人的,組織的な管理策が必要であることを理解してほしい。

設問3(2) 5字以内

本文中の下線④には,顧客情報の不正持出し対策として何と呼ばれる効果があるか。効果の名称を“効果”という字句を含めて5字以内で答えよ。

解答例

  • 抑止効果
解説

本文の根拠

〔追加対策の検討〕(下線④)

④委託用特権 ID を使った者が特定されることをプログラム K のログイン画面に表示し,作業者に周知させる。

〔調査の実施と対策方針の策定〕

Y 社と同業の C 社で,C 社の保守作業委託先の従業員が個人情報を不正に持ち出して名簿業者に売却するという情報漏えい事件が起きた。

“あなたの操作は記録され,誰が使ったか特定される”と作業者に周知すると,不正を働こうとする者は発覚をおそれて思いとどまる。このように,不正をしにくい・割に合わないと思わせて実行を思いとどまらせる効果を抑止効果という。下線④はログイン画面に表示することで,毎回の作業の前に作業者に意識させている。

C 社の事件は委託先の従業員による内部不正であり,技術的に防ぐだけでなく,そもそも不正をさせない心理面の対策が有効である。下線④の表示は,設問2(3)の操作履歴や設問3(1)の個人 ID の管理によって実際に使用者を特定できることが前提で,それを作業者に知らせることで効果が生まれる。

“効果”を含めて5字以内で,解答例は“抑止効果”(4字)。“防止効果”“牽制効果”などでは,記録と周知によって不正を思いとどまらせるという意味が弱い。

設問3(3) 40字以内

本文中の下線⑤について,案2の方が資産管理を実施しやすい理由を 40 字以内で述べよ。

解答例

  • 委託先PCにインストールするプログラムの資産管理をせずに済むから
解説

本文の根拠

案1

製品 P は,管理用サーバにインストールするプログラム(以下,プログラム H という)と,PC にインストールするプログラム(以下,プログラム J という)で構成される。

案2

製品 Q は,管理用サーバにインストールするプログラム(以下,プログラム K という)だけで構成される。

冒頭

S 社 PC と FW1 は,S 社の資産である。

〔追加対策の検討〕(下線⑤)

⑤案1に比べて案2の方が必要な資産管理を実施しやすい

案1では,作業者が使う PC,つまり S 社 PC にプログラム J をインストールしなければならない。S 社 PC は S 社の資産なので,Y 社は委託先の PC に入れたプログラムのバージョンや設定を管理する必要が生じ,それは自社の資産のようには管理できない。案2のプログラム K は Y 社がサーバ LAN 上に置く管理用サーバにだけインストールするので,委託先の PC にプログラムを入れずに済み,資産管理は自社のサーバだけで完結する。

“Y 社の状況においては”とあるのは,作業者の PC が委託先 S 社の資産であることを指している。委託先の PC にインストールしたプログラムが改変されたり,古いまま放置されたりしても,Y 社からは把握しにくい。

40 字以内で,解答例は“委託先PCにインストールするプログラムの資産管理をせずに済むから”(32字)。“導入が容易だから”は本文で既に案2を選んだ理由として出ているので,設問の“資産管理”に絞って書く。

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

問3 Web サイトにおけるインシデント対応

Web サイトにおけるインシデント対応に関する次の記述を読んで,設問1~4に答えよ。

W 社は,精密機器を製造している従業員数 500 名の会社である。W 社では,取引先との間で設計データを共有するために Web サイト(以下,サイト X という)を利用している。サイト X は,W 社の情報システム部が開発,運用しており,W 社の従業員と取引先の従業員が利用している。サイト X のネットワーク構成を図1に,システム概要を図2に示す。

ネットワーク構成図。インターネットに FW が接続し,FW から三つのセグメントに分かれる。DMZ(192.168.0.0/24)には L2SW の下に Web サーバ(192.168.0.10),WebAP サーバ1(192.168.0.20),WebAP サーバ2(192.168.0.30)がある。内部 LAN(192.168.50.0/24)には L2SW の下に DB サーバ(192.168.50.10),ファイルサーバ(192.168.50.20)がある。管理 LAN(192.168.90.0/24)には L2SW の下に管理サーバ(192.168.90.10),運用端末(192.168.90.20)がある。凡例:FW:ファイアウォール,DB サーバ:データベースサーバ,L2SW:レイヤ2スイッチ,WebAP サーバ:Web アプリケーションサーバ。注記1 192.168.0.0/24,192.168.50.0/24,192.168.90.0/24 は,ネットワークアドレスを示す。注記2 DMZ の各サーバに対しては FW で NAT の設定がされている。
図1 サイト X のネットワーク構成
枠内の箇条書き。・Web サーバでは,インターネットに静的コンテンツを公開している。・負荷分散のために,WebAP サーバ1及び WebAP サーバ2の2台構成になっており,Java で開発した Web アプリケーションソフトウェア(以下,Web アプリケーションという)がサーブレットコンテナで稼働している。Web アプリケーションは,JDBC(注1)接続を使って DB サーバに,OS のファイル共有機能を使ってファイルサーバにそれぞれアクセスする。・WebAP サーバ1及び WebAP サーバ2のサーブレットコンテナの管理画面には,管理画面用の利用者 ID でログインできる。管理画面へのログインは,ベーシック認証で行われる。成功時は 200,失敗時は 401 のステータスコードを返す。管理画面では,Web アプリケーションのアップロードと配置ができる。・DB サーバでは,DBMS の監査ログを取得するよう設定している。・管理サーバでは,各サーバに導入したエージェントソフトを使ってログを集中管理している。・運用端末では,ファイル共有とリモートデスクトップのサービスを使用して各サーバを操作できる。・各サーバ及び運用端末では,OS として Windows を使っている。各サーバ及び運用端末には,利用者 ID として,“administrator”と“unyou”の二つを用意している。いずれも管理者権限の利用者 ID である。・サーブレットコンテナのプロセスは,“administrator”の権限で動作しており,管理画面と Web アプリケーションも,“administrator”の権限で動作する。・各サーバ及び運用端末では,Web サーバ上で稼働している NTP サーバとの間で,NTP を用いて時刻同期をしている。注1 JDBC は,Java からデータベースに接続するための API である。
図2 サイト X のシステム概要

〔セキュリティインシデントの発生〕

ある日,DMZ に設置している3台のサーバで,同様のタスク実行失敗を示すイベントが出力されたので,サイト X の運用を担当している B 氏は,システム障害として調査を行った。DMZ の各サーバのイベントログを表1に示す。

列は“日時”,“ログメッセージ”。2015/01/22 12:52:00:タスクスケジューラは,利用者 ID“administrator”の“printer”タスクを開始できませんでした。
表1 DMZ の各サーバのイベントログ

調査の結果,図3の事象が確認できたことから,B 氏は,不正侵入のセキュリティインシデントが発生したと判断した。

枠内の箇条書き。・OS のタスクスケジューラに,業務上必要のないタスクが登録されており,そのタスクは実行が失敗していた。・“C:¥Temp¥printer”の場所に,“info.bat”と“info.txt”というファイルが作成されていた。“info.bat”は,バッチファイルであり,システム構成情報と利用者情報を取得するコマンドを実行して,結果を“info.txt”という名前のファイルに出力する。
図3 DMZ の各サーバで発生した事象

B 氏は,DMZ のサーバ3台をネットワークから切り離し,取引先にサイト X の停止を通知した後,セキュリティ担当 A 氏の協力を得て,侵入経路の調査を開始した。

〔侵入経路の調査〕

A 氏は,DMZ に設置しているサーバの OS へのログイン履歴を基に,タスク実行失敗を示すイベントが出力された日時の前後のログを調査して,どのサーバが最初に侵入されたかを特定した。Web サーバ,WebAP サーバ1及び WebAP サーバ2の3台の 2015 年1月1日以降のログイン履歴は,表2~4のとおりである。

列は“日時”,“接続元 IP アドレス”,“利用者 ID”,“ログインの成功失敗”。2015/01/07 19:30:16,192.168.90.20,unyou,成功。2015/01/07 19:38:14,192.168.90.20,unyou,成功。2015/01/22 12:03:00,192.168.90.20,unyou,成功。2015/01/22 12:23:00,192.168.90.20,unyou,成功。2015/01/22 12:42:07,192.168.0.20,administrator,成功。2015/01/22 18:11:25,192.168.90.20,unyou,成功。
表2 Web サーバのログイン履歴
列は“日時”,“接続元 IP アドレス”,“利用者 ID”,“ログインの成功失敗”。2015/01/05 19:28:46,192.168.90.20,unyou,成功。2015/01/08 20:23:00,192.168.90.20,unyou,成功。2015/01/22 12:32:20,192.168.0.30,administrator,成功。
表3 WebAP サーバ1のログイン履歴
列は“日時”,“接続元 IP アドレス”,“利用者 ID”,“ログインの成功失敗”。2015/01/06 19:28:21,192.168.90.20,unyou,成功。2015/01/06 19:30:16,192.168.90.20,unyou,成功。2015/01/23 12:03:00,192.168.90.20,unyou,成功。
表4 WebAP サーバ2のログイン履歴

次は,侵入経路の調査の過程における A 氏と B 氏の会話である。

〔侵入された原因の特定〕

A 氏は,インターネットから侵入された原因を特定するために,aのアクセスログを調査した。担当者にヒアリングしたところ,設定に誤りがあり,インターネットから管理画面にアクセスできるようになっていたことが分かった。aのアクセスログのうち,攻撃者の IP アドレスからのものを表5に示す。調査の結果,①サーブレットコンテナの管理画面に対して,よく使われる利用者 ID とパスワードでログインが試行され,その結果,ログインが成功したものと推測された。管理画面から,バッチファイルを aにアップロードされた後,タスクが登録されたり,バッチファイルが実行されたりしたと推測された。

列は“No.”,“時刻”,“リクエスト”,“ステータスコード”,“応答のバイト数”。1,10:36:04,GET /test/ HTTP/1.1,404,1,277。2,10:36:23,GET /demo/ HTTP/1.1,404,1,277。3,10:59:12,GET /manager/html HTTP/1.1,401,2,550。4,10:59:12,GET /manager/html HTTP/1.1,401,2,550。5,10:59:12,GET /manager/html HTTP/1.1,401,2,550。6,10:59:12,GET /manager/html HTTP/1.1,401,2,550。7,10:59:13,GET /manager/html HTTP/1.1,401,2,550。8,10:59:13,GET /manager/html HTTP/1.1,401,2,550。9,10:59:13,GET /manager/html HTTP/1.1,401,2,550。10,10:59:13,GET /manager/html HTTP/1.1,401,2,550。11,10:59:14,GET /manager/html HTTP/1.1,200,19,689。12,11:02:09,GET /manager/html HTTP/1.1,200,19,689。13,11:02:27,POST /manager/html/upload HTTP/1.1,200,21,453。14,11:02:34,GET /demo/index.jsp HTTP/1.1,200,2,588。15,11:39:23,GET /demo/index.jsp HTTP/1.1,200,2,588。16,11:39:33,GET /demo/index.jsp?sort=1&dir=C%3A%5C HTTP/1.1,200,3,453。17,11:39:47,GET /demo/index.jsp?sort=1&dir=C%3A%5CTemp HTTP/1.1,200,2,129。18,11:39:52,GET /demo/index.jsp?sort=1&dir=C%3A%5CTemp%5Cprinter HTTP/1.1,200,1,347。19,11:41:02,POST /demo/index.jsp HTTP/1.1,200,3,697。20,11:42:05,POST /demo/index.jsp HTTP/1.1,200,3,697。21,11:42:09,POST /demo/index.jsp HTTP/1.1,200,2,506。22,11:42:18,POST /demo/index.jsp HTTP/1.1,200,2,506。23,11:42:39,GET /demo/index.jsp?sort=1&dir=C%3A%5CTemp%5Cprinter HTTP/1.1,200,1,896。注記 日付は,2015 年1月 22 日である。
表5 [ a ] のアクセスログ

次は,aのアクセスログの調査過程における A 氏と B 氏の会話である。

〔影響範囲の特定〕

A 氏は,内部 LAN 及び管理 LAN への影響を特定するために,FW のフィルタリングルールを確認して,侵入されたサーバからどの範囲がアクセス可能だったかを調査することにした。FW のフィルタリングルールを表6に示す。W 社のポリシでは,業務上必要なサービスだけを FW で許可することになっているが,②FW のフィルタリングルールにはポリシを満たしていないものがあることが判明した。

列は“項番”,“送信元”,“宛先”,“サービス”,“動作”。項番1:インターネット,192.168.0.10,HTTP,許可。項番2:インターネット,192.168.0.20,192.168.0.30,HTTP,HTTPS,許可。項番3:192.168.0.20,192.168.0.30,192.168.50.10,JDBC 接続,許可。項番4:192.168.0.20,192.168.0.30,192.168.50.20,ファイル共有,許可。項番5:192.168.90.20,192.168.0.0/24,192.168.50.0/24,全て,許可。項番6:192.168.90.10,192.168.0.0/24,192.168.50.0/24,ログ収集,許可。項番7:192.168.50.0/24,192.168.90.0/24,192.168.0.10,NTP,許可。項番8:192.168.0.10,公的機関の NTP サーバ,NTP,許可。項番9:全て,全て,全て,拒否。注記1 項番が小さいものから順に,最初に一致したルールが適用される。注記2 FW は,ステートフルインスペクション型のものである。注記3 全てのルールについて,ログを取得する設定となっている。
表6 FW のフィルタリングルール

次に,A 氏は,タスク実行失敗を示すイベントが発生した日以降の,FW のログを調査し,内部 LAN 及び管理 LAN への影響がないことを確認した。

〔対策とシステム再稼働〕

A 氏と B 氏は,影響範囲が DMZ のサーバ3台だけであったことから,それらのサーバの再構築を行った後,次の対策を実施した。

枠内の設定(5行)。<Location /manager/> / Order deny,allow / Deny from all / Allow from 127.0.0.1 / </Location>
図4 アクセス制御の設定

W 社では,B 氏が経営幹部に不正アクセスの調査結果を報告し,承認を得てシステムを再稼働させた後,取引先に通知し,インシデント対応を完了した。

出題趣旨(IPA)

サイバー攻撃の増加に伴い,インシデント対応を適切に行える人材が必要となっている。本問では,Webサイトへの侵入を想定し,侵入経路,原因及び影響範囲を調査,特定し,適切な対策を立案する能力を問う。

採点講評(問全体・IPA)

問3では,Webサイトでのインシデント対応について出題した。

設問と解答例

設問1 解答欄3つ

本文中の a ~ c に入れるサーバ名を,図1中の字句を用いて答えよ。

〔a〕解答例

  • WebAPサーバ2

〔b〕解答例

  • WebAPサーバ1

〔c〕解答例

  • Webサーバ
解説

本文の根拠

表3 WebAP サーバ1のログイン履歴

2015/01/22 12:32:20,192.168.0.30,administrator,成功。

表2 Web サーバのログイン履歴

2015/01/22 12:42:07,192.168.0.20,administrator,成功。

B 氏の発言

運用では,“unyou”を使用しており,“administrator”は使用していません。

図1

WebAP サーバ1(192.168.0.20),WebAP サーバ2(192.168.0.30)

攻撃者は運用で使わない“administrator”でログインしている。表3では 12:32:20 に 192.168.0.30(図1より WebAP サーバ2)から WebAP サーバ1へ,表2では 12:42:07 に 192.168.0.20(WebAP サーバ1)から Web サーバへログインしている。したがって WebAP サーバ2(a)から WebAP サーバ1(b)へ,WebAP サーバ1(b)から Web サーバ(c)への順である。

表4の WebAP サーバ2には“administrator”のログインが無い。講評のとおり,WebAP サーバ2はサーブレットコンテナ(の管理画面)から侵入されたので,OS のログイン履歴には記録が残らない。“ログイン履歴に攻撃者の記録が無いサーバ”が出発点になっているので,最初に侵入されたのは WebAP サーバ2で,そのアクセスログを調べることになる。講評は,最初に侵入されたサーバを正しく答えられていない解答が見受けられたとしている。

字数制限は無く,図1中の字句で答える。解答例は a が“WebAPサーバ2”,b が“WebAPサーバ1”,c が“Webサーバ”。表3・表2の接続元 IP アドレスを図1のアドレスと突き合わせるのが要点で,日時だけで並べて“WebAP サーバ1が最初”とする誤りに注意する。

採点講評(IPA)

設問1は,サーバのOSのログイン履歴を基に侵入された順番を判断する問題であったが,最初に侵入されたサーバを正しく答えられていない解答が見受けられた。WebAPサーバ2は,サーブレットコンテナから侵入されているため,OSのログイン履歴には記録が残らないことを理解してほしい。

設問2(1) 解答欄4つ

本文中の d ~ g に入れる適切な数値を答えよ。

〔d〕解答例

  • 2

〔e〕解答例

  • 404

〔f〕解答例

  • 14

〔g〕解答例

  • 200
解説

本文の根拠

表5 No.2

2,10:36:23,GET /demo/ HTTP/1.1,404,1,277。

表5 No.13,No.14

13,11:02:27,POST /manager/html/upload HTTP/1.1,200,21,453。14,11:02:34,GET /demo/index.jsp HTTP/1.1,200,2,588。

A 氏の発言

demo ディレクトリは攻撃者が No. fの直前で作成したことが分かります。

No.2 の“GET /demo/”のステータスコードは 404 で,この時点では demo ディレクトリが存在しなかった(d=2,e=404)。No.13 で管理画面からアップロード(POST /manager/html/upload)が行われ,直後の No.14 の“GET /demo/index.jsp”は 200 で成功している(f=14,g=200)。よって demo ディレクトリは No.14 の直前,つまり No.13 のアップロードで作成された。

404(Not Found)は要求された資源が見つからないこと,200(OK)は要求が成功したことを表す HTTP のステータスコードである(RFC 9110)。図2 のとおり管理画面では Web アプリケーションのアップロードと配置ができるので,攻撃者は攻撃ツール index.jsp を demo という名前で配置したと読める。

字数制限は無く,数値で答える。解答例は d が“2”,e が“404”,f が“14”,g が“200”。d に No.1(/test/)を書かないこと。調べているのは demo ディレクトリなので,同じ /demo/ を要求した No.2 を使う。

採点講評(IPA)

設問2は,WebAPサーバ2のアクセスログを読み解く問題であったが,ベーシック認証の仕組みを正しく理解できていない解答が見受けられた。ベーシック認証のアクセスログ解析においては,ステータスコードに着目してほしい。

設問2(2) 60字以内

本文中の下線①のように推測された理由を,表5のログに基づいて 60 字以内で述べよ。

解答例

  • No.3から10までのステータスコードが401で失敗を繰り返しており,No.11は200でログインに成功しているから
解説

本文の根拠

図2

管理画面へのログインは,ベーシック認証で行われる。成功時は 200,失敗時は 401 のステータスコードを返す。

表5 No.3~No.11

10,10:59:13,GET /manager/html HTTP/1.1,401,2,550。11,10:59:14,GET /manager/html HTTP/1.1,200,19,689。

〔侵入された原因の特定〕(下線①)

①サーブレットコンテナの管理画面に対して,よく使われる利用者 ID とパスワードでログインが試行され,その結果,ログインが成功したものと推測された。

図2によると管理画面のベーシック認証は成功時に 200,失敗時に 401 を返す。表5の No.3~No.10 は管理画面(/manager/html)へのリクエストがどれも 401 で,ログインの失敗が続いている。No.11 は同じ URL で 200 となり,ログインに成功している。10:59:12 から 10:59:14 までの約2秒で8回の失敗の後に成功しているので,人が手で入力したのではなく,よく使われる利用者 ID とパスワードの組を次々に試したと推測できる。

ベーシック認証では,Web ブラウザなどが利用者 ID とパスワードをリクエストに付けて送り,サーバは認証できなければ 401(Unauthorized)を返す(RFC 7617,RFC 9110)。講評は,ベーシック認証の仕組みを正しく理解できていない解答が見受けられ,ステータスコードに着目してほしいとしている。応答のバイト数も 2,550 から 19,689 に増えており,管理画面の本体が返されたことと合う。

60 字以内で,解答例は“No.3から10までのステータスコードが401で失敗を繰り返しており,No.11は200でログインに成功しているから”(58字)。“失敗の繰返し(401)”と“その後の成功(200)”の両方を,No. とステータスコードを示して書く。

採点講評(IPA)

設問2は,WebAPサーバ2のアクセスログを読み解く問題であったが,ベーシック認証の仕組みを正しく理解できていない解答が見受けられた。ベーシック認証のアクセスログ解析においては,ステータスコードに着目してほしい。

設問3(1)

内部 LAN への影響を調査するには,FW のどのフィルタリングルールで取得されるログを確認すればよいか。該当するものを全て,表6の項番で答えよ。

解答例

  • 3,4
解説

本文の根拠

表6 項番3,項番4

項番3:192.168.0.20,192.168.0.30,192.168.50.10,JDBC 接続,許可。項番4:192.168.0.20,192.168.0.30,192.168.50.20,ファイル共有,許可。

表6 注記

注記2 FW は,ステートフルインスペクション型のものである。注記3 全てのルールについて,ログを取得する設定となっている。

A 氏の発言

OS のファイル共有機能を使って他のサーバにファイルを転送する機能,OS のファイル共有機能を使って他のサーバ上で OS コマンドを実行する機能,及び DBMS に対して SQL を発行する機能をもっています。

侵入されたのは DMZ の3台である。表6で DMZ のサーバから内部 LAN(192.168.50.0/24)への通信を許可しているのは,WebAP サーバ1・2 から DB サーバへの JDBC 接続(項番3)と,ファイルサーバへのファイル共有(項番4)だけである。index.jsp はファイル共有で他のサーバにファイルを転送したりコマンドを実行したりし,DBMS に SQL を発行する機能をもつので,内部 LAN への影響はこの二つのルールで取得されるログで確認する。

項番7 は内部 LAN から Web サーバへの NTP で,送信元が内部 LAN 側なので DMZ から始まる通信には当たらない。FW はステートフルインスペクション型なので,項番3・4 で許可した通信の戻りもそのセッションの一部として扱われる。項番5・6 は管理 LAN からの通信である。

字数制限は無く,該当するものを全て答える。解答例は“3,4”。表6の“宛先”が内部 LAN のアドレスである行だけでなく,送信元が侵入されたサーバであるかまで確かめて選ぶ。

設問3(2) 解答欄3つ

本文中の下線②について,ポリシを満たしていないことが判明したルールはどれか。表6の項番で答えよ。また,当該ルールがポリシを満たすように設定すべきサービスを二つ答えよ。

〔項番〕解答例

  • 5

〔サービス①〕解答例

  • ファイル共有

〔サービス②〕解答例

  • リモートデスクトップ
解説

本文の根拠

表6 項番5

項番5:192.168.90.20,192.168.0.0/24,192.168.50.0/24,全て,許可。

図2

運用端末では,ファイル共有とリモートデスクトップのサービスを使用して各サーバを操作できる。

〔影響範囲の特定〕(下線②)

W 社のポリシでは,業務上必要なサービスだけを FW で許可することになっているが,②FW のフィルタリングルールにはポリシを満たしていないものがあることが判明した。

表6の項番5は,運用端末(192.168.90.20)から DMZ と内部 LAN への“全て”のサービスを許可している。図2によると運用端末が各サーバの操作に使うのはファイル共有とリモートデスクトップのサービスだけなので,業務上必要なサービスだけを許可するというポリシを満たしていない。項番5 のサービスをファイル共有とリモートデスクトップの二つに絞るべきである。

ほかのルールは,Web サーバへの HTTP,WebAP サーバへの HTTP・HTTPS,JDBC 接続,ファイル共有,ログ収集,NTP と,どれも図2の業務に対応するサービスに限られている。最後の項番9 で残りを全て拒否している。

字数制限は無い。解答例は項番が“5”,サービスが①“ファイル共有”,②“リモートデスクトップ”。サービスは図2の字句どおりに書く。

設問4(a) 40字以内

(a)の対策で防ぎたい攻撃

解答例

  • サーブレットコンテナの管理画面に対するインターネットからの不正アクセス
解説

本文の根拠

〔対策とシステム再稼働〕(a)

(a) WebAP サーバ1と WebAP サーバ2に,図4のアクセス制御の設定を行うことで,送信元の IP アドレスが 127.0.0.1 である場合だけ,サーブレットコンテナの管理画面へのアクセスを許可する。

〔侵入された原因の特定〕

担当者にヒアリングしたところ,設定に誤りがあり,インターネットから管理画面にアクセスできるようになっていたことが分かった。

今回の侵入の入口は,設定の誤りによってインターネットからサーブレットコンテナの管理画面にアクセスでき,よく使われる利用者 ID とパスワードでログインされたことである。(a)は管理画面へのアクセスを送信元 127.0.0.1(そのサーバ自身)に限るので,インターネットからの管理画面への不正アクセスを防ぐ。

127.0.0.1 はループバックアドレスで,サーバの外から来る通信の送信元にはならない。図4 の設定は /manager/ 以下(表5 の /manager/html など)を対象にしており,攻撃者が No.3~No.13 で使った管理画面へのリクエストはどれも拒否される。

40 字以内で,解答例は“サーブレットコンテナの管理画面に対するインターネットからの不正アクセス”(35字)。“どこへの”(管理画面)と“どこからの”(インターネット)の両方を書く。

設問4(b) 40字以内

(b)の対策で防ぎたい攻撃

解答例

  • 自動的にログインを行うOSの仕様を利用した,他のサーバへの侵入
解説

本文の根拠

〔対策とシステム再稼働〕(b)

(b) 各サーバの利用者 ID“administrator”を無効化し,利用者 ID“unyou”は,サーバごとに異なる利用者 ID に変更し,さらに,パスワードもサーバごとに異なるものに変更する。

A 氏の発言

そうした設定では,あるサーバから他のサーバにアクセスする際,自動的にログインが行われます。攻撃者は,そのような OS の仕様を利用して,他のサーバにもログインしたようです。

A 氏の説明のとおり,DMZ の各サーバは“unyou”“administrator”を全サーバに同じパスワードで設定していたので,あるサーバから他のサーバにアクセスすると自動的にログインが行われた。攻撃者はこの OS の仕様を利用して,WebAP サーバ2 から WebAP サーバ1,Web サーバへと侵入を広げた。(b)で利用者 ID とパスワードをサーバごとに異なるものにすれば自動的なログインが起きなくなり,この他のサーバへの侵入を防げる。

サーブレットコンテナのプロセスが“administrator”の権限で動作していたので,管理画面から侵入した攻撃者は“administrator”として他のサーバにアクセスできた。“administrator”の無効化はこの経路そのものを断つ。講評は,この設問の正答率は低く,サーブレットコンテナの管理画面から侵入され,OS の自動的なログインという仕様を利用して侵入が拡大したというポイントを理解し,それぞれの原因に対する適切な対策を立案できるようになることを期待したいとしている。

40 字以内で,解答例は“自動的にログインを行うOSの仕様を利用した,他のサーバへの侵入”(31字)。“パスワードの推測”のように一般的な攻撃を書くのではなく,今回の侵入拡大の手口(OS の自動的なログイン)を書く。

採点講評(IPA)

設問4は,セキュリティインシデントで発生した一連の攻撃を正しく理解できているか,対策の内容を通じて問う問題だったが,設問4(b)は正答率が低かった。サーブレットコンテナの管理画面から侵入され,OSの自動的なログインという仕様を利用して侵入が拡大したというポイントを理解し,それぞれの原因に対する適切な対策が立案できるようになることを期待したい。

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