‹ ぱすてく

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

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

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

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

この年度を解いてみる

問1 パケットログ解析

パケットログ解析に関する次の記述を読んで,設問 1~3 に答えよ。

A 社は,従業員数 500 名の小売業者である。A 社では,ネットワークの構築,運用を自社で行っている。ある朝,社内 LAN からインターネット上の Web ページを閲覧しているときの応答が遅いといった苦情が寄せられ,システム管理部門の J 主任と運用担当の K 君が調査を行うことになった。

〔原因調査と対処〕

J 主任と K 君は,Web ページの閲覧状況の確認から始めることにした。

ブラウザの画面。メニューは「ファイル 編集 表示 お気に入り 設定 ヘルプ」。アドレス欄に http://www.ipa.go.jp/ と表示されている((p) の矢印が付いている)。Web ページの表示エリアは空白で表示待ちの状態((q) の矢印が付いている)。画面下部のステータス欄に「www.ipa.go.jp のアドレス解決をしています」と表示されている((r) の矢印が付いている)。
図 1 Web ページを閲覧しようとしたときのブラウザの状態
A 社の社内ネットワークの構成図。インターネットにルータ(R)がつながり,その先にファイアウォール(FW)がある。ルータと FW の間にパケットモニタ Z,FW の先(FW と DMZ・社内 LAN の間)にパケットモニタ Y が設置されている。FW には DMZ と社内 LAN が接続される。DMZ には DNS サーバ,Web サーバ,メールサーバがある。社内 LAN には α 部門から θ 部門までの複数の部門があり,各部門はルータ(R)を介して社内 LAN に接続され,各部門に PC が複数ある。凡例:R はルータ,FW はファイアウォール。
図 2 A 社の社内ネットワークの構成
列は番号,経過時間(秒),送信元,あて先,プロトコル,詳細。全 6 行で,どの行も送信元は p1.p2.p3.p4,あて先は r1.r2.r3.r4,プロトコルは DNS。番号 1(0.000 秒)と 2(0.001 秒)の詳細は Query response, No such name。番号 3(0.003 秒)と 4(0.004 秒)の詳細は Query response, A q1.q2.q3.q4。番号 5(0.007 秒)と 6(0.008 秒)の詳細は Query response, A s1.s2.s3.s4。送信元の列全体が (Ⅰ),あて先の列全体が (Ⅱ),詳細の番号 1,2 が (Ⅲ),番号 3,4 が (Ⅳ),番号 5,6 が (Ⅴ) の点線枠で囲まれている。注:p1.p2.p3.p4 は DMZ 上の DNS サーバの IP アドレス,q1.q2.q3.q4 は DMZ 上の Web サーバの IP アドレス,r1.r2.r3.r4 と s1.s2.s3.s4 はインターネット上の IP アドレス。
図 3 パケットモニタ Z のログ(抜粋)

〔異常 PC の特定〕

K 君は社内 LAN に接続されたすべての部門のルータの配下にパケットモニタを設置して,異常な通信の監視を開始した。

列は番号,経過時間(秒),送信元,あて先,プロトコル,詳細。番号 1(0.000):a1.a2.a3.a4 から b1.b2.b3.b4 へ DNS,Query, MX ipa.go.jp。番号 2(0.328):b1.b2.b3.b4 から a1.a2.a3.a4 へ DNS,Query response, MX 10 ipa.go.jp。番号 3(1.503):a1.a2.a3.a4 から c1.c2.c3.c4 へ DNS,Query, MX jitec.ipa.go.jp。番号 4(1.632):c1.c2.c3.c4 から a1.a2.a3.a4 へ DNS,Query response MX 20 jitec.ipa.go.jp。番号 5(1.982):a1.a2.a3.a4 から d1.d2.d3.d4 へ DNS,Query, MX sec.ipa.go.jp。番号 6(2.036):d1.d2.d3.d4 から a1.a2.a3.a4 へ DNS,Query response MX 10 sec.ipa.go.jp。番号 1~6 の行全体が (Ⅵ) の点線枠で囲まれている。途中(省略)の後,番号 16(2.421):a1.a2.a3.a4 から e1.e2.e3.101 へ Netbios,TCP-SYN。番号 17(2.532):a1.a2.a3.a4 から e1.e2.e3.102 へ Netbios,TCP-SYN。番号 18(2.592):a1.a2.a3.a4 から e1.e2.e3.103 へ Netbios,TCP-SYN。番号 19(2.604):a1.a2.a3.a4 から e1.e2.e3.104 へ Netbios,TCP-SYN。番号 16~19 の行(及びその後の省略部分)が (Ⅶ) の点線枠で囲まれている。注:a1.a2.a3.a4 は α 部門内の IP アドレス,b1.b2.b3.b4,c1.c2.c3.c4,d1.d2.d3.d4,e1.e2.e3.101~104 はインターネット上の IP アドレス。
図 4 社内 LAN からインターネットに向けたパケットログ(抜粋)

〔異常 PC の対処と今後の対策〕

J 主任と K 君は,全部門のパケットモニタのログを調べた結果,IP アドレスが a1.a2.a3.a4 のログだけに異常が見られたことから,この IP アドレスの PC への対処を開始した。この対処として,通信プロセス名,実行ファイル名,通信のあて先の IP アドレスとポート番号を記録する通信プロセスモニタを,該当する PC に設定して監視を行った。

hosts ファイルの内容が枠内に 6 行で書かれている。127.0.0.1 localhost,127.0.0.1 www.○○○.com,127.0.0.1 download.△△△.co.jp,127.0.0.1 get.□□□.com,127.0.0.1 update.◇◇◇.com,127.0.0.1 get.☆☆☆.com。2 行目から 6 行目の括弧書きで「ウイルス対策ソフトのパターンファイルの配布サイト」と示されている。注:図中の“○○○”,“△△△”,“□□□”,“◇◇◇”,“☆☆☆”は,特定の文字列を表す。
図 5 異常 PC の hosts ファイル

その後,J 主任と K 君は,ウイルスの感染経路を特定し,再発防止策を講じた。

出題趣旨(IPA)

社内LAN上の異常を解析するツールとして,パケットモニタは有効である。ウイルスに感染したPCが外部と通信を行う際にDNSサーバを利用した名前解決を行うことが多く,DNSクエリに注目すると異常を特定しやすい。特に,スパムメールの踏み台になったPCの場合,メールの配送先を示すMXレコードを検索して,該当するメールサーバにスパムメールを送りつける。また,DNS通信はステートレスなUDPプロトコルであるので,発信元IPアドレスを詐称したDNS Reflection攻撃の踏み台にされる危険性がある。本問では,パケットモニタを利用して,このような異常を解析する手順と,DNSサーバの危険性についての理解を問う。

採点講評(問全体・IPA)

問1では,社内ネットワークから発信される攻撃に対して,踏み台となっているPCやDNSサーバの不備を,ネットワークモニタを使って突き止める手法について出題した。全体として正答率はやや低かった。

設問と解答例

設問1(1) 解答欄1つ

本文中の a に該当する最も適切な箇所を図 1 中の (p)~(r) から選び,記号で答えよ。

〔a〕解答例

  • (r)
解説

本文の根拠

J 主任の発言

図 1 中の a を見ると,DMZ 上の DNS サーバに問題があるようです。

図 1

画面下部のステータス欄に「www.ipa.go.jp のアドレス解決をしています」と表示されている

J 主任は,a を見て DMZ 上の DNS サーバに問題があると判断している。DNS サーバが担うのは名前解決(ホスト名から IP アドレスを求めること)なので,a には名前解決の状況を示す箇所が入る。図 1 では,ステータス欄の“www.ipa.go.jp のアドレス解決をしています”がそれに当たり,記号は (r) である。

(p) はアドレス欄に入力した URL,(q) は Web ページの表示エリア(表示待ち)で,どちらも画面に表示されている結果や入力であって,DNS サーバの処理状況を示すものではない。表示エリアが空白のまま待たされている原因が,ステータス欄にある“アドレス解決”の段階で止まっていることだと読み取る。

記号で答える設問である。“DNS サーバに問題がある”という判断につながる表示は何かを,各箇所の内容と照らして選ぶ。

設問1(2) 解答欄2つ

本文中の b に入れる適切な字句を解答群の中から選び,記号で答えよ。また,本文中の c に入れる適切な字句を,5 字以内で答えよ。b に関する解答群 ア DMZ 上の DNS サーバ イ DMZ 上の Web サーバ ウ インターネット上

〔b〕解答例

  • ウ

〔c〕解答例

  • 詐称
解説

本文の根拠

K 君の発言

パケットモニタ Z には,DNS クエリを伴わない DNS クエリレスポンスが多量に記録されていました。

図 3

全 6 行で,どの行も送信元は p1.p2.p3.p4,あて先は r1.r2.r3.r4,プロトコルは DNS。

図 3 は,DMZ 上の DNS サーバ(p1.p2.p3.p4)がインターネット上の r1.r2.r3.r4 へ返した DNS クエリレスポンスの記録で,対応するクエリは記録されていない。J 主任の説明は“社内 LAN 上の PC が DNS クエリを送信するときに自身の IP アドレスを b の IP アドレスに c した場合”に記録される,というものである。クエリの送信元アドレスが偽られていれば,DNS サーバは応答をその偽のアドレスあてに返す。応答のあて先がインターネット上の r1.r2.r3.r4 なので,PC は自身の IP アドレスをインターネット上のアドレスに偽った,と読める。したがって b はウ(インターネット上),c は詐称である。

アの DMZ 上の DNS サーバは図 3 では応答の送信元側(p1.p2.p3.p4),イの DMZ 上の Web サーバのアドレス(q1.q2.q3.q4)は応答の中身に出てくるもので,どちらもクエリレスポンスのあて先ではない。

c は 5 字以内で,解答例は“詐称”の 2 字。自分のアドレスを別のアドレスに見せかける行為を表す短い語で答える。

設問1(3) 解答欄1つ

本文中の d に入れる適切な字句を解答群の中から選び,記号で答えよ。解答群 ア DNS cache poisoning イ DNS reflection ウ 総当たり エ ファーミング

〔d〕解答例

  • イ
解説

本文の根拠

K 君の発言

パケットモニタ Z には,DNS クエリを伴わない DNS クエリレスポンスが多量に記録されていました。

J 主任の発言

こういった通信は d 攻撃と呼ばれています。

送信元を偽った DNS クエリを DNS サーバに送ると,その応答は偽られたあて先(被害者)へ返される。クエリを送った側は応答を受け取らず,被害者のもとにクエリを伴わない応答が届く。このように DNS サーバを踏み台にして第三者へ応答を送りつけさせる攻撃が DNS reflection(イ)である。CISA の資料にも,UDP は送信元アドレスを検証しないので,攻撃者が要求の送信元を被害者のアドレスに偽ると,応答が被害者へ送られる,と説明されている。

アの DNS cache poisoning は DNS サーバが覚える情報(キャッシュ)に偽の情報を入れる攻撃,ウの総当たりはパスワードなどを順に試す攻撃,エのファーミングは利用者を偽のサイトへ誘導する攻撃で,どれも“クエリを伴わない応答が被害者に届く”という図 3 の状況とは異なる。

記号で答える設問である。図 3 の特徴(クエリが無く,応答だけが外部へ向かう)から,攻撃の名前を選ぶ。

設問1(4) 解答欄3つ

本文中の e に該当する適切な箇所を図 3 中の (Ⅰ),(Ⅱ) から,f に該当する適切な箇所を (Ⅲ)~(Ⅴ) からそれぞれ選び,記号で答えよ。また,本文中の下線①について,どのような修正を行うべきか。50 字以内で述べよ。

〔e〕解答例

  • (Ⅱ)

〔f〕解答例

  • (Ⅴ)

〔修正〕解答例

  • インターネットからのA社以外のドメイン上のアドレスに関するDNSクエリを拒否する。
解説

本文の根拠

J 主任の発言

図 3 中の e と f の記録から,DMZ 上の DNS サーバが攻撃の踏み台に利用される危険性があることが分かります。

図 3

番号 5(0.007 秒)と 6(0.008 秒)の詳細は Query response, A s1.s2.s3.s4。

図 3 の注

r1.r2.r3.r4 と s1.s2.s3.s4 はインターネット上の IP アドレス。

e は,攻撃の被害者を示す箇所である。応答のあて先は,すべての行で r1.r2.r3.r4 なので (Ⅱ) になる。f は,DNS サーバが踏み台に利用される危険性を示す箇所である。(Ⅲ) は“No such name”,(Ⅳ) は A 社の Web サーバ(q1.q2.q3.q4)のアドレスの応答で,A 社が管理するドメインの名前に関する応答と読める。これに対し (Ⅴ) の応答は,インターネット上のアドレス s1.s2.s3.s4 を返している。A 社以外のドメインの名前の問合せにも応答していることを示すので,踏み台に使われる危険性を表す記録は (Ⅴ) である。

下線①の修正は,この危険性をなくす設定である。講評は,企業の DNS サーバが本来応答する必要のない外部ホストからの外部アドレスの問合せを許していると DNS Reflection 攻撃の踏み台に悪用されるおそれがある,とし,“修正”の解答には問合せ元と問合せ対象の両者を含めてほしかったとしている。解答例は“インターネットからのA社以外のドメイン上のアドレスに関するDNSクエリを拒否する。”である。

50 字以内に対し解答例は 41 字。“インターネットからの”(問合せ元)と“A社以外のドメイン上のアドレスに関する”(問合せ対象)を両方入れ,“拒否する”で結ぶ。どちらかが欠けると,講評が指摘した誤答になる。

採点講評(IPA)

設問1(4)は,正答率が低かった。企業のDNSサーバにおいて,本来応答する必要のない外部ホストからの外部アドレスの問合せを許していると,DNS Reflection攻撃の踏み台に悪用されるおそれがある。“修正”についての解答には,問合せ元と問合せ対象の両者を含めてほしかった。DNSサーバには,そのプロトコル上の性質から様々な脆弱性が指摘されており,設定には細心の注意が必要であることを理解してほしい。

設問2(1) 解答欄2つ

本文中の下線②の不審な通信挙動について,30 字以内で具体的に述べよ。また,本文中の g に入れる適切な字句を解答群の中から選び,記号で答えよ。解答群 ア DNS amplification 攻撃 イ UDP ポートスキャン ウ ゾーン転送 エ 迷惑メール送信

〔不審な通信挙動〕解答例

  • 名前解決のために3台以上のDNSサーバと通信している。
  • A社以外のDNSサーバにMXレコードを問い合わせている。

〔g〕解答例

  • エ
解説

本文の根拠

K 君の発言

すべての社内 PC からの名前解決を,DMZ 上の DNS サーバが担っています

図 4

番号 5(1.982):a1.a2.a3.a4 から d1.d2.d3.d4 へ DNS,Query, MX sec.ipa.go.jp。

J 主任の発言

これは g におけるアドレス探索に見られる特徴です。

社内 PC の名前解決は DMZ 上の DNS サーバが担っているので,通常の社内 PC は DMZ 上の DNS サーバだけに問い合わせる。ところが図 4 の (Ⅵ) では,a1.a2.a3.a4 が b1.b2.b3.b4,c1.c2.c3.c4,d1.d2.d3.d4 と,インターネット上の 3 台の DNS サーバに直接問い合わせている(名前解決のために3台以上のDNSサーバと通信している。)。しかも問い合わせているのはすべて MX レコードである(A社以外のDNSサーバにMXレコードを問い合わせている。)。

MX レコードはメールの配送先を示すので,これを次々に調べるのは,メールサーバを探してメールを送りつけるときの特徴である。出題趣旨も,スパムメールの踏み台になった PC は MX レコードを検索して該当するメールサーバにスパムメールを送りつける,と述べている。g は迷惑メール送信(エ)。アの DNS amplification 攻撃,イの UDP ポートスキャン,ウのゾーン転送は,MX レコードを多数のドメインについて検索する動作とは結び付かない。

不審な通信挙動は 30 字以内に対し,解答例は 27 字と 28 字。講評は“パケット量が多い”などのあいまいな解答が散見されたとし,正しい通信手順とマルウェアの通信パターンの差異の理解を求めている。通信の相手(社内ではない複数の DNS サーバ)と,問い合わせの種類(MX レコード)を具体的に書く。

採点講評(IPA)

設問2(1)では,パケットモニタの状況から異常を読み取る能力を問うている。正しい通信手順とマルウェアの通信パターンの差異についての理解を求めているが,“パケット量が多い”などのあいまいな解答が散見された。

設問2(2)

本文中の下線③の通信の異常な偏りについて,該当するものを解答群の中から二つ選び,記号で答えよ。解答群 ア DNS クエリなしに通信を試みたあて先アドレス数の増加 イ TCP-RST パケット受信数の低下 ウ コネクション接続成功率の低下 エ 平均パケットサイズの増加

解答例

  • ア,ウ
解説

本文の根拠

J 主任の発言

(Ⅶ) に示す通信によって,③通信の異常な偏りが発生します。

図 4

番号 16(2.421):a1.a2.a3.a4 から e1.e2.e3.101 へ Netbios,TCP-SYN。

図 4 の (Ⅶ) は,a1.a2.a3.a4 が e1.e2.e3.101,.102,.103,.104 と,連続するインターネット上のアドレスへ次々に TCP-SYN を送っている記録である。しかも,その直前に (Ⅵ) のような DNS クエリによる名前解決をしていないので,DNS クエリなしに通信を試みるあて先アドレスの数が増える(ア)。また,連続したアドレスに片端から接続を試みても,多くのあて先ではコネクションが確立しないので,コネクション接続成功率は低下する(ウ)。

イの“TCP-RST パケット受信数の低下”とエの“平均パケットサイズの増加”に当たる変化は,(Ⅶ) の記録(サイズの小さい TCP-SYN の連続)からは読み取れない。通信の偏りは,あて先の広がりと接続の成否に現れる。

二つ選ぶ設問で,解答例は“ア,ウ”である。偏りは正常な通信と比べた変化なので,各選択肢が増加か低下かの向きまで含めて図 4 と合うかを確かめる。

設問3(1) 40字以内

本文中の下線④について,K 君はどのような通信挙動のプロセスに注目したか。40 字以内で述べよ。

解答例(2通り)

  • OSやアプリケーションが本来通信しないあて先ホストと通信するプロセス
  • OSやアプリケーションが本来通信しないあて先ポートを利用するプロセス
解説

本文の根拠

〔異常 PC の対処と今後の対策〕

通信プロセス名,実行ファイル名,通信のあて先の IP アドレスとポート番号を記録する通信プロセスモニタを,該当する PC に設定して監視を行った。

K 君の発言

起動していた④不審な通信プロセスを特定でき

通信プロセスモニタが記録するのは,通信プロセス名,実行ファイル名,通信のあて先の IP アドレスとポート番号である。この中から“不審な通信プロセス”を見つけるには,プロセスが通信しているあて先ホスト,又はあて先ポートに注目すればよい。OS やアプリケーションは,ふだんは決まったホストの決まったポートとしか通信しない。そこで,本来通信しないあて先ホストと通信するプロセス,又は本来通信しないあて先ポートを利用するプロセスが不審な通信プロセスになる。解答例はこの二つで,どちらでもよい。

記録項目のうち,プロセス名や実行ファイル名は名前が分かるだけなので,通信の相手に関する項目(あて先の IP アドレスとポート番号)を手掛かりにする。

40 字以内に対し解答例は 34 字。“本来通信しない”という基準と,“あて先ホスト(又はあて先ポート)”という注目点を書く。

設問3(2) 40字以内

本文中の下線⑤について,正常な PC を放置した場合,どのような TCP/UDP パケットが観測されるべきなのか。図 5 を考慮して 40 字以内で述べよ。

解答例

  • ウイルス対策ソフトによるパターンファイルの更新確認パケット
解説

本文の根拠

K 君の発言

この PC ではウイルス対策ソフトが起動しており,そのパターンファイルの自動更新も設定されていました。

J 主任の発言

操作しない PC でも PC にログインしていれば,⑤TCP/UDP パケットは自動的に発信されます。

K 君の発言

図 5 が hosts ファイルです。確かに,ウイルス対策ソフトのパターンファイルの配布サイト情報が追加されているようです。

図 5 の hosts ファイルでは,ウイルス対策ソフトのパターンファイルの配布サイトのホスト名がすべて 127.0.0.1(自分自身を指すアドレス)に対応付けられている。このため,パターンファイルの更新を確認しようとしても配布サイトに接続できず,更新確認の通信が外に出ない。操作しない PC でもログインしていれば TCP/UDP パケットが自動的に発信されるのは,ウイルス対策ソフトが自動更新の確認のために通信するからで,正常な PC ならば“ウイルス対策ソフトによるパターンファイルの更新確認パケット”が観測されるはずである。

講評も,マルウェアが hosts ファイルを改ざんしてウイルス対策ソフトのアップデート機能を無効にすると PC に異常が現れること,パケットの送信状況を外部からモニタすることで異常を検知できる場合があることを述べている。

40 字以内に対し解答例は 29 字。“図 5 を考慮して”とあるので,配布サイトに関する通信であることが分かるように,“ウイルス対策ソフト”“パターンファイル”“更新確認”を入れる。

採点講評(IPA)

設問3(2)は,マルウェアがhostsファイルを改ざんして,ウイルス対策ソフトのアップデート機能を無効にすることで,PCに現れる異常について考える問いであった。マルウェアは自身の発見を逃れるために,様々な設定を改ざんするが,パケットの送信状況を外部からモニタすることで異常を検知できる場合があることを理解しておいてほしい。

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

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

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

B 社は,従業員数 400 名で昨年度の年間売上高が 80 億円の菓子製造業者であり,インターネット上の Web 販売システムにおいて自社製品の販売を行っている。この Web 販売システムの管理は社内のシステム運用部が行っている。Web 販売システムの構成を図 1 に,Web 販売システムの概略仕様を図 2 に示す。

B 社の Web 販売システムの構成図。インターネットに FW がつながり,その先のセグメントに DNS サーバと SSL アクセラレータが接続されている。SSL アクセラレータの先に IPS があり,IPS の先に負荷分散装置がある。負荷分散装置に Web サーバ 1,Web サーバ 2,Web サーバ 3 が接続され,3 台の Web サーバは同じセグメントにつながる。そのセグメントに FW を介して DB サーバが接続されている。凡例:FW はファイアウォール,IPS は侵入防止システム,DB サーバはデータベースサーバ。
図 1 B 社の Web 販売システムの構成
枠内に次の仕様が書かれている。(a) Web サーバ上では,主に HTTP 送受信を処理する Web サーバプログラムと,主に DB サーバと連携して動的コンテンツ生成を行う Web アプリケーションが稼働している。(b) Web サーバプログラムと Web アプリケーションは,限定された権限でも動作可能である。(c) SSL 暗号化,復号処理は SSL アクセラレータで行っている。(d) いずれの FW も,アプリケーション層を解釈する機能はもっていない。(e) DB サーバには,顧客の個人情報(住所,氏名,電話番号など機密性の高い情報)が格納されており,Web サーバ上の Web アプリケーションから参照,更新される。(f) Web サーバプログラムは,システム管理者権限で動作している。(g) Web 販売システムの開発のために,B 社のシステム開発部で図 1 とほぼ同一構成である動作試験用システムを別に用意している。
図 2 B 社の Web 販売システムの概略仕様(抜粋)

〔脆弱性情報の発見〕

B 社は情報セキュリティ専門会社からセキュリティ情報の提供を受けている。ある日,Web 販売システムで使用中の Web サーバプログラムに脆弱性が発見されたとの情報が提供された。この Web サーバプログラムの脆弱性情報を図 3 に示す。

枠内に次の 3 項目が書かれている。・HTTP POST メソッドにおいて,HTTP ヘッダ内に RFC で定義されていない“X-Sender”というヘッダフィールドを指定することで,任意の OS コマンドを実行させることが可能である。その際,OS コマンドは Web サーバプログラムの動作権限で実行される。・そのほかのメソッドでは,この脆弱性は報告されていない。・Exploit コードが公開されている。
図 3 Web サーバプログラムの脆弱性情報(抜粋)

〔脆弱性の評価〕

次は,Web サーバプログラムの脆弱性に関する,システム運用部の P 君と Q 課長との会話である。

枠内に次の規程が書かれている。・ソフトウェアの脆弱性評価は,対処の緊急性の観点から,緊急,重要,注意の 3 段階判定とし,次の表に示す定義に基づき判定する。表 脆弱性評価基準表。列は評価,脆弱性によって引き起こされることが想定される被害(損害金額が算出可能な場合 (*1),損害金額の算出が難しい場合 (*2) の 2 列)。緊急:(*1) 被害によって年間売上高の 1%に相当する金額を超える経済的損害が発生する。(*2) 次の事象によって顧客からの信頼を大きく損なう。(1) 機密性の高い情報が漏えいする。(2) システムの機能が全面的に停止する。重要:(*1) 被害によって年間売上高の 1%に相当する金額以下の経済的損害が発生する。(*2) 次の事象によって顧客からの信頼を損なう。(1) 機密性の低い情報が漏えいする。(2) システム性能が部分的に低下する。(3) ログの内容が漏えいする。注意:(*1) 経済的損害は発生しない。(*2) 顧客からの信頼を損なうおそれは少ない。例)・システム設定ファイルの内容が漏えいする。・CGI スクリプトファイルのソースコードが漏えいする(ほかの被害にはつながらない)。注:損害金額が算出可能な場合は (*1) を使用し,算出が難しい場合は (*2) を使用して判定する。損害金額の算出には,間接的損害は算入しない。
図 4 B 社の脆弱性評価規程(抜粋)

〔暫定的対策の検討〕

この検討の後,速やかに IPS による暫定的対策を実施した。

〔修正プログラムの適用〕

暫定的対策を実施した日から 10 日後に,P 君は,脆弱性に対応する修正プログラムの提供が開始されたことを Q 課長に報告した。報告には S 君も同席した。

枠内に次の手順が書かれている。次の (1)~(3) の手順を,Web サーバ 1~3 の全 3 台に対して順次適用する。(1) 対象となる Web サーバを [ b ] ために,負荷分散装置の設定を変更する。(2) 対象となる Web サーバの Web サーバプログラムに修正プログラムを適用する。(3) 負荷分散装置の設定を元に戻す。
図 5 修正プログラム適用手順案

その後,T 課長への説明も済み,図 5 の手順によって速やかに修正プログラムの適用を実施することになった。その結果,Web 販売システムの停止を伴うことなく脆弱性の対策が完了した。

出題趣旨(IPA)

今日,システムの安全な運用を継続するためには,脆弱性情報の適切な取扱いと,修正プログラムの迅速な適用などの情報セキュリティ運用は,必須要件となっている。本問では,コンピュータシステムの日常運用で必要とされる脆弱性管理のポイント,具体的には,日々公表される脆弱性情報に関して,その内容から自社システムにおいて必要な対応を決定するための判断,脆弱性が大きな問題となるWebサーバで使用されるhttpの理解,OS,アプリケーションプログラムなどへ修正プログラムを適用する作業に関する理解について問う。

採点講評(問全体・IPA)

問2では,Webサーバプログラムの脆弱性対策について出題した。全体として正答率は想定どおりだった。

設問と解答例

設問1(1) 50字以内

本文中の下線①において,P 君が脆弱性について“緊急”に相当すると判定した具体的根拠は何か。50 字以内で述べよ。

解答例(2通り)

  • 攻撃者が指定したコマンドが実行されると,システムが全面的に停止するおそれがある。
  • 管理者権限が奪われ,DBサーバ内の個人情報が漏えいする可能性がある。
解説

本文の根拠

図 3

任意の OS コマンドを実行させることが可能である。その際,OS コマンドは Web サーバプログラムの動作権限で実行される。

図 2 (f)

(f) Web サーバプログラムは,システム管理者権限で動作している。

図 4

(1) 機密性の高い情報が漏えいする。(2) システムの機能が全面的に停止する。

P 君は,損害金額の算出が難しい場合の基準(*2)で判定している。この基準で“緊急”になるのは,機密性の高い情報の漏えい,又はシステムの機能の全面的な停止が起こる場合である。図 3 の脆弱性では,任意の OS コマンドが Web サーバプログラムの動作権限で実行され,図 2 の (f) のとおりその権限はシステム管理者権限である。したがって,攻撃者が指定したコマンドが実行されると,システムが全面的に停止するおそれがある。また,管理者権限が奪われれば,図 2 の (e) の DB サーバ内の個人情報(機密性の高い情報)が漏えいする可能性がある。解答例は,この二つのどちらかである。

“重要”の基準(機密性の低い情報の漏えい,システム性能の部分的な低下など)や,“注意”の基準(システム設定ファイルの内容の漏えいなど)には当たらない。被害の大きさを,*2 の基準の文言に合わせて述べる。

50 字以内に対し解答例は 40 字と 34 字。“管理者権限”(又はシステムの停止)という攻撃の結果と,“個人情報の漏えい”という被害を組み合わせ,基準の文言に対応させる。

採点講評(IPA)

設問1は,正答率がやや低かった。(2)では,攻撃が成功する可能性や,攻撃が成功した場合の被害の大きさを解答した誤答が散見された。攻撃が試みられる可能性が高いことと,その攻撃が成功する可能性が高いことは,それぞれ別の特性であることを考えて解答してほしかった。

設問1(2) 25字以内

本文中の下線②において,Q 課長が,攻撃が実際に行われる可能性が高いと考えた根拠は何か。25 字以内で述べよ。

解答例(2通り)

  • 攻撃手法が公開されている。
  • Exploitコードを基にした攻撃が予想される。
解説

本文の根拠

図 3

Exploit コードが公開されている。

Q 課長の発言

②図 3 の脆弱性情報から考えても,攻撃が実際に行われる可能性が高い

Q 課長が根拠にしているのは図 3 の脆弱性情報であり,その中で攻撃の実行しやすさを示すのは“Exploit コードが公開されている”という記述である。攻撃手法が公開されているので,それを基にした攻撃が予想される。解答例は“攻撃手法が公開されている。”と“Exploitコードを基にした攻撃が予想される。”で,どちらでもよい。

講評は,攻撃が成功する可能性や,攻撃が成功した場合の被害の大きさを答えた誤答が散見されたとし,攻撃が試みられる可能性が高いことと,その攻撃が成功する可能性が高いことは,それぞれ別の特性であるとしている。問われているのは前者(攻撃が行われる可能性)の根拠である。

25 字以内に対し解答例は 13 字と 24 字。図 3 にある“公開”の事実だけを短く書き,被害の大きさには触れない。

採点講評(IPA)

設問1は,正答率がやや低かった。(2)では,攻撃が成功する可能性や,攻撃が成功した場合の被害の大きさを解答した誤答が散見された。攻撃が試みられる可能性が高いことと,その攻撃が成功する可能性が高いことは,それぞれ別の特性であることを考えて解答してほしかった。

設問2(1) 解答欄1つ

本文中の a に入れる適切な HTML の要素名を,英文字 6 字以内で答えよ。

〔a〕解答例

  • form
  • input
解説

本文の根拠

S 君の発言

HTML 文書の a 要素内に利用者が入力したデータを受け付けることができず

S 君の発言

HTML 文書を修正して,POST メソッドを GET メソッドに置き換えた上で POST メソッドでのアクセスを拒否するという対策であれば,製品販売も続けられます。

POST メソッドでのアクセスを拒否すると,利用者が入力したデータを受け付けられなくなるのは,HTML 文書でデータを送信する部分である。HTML では,送信方法(GET か POST か)を form 要素の method 属性で指定し,利用者の入力欄は主に input 要素で表す。そのため,a には form 又は input が入る。解答例も“form”と“input”のどちらでもよい。

“POST メソッドを GET メソッドに置き換える”という S 君の案は,form 要素の method 属性を変えることに当たる。a が入るのは,その送信を受け付ける要素の名前である。

英文字 6 字以内で,form は 4 字,input は 5 字。要素名だけを書き,山括弧(<>)は付けない。

採点講評(IPA)

設問2は,正答率が低かった。特に(2)は正答率が著しく低く,その中でも,“クエリストリングは暗号化されない”という誤った解答が目立った。今後もWebアプリケーションの利用は増加すると思われるので,HTTPSにおいて暗号化される範囲とGET,POSTメソッドの動作の違いについて,確実に理解しておいてほしい。

設問2(2) 70字以内

本文中の下線③について,情報漏えいの可能性が生じる理由を,“クエリストリング”という語を用いて 70 字以内で述べよ。

解答例(2通り)

  • Refererヘッダにクエリストリングが記載されるので,リンク先などの外部サーバに入力データが送信されるおそれがある。
  • Webサーバのアクセスログにクエリストリングが記録されるので,ログから入力データが読み取られるおそれがある。
解説

本文の根拠

Q 課長の発言

GET メソッドを使用するとクエリストリングに利用者が入力した情報が含まれることとなり,POST メソッドと比較して③新たな情報漏えいの可能性が生じる

図 2 (c)

(c) SSL 暗号化,復号処理は SSL アクセラレータで行っている。

GET メソッドでは,利用者が入力したデータがクエリストリングとして URL(Request-URI)に含まれる。RFC 2616 の 15.1.3 は,HTTP を使うサービスの作成者は機密データの送信に GET を使うフォームを使うべきでないとしており,その理由は,データが Request-URI に符号化され,サーバ,プロキシ,ユーザエージェントなどのログに残りうるからである。同じ節は,Referer ヘッダによる情報の流出にも触れている。解答例は,Referer ヘッダにクエリストリングが記載されるのでリンク先などの外部サーバに入力データが送信されるおそれがあること,Web サーバのアクセスログにクエリストリングが記録されるのでログから入力データが読み取られるおそれがあること,の二つで,どちらでもよい。

講評は,“クエリストリングは暗号化されない”という誤った解答が目立ったとし,HTTPS において暗号化される範囲と GET,POST メソッドの動作の違いを確実に理解しておくよう求めている。この設問は正答率が著しく低かった。

70 字以内に対し解答例は 59 字と 54 字。“クエリストリング”という語を使い,記録される先(Referer ヘッダ,アクセスログ)と,それによる被害(入力データの送信・読取り)を書く。

採点講評(IPA)

設問2は,正答率が低かった。特に(2)は正答率が著しく低く,その中でも,“クエリストリングは暗号化されない”という誤った解答が目立った。今後もWebアプリケーションの利用は増加すると思われるので,HTTPSにおいて暗号化される範囲とGET,POSTメソッドの動作の違いについて,確実に理解しておいてほしい。

設問2(3) 40字以内

本文中の下線④について,暫定的対策を実現するために拒否条件として IPS に登録すべきシグネチャの具体的内容を,40 字以内で述べよ。

解答例(2通り)

  • X-Senderというフィールドを含んだHTTPヘッダを検出する。
  • HTTPヘッダからX-Senderで始まる行を検出する。
解説

本文の根拠

図 3

HTTP POST メソッドにおいて,HTTP ヘッダ内に RFC で定義されていない“X-Sender”というヘッダフィールドを指定することで,任意の OS コマンドを実行させることが可能である。

図 1

SSL アクセラレータの先に IPS があり

図 2 (d)

(d) いずれの FW も,アプリケーション層を解釈する機能はもっていない。

図 3 の脆弱性を突く攻撃は,POST メソッドの HTTP ヘッダに“X-Sender”というヘッダフィールドを指定する。そこで IPS のシグネチャには,X-Sender というフィールドを含んだ HTTP ヘッダを検出する条件を登録すればよい。解答例は“X-Senderというフィールドを含んだHTTPヘッダを検出する。”と“HTTPヘッダからX-Senderで始まる行を検出する。”で,どちらでもよい。

ファイアウォール(FW)はアプリケーション層を解釈しないので,HTTP ヘッダの中身は見られない。また,図 1 では SSL アクセラレータの先(SSL の復号後)に IPS があるので,IPS は HTTP ヘッダの内容を見て検出できる。

40 字以内に対し解答例は 33 字と 28 字。検出する対象(HTTP ヘッダ)と,その中の特徴(X-Sender)を書く。POST メソッドを拒否する,という暫定的対策の説明にならないように,検出条件そのものを述べる。

採点講評(IPA)

設問2は,正答率が低かった。特に(2)は正答率が著しく低く,その中でも,“クエリストリングは暗号化されない”という誤った解答が目立った。今後もWebアプリケーションの利用は増加すると思われるので,HTTPSにおいて暗号化される範囲とGET,POSTメソッドの動作の違いについて,確実に理解しておいてほしい。

設問2(4) 解答欄2つ

本文で述べている IPS による対策に加えて,図 2 中の仕様の一部の設定を変更する対策も可能である。この一部とは図 2 中の (a)~(g) のいずれであるかを記号で答えよ。また,対策の内容について 30 字以内で述べよ。

〔記号〕解答例

  • (f)

〔対策の内容〕解答例

  • Webサーバプログラムの動作権限を必要最小限とする。
解説

本文の根拠

図 2 (f)

(f) Web サーバプログラムは,システム管理者権限で動作している。

図 2 (b)

(b) Web サーバプログラムと Web アプリケーションは,限定された権限でも動作可能である。

図 3

その際,OS コマンドは Web サーバプログラムの動作権限で実行される。

図 3 の脆弱性では,OS コマンドは Web サーバプログラムの動作権限で実行される。図 2 の (f) のとおり,Web サーバプログラムはシステム管理者権限で動作しているので,攻撃が成功すると管理者権限でコマンドが実行される。図 2 の (b) は,限定された権限でも動作可能であると述べているので,(f) の設定を変更し,Web サーバプログラムの動作権限を必要最小限にすれば,攻撃が成功しても被害を小さくできる。記号は (f),対策の内容は“Webサーバプログラムの動作権限を必要最小限とする。”である。

(a),(c),(d) は構成や機能の説明で,この脆弱性の被害を左右する設定ではない。(e) の DB サーバの個人情報の保管や,(g) の動作試験用システムも,動作権限の変更とは別の話である。

30 字以内に対し解答例は 26 字。“動作権限”(何の権限か)と“必要最小限”(どうするか)を書く。

採点講評(IPA)

設問2は,正答率が低かった。特に(2)は正答率が著しく低く,その中でも,“クエリストリングは暗号化されない”という誤った解答が目立った。今後もWebアプリケーションの利用は増加すると思われるので,HTTPSにおいて暗号化される範囲とGET,POSTメソッドの動作の違いについて,確実に理解しておいてほしい。

設問3(1) 解答欄1つ

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

〔b〕解答例

  • 運用系から切り離す
  • 待機系にする
  • スタンバイ状態にする
解説

本文の根拠

S 君の発言

深夜 2 時から朝 8 時までの間はアクセスが少なく,サーバ 1 台でも処理が可能な状態となっています。

図 5

(3) 負荷分散装置の設定を元に戻す。

図 5 の手順は,Web サーバ 1〜3 を 1 台ずつ順番に処理する。(1) で負荷分散装置の設定を変更し,(2) で修正プログラムを適用し,(3) で設定を元に戻す。適用中のサーバにアクセスが振り分けられると,サーバの停止中に販売が止まってしまうので,対象のサーバを負荷分散の対象から外す必要がある。解答例は“運用系から切り離す”“待機系にする”“スタンバイ状態にする”で,どれでもよい。

深夜 2 時から朝 8 時までは,サーバ 1 台でも処理が可能なので,1 台ずつ外しても残りのサーバで処理を続けられる。1 台の作業は約 30 分なので,3 台を順に適用しても深夜帯に収まる。講評は,この設問を含む設問 3 の正答率が高かったとしている。

15 字以内に対し解答例は 9 字,6 字,10 字。“負荷分散装置の対象から外す”という趣旨が分かる短い言い方で答える。

採点講評(IPA)

設問3は,正答率が高かった。修正プログラムは日々提供されるものだが,修正プログラムそのものに起因してトラブルが発生する可能性について考えた上で適用作業を実施する必要があることは,おおむね理解できていた。

設問3(2) 40字以内

本文中の下線⑤について,Web 販売システムにおける修正プログラム適用後のトラブルを予防するために,T 課長への説明の前に実施すべき作業がある。適切と思われる作業内容を,40 字以内で述べよ。

解答例

  • 動作試験用システムで,修正プログラム適用後の動作の正常性を確認する。
解説

本文の根拠

図 2 (g)

(g) Web 販売システムの開発のために,B 社のシステム開発部で図 1 とほぼ同一構成である動作試験用システムを別に用意している。

Q 課長の発言

⑤T 課長に修正プログラム適用手順,実施日時を説明

T 課長は“システムを停止されては困る”と述べている。修正プログラムを適用した後にトラブルが起きて販売が止まれば,この意見に反する。そこで,T 課長に説明する前に,修正プログラムを適用したときの動作が正常かどうかを確かめておく必要がある。図 2 の (g) にあるとおり,B 社には図 1 とほぼ同一構成の動作試験用システムがあるので,そこで確認すればよい。解答例は“動作試験用システムで,修正プログラム適用後の動作の正常性を確認する。”である。

講評は,修正プログラムは日々提供されるものだが,修正プログラムそのものに起因してトラブルが発生する可能性について考えた上で適用作業を実施する必要があることは,おおむね理解できていたとしている。

40 字以内に対し解答例は 34 字。“動作試験用システム”(どこで)と,“修正プログラム適用後の動作の正常性を確認する”(何を)の両方を書く。

採点講評(IPA)

設問3は,正答率が高かった。修正プログラムは日々提供されるものだが,修正プログラムそのものに起因してトラブルが発生する可能性について考えた上で適用作業を実施する必要があることは,おおむね理解できていた。

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

問3 アプリケーション開発時の脆弱性対策

アプリケーション開発時の脆弱性対策に関する次の記述を読んで,設問 1,2 に答えよ。

C 社は,一般消費者向けにファックスや電話による,生活用品の通信販売を行っている,従業員数 50 名の会社である。C 社の企画開発課は申込方法の多様化を目的として,インターネットで申込みを受けるための X システム(図 1)を開発してきた。X システムでは,Web アプリケーション(以下,Web アプリという)のログイン画面で,利用者 ID とパスワードによって利用者認証を行う。C 社の開発ポリシには,サービス開始前に第三者によるセキュリティ検査を実施することが規定されている。そこで,企画開発課の F 課長は,部下の G 君に指示して Web アプリを対象とした疑似侵入テストと,データベース(以下,DB という)サーバを対象とした脆弱性診断を,セキュリティ専門会社の D 社に依頼した。

X システムの構成図。利用者の PC(複数)がインターネットにつながり,インターネットは C 社内のルータ(R)につながる。ルータの先に FW があり,FW には DMZ と内部セグメントが接続されている。DMZ には DNS サーバと Web サーバがある。内部セグメントには DB サーバがある。DMZ と内部セグメントを含む範囲が X システム。凡例:FW はファイアウォール,R はルータ。
図 1 X システムの構成

〔Web アプリのセキュリティに関する問題点〕

D 社の H 氏から疑似侵入テストと脆弱性診断の結果が報告された。次は,疑似侵入テストで見つかった脆弱性に関する会話の一部である。

枠内に session_id = 20081223309804 と書かれている。注:会員番号 309804 の利用者が 2008 年 12 月 23 日にログインしたときの cookie の値を示している。
図 2 cookie にセットされたセッション識別子の例
Perl プログラムの抜粋(行番号付き)。1 #!/usr/bin/perl。2 use CGI;(# 汎用 CGI 処理用モジュール CGI の使用を宣言)。3 use DBI;(# 汎用 DB 処理用モジュール DBI の使用を宣言)。4 $cgi = new CGI;(# CGI クラスのオブジェクトを生成)。5 $uname = $cgi->param('uname');(# uname パラメタを取得)。6 die if (chkstr($uname));(# uname に対する入力チェック)。(省略)。11 $dbh = DBI->connect('DBI(省略)') or die;(# DB に接続)。(省略)(# uname を基に SQL 文を組み立て,実行)。18 $dbh->disconnect or die;(# DB から切断)。(省略)。24 print "<img src=\"http://www.c-sha-△△.com/img/a0.png\" alt=\"(省略)\">";。(省略)。29 print "<img src=\"../img/a1.png\" alt=\"(省略)\"></div>";。30 print "<form action=\"../cgi-bin/shori-a.cgi\" method=\"post\">";。31 print "<p>利用者名:<input name=\"uname\" type=\"text\" value=\"$uname\">";。(省略)。50 print "<img src=\"https://www.c-sha-△△.com/img/a9.png\" alt=\"(省略)\">";。51 print "</div></body></html>";(# HTML 終了部分を出力)。52 は空行。53 sub chkstr {(# 引数内に特定キーワードが存在した場合)。54   my $str = shift;(# true を返す)。55   if ($str=~/(<script|<iframe|(省略))/) {return(true)};。56 }。注:(省略)は,記述を省略していることを意味する。www.c-sha-△△.com は,X システムが利用しているドメイン名である。△△は,特定の文字列を表す。
図 3 プログラム(抜粋)

〔DB セキュリティに関する問題点〕

脆弱性診断によって,DB セキュリティに関する問題点も報告された。次は,その問題点に関する会話である。

H 氏は透過的暗号化について説明した。

その後,H 氏から指摘された脆弱性に関する対策を完了し,C 社は正式にサービスを開始した。

出題趣旨(IPA)

Webをベースとしたシステム開発が主流となっているが,アプリケーションレベルのセキュリティ対策は正しく実施されていないことがまだ多い。本問では,Webアプリケーションに対する疑似侵入テストで,クロスサイトスクリプティング(XSS)への対応や,セッション管理の不備が見つかった状況,及びDBサーバに対する脆弱性診断で,格納しているデータ保護の不備が見つかった状況を想定し,それらの脆弱性に対する適切なアプリケーション設計,プログラミング手法,データベースセキュリティ対策などの理解を問う。

採点講評(問全体・IPA)

問3では,Webアプリケーション開発時の脆弱性対策について出題した。全体として正答率は,低かった。

設問と解答例

設問1(1) 50字以内

本文中の下線①について,悪意をもつ者が,どのようにして他人になりすますことができるのか。その方法を 50 字以内で具体的に述べよ。

解答例

  • cookieにセットされたセッション識別子のうち,会員番号部分を他人のものに変える。
解説

本文の根拠

H 氏の発言

各ログインセッションを識別するセッション識別子は,ログイン日と会員番号を組み合わせた文字列として構成され,図 2 のように cookie にセットされますね。

図 2

枠内に session_id = 20081223309804 と書かれている。

図 2 の注

会員番号 309804 の利用者が 2008 年 12 月 23 日にログインしたときの cookie の値を示している。

図 2 の session_id は 20081223309804 で,前半の 20081223 がログイン日(2008 年 12 月 23 日),後半の 309804 が会員番号である。識別子は,ログイン日と会員番号が分かれば組み立てられる構成になっている。悪意をもつ者は,自分のログインで得た cookie の session_id のうち会員番号の部分を他人の番号に書き換えれば,他人のセッション識別子になる。解答例は“cookieにセットされたセッション識別子のうち,会員番号部分を他人のものに変える。”である。

講評は,“cookie の値が容易に書き換えられるから”のように原因だけを述べて,方法が明示されていない解答が多かったとしている。問われているのは“どのようにして”なりすますかであり,何をどう変えるかを書く。

50 字以内に対し解答例は 42 字。“セッション識別子のうち,会員番号部分を”(変える対象)と,“他人のものに変える”(操作)を書く。

採点講評(IPA)

設問1(1)では,どのような方法で他人になりすますかを問うたが,“cookieの値が容易に書き換えられるから”のように原因だけを述べ,方法が明示されていない解答が多かった。また,クロスサイトスクリプティング対策を問うた(3)は,正答率が低かった。<>&”’などのHTML構造に影響を与える文字を適切に置換しても,出力される箇所によってはスクリプトが動作してしまうことを理解しておいてほしい。

設問1(2) 解答欄2つ

本文中の下線③の原因となっている図 3 のプログラムの部分を,その行番号で答えよ。また,どのように修正すればよいかを 25 字以内で述べよ。ここで,a0.png~a9.png の画像ファイルは同じフォルダに配置されているものとする。

〔行番号〕解答例

  • 24

〔修正方法〕解答例

  • 画像ファイルを相対パス名で指定する。
  • httpの部分をhttpsにする。
解説

本文の根拠

H 氏の発言

③HTTPS での正常なアクセスを意味する鍵マークが表示されなくなっています

図 3 の 24 行目

24 print "<img src=\"http://www.c-sha-△△.com/img/a0.png\"

図 3 の 50 行目

50 print "<img src=\"https://www.c-sha-△△.com/img/a9.png\"

図 3 のプログラムは HTTPS でアクセスする画面を出力する。画像を指定する行を見ると,29 行目は ../img/a1.png(相対パス),50 行目は https:// で始まる URL であるのに対し,24 行目だけが http:// で始まる URL(http://www.c-sha-△△.com/img/a0.png)で指定されている。HTTPS で配信するページの中に,HTTP で取得するものが混ざると,W3C の Mixed Content の仕様にいう混在コンテンツになる。仕様は,安全な接続で読み込んだページが安全でない接続でサブリソース(画像など)を要求すると,ページの安全性の保証が弱まると述べており,これが鍵マークの表示が変わる原因になる。したがって行番号は 24 である。

修正は,a0.png を https:// の URL で指定するか,同じフォルダにあるという前提なので,他の行(29 行目の ../img/a1.png)のように相対パス名で指定する。解答例は“画像ファイルを相対パス名で指定する。”と“httpの部分をhttpsにする。”で,どちらでもよい。

25 字以内に対し解答例は 18 字と 17 字。“相対パス”か“http を https に”のどちらかの方針が分かればよい。行番号は 1 つだけ答える。

設問1(3) 解答欄2つ

本文中の下線②の属性に該当するものを二つ挙げ,それぞれ 15 字以内で答えよ。

〔①〕解答例

  • タグのhref属性

〔②〕解答例

  • タグのイベントハンドラ属性
解説

本文の根拠

H 氏の発言

プログラムが HTML タグの②ある特定の属性に値を出力する場合は,個別の対処が必要です。

H 氏の発言

をそれぞれ“&lt;”,“&gt;”,“&quot;”,“&#39;”,“&amp;”に置換することが基本です。

“<”“>”“"”“'”“&”を HTML の文字参照(&lt; など)に置換する対処は,値を出力するすべての箇所に基本として行う。それでも個別の対処が必要になるのは,属性の中身がそのままスクリプトとして扱われる属性である。OWASP の XSS Prevention Cheat Sheet は,属性値のエンコードは href や src のような URL を含む属性の URL の検証や,属性中の JavaScript のエンコードまではしないとし,また,イベントハンドラ属性(onclick など)では HTML 属性としてのエンコードだけでは JavaScript を保護できないと述べている。したがって,解答例は“タグのhref属性”と“タグのイベントハンドラ属性”の二つである。

講評は,<>&”’などの HTML 構造に影響を与える文字を適切に置換しても,出力される箇所によってはスクリプトが動作してしまうことを理解しておいてほしいとしており,この設問は正答率が低かった。

15 字以内に対し解答例は 9 字と 13 字。属性の名前(href,イベントハンドラ)を挙げる。二つは別の属性を書き,同じ種類を 2 回書かない。

採点講評(IPA)

設問1(1)では,どのような方法で他人になりすますかを問うたが,“cookieの値が容易に書き換えられるから”のように原因だけを述べ,方法が明示されていない解答が多かった。また,クロスサイトスクリプティング対策を問うた(3)は,正答率が低かった。<>&”’などのHTML構造に影響を与える文字を適切に置換しても,出力される箇所によってはスクリプトが動作してしまうことを理解しておいてほしい。

設問2(1)

本文中の下線④について,DB に格納されている情報に対する不正閲覧のうち,透過的暗号化によって防止できるものを解答群の中から一つ選び,記号で答えよ。解答群 ア SQL インジェクションによる不正閲覧 イ サーバ管理者による SQL 文を利用した不正閲覧 ウ 図 1 中の内部セグメントにおける通信傍受による不正閲覧 エ バックアップ媒体を入手した第三者による不正閲覧

解答例

  • エ
解説

本文の根拠

G 君の発言

DBMS 側で自動的に暗号化/復号する透過的データ暗号化機能(以下,透過的暗号化という)を利用する予定です。

H 氏の発言

残念ながら④透過的暗号化の効果は限定的です

透過的暗号化は DBMS が自動的に暗号化・復号する機能で,DB に格納されたデータ(ストレージ上のデータ)を暗号化する。Oracle Database の TDE の説明では,データファイルやストレージ媒体が盗まれた場合にデータを保護し,データベースのバックアップも暗号化できるとされ,一方で,認可されたユーザやアプリケーションがデータにアクセスするときには透過的に復号されて平文で見える。したがって,透過的暗号化で防止できるのは,バックアップ媒体を入手した第三者による不正閲覧(エ)である。

アの SQL インジェクションは,アプリケーションの DB アクセスを通して行われるので,DBMS が復号した結果が見える。イのサーバ管理者による SQL 文を利用した不正閲覧も,DBMS を通して読むので復号された結果が返る。ウの内部セグメントでの通信傍受は,DB サーバから Web アプリへの通信の問題で,ストレージの暗号化とは別である。

一つ選ぶ設問で,解答例は“エ”である。“DB への正規のアクセスを通る閲覧か,DB を通らないデータの入手か”で分けて考える。講評は,設問 2 全体として正答率が高かったとしている。

採点講評(IPA)

設問2は,全体的に正答率が高かった。透過的データ暗号化機能によるリスク対策や,Webアプリケーションで管理される利用者のパスワード情報の保護については,適切に理解されているものと推察できる。

設問2(2) 50字以内

本文中の下線⑤について,よく使われる文字列をパスワードにしていた場合でも,ハッシュ値から元のパスワードを突き止められないようにするためのハッシュ値の算出方法を,50 字以内で述べよ。

解答例(2通り)

  • 鍵付きハッシュ関数でパスワードからハッシュ値を算出して格納する。
  • パスワードとランダムな文字列を連結した文字列からハッシュ値を算出して格納する。
解説

本文の根拠

G 君の発言

パスワードを MD5 関数の引数にして算出しています。

H 氏の発言

パスワードだけからハッシュ値を算出すると,悪意ある第三者にハッシュ値が知られた場合,検索エンジンや専用ツールを使って,元の値であるパスワードを突き止められてしまう可能性があります。

パスワードだけからハッシュ値を求めると,よく使われる文字列のハッシュ値を集めた表などで,元のパスワードを突き止められてしまう。これを防ぐには,パスワード以外の要素をハッシュの計算に加える。OWASP の Password Storage Cheat Sheet は,ソルトを“パスワードごとに加えられる,一意でランダムな文字列”とし,ペッパーは,ソルトに加えて使う対策で,秘密にしておき,ハッシュとは別の場所に保管するものとしている。解答例は,“パスワードとランダムな文字列を連結した文字列からハッシュ値を算出して格納する。”(ソルト)と,“鍵付きハッシュ関数でパスワードからハッシュ値を算出して格納する。”(鍵付き)で,どちらでもよい。

鍵付きの場合は,第三者がハッシュ値を知っても,鍵が分からなければ同じ計算ができない。ランダムな文字列を連結する場合は,同じパスワードでも別のハッシュ値になる。

50 字以内に対し解答例は 32 字と 39 字。“何を材料にするか”(パスワードとランダムな文字列,又は鍵)と“ハッシュ値を算出して格納する”を書く。講評は,設問 2 は全体的に正答率が高く,パスワード情報の保護は適切に理解されているとしている。

採点講評(IPA)

設問2は,全体的に正答率が高かった。透過的データ暗号化機能によるリスク対策や,Webアプリケーションで管理される利用者のパスワード情報の保護については,適切に理解されているものと推察できる。

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

問4 情報システムの特権管理

情報システムの特権管理に関する次の記述を読んで,設問 1,2 に答えよ。

E 社は,従業員数 2,000 名の上場している運輸会社である。E 社の情報システム部では 80 台のサーバを管理しており,複数種の OS と,複数の DBMS 及びアプリケーション(以下,AP という)が稼働している。

インストールされたそれぞれの OS,DBMS,AP に対して,システム管理特権が付与された利用者 ID(以下,特権 ID という)が一つずつ登録されており,情報システム部内のシステム管理チームに所属するシステム管理者 10 名がすべての特権 ID とパスワードを共用している。例えば,OS,DBMS,AP がそれぞれ一つずつ稼働しているサーバでは,OS に一つ,DBMS に一つ,AP に一つの特権 ID が登録されており,システム管理者 10 名がこれらの特権 ID を共用している。特権 ID の使用は,基本的にはネットワーク経由で行われているが,コンソールからでないと行えない特定の作業については,サーバが保管されているラック内に設置されたコンソールから行われている。

E 社は,システム運用の安全性を確認するために,セキュリティ専門会社の F 社に,サーバの設定や運用に関するセキュリティ診断を依頼した。診断の結果,情報システムの特権 ID 管理が十分でないとの指摘を受けたことから,経営陣は情報システム部に対して特権 ID の管理を改善するように指示した。

〔特権 ID 管理の要件〕

F 社による指摘は,“特権 ID の使用において,内部者の不正使用を防止及び発見する仕組みが構築されていない”というものであった。システム管理チームの N 課長と M 君は,この指摘に基づき,必要な管理要件を明確にすることにした。

新たな特権 ID 管理の仕組みが試験的に運用され,1 か月が経過した。

〔特権 ID 管理の運用〕

数日後,M 君から特権 ID の使用に関するアラートの発生条件案(表)が提出された。

列は項番,アラートの発生条件。項番 1:一つのサーバにおいて,過去 1 か月間ログインしたことがない特権 ID によるログインが行われたとき(普段使わない特権 ID の使用)。項番 2:全サーバ累計で,1 人が 1 日で 10 回以上のログインを行ったとき(頻繁な使用)。項番 3:ログアウト(又はタイムアウト)時に,ログインからの時間が 2 時間を超えているとき(長時間のログイン)。項番 4:特権 ID の追加が行われたとき。項番 5:システム設定が変更されたとき。項番 6:DBMS に対して SQL 文を実行したとき (1)。注 (1) アプリケーションから DBMS へのアクセスでは,DBMS の特権 ID は使用していない。
表 特権 ID の使用に関するアラートの発生条件案

M 君の案に基づき,アラートを発生させる仕組みが導入され,1 週間が経過した。

その後,SQL 文の中身を解釈してアラートを発生させるツールが導入され,再度の試験運用が行われた。その 1 か月後,アラート発生の設定が適切であることが確認され,本格運用が開始された。これによって,E 社システムの特権 ID 管理が改善され,より安全なシステム運用が実現された。

出題趣旨(IPA)

近年,企業活動を支える情報システムの完全性を担保することが重要な課題となっている。特に上場企業においては,金融商品取引法の改正(いわゆる日本版SOX法)に基づき,重要なシステムの開発・運用プロセスにおける内部統制を評価,報告し,そのシステムが担う財務情報の適正性を立証することが求められている。システムの内部統制について理解し,評価や改善を行っていくためには,システムがもつ機能だけでなく,人による運用も含めた検討が必要であり,開発・運用にまたがる広範な知識とリスクに対する総合的な判断力が求められている。本問では,システムの完全性を担保する重要な要素の一つである特権IDの管理に焦点を当て,特権ID管理に関する知識と,機能と運用の両面から改善を行っていくための能力を問う。

採点講評(問全体・IPA)

問4では,特権ID管理の重要性と課題,及びその改善方法について出題した。全体として,正答率は低かった。

設問と解答例

設問1(1)

本文中の下線①で,上場企業を対象に,内部統制の評価及び報告を求める法律(又はその通称)を解答群の中から選び,記号で答えよ。解答群 ア 割賦販売法 イ 金融商品取引法 ウ 個人情報保護法 エ 不正アクセス禁止法

解答例

  • イ
解説

本文の根拠

N 課長の発言

それは①上場企業に求められる内部統制の観点からも改善が必要だな。

〔冒頭〕

E 社は,従業員数 2,000 名の上場している運輸会社である。

E 社は上場している会社で,N 課長は内部統制の観点からの改善を求めている。上場企業を対象に,財務報告に関する内部統制の評価と報告を求める法律は金融商品取引法(イ)である。この問題の出題趣旨も,上場企業においては金融商品取引法の改正(いわゆる日本版 SOX 法)に基づいて内部統制を評価・報告することが求められている,と述べている。

アの割賦販売法,ウの個人情報保護法,エの不正アクセス禁止法は,いずれも上場企業に内部統制の評価と報告を求める法律ではない。名前だけで選ばず,“内部統制”“評価及び報告”という問いの条件に合う法律を選ぶ。

記号で答える設問で,解答例は“イ”。講評は,選択肢からの解答であったにもかかわらず正答率が低かったとし,セキュリティの関連法規についても世の中の動向を知っておいてもらいたいとしている。

採点講評(IPA)

設問1(1)は,選択肢からの解答であったにもかかわらず正答率が低かった。セキュリティの関連技術と同様に,セキュリティの関連法規についても世の中の動向を知っておいてもらいたい。

設問1(2) 解答欄1つ

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

〔a〕解答例

  • 特権IDの共用
解説

本文の根拠

〔冒頭〕

システム管理者 10 名がすべての特権 ID とパスワードを共用している。

M 君の発言

ログを取得したとしても a をやめないと,ログからはだれが不正使用を行ったのかを特定できないので意味がありません。

E 社では,システム管理者 10 名がすべての特権 ID とパスワードを共用している。共用していると,ログに特権 ID が記録されても,その 10 名のうちのだれが使ったのかが分からない。ログからだれが不正使用を行ったのかを特定するには,特権 ID を共用するのをやめ,1 人に 1 つの特権 ID を割り当てる必要がある。a は“特権IDの共用”である。

〔特権 ID 管理の運用〕で,M 君が“一つの特権 ID は 1 人のシステム管理者だけが使用する環境を実現できましたので,だれが使ったのかすぐ分かりました”と述べているのは,この改善の結果である。

10 字以内に対し解答例は 7 字。“特権IDの共用”と,何をやめるのかを名詞で答える。

設問1(3) 解答欄1つ

本文中の b に入れる適切な字句を,10 字以内で答えよ。

〔b〕解答例

  • ログのレビュー
解説

本文の根拠

M 君の発言

月に 1 回程度 b を実施して不正な使用がなかったことを確認します。

M 君の発言

ある DBMS に利用申請のない特権 ID の使用がありました。

M 君は,特権 ID の使用が業務目的であることを確認するため,使用目的,使用者,使用する特権 ID を書いた特権 ID 利用申請書を課長が事前に承認する運用にしている。月に 1 回程度,b を実施して不正な使用がなかったことを確認し,これが内部不正を発見する仕組みに当たる。確認の材料は,取得した特権 ID のログと利用申請書であり,ログを調べて申請と照らし合わせる作業は“ログのレビュー”である。〔特権 ID 管理の運用〕では,この b の結果として“利用申請のない特権 ID の使用”が見つかっている。

ログを取得するだけでは,不正の発見にならない。取得したログを人が見直して,申請との食い違いを探す作業が要る。

10 字以内に対し解答例は 7 字。“ログ”と“レビュー”の 2 語で,何を行うかを示す。

設問2(1)

本文中の下線②を実施するに当たって適用した考え方を,解答群の中から選び,記号で答えよ。解答群 ア 最小権限の原則 イ 職務の分掌 ウ 多層防御 エ 要さい化

解答例

  • ア
解説

本文の根拠

M 君の発言

しかし,一般権限でも問題ないということでしたので,②データの参照だけを行うことができる,状況監視用の利用者 ID を作成し,それを使用させることにしました。

M 君の発言

その特権 ID を使った者に確認したところ,状況監視のために毎日使用していました。

状況監視のためにデータを参照するだけの用途に,管理者権限をもつ特権 ID を使わせるのをやめ,参照だけができる利用者 ID に替えている。これは,必要な業務に必要な範囲の権限だけを与えるという最小権限の原則(ア)の適用である。

イの職務の分掌は,一連の業務を複数の担当者に分けて不正を防ぐ考え方で,権限の範囲を絞る下線②の対策とは異なる。ウの多層防御は複数の対策を重ねる考え方,エの要さい化はサーバなどの不要な機能を止めて攻撃を受けにくい状態に固める考え方で,いずれも下線②の内容を表さない。

記号で答える設問で,解答例は“ア”。下線②は,特権 ID を使う必要のない者に,より小さな権限の ID を使わせるものなので,権限の大きさに着目して選ぶ。

設問2(2) 解答欄1つ

本文中の c に入れる方式を,英文字 10 字以内で答えよ。

〔c〕解答例

  • syslog
解説

本文の根拠

M 君の発言

UNIX でログを収集,転送する方式として一般的に使われている c を使ったログサーバについて調査していました。

M 君の発言

追記型記憶装置を使えばログが消えてしまうことを防止できるのですが,すべてのサーバに導入するとコストが掛かりすぎます。

UNIX でログを収集し,ほかのサーバへ転送する方式として一般的に使われているのは syslog である。RFC 5424 は syslog プロトコルを,イベント通知メッセージを運ぶためのものと説明し,メッセージを転送する relay や,ログの内容を集めて分析に回す collector という役割を定義している。各サーバのログを syslog でログサーバに集め,ログサーバにだけ追記型記憶装置を使えば,すべてのサーバに導入するよりコストを抑えられる。

“一般的に使われている”“UNIX で”という条件から,特定の製品名ではなく,標準的なプロトコルの名前を答える。

英文字 10 字以内に対し解答例は 6 字。解答例の表記は“syslog”である。

設問2(3) 解答欄1つ

本文中の d に入れる,N 課長がログサーバに対して実施しようとしている対策を,40 字以内で述べよ。

〔d〕解答例

  • ログサーバの特権ID使用者とほかのサーバの特権ID使用者を分離
解説

本文の根拠

N 課長の発言

ほかのサーバ管理者による故意のログ削除を防止できるし,誤操作によるログ喪失の可能性も低下させることができるだろう。

N 課長の発言

もっと簡単な方法でログサーバのログは保護できるのではないだろうか。

追記型記憶装置を使わずにログサーバのログを守る方法として,N 課長は,ほかのサーバ管理者による故意の削除と,誤操作による喪失の両方を防ぐ対策を考えている。ログサーバの特権 ID を使える人を,ほかのサーバの特権 ID の使用者と分ければ,ほかのサーバの管理者はログサーバのログを削除できない。ログサーバを触る人が限られるので,誤操作による喪失の可能性も下がる。解答例は“ログサーバの特権ID使用者とほかのサーバの特権ID使用者を分離”である。

講評は,ログサーバ内のログに対してアクセス権を設定することだけを記述した解答が多かったとし,特権 ID は強力な権限をもつ ID なので,管理を改善する際には,システム設定などの技術的側面だけでなく,使用者の範囲や使用手続などの運用に関する部分も含めて検討する必要があるとしている。この設問は正答率が低かった。

40 字以内に対し解答例は 31 字。“ログサーバの特権 ID の使用者”と“ほかのサーバの特権 ID の使用者”を分けることを,使用者の範囲の面から書く。

採点講評(IPA)

設問2(3)は,正答率が低かった。特に,ログサーバ内のログに対してアクセス権を設定することだけを記述した解答が多かった。特権IDは,システムに対して強力な権限をもったIDであるので,その管理を改善する際には,システム設定などの技術的側面だけでなく,使用者の範囲や使用手続など,運用に関する部分も含めて検討する必要があることを理解しておいてほしい。

設問2(4) 20字以内

本文中の下線③を検出するために,表に項番 7 を追加したい。このとき,アラートの発生条件として何を設定すべきか。20 字以内で述べよ。

解答例

  • 特権IDの認証が失敗したとき
解説

本文の根拠

N 課長の発言

特権 ID をもっていない人が特権 ID を使用しようとする行為があったときにも検出できるようにしてくれないか

表

項番 1:一つのサーバにおいて,過去 1 か月間ログインしたことがない特権 ID によるログインが行われたとき(普段使わない特権 ID の使用)。

表の項番 1〜6 は,ログインや操作が行われた場面で発生させる条件で,本人に割り当てられた特権 ID を使った場合にしか検出できない。特権 ID をもっていない人が使おうとしても,パスワードが分からなければ認証に失敗する。したがって,特権 ID の認証が失敗したときをアラートの発生条件に加えれば,このような行為を検出できる。解答例は“特権IDの認証が失敗したとき”である。

項番 1〜3 は,ログインの回数や時間(普段使わない・頻繁・長時間)を条件にしており,ログインに成功した後の使い方を見る条件である。ログインに失敗した事実は,これらでは拾えない。

20 字以内に対し解答例は 14 字。“特権 ID の”“認証が失敗したとき”と,対象と事象を短く書く。

設問2(5) 解答欄2つ

本文中の下線④及び下線⑤の指示のセキュリティ上の目的を,それぞれ 35 字以内で述べよ。

〔下線④〕解答例

  • システム管理者による不正行為の実行を抑止するため

〔下線⑤〕解答例

  • アラートの発生条件を回避しようとする行為を防止するため
  • アラートが発生しないような不正使用方法を発見されないようにするため
解説

本文の根拠

N 課長の発言

④アラートを設定していることはシステム管理者に周知してほしいが,⑤具体的なアラートの発生条件は伝えない

M 君の発言

不正の可能性が考えられる特権 ID の使用が発見されたときにだけアラートを発生させ,それを電子メール(以下,メールという)で通知する仕組みをログサーバに導入すれば,もっと早期に発見することができると思います。

下線④は,アラートの存在をシステム管理者に周知するもので,不正を行えば発見されると知らせることで,システム管理者による不正行為の実行を抑止する目的がある。解答例は“システム管理者による不正行為の実行を抑止するため”である。

下線⑤は,具体的な発生条件を伝えない指示で,条件が分かると,その条件に当てはまらないように不正を行うことができてしまう。目的は,アラートの発生条件を回避しようとする行為を防止することである。解答例は“アラートの発生条件を回避しようとする行為を防止するため”と“アラートが発生しないような不正使用方法を発見されないようにするため”で,どちらでもよい。

35 字以内に対し解答例は 24 字,27 字,33 字。下線④は“周知”の効果(抑止),下線⑤は“非公開”の効果(回避の防止)と,それぞれの指示に対応する目的を書く。両方に“抑止”と書くなど,二つを混ぜないようにする。

設問2(6) 解答欄2つ

本文中の下線⑥において,財務報告の信頼性を担保するために,特権 ID に関する DB のログの個々の記録について何を確認し,全体として何を立証しようとしているか。特権 ID に関する DB のログの個々の記録に対して確認する内容を 50 字以内で,立証しようとしていることを 35 字以内で述べよ。

〔確認する内容〕解答例

  • 特権IDでDBのデータを変更した処理のログに対応する特権ID利用申請書が提出されていること
  • DBのデータを変更した処理が,すべて業務目的に基づいていること

〔立証しようとしていること〕解答例

  • DBMS内の財務データが特権IDによって改ざんされていないこと
  • DBMS内の財務データの完全性
解説

本文の根拠

N 課長の発言

⑥データベース(以下,DB という)では当社の財務にかかわる重要なデータが管理されているから,財務報告の信頼性を担保するためにも,特権 ID を使用して DB を操作したログを取得して保存することは重要なんだ

M 君の発言

特権 ID の使用が業務目的であることを確認するために,使用目的,使用者,使用する特権 ID を記入した特権 ID 利用申請書を使用日ごとに課長に提出し,事前に承認していただくという運用にします。

ログの個々の記録については,特権 ID を使って DB のデータを変更した処理が,利用申請に基づいていること(特権 ID の利用申請書が提出されていること,すべて業務目的に基づいていること)を確認する。解答例は“特権IDでDBのデータを変更した処理のログに対応する特権ID利用申請書が提出されていること”と“DBのデータを変更した処理が,すべて業務目的に基づいていること”で,どちらでもよい。

この確認を全体として積み重ねて立証しようとしているのは,DBMS 内の財務データが特権 ID によって改ざんされていないこと,すなわち DBMS 内の財務データの完全性である。出題趣旨も,システムの完全性を担保する要素の一つとして特権 ID の管理を挙げている。

確認する内容は 50 字以内に対し解答例は 45 字と 31 字,立証しようとしていることは 35 字以内に対し 31 字と 15 字。確認は“ログの個々の記録”(処理と申請の対応),立証は“全体”(財務データの完全性)と,範囲を分けて書く。

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