‹ ぱすてく

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

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

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

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

この年度を解いてみる

問1 Web サイトの脆弱性と対策

Web サイトの脆弱性と対策に関する次の記述を読んで,設問1~3に答えよ。

S 社は,情報システムの構築,運用,コンサルティングなどのサービスを顧客に提供する従業員数 5,000 名の企業である。S 社にはセキュリティプロフェッショナルグループ(以下,SPG という)という組織があり,Web アプリケーションソフトウェア(以下,Web アプリという)の脆弱性を検査するサービス(以下,脆弱性検査という)を提供している。

SPG では,脆弱性検査に従事できる者を認定するために,技能試験を実施している。技能試験は,Web アプリに脆弱性が作り込まれた,技能試験用の Web サイト(以下,試験用サイトという)を用いて実施される。試験用サイトは,個人間で取引するオークションシステムを想定しており,“http://...”及び“https://...”の画面がある。図1に試験用サイトの画面構成と画面の遷移を,図2に画面 C の概要をそれぞれ示す。また,試験用サイトの機能のうち,セッション管理機能の仕組みを図3に,検索文字列の引継機能の仕組みを図4に示す。

画面遷移図。画面 A:トップ(URL:https://www.example.co.jp/top),画面 B:サイト説明(URL:http://www.example.co.jp/manual),画面 C:商品検索(URL:https://www.example.co.jp/search),画面 D:商品取引(URL:https://www.example.co.jp/trade),画面 E:ログイン(URL:https://www.example.co.jp/login)の五つの画面がある。矢印は画面 A と画面 B の間が双方向,画面 A と画面 C の間が双方向,画面 C と画面 D の間が双方向,画面 C と画面 E の間が双方向,画面 C から画面 C 自身へ,画面 E から画面 E 自身へ戻る矢印がある。注記1 矢印は,ボタン又はリンクのクリックによる画面の遷移を表す。注記2 技能試験に関係しない画面は,省略している。
図1 試験用サイトの画面構成と画面の遷移
枠内の文章。・最上部に,画面 E へのリンク,検索フィールド及び検索ボタンがある。 ・検索フィールドに検索文字列を入力した後,検索ボタンをクリックすると,画面 C を再表示し,検索フィールドには入力された検索文字列が,画面の下部には検索された商品一覧が表示される。 ・画面 E へのリンクは,未ログインの状態では“ログイン”と表示されており,クリックすると画面 E に遷移する。画面 E でログインに成功すると遷移前の画面 C が再表示されるが,“ログイン”の表示が“ログイン中”という表示に変わり,クリックはできなくなる。 ・ログイン中であって画面下部に商品一覧が表示された状態では,商品一覧中のいずれかの商品をクリックすることによって,画面 D に遷移して商品取引に進むことができる。
図2 画面 C の概要
枠内の文章。・Web ブラウザ起動後,試験用サイトの画面の中で最初にアクセスできるのは,画面 A,B だけであり,画面 C~E の URL を指定してアクセスしても,あらかじめ画面 A にアクセスしていないと,画面 A にリダイレクトされる。 ・画面 A にアクセスがあると,セッション ID を格納する Cookie(名前を SESSIONID とする)の有無を調べ,ない場合には,試験用サイトが動作するサーバで,セッション ID の値をキーとしたログイン状態を保持するセッションオブジェクトを新規に生成する。その後,サーバは,名前を SESSIONID とする Set-Cookie ヘッダを Web ブラウザに返信する。以後,同一のセッション ID によるアクセスには,同一のセッションオブジェクトが利用され,サーバでセッションが管理される。 ・画面 B へのアクセスによってセッション ID が更新されることはない。
図3 セッション管理機能の仕組み
枠内の文章。・画面 C において,利用者が検索フィールドに文字列を入力した後,又は検索フィールド中の文字列を書き換えた後,検索ボタンをクリックすることによって,検索フィールドの文字列が,クエリ文字列のパラメタとして URL エンコードされた状態でサーバに送信され,サーバで商品検索が実行される。 ・商品検索が実行されると,サーバは応答時に,名前が KENSAKU であり,値を検索文字列とする Set-Cookie ヘッダを返す。 ・Web ブラウザは,名前が KENSAKU である Set-Cookie ヘッダを受け取ると,当該 Cookie を更新するとともに,以後のリクエストヘッダに含めて毎回当該 Cookie を送信する。 ・他の画面から画面 C に戻ったときに,既に商品検索が実行されていた場合には,リクエストヘッダ中の当該 Cookie の値に基づいて,商品検索の最新の実行結果及び検索フィールドが表示される。
図4 検索文字列の引継機能の仕組み

〔技能試験〕

SPG に新たに配属された従業員は研修検査員と呼ばれ,2か月間の研修を終えると,技能試験を受ける。技能試験に合格した者だけが脆弱性検査を実施できる規則になっている。技能試験では,脆弱性検査専用の Web ブラウザを使用する。検査専用の Web ブラウザには,一般的な Web ブラウザの機能に加えて,送信する HTTP リクエストやパラメタの値を意図的に変更する機能がある。

技能試験では,試験官とのディスカッション,検査手順や報告書の作成を通して,力量が判断され,合否が決定される。このたび,研修検査員の T 君が,技能試験を受けることになった。試験官は U 主任である。最初に,U 主任は,技能試験の前提として図1及び図2の内容を T 君に伝えた。

なお,図3及び図4の内容は T 君には伏せられている。

〔検査シナリオと HTTP ヘッダ〕

技能試験の開始に当たって,U 主任は,図5に示す検査シナリオの順番で画面にアクセスするよう T 君に指示した。T 君が検査シナリオを実行した際の HTTP リクエストヘッダ及び HTTP レスポンスヘッダを,図6に示す。

枠内の文章。検査専用の Web ブラウザを起動→画面 A→画面 B→画面 A→画面 C→画面 C→画面 E→画面 C→画面 D
図5 検査シナリオ
リクエスト X とレスポンス X。リクエスト X:01 GET /top HTTP/1.1,02 Accept: text/html, application/xhtml+xml, */*,03 Accept-Language: ja-JP,04 Accept-Encoding: gzip, deflate,05 Host: www.example.co.jp,06 Connection: Keep-Alive。レスポンス X:07 HTTP/1.1 200 OK,08 Date: Tue, 10 Jun 2014 05:30:31 GMT,09 Set-Cookie: SESSIONID=134D96E470da240421svr5B019; Expires= Wed, 11-Jun-2014 05:30:31 GMT; domain=example.co.jp;,10 Expires: Thu, 19 Nov 1981 08:52:00 GMT,11 Cache-Control: no-store, no-cache。リクエスト Y とレスポンス Y。リクエスト Y:12 GET /manual HTTP/1.1,13 Accept: text/html, application/xhtml+xml, */*,14 Accept-Language: ja-JP,15 Accept-Encoding: gzip, deflate,16 Host: www.example.co.jp,17 Cookie: SESSIONID=134D96E470da240421svr5B019。レスポンス Y:18 HTTP/1.1 200 OK,19 Date: Tue, 10 Jun 2014 05:32:16 GMT,20 Expires: Thu, 19 Nov 1981 08:52:00 GMT,21 Cache-Control: no-store, no-cache。リクエスト Z とレスポンス Z。リクエスト Z:22 GET /trade?itemid=10 HTTP/1.1,23 Accept: text/html, application/xhtml+xml, */*,24 Accept-Language: ja-JP,25 Accept-Encoding: gzip, deflate,26 Host: www.example.co.jp,27 Cookie: SESSIONID=134D96E470da240421svr5B019,28 Cookie: KENSAKU=jewelry。レスポンス Z:29 HTTP/1.1 200 OK,30 Date: Tue, 10 Jun 2014 05:45:58 GMT,31 Expires: Thu, 19 Nov 1981 08:52:00 GMT,32 Cache-Control: no-store, no-cache。注記1 リクエスト X とレスポンス X は,最初に画面 A を表示した際の HTTP ヘッダである。注記2 リクエスト Y とレスポンス Y は,画面 A から画面 B に遷移した際の HTTP ヘッダである。注記3 リクエスト Z とレスポンス Z は,画面 C から画面 D に遷移した際の HTTP ヘッダである。注記4 リクエスト及びレスポンス中の行番号は,本図中における通し番号である。
図6 検査シナリオを実行した際の HTTP ヘッダ(抜粋)

〔脆弱性に関するディスカッション〕

次は,図6に関する U 主任と T 君のディスカッションである。

枠内に,空欄 [ a ] に続けて次の文字列が書かれている。%3chtml%3e%3cbody%3e%3cscript%3ealert%28%221%22%29%3c%2fscript%3e%3c%2fbody%3e%3c%2fhtml%3e 注記1 図中の文字列は URL エンコード済みの形式である。注記2 ASCII 文字コード一覧を図8に示す。
図7 クエリ文字列のパラメタの値にセットする検査コード
ASCII 文字コードの表(文字と文字コード(16進)の組)が4列に並ぶ。第1列:NUL 00,SOH 01,STX 02,ETX 03,EOT 04,ENQ 05,ACK 06,BEL 07,BS 08,HT 09,LF 0a,VT 0b,FF 0c,CR 0d,SO 0e,SI 0f。第2列:DLE 10,DC1 11,DC2 12,DC3 13,DC4 14,NAK 15,SYN 16,ETB 17,CAN 18,EM 19,SUB 1a,ESC 1b,IS4 1c,IS3 1d,IS2 1e,IS1 1f。第3列:SP 20,! 21," 22,# 23,$ 24,% 25,& 26,' 27,( 28,) 29,* 2a,+ 2b,, 2c,- 2d,. 2e,/ 2f。第4列:0 30,1 31,2 32,3 33,4 34,5 35,6 36,7 37,8 38,9 39,: 3a,; 3b,< 3c,= 3d,> 3e,? 3f。注記 文字コード 00~1f は制御文字である。文字コード 20 は空白文字である。
図8 ASCII 文字コード一覧(抜粋)

T 君が,図7の検査コードを用いて確認したところ,予想どおり,警告ダイアログが表示された。T 君は,HTTP ヘッダインジェクションの脆弱性が存在することを指摘した。

枠内の手順。1. 攻撃者 J が,試験用サイトの画面 A にアクセスし,セッション ID を取得する。このときの,セッション ID を“01234”とする。 2. 攻撃者 J が,攻撃対象の利用者 K に HTML メールを送信する。この HTML メールには URL リンクがあり,攻撃用のクエリ文字列を含む画面 C の URL が記載されている。 3. 利用者 K が,試験用サイトの画面 A にアクセスし,セッション ID を取得する。このときの,セッション ID を“56789”とする。その後,HTML メールの URL リンクをクリックする。その際に送信される HTTP リクエストには,攻撃者 J が用意した攻撃用クエリ文字列が含まれており,検索文字列の値は次のとおりである。 %0d%0aSet%2dCookie%3a%20SESSIONID%3d [ f ] %3b%20Expires%3d(省略)domain%3dexample%2eco%2ejp%3b(省略) 4. 利用者 K がログインする。 5. 攻撃者 J は,利用者 K になりすまし,本来はアクセス権限がない画面にアクセスできるようになる。
図9 攻撃手順の一例

U 主任は,その後も T 君に対してディスカッションや報告書の審査などを行い,技能試験は終了した。

T 君は見事,技能試験に合格し,SPG の検査員として業務を始めた。

出題趣旨(IPA)

近年,インターネット回線からのサイバー攻撃による被害が,大々的に報道されるようになった。現在,Webアプリケーションソフトウェアを利用するサービス事業にとって,サイバー攻撃への対策は必須である。Webアプリケーションソフトウェアの開発者には,脆弱性を作り込まないように,既知の対策を実施することに加えて,攻撃者が悪意をもって操作をした場合でも,問題が起きないような設計と実装を行うことが求められる。本問では,よく知られた脆弱性であるHTTPヘッダインジェクション及びセッションフィクセーションを題材に,攻撃者の視点での攻撃方法を意識した,脆弱性の検出能力と,脆弱性への対策能力を問う。

採点講評(問全体・IPA)

問1では,脆弱性検査の技能試験を題材に,Webサイトの脆弱性と対策について出題した。HTTPヘッダインジェクションやセッションフィクセーションの脆弱性について,ある程度の知識が必要であったためか,全体として正答率は低かった。

設問と解答例

設問1(1)

secure 属性が設定されていないと,どの画面に遷移するときにセッション ID を盗聴されるリスクがあるか。遷移直後の画面を,画面 A~E の中から一つ選び,答えよ。

解答例

  • 画面B
解説

本文の根拠

図1

画面 B:サイト説明(URL:http://www.example.co.jp/manual)

図6 リクエスト Y

17 Cookie: SESSIONID=134D96E470da240421svr5B019

T 君の発言(下線①)

①secure 属性が設定されていません

Cookie の secure 属性は,その Cookie を暗号化された通信(HTTPS)でしかブラウザが送らないようにする属性である(RFC 6265)。属性が無いと,URL が https:// ではない画面へのアクセスでも Cookie が送られる。図1で URL が http:// で始まるのは画面 B だけで,ほかの画面 A・C・D・E はすべて https:// である。

図6のリクエスト Y は画面 A から画面 B への遷移で,行17に“Cookie: SESSIONID=…”が付いている。セッション ID の Cookie が,暗号化されない HTTP の通信でそのまま送られているので,盗聴されるのは画面 B に遷移するときである。

字数制限の無い選択式の設問。“遷移直後の画面”を問われているので,Cookie を発行した画面 A ではなく,Cookie を送ってしまう側の画面 B を選ぶ。解答例は“画面B”。リクエスト X(画面 A)には Cookie の行が無いことも確かめておくとよい。

設問1(2) 40字以内

secure 属性が設定されていないと,セッション ID を盗聴されるリスクがある理由を,40 字以内で述べよ。

解答例

  • 暗号化されないHTTP通信において,セッションIDが送信されるから
解説

本文の根拠

T 君の発言

secure 属性を設定しないと,セッション ID を第三者に盗聴されるリスクがあり,セッションハイジャックなどにつながると思います。

図1

画面 B:サイト説明(URL:http://www.example.co.jp/manual)

secure 属性が無いと,画面 B(http://)へのリクエストに SESSIONID の Cookie が付いて送られる。HTTP は通信を暗号化しないので,経路上の第三者が通信内容を見れば,Cookie の中のセッション ID を読み取れる。理由は“暗号化されない HTTP 通信”と“セッション ID が送信される”の二つの要素で組み立てる。

(1)で画面 B を答えた根拠をそのまま文にしたものなので,(1)と合わせて考えると書きやすい。

40字以内に収めるときは,どの画面かの説明や“盗聴される”という結果は削り,原因である“暗号化されない HTTP 通信で送信される”ことを残す。解答例は“暗号化されないHTTP通信において,セッションIDが送信されるから”(33字)。

設問2(1) 解答欄1つ

図7中の a に入れる適切な文字列を URL エンコード済の形式で答えよ。

〔a〕解答例

  • %0d%0a%0d%0a
解説

本文の根拠

図4

商品検索が実行されると,サーバは応答時に,名前が KENSAKU であり,値を検索文字列とする Set-Cookie ヘッダを返す。

T 君の発言

入力された検索文字列を適切に処理せずに Set-Cookie ヘッダの値にセットしているものと思われます。

図7

%3chtml%3e%3cbody%3e%3cscript%3ealert%28%221%22%29%3c%2fscript%3e%3c%2fbody%3e%3c%2fhtml%3e

HTTP の応答は,ヘッダの各行を改行(CR LF)で区切り,ヘッダの最後に空行(CR LF だけの行)を置いて,その後ろを本文(ボディ)として扱う(RFC 9112。旧 RFC 7230)。図8のとおり CR は 0d,LF は 0a なので,URL エンコードすると改行は“%0d%0a”になる。検索文字列が Set-Cookie ヘッダの値にそのまま入る作りなので,a に“%0d%0a”を2回続けて入れると,Set-Cookie ヘッダが終わってヘッダ部が閉じ,続く図7の文字列(<html><body><script>alert("1")</script></body></html>)が応答の本文として解釈され,警告ダイアログが出る。

図7の本体は“%3c”(<),“%3e”(>),“%28”“%29”(括弧),“%22”(二重引用符),“%2f”(/)で,図8の文字コード表と照らして読める。

字数制限は無い。“%0d%0a”を1回だけ書くと,ヘッダの行が1行増えるだけで本文にならず,スクリプトが実行されない。講評が“改行コードを二つ続ける”と書いているとおり,二つ続けるところが要点である。解答例は“%0d%0a%0d%0a”。

採点講評(IPA)

設問2(1)と(3)は,正答率が低かった。(1)は改行コードを二つ続けるHTTPヘッダインジェクション攻撃に関する問題であったが,攻撃の仕組みを理解していないと思われる解答が多かった。(3)は改行コードの処理に関して,具体的な対策内容を期待したが,そのような解答は少なかった。

設問2(2) 解答欄1つ

本文中の b に入れる適切な字句を解答群の中から選び,記号で答えよ。解答群 ア SQL インジェクション イ TCP SYN Flood ウ クロスサイトスクリプティング エ ディレクトリトラバーサル

〔b〕解答例

  • ウ
解説

本文の根拠

T 君の発言

攻撃者が指定した任意のスクリプトをクライアント側で実行できます。

T 君の発言

サーバ側での HTTP レスポンスヘッダの出力処理に問題があり,HTTP ヘッダインジェクションの脆弱性が存在すると思います。

攻撃者が指定したスクリプトを,利用者の Web ブラウザ(クライアント側)で実行させる攻撃はクロスサイトスクリプティング(XSS)である。HTTP ヘッダインジェクションでは,ヘッダの区切りを注入して応答の本文にスクリプトを入れられるので,同様のことができる。正解はウ。

アの SQL インジェクションはデータベースへの問合せを書き換える攻撃で,スクリプトのクライアント側での実行とは違う。イの TCP SYN Flood は SYN パケットを大量に送ってサービスを使えなくさせる DoS 攻撃。エのディレクトリトラバーサルは,“../”などで公開範囲の外のファイルを読み出す攻撃で,いずれもクライアント側でスクリプトを動かすものではない。

解答例は“ウ”。

設問2(3) 30字以内 解答欄1つ

本文中の c に入れる適切な処理を,30 字以内で具体的に述べよ。

〔c〕解答例

  • 出力文字列に改行コードがあるとエラー画面を出力
  • 出力文字列の改行コード以降の文字列を削除
解説

本文の根拠

T 君の発言

それが使用できない場合は,

T 君の発言

入力された検索文字列を適切に処理せずに Set-Cookie ヘッダの値にセットしている

この脆弱性は,検索文字列に含まれる改行コード(CR・LF)が Set-Cookie ヘッダの値にそのまま入ることで起きる。ヘッダ出力用の関数や API が使えない場合は,開発者が自分で,出力する文字列の改行コードを扱う処理を実装する。解答例は二つで,“出力文字列に改行コードがあるとエラー画面を出力”と“出力文字列の改行コード以降の文字列を削除”。どちらも,改行コードを含んだままヘッダに出さないという点が同じで,どちらか一つを書けばよい。

講評は,改行コードの処理について具体的な対策内容を期待したが,そのような解答は少なかったと述べている。“入力値を検証する”“エスケープする”のような一般的な書き方では,何を処理するのかが分からず,改行コードという語が要る。

30字以内の制限があるので,“出力文字列の”“改行コード”“エラー出力又は削除”の三つを残す。解答例は23字と20字。

採点講評(IPA)

設問2(1)と(3)は,正答率が低かった。(1)は改行コードを二つ続けるHTTPヘッダインジェクション攻撃に関する問題であったが,攻撃の仕組みを理解していないと思われる解答が多かった。(3)は改行コードの処理に関して,具体的な対策内容を期待したが,そのような解答は少なかった。

設問3(1) 解答欄2つ

本文中の d,e に入れる適切な行番号を答えよ。

〔d〕解答例

  • 09
  • 17

〔e〕解答例

  • 27

〔備考〕順不同

解説

本文の根拠

図6 レスポンス X

09 Set-Cookie: SESSIONID=134D96E470da240421svr5B019;

図6 リクエスト Z

27 Cookie: SESSIONID=134D96E470da240421svr5B019

T 君の発言

サーバ側のセッション管理に問題があり,セッションフィクセーションの脆弱性が存在する可能性があります。

セッションフィクセーションは,攻撃者が用意したセッション ID を,利用者にログインさせて使わせる攻撃で,ログインの前後でセッション ID が変わらないと成り立つ。図5の検査シナリオは,画面 A で Cookie が発行されたあと,画面 E でログインして画面 D へ進む。図6では,行09でサーバが発行したセッション ID(134D96E470da240421svr5B019)が,画面 B へのアクセス(行17)にも,ログイン後の画面 D へのアクセス(行27)にも,同じ値で付いている。ログインの前後でセッション ID が更新されていないので,d は“09 又は 17”,e は“27”になる。備考に“順不同”とあるので,d と e の組は入れ替えてもよい。

講評は,設問3は全体として正答率が高かったが,(1)のような少し実践的な問題は正答率が低かったとしている。

数字で答える設問なので,行番号の選び方がそのまま点になる。行22や行28のような“Cookie ではない行”,行番号の見間違いに気を付ける。ログインの前(09 又は 17)と後(27)を一つずつ選ぶのが条件である。

採点講評(IPA)

設問3は,正答率が高かった。セッションフィクセーションの脆弱性や対策については,よく理解されているようであった。ただし,(1)のような少し実践的な問題については,正答率が低かった。

設問3(2) 解答欄1つ

図9中の f に入れる適切な字句を答えよ。

〔f〕解答例

  • 01234
解説

本文の根拠

図9 手順1

攻撃者 J が,試験用サイトの画面 A にアクセスし,セッション ID を取得する。このときの,セッション ID を“01234”とする。

図9 手順3

%0d%0aSet%2dCookie%3a%20SESSIONID%3d f %3b%20Expires%3d(省略)domain%3dexample%2eco%2ejp%3b(省略)

図9の手順3の文字列は,利用者 K が開く画面 C の URL に含まれる検索文字列で,デコードすると“CR LF”の後に“Set-Cookie: SESSIONID=f; Expires=…; domain=example.co.jp;”となる(%2d は“-”,%3a は“:”,%3d は“=”,%3b は“;”)。HTTP ヘッダインジェクションで,K のブラウザの SESSIONID の Cookie を f の値に上書きさせている。攻撃者 J が使うのは自分が手順1で取得したセッション ID なので,f は“01234”。

手順3で K 自身が取得したのは“56789”だが,これは J の攻撃で上書きされる側の値であり,f ではない。

字数制限は無く,値をそのまま答える。解答例は“01234”。

採点講評(IPA)

設問3は,正答率が高かった。セッションフィクセーションの脆弱性や対策については,よく理解されているようであった。ただし,(1)のような少し実践的な問題については,正答率が低かった。

設問3(3) 40字以内

図9中の手順4及び5について,利用者 K がログインした後,攻撃者 J が利用者 K になりすますことができるのはなぜか。“セッション ID”という字句を含めて 40 字以内で述べよ。

解答例

  • 攻撃者Jが取得したセッションIDで利用者Kにログインさせているから
解説

本文の根拠

図3

以後,同一のセッション ID によるアクセスには,同一のセッションオブジェクトが利用され,サーバでセッションが管理される。

図9 手順3,4,5

利用者 K がログインする。

図9 手順5

攻撃者 J は,利用者 K になりすまし,本来はアクセス権限がない画面にアクセスできるようになる。

サーバは,セッション ID をキーにして,ログイン状態を保持するセッションオブジェクトを管理している(図3)。K のブラウザには J が取得した“01234”が設定されていて,K がそのセッション ID のままログインするので,サーバ側では“01234”のセッションオブジェクトがログイン済みになる。J は同じ“01234”を持っているため,そのセッション ID を使ってアクセスすれば K として扱われる。

設問の指定の“セッション ID”という字句を入れ,“J が取得したセッション ID”を“K にログインさせている”ことを書く。

40字以内に収めるときは,“ログイン後も同じ”という説明は削り,攻撃者が取得した ID で利用者にログインさせたことを残す。解答例は“攻撃者Jが取得したセッションIDで利用者Kにログインさせているから”(33字)。

採点講評(IPA)

設問3は,正答率が高かった。セッションフィクセーションの脆弱性や対策については,よく理解されているようであった。ただし,(1)のような少し実践的な問題については,正答率が低かった。

設問3(4) 30字以内 解答欄1つ

本文中の g に入れる適切な対策を,30 字以内で述べよ。

〔g〕解答例

  • 新しいセッションIDによるセッションを開始する
解説

本文の根拠

T 君の発言

ログイン後の,画面 E から画面 C に遷移する際の,サーバ側の処理において,

T 君の発言

この脆弱性を確実に防ぐことができます。

セッションフィクセーションは,ログイン前に攻撃者が知っていたセッション ID がログイン後も有効なまま使われることで成り立つ。そのため,ログインに成功したときに,サーバが新しいセッション ID を発行してそのセッションに切り替えれば,J が持っている“01234”はログイン済みのセッションと結び付かなくなる。認証の後にセッション ID を更新することは,OWASP の Session Management Cheat Sheet も勧めている。

問題文は“画面 E から画面 C に遷移する際の,サーバ側の処理”と処理の時点を示しており,ログインに成功したその時点で ID を更新する対策を書く。Set-Cookie ヘッダの値を直す対策(設問2)では,Cookie の植え付け自体を防ぐだけで,ID が変わらないという問題は残る。

30字以内の制限があるので,“新しい”“セッション ID”“セッション開始”を残す。解答例は“新しいセッションIDによるセッションを開始する”(23字)。

採点講評(IPA)

設問3は,正答率が高かった。セッションフィクセーションの脆弱性や対策については,よく理解されているようであった。ただし,(1)のような少し実践的な問題については,正答率が低かった。

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

問2 情報漏えいインシデントの調査

情報漏えいインシデントの調査に関する次の記述を読んで,設問1~3に答えよ。

L 社は,従業員数 700 名のシステムインテグレータである。L 社のネットワーク構成を図1に,主なサーバとその概要を表1に示す。

ネットワーク構成図。インターネットが L 社の FW に接続している。FW の一方に DMZ があり,DMZ 内では L2SW に NTP サーバ,プロキシサーバ,外部メールサーバ,外部 DNS サーバが接続している。FW のもう一方は L3SW に接続している。L3SW には管理者 LAN と利用者 LAN が接続し,また L3SW はサーバ LAN の L2SW に接続している。サーバ LAN 内では L2SW に AV 管理サーバ,ファイル配信サーバ,ログ管理サーバ,内部メールサーバ,IT 資産管理サーバ,DHCP サーバ兼内部 DNS サーバが接続している。凡例:FW:ファイアウォール,L2SW:レイヤ2スイッチ,L3SW:レイヤ3スイッチ,AV:ウイルス対策ソフト。注記1 L3SW のデフォルトゲートウェイは,FW に設定されている。注記2 L 社の PC は,利用者 LAN 又は管理者 LAN に接続されている。
図1 L 社のネットワーク構成(概要)
列は“サーバ名称”,“概要”。プロキシサーバ:・プロキシ認証機能を使用し,利用者 ID とパスワードで認証する。・ブラックリスト型の URL フィルタリング機能をもつ。AV 管理サーバ:・各 PC 及び各サーバ上で稼働している AV は,ウイルス定義ファイルを AV 管理サーバから自動的に取得するよう設定されている。ファイル配信サーバ:・パッチの自動配信及びパッチの強制適用に利用されている。ログ管理サーバ:・図1中のネットワーク機器及びサーバのログを syslog で受信し,直近3か月分を保存する。・syslog 受信に必要なポート以外は全て閉じ,リモートからアクセスできないようにしている。IT 資産管理サーバ:・各 PC 及び各サーバの次の情報を保管する。- 管理番号 - 管理者従業員番号 - 型式及びシリアル番号 - MAC アドレス - OS 名とそのバージョン。内部 DNS サーバ:・L 社ネットワーク上にある機器の名前解決を行う。外部 DNS サーバ:・L 社外部メールサーバの MX レコードに関する名前解決,及び L 社ネットワーク外の機器の名前解決を行う。
表1 主なサーバとその概要

各サーバは,アクセスログ,操作ログ,ミドルウェアのログ及びアプリケーションプログラムのログをログ管理サーバに送信するとともに,各サーバ上でも直近3か月分のログを保存している。

FW はステートフルパケットインスペクション型であり,NAPT 機能を使用している。また,許可した通信,拒否した通信ともにログを取得するように設定し,取得したログは全てログ管理サーバに送信している。FW のフィルタリングルールを表2に示す。

列は“項番”,“送信元”,“宛先”,“サービス”,“動作”。項番1:インターネット,外部メールサーバ,SMTP,許可。項番2:インターネット,外部 DNS サーバ,DNS,許可。項番3:外部メールサーバ,インターネット,SMTP,許可。項番4:プロキシサーバ,インターネット,HTTP,HTTPS,許可。項番5:NTP サーバ,インターネット,NTP,許可。項番6:外部 DNS サーバ,インターネット,DNS,許可。項番7:サーバ LAN,プロキシサーバ,代替 HTTP,許可。項番8:利用者 LAN,プロキシサーバ,代替 HTTP,許可。項番9:管理者 LAN,プロキシサーバ,代替 HTTP,許可。項番10:管理者 LAN,DMZ,SSH,許可。項番11:DMZ,ログ管理サーバ,syslog,許可。項番12~24は省略。項番25:全て,全て,全て,拒否。注記1 項番が小さいルールから順に,最初に合致したルールが適用される。注記2 項番12~24は,送信元及び宛先のどちらもインターネットではないルールである。注記3 L 社では,代替 HTTP は TCP ポート 8080 を使用している。
表2 FW のフィルタリングルール

L 社ネットワーク上の全てのサーバ,ネットワーク機器及び PC は,NTP サーバと時刻同期を行っている。

L 社での PC に関する環境を図2に示す。

枠内の文章。・PC は,従業員1人につき1台貸与されている。 ・USB は使用できない設定となっている。 ・光学メディア用のドライブ及びメモリカード用のリーダは,搭載していない。 ・DHCP で IP アドレスが動的に付与されるとともに,デフォルトゲートウェイが L3SW に,DNS サーバが内部 DNS サーバに設定される。 ・Web ブラウザでのインターネットアクセスは,プロキシサーバを使用するよう設定されている。
図2 PC に関する環境(抜粋)

L 社のサーバ,ネットワーク及び PC は,IT 部が,M 部長の下,リーダの N さんを中心に 10 名で設計,構築,保守・運用を行っている。

L 社では,サーバごとに個別の利用者 ID を IT 部の各従業員に付与しており,サーバの保守・運用時には,その利用者 ID を用いて SSH でサーバに接続し,管理者権限に昇格して作業を行う規則になっている。また,IT 部ではサーバの保守・運用に使用する利用者 ID 及びパスワードの情報を PC に保管してはならない規則となっている。

〔情報漏えいインシデント〕

4月23日に,L 社が加盟しているセキュリティ情報共有団体から L 社に連絡が入った。海外のセキュリティ団体が入手した C&C(Command & Control)サーバの通信履歴の中に,L 社に割り当てられている IP アドレスからの通信が含まれていたとのことであった。セキュリティ情報共有団体からは,C&C サーバの IP アドレス及びポート番号,送信元 IP アドレス並びに C&C サーバ側の受信日時の情報が提供された。受信日時は協定世界時(UTC)で4月16日7時13分であった。

〔初期対応〕

M 部長から指示を受け,N さんが確認したところ,送信元 IP アドレスは間違いなく L 社のものであった。また,①この IP アドレスから当該 C&C サーバへの通信が発生していたことも確認できた。送信日時は日本時間で4月16日16時13分であった。これらの確認結果を基に,セキュリティ情報共有団体に更なる情報提供を依頼したところ,当該 C&C サーバに送信された情報が提供された。その中には,L 社のファイル配信サーバのホスト名,IT 部の V さんに付与された当該サーバの利用者 ID 及びパスワードが含まれていた。

N さんは,調査結果を M 部長に報告し,次の緊急対応を実施した。

N さんは M 部長の指示で,漏えい元を特定するために,C&C サーバへの通信の送信元を調査した。その結果を図3に示す。

枠内の手順。1. 提供された送信元 IP アドレスは,L 社のネットワーク構成から分かるように,[ a ]のものであった。 2. [ a ]のログから,当該 C&C サーバと[ a ]経由で通信を行っていた機器の IP アドレスを特定したところ,[ b ]のものであった。 3. [ b ]のログから,当該 C&C サーバに[ b ]経由で HTTP 接続を行っていた機器の IP アドレス,及び[ b ]接続時の認証に使用した利用者 ID が特定できた。 4. 認証に使用された利用者 ID は,V さんに付与されたものであった。 5. DHCP サーバのログから,上記3で特定した IP アドレスが割り当てられていた機器の[ c ]が特定できた。 6. IT 資産管理サーバに保管されている情報によると,当該[ c ]をもつ機器は,V さんに貸与されている管理番号 0019 の PC であった。 7. V さんは,管理者 LAN に接続した当該 PC から,ファイル配信サーバを含む複数のサーバの保守・運用を行っている。 8. V さんは,これら保守・運用対象のサーバにアクセスするための利用者 ID 及びパスワードを,当該 PC に保管していなかった。
図3 C&C サーバへの通信の送信元の調査結果

N さんは当該 PC をネットワークから切り離した上で,M 部長に図3の調査結果を報告した。

〔詳細調査と暫定対応〕

N さんは M 部長の指示で,当該 PC に対するディジタルフォレンジックスによる調査を,セキュリティ専門会社に依頼した。セキュリティ専門会社による調査報告を図4に示す。

枠内の文章。・当該 PC には,次の3種類のマルウェアに感染している痕跡が残っていた。 - ダウンローダ - キーロガー - リモートから制御できるトロイの木馬 ・これらのマルウェアは,いずれも自ら感染を広げるタイプではない。 ・マルウェア内に C&C サーバの FQDN が記述され,C&C サーバへの接続に使用されていた。五つの異なる FQDN が確認できた。 ・各マルウェアの C&C サーバとの通信は,次の手順で行われていた。 1. <u>②プロキシサーバを利用せずに C&C サーバへの接続を試みる</u>。 2. 上記1が失敗した場合,Web ブラウザのプロキシ設定を基に,プロキシサーバを利用して接続を試みる。 3. 上記2が失敗した場合,PC に保管されている利用者 ID 及びパスワードを窃取して認証突破を試みる。 4. 上記3が失敗した場合,ランダムな時間間隔で上記2だけを繰り返す。 ・最初の感染は3月28日13時7分であると考えられる。 ・この時刻よりも前にエクスプロイトやマルウェアをダウンロードした痕跡は残っていなかった。 ・この時刻よりも後に複数のマルウェアをダウンロードした痕跡が残っていた。 ・マルウェアが C&C サーバにアップロードした情報の痕跡は残っていなかった。 ・これらのマルウェアは5月14日時点で L 社が使用していた AV では検知されなかった。
図4 セキュリティ専門会社による調査報告(抜粋)

N さんは,M 部長に図4の調査報告を説明した。M 部長は,この調査によって明らかになったマルウェアの特徴から,IP アドレスを基にした FW による通信の遮断では,C&C サーバへの通信を完全には遮断できない可能性があることを指摘した。N さんは,M 部長の指摘に基づき,③この調査で明らかになった C&C サーバへの通信方法を考慮した,新たな遮断方法を検討し,M 部長の承認を得た上で実施した。

〔追加調査〕

N さんは,影響範囲及びマルウェア感染経路を特定するための追加調査を立案し,M 部長から実行承認を得た。追加調査の内容を図5に示す。

枠内の文章。追加調査1. V さんの PC 以外の PC 及びサーバに対する,図4で報告されたマルウェアの感染状況調査 追加調査2. <u>④最初のマルウェア感染後にファイル配信サーバから配信されたファイルの調査</u> 追加調査3. 最初のマルウェア感染後に V さんの利用者 ID でアクセスしたサーバの特定と,アクセス内容の調査 追加調査4. 最初のマルウェア感染前に V さんが受け取った電子メールの調査
図5 影響範囲及びマルウェア感染経路を特定するための追加調査

L 社では,AV ベンダとの間で,マルウェアの調査及び対応するウイルス定義ファイルの作成を依頼できる契約を結んでいる。N さんは,図4で報告された3種類のマルウェアについて,対応するウイルス定義ファイルの作成を AV ベンダに依頼し,そのウイルス定義ファイルを用いて追加調査1を実施した。その結果,L 社内の他の PC 及びサーバでは,これらのマルウェアの感染は確認されなかった。

N さんは,追加調査2として,ファイル配信サーバ上に保存されている操作ログ,アプリケーションプログラムのログ及び配信ファイルのアーカイブを調査した。ファイル配信サーバから3月28日以降に配信されたファイルは,全て N さんが V さんに指示して配信したものであることが確認できた。

N さんは,追加調査3として,L 社内のサーバのうち,V さんの利用者 ID でアクセス可能な全てのサーバ上のアクセスログを調査し,最初のマルウェア感染後に V さんの利用者 ID で当該 PC からアクセスされたサーバを特定した。当該サーバとして,ファイル配信サーバ以外に,NTP サーバ,DHCP サーバ兼内部 DNS サーバ及びプロキシサーバの3台が確認できた。これら3台のサーバ上の操作ログを更に詳細に確認したところ,各サーバに対する V さんの利用者 ID での操作は,全て N さんの指示に基づく保守・運用作業であり,不正な操作が行われた形跡はなかった。これら3台のサーバは,L 社ネットワーク構成において重要であり,サービス停止ができないものであった。N さんは,これらのサーバ上で不正な操作が行われた形跡がなかったこと及びサービス停止ができないことから,⑤これらのサーバ上で実行可能で効果の見込まれる対策を実施した。

N さんは,追加調査4として,3月1日から28日までに V さんが受け取った電子メールを調査するとともに,V さんへの聞き取りを実施した。その結果,V さんが,3月28日に,インターネットファックスサービスを装った電子メールを受け取り,添付ファイルを開いていたことが判明した。AV ベンダに調査を依頼した結果,このファイルはダウンローダをインストールすることが分かった。

N さんは,これらの結果を M 部長に報告した。

M 部長は,追加調査3について,⑥これら3台のサーバ上のログに対する改ざんの痕跡が残っていないことを確認したか,N さんに尋ねた。N さんは,ログの改ざんを想定した調査は行っていなかったことを報告し,ログの再調査を実施した。再調査の結果,これら3台のサーバ上のログに対する改ざんの痕跡は残っていなかった。N さんは,M 部長に再調査の結果を報告した。

M 部長は,調査結果を了承し,恒久対応としての再発防止策の立案を N さんに指示した。

出題趣旨(IPA)

近年,標的型攻撃又は新しいタイプの攻撃と呼ばれる外部からの攻撃が,業種や企業規模を問わず仕掛けられている。これらの攻撃ではソーシャルエンジニアリングと未知のマルウェアを組み合わせることによって,防御システムを回避して攻撃者が侵入し,長期間にわたりひそかに情報の窃取や破壊行為を行う。このような攻撃による情報漏えいインシデントの調査においては,情報漏えいを防ぎながら,侵入経路及び被害の特定を行う必要があり,適切な調査及び対策の計画立案及び実施が重要である。本問では,運用担当者のPCへのマルウェア感染を題材に,未知のマルウェアによる情報セキュリティインシデントの調査及び対策を計画立案し,実施する能力を問う。

採点講評(問全体・IPA)

問2では,運用担当者のPCへのマルウェア感染を題材に,侵入経路及び被害の調査から暫定対策実施までの情報セキュリティインシデント対応について出題した。全体として正答率は低かった。

設問と解答例

設問1(1) 30字以内

本文中の下線①について,確認の具体的な方法を,30 字以内で述べよ。

解答例

  • FWのログで当該通信の記録を確認する。
解説

本文の根拠

〔情報漏えいインシデント〕

受信日時は協定世界時(UTC)で4月16日7時13分であった。

〔初期対応〕

送信日時は日本時間で4月16日16時13分であった。

FW の説明

許可した通信,拒否した通信ともにログを取得するように設定し,取得したログは全てログ管理サーバに送信している。

下線①は,外部から連絡のあった C&C サーバへの通信が,実際に L 社から出ていたかの確認である。インターネットとの境界にある FW は,許可・拒否のどちらの通信もログに取り,ログ管理サーバに送っているので,FW のログで当該 C&C サーバ宛ての通信の記録を探せば確認できる。時刻は UTC の7時13分に9時間を足すと日本時間の16時13分で,本文の送信日時と一致する。

L 社の各サーバは自分のログも直近3か月分保存しているが,インターネットへの出入りをすべて通る FW のログを見れば,どの機器の通信かを問わず記録の有無を確かめられる。

30字以内の制限なので,“FW のログ”と“当該通信の記録を確認する”を残す。時刻の換算は,探すときの注意なので解答には要らない。解答例は“FWのログで当該通信の記録を確認する。”(19字)。

設問1(2) 10字以内 解答欄3つ

図3中の a~c に入れる適切な字句を,それぞれ 10 字以内で答えよ。

〔a〕解答例

  • FW

〔b〕解答例

  • プロキシサーバ

〔c〕解答例

  • MACアドレス
解説

本文の根拠

FW の説明

FW はステートフルパケットインスペクション型であり,NAPT 機能を使用している。

表2 項番4

項番4:プロキシサーバ,インターネット,HTTP,HTTPS,許可。

表1 プロキシサーバ

プロキシ認証機能を使用し,利用者 ID とパスワードで認証する。

表1 IT 資産管理サーバ

MAC アドレス

図3の流れを順に追う。FW は NAPT を使っているので,インターネットから見える L 社の送信元 IP アドレスは FW のもので,a は“FW”。FW のログから,C&C サーバと FW 経由で通信していた機器を調べると,表2の項番4で FW を通してインターネットへ HTTP・HTTPS ができるのはプロキシサーバだけなので,b は“プロキシサーバ”。プロキシサーバのログには,接続元 PC の IP アドレスとプロキシ認証に使った利用者 ID が残る(表1)。

その IP アドレスを DHCP サーバのログと突き合わせて,その IP アドレスが割り当てられていた機器の識別情報を得る。IT 資産管理サーバが各 PC の MAC アドレスを保管しているので,c は“MACアドレス”で,管理番号0019の PC に行き着く。

各 10 字以内の制限があり,解答例の FW(2字),プロキシサーバ(7字),MACアドレス(7字)で収まる。“IPアドレス”と書くと,DHCP で動的に変わるので PC を特定できない点に注意する。

設問2(1) 35字以内

図4中の下線②の試みは,L 社の PC からでは必ず失敗するが,FW のログには記録されない。その理由を 35 字以内で述べよ。

解答例

  • DNSによる名前解決ができず,TCP/IP接続要求が出ないから
解説

本文の根拠

図4

マルウェア内に C&C サーバの FQDN が記述され,C&C サーバへの接続に使用されていた。

図2

DHCP で IP アドレスが動的に付与されるとともに,デフォルトゲートウェイが L3SW に,DNS サーバが内部 DNS サーバに設定される。

表1 内部 DNS サーバ

L 社ネットワーク上にある機器の名前解決を行う。

下線②は,プロキシサーバを使わず,PC が直接 C&C サーバへ接続を試みるものである。マルウェアは C&C サーバを FQDN で指定しているので,まず名前解決が要る。PC の DNS サーバは内部 DNS サーバに設定されており,内部 DNS サーバが名前解決するのは L 社ネットワーク上の機器だけである。インターネット上の C&C サーバの FQDN は解決できず,宛先の IP アドレスが分からないので,接続の最初の TCP 接続要求が送出されない。FW を通る通信が生じないため,FW のログにも残らない。

同じ試みは,PC の Web ブラウザの設定どおりプロキシサーバを使う場合(図4の手順2)は,プロキシサーバが名前解決と通信をするので成功し得る。講評は,設問2は(1),(2)ともに正答率が低かったとして,ネットワークの構成や動作原理の理解を求めている。

35字以内に収めるときは,“名前解決ができない”と“接続要求が出ない(FW を通らない)”の二つを残す。解答例は“DNSによる名前解決ができず,TCP/IP接続要求が出ないから”(31字)。

採点講評(IPA)

設問2は,(1),(2)共に正答率が低かった。ネットワーク構成を理解し,侵入及び漏えいの経路をあらかじめ想定しておくことは,インシデント対応だけでなくセキュリティ対策を考える上で重要である。ネットワーク上及びPC上でのマルウェアと侵入者の動きを具体的にイメージできるよう,ネットワーク及びコンピュータの動作原理並びにそれらに対する攻撃手法への理解を深めてほしい。

設問2(2) 40字以内

本文中の下線③について,遮断の具体的な方法を 40 字以内で述べよ。

解答例

  • プロキシサーバでC&Cサーバへの通信のURLをブラックリストに設定する。
解説

本文の根拠

M 部長の指摘

IP アドレスを基にした FW による通信の遮断では,C&C サーバへの通信を完全には遮断できない可能性があることを指摘した。

図4

五つの異なる FQDN が確認できた。

表1 プロキシサーバ

ブラックリスト型の URL フィルタリング機能をもつ。

マルウェアは五つの異なる FQDN を使い,名前から引かれる IP アドレスは変わり得るので,IP アドレスで FW に遮断を設定するだけでは,C&C サーバへの通信を完全には止められない。そこで,C&C サーバへの通信は図4の手順2のようにプロキシサーバ経由になるので,プロキシサーバがもつブラックリスト型の URL フィルタリング機能に,C&C サーバの URL(FQDN)を登録して遮断する。

遮断の具体的な方法を問う設問なので,“プロキシサーバで”“C&C サーバへの通信の URL を”“ブラックリストに設定する”のように,どこで何をどう設定するかを書く。“FW で遮断する”は,M 部長の指摘した IP アドレス基準の遮断と同じになるので誤り。

40字以内で,解答例は36字。“プロキシサーバ”“URL”“ブラックリスト”の三つを残す。

採点講評(IPA)

設問2は,(1),(2)共に正答率が低かった。ネットワーク構成を理解し,侵入及び漏えいの経路をあらかじめ想定しておくことは,インシデント対応だけでなくセキュリティ対策を考える上で重要である。ネットワーク上及びPC上でのマルウェアと侵入者の動きを具体的にイメージできるよう,ネットワーク及びコンピュータの動作原理並びにそれらに対する攻撃手法への理解を深めてほしい。

設問3(1) 30字以内

図5中の下線④の調査は,どのような攻撃を想定したものか。想定した攻撃を 30 字以内で述べよ。

解答例

  • ファイル配信サーバからマルウェアを拡散する攻撃
解説

本文の根拠

表1 ファイル配信サーバ

パッチの自動配信及びパッチの強制適用に利用されている。

〔初期対応〕

その中には,L 社のファイル配信サーバのホスト名,IT 部の V さんに付与された当該サーバの利用者 ID 及びパスワードが含まれていた。

ファイル配信サーバは,パッチの配信と強制適用に使われ,各 PC・サーバにファイルを送り込める。C&C サーバには,このサーバのホスト名と V さんの利用者 ID・パスワードが送られていたので,攻撃者がそれらを使ってファイル配信サーバにログインし,ファイルとしてマルウェアを配信させ,L 社内に感染を広げる攻撃が想定される。下線④の調査は,最初の感染以降に配信されたファイルを確かめるもので,この攻撃が行われたかを見るためである。

調査の結果は,3月28日以降に配信されたファイルはすべて N さんが V さんに指示したものだった,というものである。

30字以内に収めるときは,“ファイル配信サーバ”“マルウェア”“拡散”を残す。解答例は“ファイル配信サーバからマルウェアを拡散する攻撃”(23字)。“パスワードの窃取”だけでは,このサーバから何が起きるかが書けていない。

設問3(2) 20字以内

本文中の下線⑤について,これら3台のサーバ上で実施すべき対策を 20 字以内で述べよ。

解答例

  • Vさんの利用者IDの無効化
解説

本文の根拠

〔追加調査〕

これら3台のサーバは,L 社ネットワーク構成において重要であり,サービス停止ができないものであった。

〔初期対応〕

ファイル配信サーバ上での当該利用者 ID の無効化

3台のサーバ(NTP サーバ,DHCP サーバ兼内部 DNS サーバ,プロキシサーバ)は,V さんの利用者 ID でアクセスされていたが,不正な操作の形跡はなく,サービスを止められない。この条件で効果があり,すぐに実施できるのは,漏えいした V さんの利用者 ID を各サーバで無効化することである。ファイル配信サーバでは初期対応で同じことを済ませており,3台でも同様にできる。

講評は,サービス停止を伴う対策や,実施までに時間が掛かる対策を書いた解答が散見されたとしている。インシデント対応では,業務への影響を抑えながら被害の拡大を速やかに止める対策が求められる。

20字以内の制限なので,“V さんの利用者 ID”と“無効化”を残す。解答例は“Vさんの利用者IDの無効化”(13字)。

採点講評(IPA)

設問3(2)は,正答率が低かった。不正アクセスされる可能性はあるが,不正操作が行われた形跡はないサーバにおける,サービス停止が業務に大きく影響する場合の対策を問う問題であったが,サービス停止を伴う対策,又は実施までに時間が掛かる対策が解答として散見された。インシデント対応では,業務影響を抑えながら速やかに被害の拡大を食い止める対策を立案・実施することが重要であることを理解してほしい。

設問3(3) 30字以内

本文中の下線⑥について,ログの改ざんの痕跡を確認する方法を 30 字以内で述べよ。

解答例

  • ログ管理サーバに保存されているログとの比較
解説

本文の根拠

表1 ログ管理サーバ

syslog 受信に必要なポート以外は全て閉じ,リモートからアクセスできないようにしている。

各サーバのログ

各サーバ上でも直近3か月分のログを保存している。

調査した3台のサーバのログは,侵入者が書き換えるおそれがある。一方,ログ管理サーバは syslog の受信に必要なポート以外を閉じ,リモートからアクセスできないので,改ざんされにくい。各サーバは,同じログをログ管理サーバにも送って保存している。そこで,各サーバ上のログとログ管理サーバのログを比較し,差異(欠落や書換え)が無いかを見れば,改ざんの痕跡を確認できる。

N さんは,ログの改ざんを想定した調査をしていなかったことを M 部長に報告し,再調査した。

30字以内の制限なので,“ログ管理サーバのログ”と“比較”を残す。解答例は“ログ管理サーバに保存されているログとの比較”(21字)。“ログを確認する”だけだと,改ざんされたログを見て終わってしまう。

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

問3 パスワードへの攻撃

パスワードへの攻撃に関する次の記述を読んで,設問1~4に答えよ。

Z 社は,従業員数 300 名の衣料品販売企業であり,インターネット上で衣料品を購入できるショッピングサイト(以下,Z サイトという)を7年前から運営している。Z サイトは,携帯電話,スマートフォン及び PC を対象としたサイトであり,オンライン決済にはクレジットカードを採用している。クレジットカード情報は会員情報として保存せずに,決済の都度入力してもらう方式にしている。利用者は,会員登録をすれば,購入金額に応じたポイントをためて,購入代金への充当や,他社のギフト券への交換ができる。Z サイトの現在の会員数は約 400 万人である。

Z サイトの会員の利用者 ID は,会員のメールアドレスであり,パスワードは,携帯電話での利便性を考慮し,数字6桁の固定長となっている。同じ日の0時から 24 時の間に連続5回認証に失敗した利用者 ID は,アカウントロック状態となり,翌日にその状態が解除される仕組みとなっている。

〔不正アクセスの発生〕

ある日,Z サイトの問合せ窓口の担当者から,Z サイトの運用を担当しているシステム運用部の A 主任に連絡があり,ポイントが勝手にギフト券に交換されたという被害の連絡を,会員 11 名から受けたことが報告された。報告を受けた A 主任がログサーバを調査したところ,特定の IP アドレスから,Z サイトの会員ページへのログイン試行が,短時間のうちに大量に発生していたことが分かった。A 主任は,上司である B 部長の指示の下,全会員に事象を告知するとともに,経営陣の承認を経て Z サイトを緊急閉鎖し,以前にセキュリティ診断を依頼したことがある Y 社に,この不正アクセスの調査を依頼した。大量のログイン試行のログを表1に示す。

列は“日時”,“接続元 IP アドレス”,“利用者 ID”,“パスワード”。2014/9/18 19:21:10,x.y.1.12,abcde@aaaaa.ne.jp,123456。2014/9/18 19:21:10,x.y.1.12,agikaen@bbbbb.com,123456。2014/9/18 19:21:11,x.y.1.12,12ko3k3@bbbbb.com,123456。2014/9/18 19:21:12,x.y.1.12,k323t4t34@ccccc.ne.jp,123456。2014/9/18 19:21:13,x.y.1.12,93adfasga@ddddd.ne.jp,123456。2014/9/18 19:21:13,x.y.1.12,192slsoso@aaaaa.ne.jp,123456。
表1 大量のログイン試行のログ(抜粋)

〔不正アクセスの調査結果〕

3日後,Y 社による,不正アクセスの詳細な調査が終了した。次は,A 主任が B 部長に調査結果を報告した際の会話である。

A 主任は,早速 Y 社に調査を依頼し,当日中に Y 社による調査が開始された。

〔問題点の調査結果と改善案〕

調査開始から4日後,Z サイトのアカウント管理における問題点の調査結果の報告が Y 社からあり,複数の問題点が存在することが分かった。Y 社が報告した Z サイトのアカウント管理の主要な問題点を図1に示す。

枠内の文章。問題点(ア) パスワード強度が不十分である パスワードに使用できる文字種が数字だけであり,かつ,パスワード長が短い。 問題点(イ) パスワード保存方法が不適切 パスワードをハッシュ化しただけで保存しているので,パスワードファイルが窃取された際に,パスワードを推測されるおそれがある。
図1 アカウント管理の主要な問題点

また,Y 社は,これらの問題点についてそれぞれ図2の改善案を提示した。

枠内の文章。改善案(ア) パスワード強度の変更 ・パスワードに使用できる文字種を,英大文字,英小文字,数字及び記号の 80 種とする。 ・パスワードの最小文字数を8文字,最大文字数を 64 文字とする。 改善案(イ) パスワード保存方法の変更 ・<u>①アカウントごとにソルトを設定し,ソルトとパスワードを結合したものを SHA-256 ハッシュ関数でハッシュ化して保存する</u>。
図2 改善案

A 主任は,これらの改善案を実施するためのシステム改修の見積作業に取り掛かった。

〔暫定再開の検討〕

見積りの結果,ハッシュ値の保存に必要な領域が,1アカウント当たり 16 バイトから a バイトに変更されるのに加え,ソルトの保存領域の追加などの改修やディスクの増設が必要となり,再開まで3か月掛かることが分かった。A 主任は,そのことを B 部長に相談したところ,3か月間の Z サイト閉鎖は,経営上の影響が非常に大きいので,何らかの対応を行った上で暫定再開する方法を Y 社と検討するよう指示を受けた。次はその時の,A 主任と Y 社の C 氏との会話である。

枠内の文章。方法(ア) 単位時間当たりのアカウントロックされた会員の数のしきい値を設定し,そのしきい値を超えた場合には,システム運用部に通知する。 方法(イ) 方法(ア)で検知されない場合に対処するために,[ b ]のしきい値を設定し,そのしきい値を超えた場合には,システム運用部に通知する。システム運用部は,当該 IP アドレスからの接続をファイアウォールのルール設定で遮断する。 方法(ウ) 方法(ア)でも方法(イ)でも検知されない場合に対処するために,単位時間当たりのログイン失敗数のしきい値を設定し,そのしきい値を超えた場合には,システム運用部に通知する。システム運用部は,Z サイトを緊急に閉鎖する必要があるかどうかを検討し,必要がある場合,経営陣の承認を経て閉鎖する。
図3 パスワード攻撃を検知し対応する方法

A 主任は,暫定再開に向けた作業を行い,1週間後,Z サイトを暫定再開した。

〔本格再開の検討〕

A 主任は,本格再開に向けた作業を確認するために,再び C 氏に相談した。次はその時の A 主任と C 氏との会話である。

C 氏は,方法(ア)~(ウ)を組み合わせても検知されずに行われるパスワード攻撃が成功するまでの所要時間を,図4のように説明した。

枠内の文章。【前提条件】 (A) 会員によるログイン失敗が,1日当たり 7,000 件あるとする。 (B) 方法(ウ)中の単位時間当たりのログイン失敗数のしきい値を(A)の2倍,つまり,1日当たり 14,000 件とする。 (C) 攻撃方法の前提条件 (ⅰ) 何らかの方法で n 人分の利用者 ID(会員メールアドレス)のリストを取得済み なお,n>5,000 とする。 (ⅱ) 方法(ア)で検知されないよう,利用者 ID ごとに1日4回を上限に攻撃 (ⅲ) 方法(イ)で検知されないよう,[ c ]から攻撃 (ⅳ) 方法(ウ)で検知されないよう,パスワード攻撃の試行回数の上限は,(A)と合わせても(B)より少ない1日当たり 5,000 件 【攻撃成功時間の計算】 (あ) 数字6桁のパスワードの場合,パスワードの全組合せは,[ d ]通りである。上記の前提条件に沿って,試行の都度パスワードと利用者 ID を変えながらパスワードの全組合せを試行すると,少なくとも[ e ]日掛かる。また,一つのパスワードで,取得済みの全ての利用者 ID に対して試行した後,別のパスワードで,取得済みの全ての利用者 ID に対して試行する。これをパスワードを変えながら繰り返すと,どれか一つの利用者 ID のログインに成功するために要する平均日数は,n によって異なるが,[ e ]日の半分よりも大きく,[ e ]日以下である。 (い) 文字種が 80 種で8桁のパスワードの場合,パスワードの全組合せは,[ f ]通りである。全てのパスワードを試行するためには,3,355 億 4,432 万日掛かる。また,(あ)と同様に試行した場合,どれか一つの利用者 ID のログインに成功するために要する平均日数は,n によって異なり,3,355 億 4,432 万日の半分よりも大きく,3,355 億 4,432 万日以下である。
図4 パスワード攻撃が成功するまでの所要時間の計算

A 主任は,Z サイトの本格再開に向けたシステム改修計画をまとめ,B 部長とともに経営陣の承認を取り,3か月後に本格再開を果たした。

出題趣旨(IPA)

近年,ミドルウェアの脆弱性やWebアプリケーションソフトウェアの脆弱性を狙った攻撃被害の他に,Webサイトへの不正ログインの被害が多数報告されるようになった。こうしたWebサイトへの不正ログインに対してセキュリティ対策を講じるには,Webサイト管理者と利用者のそれぞれが脅威を正しく理解する必要がある。本問では,衣料品のショッピングサイトにおける不正アクセスを題材に,パスワード攻撃に対する正しい理解と,その脅威に対して適切な対策を講じる能力を問う。

採点講評(問全体・IPA)

問3では,Webサイトに対するパスワード攻撃について出題した。全体として正答率は高かった。

設問と解答例

設問1 60字以内

図2中の下線①は,ハッシュ値が保存されているファイルが漏えいした場合に,そのファイルに保存されたハッシュ値からパスワードが推測されることを防ぐための方法である。ソルトを用いることによって防ぐことができる攻撃方法を,60 字以内で具体的に述べよ。

解答例

  • 多くの文字列のハッシュ値を計算したものと,漏えいしたファイル中のハッシュ値を突合し,パスワードを推測する攻撃
解説

本文の根拠

図1 問題点(イ)

パスワードをハッシュ化しただけで保存しているので,パスワードファイルが窃取された際に,パスワードを推測されるおそれがある。

冒頭

パスワードは,携帯電話での利便性を考慮し,数字6桁の固定長となっている。

図2 改善案(イ)

①アカウントごとにソルトを設定し,ソルトとパスワードを結合したものを SHA-256 ハッシュ関数でハッシュ化して保存する

ハッシュ値だけが保存されているとき,パスワードファイルが漏えいすると,攻撃者は候補になる文字列のハッシュ値をあらかじめ多数計算しておき,ファイル中のハッシュ値と突き合わせてパスワードを推測できる。数字6桁のパスワードなら候補は100万通りで,全部のハッシュ値を計算した表を用意するのは容易である。同じパスワードは同じハッシュ値になるので,一つの表がすべてのアカウントに使える。

ソルトをアカウントごとに付けてからハッシュ化すれば,同じパスワードでもハッシュ値が変わり,事前に計算した表とは突き合わせられない。下線①が防ぐのはこの攻撃である。

講評は,正答率が低かったとして,ソルトなどの対策やレインボーテーブルを用いた攻撃が成功しない理由を述べる解答が多かったこと,一般的な知見ではなく本文の事例に即して答えてほしかったことを挙げている。問われているのは“攻撃方法”で,“ハッシュ値を計算したものと漏えいしたファイルのハッシュ値を突合してパスワードを推測する”と書く。60字以内で,解答例は54字。“多くの文字列のハッシュ値を計算したもの”と“漏えいしたファイル中のハッシュ値との突合”の二つを残す。

採点講評(IPA)

設問1は正答率が低かった。ハッシュ化だけが施されたパスワードファイルに対する具体的な攻撃方法を問う問題であったが,ソルトなどの対策やレインボーテーブルを用いた攻撃が成功しない理由などを述べる解答が多かった。一般的な知見で解答するのではなく,本文に記載された事例に即して解答してほしかった。

設問2(1) 解答欄1つ

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

〔a〕解答例

  • 32
解説

本文の根拠

〔暫定再開の検討〕

ハッシュ値の保存に必要な領域が,1アカウント当たり 16 バイトから

図2 改善案(イ)

SHA-256 ハッシュ関数でハッシュ化して保存する

SHA-256 のハッシュ値は 256 ビットで,バイトにすると 256÷8=32 バイトである(FIPS 180-4)。現行の 16 バイトは 128 ビットのハッシュ値で,改善後は SHA-256 になるので,保存領域は 16 バイトから 32 バイトに変わる。よって a は 32。

計算問題ではなく,ハッシュ関数の出力長を知っているかを問う設問である。ソルトの保存領域は別に追加すると本文にあり,ここには含めない。

字数制限は無く,数値で答える。解答例は“32”。

設問2(2) 30字以内 解答欄1つ

図3中の b に入れる適切な字句を,30 字以内で述べよ。

〔b〕解答例

  • 単位時間当たりの同一IPアドレスからのログイン試行数
解説

本文の根拠

A 主任の発言

パスワードを固定した上で,約 70 万個の文字列を次々に利用者 ID として入力し,ログインを試行するという攻撃があったとのことでした。

C 氏の発言

方法(イ)では,今回の攻撃のように,同一 IP アドレスからのリバースブルートフォース攻撃を検知します。

図3 方法(イ)

システム運用部は,当該 IP アドレスからの接続をファイアウォールのルール設定で遮断する。

今回の攻撃は,パスワードを固定して利用者 ID を変えながら試行するリバースブルートフォース攻撃で,利用者 ID ごとの失敗回数は増えにくいため,方法(ア)のアカウントロックの数では検知できない。方法(イ)は,同一の IP アドレスから短時間に大量のログイン試行が行われることを検知して,その IP アドレスを FW で遮断する方法なので,しきい値を設定する対象は“単位時間当たりの同一IPアドレスからのログイン試行数”になる。

講評は,設問2の(2)と(3)は正答率が高く,パスワード攻撃の手法ごとの特徴とその検知方法がよく理解されていたとしている。ログイン“失敗”数としないこと。方法(ウ)の“ログイン失敗数”との違いは,IP アドレスごとに数える点にある。

30字以内で,解答例は26字。“単位時間当たり”“同一 IP アドレス”“ログイン試行数”の三つを残す。

採点講評(IPA)

設問2(2)と(3)は,正答率が高かった。パスワード攻撃の検知について問う問題であったが,パスワード攻撃手法ごとの特徴や,その検知方法ついて,よく理解されているようであった。

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

本文中及び図4中の c に入れる適切な字句を,15 字以内で答えよ。

〔c〕解答例

  • 多数のIPアドレス
解説

本文の根拠

図4 (ⅲ)

方法(イ)で検知されないよう,cから攻撃

図3 方法(ウ)

方法(ア)でも方法(イ)でも検知されない場合に対処するために,単位時間当たりのログイン失敗数のしきい値を設定し

C 氏の発言

方法(ウ)では, c から行われるパスワード攻撃を検知します。

方法(イ)は同一 IP アドレスからの試行数を数えるので,その検知を避けるには,一つの IP アドレスの試行数がしきい値に届かないように,複数の IP アドレスに分散して攻撃すればよい。分散した攻撃は,IP アドレスごとの数ではなく,サイト全体のログイン失敗数に表れるので,方法(ウ)がそれを検知する。図4の(ⅲ)と本文の c は同じ字句で,“多数のIPアドレス”になる。

講評は,設問2の(2)と(3)は正答率が高かったとしている。

15字以内で,解答例は9字。“複数の IP アドレス”でもよいが,“同一 IP アドレス”と書くと方法(イ)で検知されてしまうので誤りである。

採点講評(IPA)

設問2(2)と(3)は,正答率が高かった。パスワード攻撃の検知について問う問題であったが,パスワード攻撃手法ごとの特徴や,その検知方法ついて,よく理解されているようであった。

設問3 解答欄3つ

図4中の d~f に入れる適切な数式又は実際の値を答えよ。

〔d〕解答例

  • 106

〔e〕解答例

  • 200

〔f〕解答例

  • 808
解説

本文の根拠

図4 (ⅳ)

パスワード攻撃の試行回数の上限は,(A)と合わせても(B)より少ない1日当たり 5,000 件

図4 (い)

全てのパスワードを試行するためには,3,355 億 4,432 万日掛かる。

d は,数字6桁のパスワードの全組合せで,10 の 6 乗=106(100万)通り。e は,1日に試行できる件数の上限が 5,000 件((ⅳ))なので,106÷5,000=200 日。f は,文字種80種で8桁なので 808 通りで,808=1.6777216×1015。これを 5,000 で割ると 3.3554432×1011 日で,本文の“3,355 億 4,432 万日”と一致する。

(ⅳ)の 5,000 件は,(A)の 7,000 件と合わせて 12,000 件で,(B)の 14,000 件より少ないので,方法(ウ)で検知されない上限になる。方法(ア)についても,n>5,000 なら,一つの利用者 ID に1日4回までという条件のもとで,1日に 5,000 件を分散して試行できる。

式で答えてよく,解答例は d が“106”,e が“200”,f が“808”。e は本文で3回使われているので,一度求めた値を使い回す。f は,答えの 3,355 億 4,432 万日が先に書かれているので,それを 5,000 倍して確かめられる。

設問4 45字以内

本文中の下線②は,どのような攻撃による被害を避けるための注意喚起か。攻撃方法を 45 字以内で具体的に述べよ。

解答例

  • 他のサイトから流出した利用者IDとパスワードの組合せによるパスワード攻撃
解説

本文の根拠

冒頭

Z サイトの会員の利用者 ID は,会員のメールアドレスであり

C 氏の発言(下線②)

会員には②他のサイトで使っていないパスワードを設定してもらうよう注意喚起した方がいいですね。

利用者はいくつものサイトで同じパスワードを使い回しがちで,利用者 ID にメールアドレスを使うサイトでは,ID も同じになる。ほかのサイトから流出した利用者 ID とパスワードの組合せをリストにして,このサイトのログインに試す攻撃(パスワードリスト攻撃)が成り立つ。このサイトでだけ使うパスワードにしてもらえば,他サイトの流出で被害を受けない。

Z サイトのパスワード強度を上げても,他サイトで流出したパスワードをそのまま使われる攻撃は防げない。だから,利用者への注意喚起が要る。講評は,設問4は正答率が高く,パスワードリスト攻撃への理解が進んでいるようだとしている。

45字以内で,解答例は36字。“他のサイトから流出した”“利用者 ID とパスワードの組合せ”“パスワード攻撃”を残す。“総当たり”や“辞書”では,下線②の注意喚起の理由にならない。

採点講評(IPA)

設問4は正答率が高かった。パスワードリスト攻撃の具体的な方法を問う問題であったが,Webサイトに対するパスワード攻撃は,マスコミに取り上げられることも多かったので,理解が進んでいると思われる。

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