情報処理安全確保支援士 2015年 秋期 午後1 問03
Webサイトにおけるインシデント対応に関する次の記述を読んで、設問1~4に答えよ。
W社は、精密機器を製造している従業員数500名の会社である。W社では、取引先との間で設計データを共有するためにWebサイト(以下、サイトXという)を利用している。サイトXは、W社の情報システム部が開発、運用しており、W社の従業員と取引先の従業員が利用している。サイトXのネットワーク構成を図1に、システム概要を図2に示す。

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

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

B氏は、DMZのサーバ3台をネットワークから切り離し、取引先にサイトXの停止を通知した後、セキュリティ担当A氏の協力を得て、侵入経路の調査を開始した。
〔侵入経路の調査〕
A氏は、DMZに設置しているサーバのOSへのログイン履歴を基に、タスク実行失敗を示すイベントが出力された日時の前後のログを調査して、どのサーバが最初に侵入されたかを特定した。Webサーバ、WebAPサーバ1及びWebAPサーバ2の3台の2015年1月1日以降のログイン履歴は、表2~4のとおりである。




次は、侵入経路の調査の過程におけるA氏とB氏の会話である。
A氏:ログイン履歴には、複数の利用者IDのログインが記録されています。利用者IDはどのように使い分けているのですか。
B氏:運用では、“unyou”を使用しており、“administrator”は使用していません。
A氏:そうだとすると、“administrator”という利用者IDを使ってサーバにログインした者が攻撃者であると推測できます。aからbに、bからcにという順番でログインしていますね。
B氏:それでは、最初に侵入されたサーバは、aということでしょうか。
A氏:その可能性が高いですね。侵入された原因を特定するためには、aのアクセスログを調査する必要があります。
B氏:ところで、ログイン履歴を見ると、失敗することなく短時間で他のサーバへのログインが成功しています。攻撃者は、どのような方法で他のサーバにログインしたのでしょうか。
A氏:DMZの各サーバには、“unyou”、“administrator”という利用者IDが、全サーバに同じパスワードで設定されているようです。そうした設定では、あるサーバから他のサーバにアクセスする際、自動的にログインが行われます。攻撃者は、そのようなOSの仕様を利用して、他のサーバにもログインしたようです。
〔侵入された原因の特定〕
A氏は、インターネットから侵入された原因を特定するために、aのアクセスログを調査した。担当者にヒアリングしたところ、設定に誤りがあり、インターネットから管理画面にアクセスできるようになっていたことが分かった。aのアクセスログのうち、攻撃者のIPアドレスからのものを表5に示す。調査の結果、①サーブレットコンテナの管理画面に対して、よく使われる利用者IDとパスワードでログインが試行され、その結果、ログインが成功したものと推測された。管理画面から、バッチファイルをaにアップロードされた後、タスクが登録されたり、バッチファイルが実行されたりしたと推測された。

次は、aのアクセスログの調査過程における A氏と B氏の会話である。
A氏:侵入された後、demo ディレクトリに index.jsp という名前のファイルをアップロードされたようです。アクセスログの No.dのステータスコードがeであり、No.fのステータスコードがgであるということから、demo ディレクトリは攻撃者が No.fの直前で作成したことが分かります。
B氏:確かに、aには、demo ディレクトリは元々ありませんでした。
A氏:index.jsp を調査したところ、攻撃ツールであることが分かりました。指定したファイルをインターネット上のサーバにアップロードする機能、OSのファイル共有機能を使って他のサーバにファイルを転送する機能、OSのファイル共有機能を使って他のサーバ上でOSコマンドを実行する機能、及びDBMSに対してSQLを発行する機能をもっています。
〔影響範囲の特定〕
A氏は、内部LAN及び管理LANへの影響を特定するために、FWのフィルタリングルールを確認して、侵入されたサーバからどの範囲がアクセス可能だったかを調査することにした。FWのフィルタリングルールを表6に示す。W社のポリシでは、業務上必要なサービスだけをFWで許可することになっているが、②FWのフィルタリングルールにはポリシを満たしていないものがあることが判明した。

次に、A氏は、タスク実行失敗を示すイベントが発生した日以降の、FWのログを調査し、内部LAN及び管理LANへの影響がないことを確認した。
〔対策とシステム再稼働〕
A氏とB氏は、影響範囲がDMZのサーバ3台だけであったことから、それらのサーバの再構築を行った後、次の対策を実施した。
(a) WebAPサーバ1とWebAPサーバ2に、図4のアクセス制御の設定を行うことで、送信元のIPアドレスが127.0.0.1である場合だけ、サーブレットコンテナの管理画面へのアクセスを許可する。

(b) 各サーバの利用者ID“administrator” を無効化し、利用者ID“unyou” は、サーバごとに異なる利用者IDに変更し、さらに、パスワードもサーバごとに異なるものに変更する。
W社では、B氏が経営幹部に不正アクセスの調査結果を報告し、承認を得てシステムを再稼働させた後、取引先に通知し、インシデント対応を完了した。
設問1:
本文中のa〜cに入れるサーバ名を図1中の字句を用いて答えよ。
模範解答
a:WebAPサーバ2
b:WebAPサーバ1
c:Webサーバ
解説
解答の論理構成
-
攻撃者は “administrator” を用いて移動
会話文に「“administrator”という利用者IDを使ってサーバにログインした者が攻撃者であると推測できます。」とあります。したがって “administrator” で成功したログイン時刻・接続元 IP を手掛かりに、攻撃者が辿った順路を追います。 -
“administrator” で最も早い成功ログ
- 表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」「成功」
表4には “administrator” の記録がありません。よって、攻撃者が最初に “administrator” でログインできたサーバは 192.168.0.30=「WebAPサーバ2」 です。
- 表3「WebAP サーバ1のログイン履歴」
-
接続元 IP から辿る
- 12:32:20 に「WebAPサーバ1」(192.168.0.20)へ接続しているのは 192.168.0.30。
- 12:42:07 に「Webサーバ」(192.168.0.10)へ接続しているのは 192.168.0.20。
したがって
「WebAPサーバ2」→「WebAPサーバ1」→「Webサーバ」の順で横移動しています。
-
会話文との整合
会話文に「aからbに、bからcにという順番でログインしていますね。」とあるため、 a:WebAPサーバ2
b:WebAPサーバ1
c:Webサーバ
が正答となります。
誤りやすいポイント
- 12 時台と 18 時台を混同し、最後の “unyou” ログイン(18:11:25)を攻撃者の操作と誤認する。
- 「接続元 IP アドレス」を読む方向を逆にして、192.168.0.20 が侵入元ではなく侵入先と勘違いする。
- “administrator” のみを追うべきところを “unyou” の常用ログインまで含め、先頭に現れる 2015/01/07 を起点と誤判断する。
FAQ
Q: “unyou” でのログインはすべて安全なのですか?
A: 運用担当の証言「運用では、“unyou”を使用しており、“administrator”は使用していません。」より、少なくとも 2015/01/22 の時点で “unyou” のログは業務操作と見なします。
A: 運用担当の証言「運用では、“unyou”を使用しており、“administrator”は使用していません。」より、少なくとも 2015/01/22 の時点で “unyou” のログは業務操作と見なします。
Q: どうして短時間で他サーバへ移動できたのですか?
A: 会話文にある通り「全サーバに同じパスワード」が設定されていたため、Windows のシングルサインオン動作で自動的に認証が通り、パスワード入力なしで横移動できました。
A: 会話文にある通り「全サーバに同じパスワード」が設定されていたため、Windows のシングルサインオン動作で自動的に認証が通り、パスワード入力なしで横移動できました。
Q: “administrator” を無効化するだけで十分でしょうか?
A: 追加で (a) のように管理画面アクセス元を 127.0.0.1 に限定し、(b) で ID・パスワードをサーバごとに分割することで、共通認証情報の再利用と管理画面ブルートフォースの双方を防ぎます。
A: 追加で (a) のように管理画面アクセス元を 127.0.0.1 に限定し、(b) で ID・パスワードをサーバごとに分割することで、共通認証情報の再利用と管理画面ブルートフォースの双方を防ぎます。
関連キーワード: ログイン履歴、横移動、ブルートフォース、同一パスワード、DMZ
設問2:〔侵入された原因の特定〕について(1)、(2)に答えよ。
(1)本問中のd~gに入れる適切な数値を答えよ。
模範解答
d:2
e:404
f:14
g:200
解説
解答の論理構成
-
まず、A氏の発言に注目します。
――【問題文引用】
「アクセスログの No.dのステータスコードがeであり、No.fのステータスコードがgであるということから、demo ディレクトリは攻撃者が No.fの直前で作成したことが分かります。」 -
d・e を決める
表5の“404”を返している行を調べると、以下の2件があります。
・No.1「GET /test/ … ステータスコード 404」
・No.2「GET /demo/ … ステータスコード 404」
ディレクトリ作成前に “demo” が存在しないことを示しているのは後者です。したがって
・d=「2」
・e=「404」 -
f・g を決める
“demo/index.jsp” に対して初めて正常応答(存在を示す)を返した行を探すと、 ・No.14「GET /demo/index.jsp HTTP/1.1 ステータスコード 200」
以降にも同じパスへのアクセスが続きますが、A氏は「No.fの直前で作成」と言っているため、最初の“200”行を採用します。よって
・f=「14」
・g=「200」 -
以上より解答は
d:2
e:404
f:14
g:200
誤りやすいポイント
- 「/manager/html」の“401”と“200”に目を奪われ、ディレクトリ存在確認の“404”を見落とす。
- “index.jsp” というファイルへのアクセスである点を忘れ、No.11・12の“200”を選択してしまう。
- 行番号(No.)は1から始まるため、手元でカウントし直してずれる。
- “404”=ファイル未検出、“200”=正常応答 の意味を取り違える。
FAQ
Q: 「404」や「200」はどう覚えれば良いですか?
A: 代表的なHTTPステータスは押さえておきましょう。特に「200:成功」「401:認証失敗」「403:禁止」「404:未検出」はログ解析の基本です。
A: 代表的なHTTPステータスは押さえておきましょう。特に「200:成功」「401:認証失敗」「403:禁止」「404:未検出」はログ解析の基本です。
Q: “demo”ディレクトリが本当に無かったと断定できる理由は?
A: “404”は「該当リソースなし」を示すため、存在しなかったことが確実です。その後“200”が返るようになったことから、途中で作成されたと推測できます。
A: “404”は「該当リソースなし」を示すため、存在しなかったことが確実です。その後“200”が返るようになったことから、途中で作成されたと推測できます。
Q: 行番号がずれたらどうすれば?
A: まず時間順で並んでいるか確認し、該当するリクエストパス・ステータスコードを洗い出してから行番号を確定させるとミスを減らせます。
A: まず時間順で並んでいるか確認し、該当するリクエストパス・ステータスコードを洗い出してから行番号を確定させるとミスを減らせます。
関連キーワード: HTTPステータスコード、アクセスログ解析、ディレクトリ作成痕跡、インシデントレスポンス
設問2:〔侵入された原因の特定〕について(1)、(2)に答えよ。
(2)本文中の下線①のように推測された理由を、表5のログに基づいて60字以内で述べよ。
模範解答
No.3 から 10 までのステータスコードが 401 で失敗を繰り返しており、No.11 は 200 でログインに成功しているから
解説
解答の論理構成
- 攻撃対象はサーブレットコンテナの管理画面であり、本文には「“管理画面へのログインは、ベーシック認証で行われる。成功時は200、失敗時は401のステータスコードを返す。”」と明記されています。
- 「表5 a のアクセスログ」では、
• 「No.3」〜「No.10」が「ステータスコード 401」
• 直後の「No.11」が「ステータスコード 200」
という連続した記録が確認できます。 - 401 が示すのは認証失敗であり、これが連続していることから「よく使われる利用者IDとパスワードでログインが試行」されたと判断できます。
- 直後に 200 が記録されていることで、試行が成功し「ログインが成功したものと推測された」という本文の下線①の結論につながります。
- よって模範解答のとおり、「No.3 から 10 までのステータスコードが 401 で失敗を繰り返しており、No.11 は 200 でログインに成功しているから」と説明できます。
誤りやすいポイント
- 401 を「アクセス拒否」と誤解し、認証の成否判定に使えないと考えてしまう。
- 200 の直前に 404(No.1, No.2)があるため、404 と 401 の役割を混同しがち。
- 失敗が「8 回」続いた事実に気を取られ、最後の成功(No.11)を見落としてしまう。
- 「ログインが成功した」と「管理画面に侵入された」を同列に扱わず、因果関係を弱く書いて減点される。
FAQ
Q: 200 が返っていれば必ずログイン成功と断定してよいのでしょうか?
A: 本文が「成功時は200、失敗時は401」と明示しているため、本設問では 200=成功と断定して差し支えありません。
A: 本文が「成功時は200、失敗時は401」と明示しているため、本設問では 200=成功と断定して差し支えありません。
Q: 404 が最初に出ているのに無視して良いのですか?
A: 404 は「対象リソース無し」を示すだけで認証過程ではありません。設問は「管理画面へのログイン試行」に焦点を当てているため、401 と 200 のみを根拠とします。
A: 404 は「対象リソース無し」を示すだけで認証過程ではありません。設問は「管理画面へのログイン試行」に焦点を当てているため、401 と 200 のみを根拠とします。
Q: 何回失敗すれば不正アクセスと判断できますか?
A: 回数自体ではなく、短時間に繰り返され、その後に成功が続くパターンが辞書攻撃等の典型であり、ここでは「No.3~10 の連続失敗+No.11 の成功」が決定打です。
A: 回数自体ではなく、短時間に繰り返され、その後に成功が続くパターンが辞書攻撃等の典型であり、ここでは「No.3~10 の連続失敗+No.11 の成功」が決定打です。
関連キーワード: HTTPステータスコード、ベーシック認証、侵入検知、辞書攻撃、ログ解析
設問3:〔影響範囲の特定〕について、(1)、(2)に答えよ。
(1)内部LANへの影響を調査するには、FWのどのフィルタリングルールで取得されるログを確認すればよいか。該当するものを全て、表6の項番で答えよ。
模範解答
3、4
解説
解答の論理構成
-
影響を確認したい範囲
– 内部LANは【問題文】で「内部LAN(192.168.50.0/24)」と定義されています。
– したがって、ログで確認すべきは“192.168.50.0/24”あて通信を許可するルールです。 -
攻撃者が操作できた送信元
– 侵入されたのは DMZ の「192.168.0.20」「192.168.0.30」であると会話で特定されています(“aからbに、bからcに”の流れとログイン履歴)。
– よって送信元はこの 2 つのIPアドレスを含むルールが対象です。 -
表6のフィルタリングルールを照合
-
ログ取得の条件
– 表6脚注に「全てのルールについて、ログを取得する設定」と明記。
– したがって内部LANへの影響確認に必要なログは、項番3と項番4で生成されたものです。 -
結論
– 確認すべきフィルタリングルールの項番は「3、4」です。
誤りやすいポイント
- 項番5も内部LAN宛てに見えるため選びたくなるが、送信元「192.168.90.20」は侵入に使われていない管理端末であり対象外です。
- 「全てログ取得」とあるため“拒否”ルール(項番9)を選ぶ必要があると勘違いするケースがありますが、対象通信が許可ルールでマッチすれば拒否ルールには到達しません。
- ステートフルインスペクションのため、応答方向のパケットは明示的な許可ルールを要しない点を見落とすと、誤って宛先・送信元を逆に考えてしまいます。
FAQ
Q: 攻撃者が内部LANへアクセスしていないかを確認する際、拒否ログは無視してよいのですか?
A: はい。今回は「許可」ルールで到達できたかどうかを確認することが主目的なので、まず許可ルールのログを確認します。拒否ログは補足的な情報と考えます。
A: はい。今回は「許可」ルールで到達できたかどうかを確認することが主目的なので、まず許可ルールのログを確認します。拒否ログは補足的な情報と考えます。
Q: 送信元IPが複数列挙されているルールで、その一部のみ確認したい場合でも同じルール番号を参照するのですか?
A: その通りです。ルールはあくまで一意に管理されており、個別のIPごとに番号が分かれていない限り、該当するルール番号全体を確認対象とします。
A: その通りです。ルールはあくまで一意に管理されており、個別のIPごとに番号が分かれていない限り、該当するルール番号全体を確認対象とします。
Q: JDBC 接続やファイル共有サービスが許可されているのはポリシ違反ではないのですか?
A: DBサーバ・ファイルサーバは業務要件で DMZ からアクセスする必要があるため許可されています。ポリシ違反と指摘されているのは、業務不要な許可が含まれている箇所(例:項番5)です。
A: DBサーバ・ファイルサーバは業務要件で DMZ からアクセスする必要があるため許可されています。ポリシ違反と指摘されているのは、業務不要な許可が含まれている箇所(例:項番5)です。
関連キーワード: ファイアウォール、DMZ, ステートフルインスペクション、アクセス制御、ログ解析
設問3:〔影響範囲の特定〕について、(1)、(2)に答えよ。
(2)本文中の下線②について、ポリシを満たしていないことが判明したルールはどれか。表6の項番で答えよ。また、当該ルールがポリシを満たすように設定すべきサービスを二つ答えよ。
模範解答
項番:5
サービス①・ファイル共有
サービス②・リモートデスクトップ
解説
解答の論理構成
-
ポリシの確認
【問題文】には「“業務上必要なサービスだけをFWで許可することになっている”」と記載されています。つまり、許可ルールは最小限でなければなりません。 -
ルールの抽出
表6でポリシを満たしていないと指摘されたルールを探すと、項番5が「送信元 “192.168.90.20”」「宛先 “192.168.0.0/24, 192.168.50.0/24”」「サービス “全て”」となっています。
“全て”を許可しているため最小権限の原則に反し、下線②の「ポリシを満たしていない」ルールは項番5だと判断できます。 -
業務上“必要なサービス”の特定
【問題文】には運用端末(IPアドレス “192.168.90.20”)について
・「ファイル共有とリモートデスクトップのサービスを使用して各サーバを操作できる」
と明示されています。したがって、運用端末が DMZ・内部LANへアクセスする際に必要なのは
・ファイル共有
・リモートデスクトップ
の二つだけです。 -
結論
ポリシ違反のルール:表6「項番5」
ポリシを満たすように設定すべきサービス:
① ファイル共有
② リモートデスクトップ
誤りやすいポイント
- 「項番2」もインターネット→WebAPサーバへの “HTTP, HTTPS” を許可しているため怪しく見えますが、WebAPサーバはロードバランサを介さず直接アクセスされる仕様と読み取れ、業務に必要なため誤答になります。
- 送信元 “192.168.90.10”(管理サーバ)の「ログ収集」を“全て”と誤認しがちですが、サービスが限定されているので問題ありません。
- 項番5の送信元が単一 IP であることから、「許可範囲が狭いので問題なし」と思い込みやすいです。しかし“サービス 全て”という設定がポリシ違反となります。
FAQ
Q: なぜ「HTTP」や「JDBC 接続」ではなく「ファイル共有」「リモートデスクトップ」なのですか?
A: 運用端末が日常業務で利用するサービスがその二つだけだからです。【問題文】で明示されており、ほかのサービスは不要です。
A: 運用端末が日常業務で利用するサービスがその二つだけだからです。【問題文】で明示されており、ほかのサービスは不要です。
Q: 「ステートフルインスペクション型FW」なら一方向許可で十分では?
A: ステートフルでも初回パケットは許可ルールに合致する必要があります。“全て”を許可する設定は不要なポートまで開放することになり、ポリシ違反です。
A: ステートフルでも初回パケットは許可ルールに合致する必要があります。“全て”を許可する設定は不要なポートまで開放することになり、ポリシ違反です。
Q: 項番5を削除してはいけないのですか?
A: 業務には「ファイル共有」「リモートデスクトップ」が必要なため、完全削除ではなくサービスを限定した新ルールに置き換えるのが適切です。
A: 業務には「ファイル共有」「リモートデスクトップ」が必要なため、完全削除ではなくサービスを限定した新ルールに置き換えるのが適切です。
関連キーワード: 最小権限、ファイアウォール、ステートフルインスペクション、アクセス制御、ポリシ設定
設問4:
〔対策とシステム再稼働〕について、本文中の(a), (b)の対策は、今回のインシデントにおける一連の攻撃のうち、どのような攻撃を防ぐために実施するものか。(a), (b)について、防ぎたい攻撃をそれぞれ40字以内で述べよ。
模範解答
(a):サーブレットコンテナの管理画面に対するインターネットからの不正アクセス
(b):自動的にログインを行う OS の仕様を利用した、他のサーバへの侵入
解説
解答の論理構成
-
攻撃者が最初に突破した入口
- アクセスログには GET /manager/html で 401 が連続し、直後に 200 が記録されています(表5の No.3~11)。
- さらに本文には「①サーブレットコンテナの管理画面に対して、よく使われる利用者IDとパスワードでログインが試行され、その結果、ログインが成功したものと推測された」と明示されています。
- したがって“サーブレットコンテナの管理画面への外部からの不正アクセス”こそが攻撃の第一歩です。
-
対策(a)の内容と効果
- (a)では「WebAPサーバ1とWebAPサーバ2に、図4のアクセス制御の設定を行う」とあり、図4には Allow from 127.0.0.1 のみを許可する設定が示されています。
- 127.0.0.1 はサーバ自身を指すため、インターネットから直接管理画面へアクセスする経路が物理的に遮断されます。
- よって(a)は“サーブレットコンテナの管理画面に対するインターネットからの不正アクセス”を防止するものです。
-
横展開(ラテラルムーブメント)で使われた仕組み
- A氏は「DMZの各サーバには、“unyou”、“administrator”という利用者IDが、全サーバに同じパスワードで設定されている」「そのようなOSの仕様を利用して、他のサーバにもログインした」と説明しています。
- 同一認証情報が使い回されている場合、Windows の“自動資格情報転送(パススルー)”により、認証ダイアログなしでログインが成功します。
-
対策(b)の内容と効果
- (b)では「利用者 ID “administrator” を無効化し…パスワードもサーバごとに異なるものに変更」と記載されています。
- ID 共有とパスワード共通化を解消することで、自動的な資格情報転送が成立しなくなり、攻撃者は他サーバへ横展開できません。
- よって(b)は“自動的にログインを行う OS の仕様を利用した、他のサーバへの侵入”を防止するものです。
誤りやすいポイント
- 図4の設定を“ベーシック認証の強化”と誤解し、IP 制限による遮断であることを見落とす。
- (b)を「パスワードの複雑化」とだけ記述し、問題の核心である“同一資格情報使い回しによる自動ログイン”を示せず減点。
- 127.0.0.1 のみ許可すると運用端末からの遠隔管理が不可能になる点を指摘せず、VPN や SSHポートフォワーディング等の代替手段を想定外とする。
FAQ
Q: 図4の設定を入れると、管理画面を遠隔で操作できなくなりませんか?
A: 直接の HTTP アクセスは遮断されますが、運用時にはサーバへリモートデスクトップ接続後に localhost で閲覧する、または SSH トンネル等で 127.0.0.1 に転送する方法が取れます。
A: 直接の HTTP アクセスは遮断されますが、運用時にはサーバへリモートデスクトップ接続後に localhost で閲覧する、または SSH トンネル等で 127.0.0.1 に転送する方法が取れます。
Q: “自動的にログイン”とは具体的にどの機能ですか?
A: Windows では同一ドメイン(またはワークグループ)内で同一 ID/パスワードが設定されていると、資格情報がキャッシュされ SMB や RDP などで再利用されます。これを攻撃者が悪用して横展開しました。
A: Windows では同一ドメイン(またはワークグループ)内で同一 ID/パスワードが設定されていると、資格情報がキャッシュされ SMB や RDP などで再利用されます。これを攻撃者が悪用して横展開しました。
Q: “administrator” を無効化するだけでは十分ですか?
A: 標準管理者アカウントを無効にしても、新たに同等権限の ID が共有パスワードで残っていれば再発リスクがあります。そのため“サーバごとに異なる ID とパスワード”が併せて必須です。
A: 標準管理者アカウントを無効にしても、新たに同等権限の ID が共有パスワードで残っていれば再発リスクがあります。そのため“サーバごとに異なる ID とパスワード”が併せて必須です。
関連キーワード: アクセス制御、ブルートフォース、資格情報再利用、横展開、権限分離


