問1 マルウェアの解析
マルウェアの解析に関する次の記述を読んで,設問 1〜6 に答えよ。
R 社は,インターネット上でショッピングモール(以下,EC サイトという)を運営する,従業員数 3,000 名の企業である。EC サイトの総店舗数は 5,000 店,会員数は 300,000 名である。
〔R 社のネットワーク構成と組織〕
図 1 は,R 社のネットワーク構成である。
R 社内では無線 LAN を使用していない。また,事務用 PC と EC 管理 PC を併せて社内 PC と呼んでいる。
R 社では,内部 Web サーバに対してサーバ証明書を発行するためにプライベート CA を有しており,そのルート証明書を社内 PC にインストールしている。プライベート CA は,必要に応じてサーバ証明書を発行することができる。プライベート CA はネットワークに接続されていない。
表 1 は,R 社のネットワーク機器と役割である。
R 社には,情報システム部(以下,IS 部という),開発部,サポート部,営業部及び総務部がある。R 社の各部の役割を表 2 に示す。
サポート部が EC サイトの運用管理を行う際は,EC 管理 PC を使用している。事務用 PC から FW2 を経由した EC サイトへのアクセスは,FW1 によって遮断される。社内 PC には,パッチ管理プログラムがインストールされていて,パッチ配信サーバから脆弱性修正プログラムの配信を受けると,自動的に脆弱性修正プログラムが適用される。脆弱性修正プログラムは,公表から 1 か月以内に配信する運用としている。社内 PC の利用者には管理者権限を与えておらず,利用者が勝手にプログラムをインストールすることはできない。
〔不審な通信の発見〕
IS 部では,セキュリティ監視業務の一環として 8 時間ごとにプロキシサーバのアクセスログを確認している。ある日の正午過ぎ,その日の午前 4 時から正午までのプロキシサーバのアクセスログの集計情報を確認していた IS 部の U 君は,特定の社内 PC から特定のサーバに多数の HTTPS 通信が行われていることを発見した。U 君は不審に思い,アクセスログを急いで調査した結果,次のことが判明したので,それを午後 0 時 30 分に IS 部の T 部長に報告した。
- 1 台の事務用 PC から,社外の同一サーバ(以下,被疑サーバという)に対して多数の HTTPS 通信が,およそ 30 分おきに行われている。
- HTTPS 通信が行われるごとに,数 100k バイトのデータを送信している。
〔インシデントへの初動対応〕
報告を受けた T 部長は,インシデントが発生したと判断して,IS 部内に設置されている CSIRT の責任者である V 課長に対してインシデント対応を開始するよう指示した。V 課長は,CSIRT メンバの M 君を呼び,対応を開始するよう指示した。M 君は,図 2 に示すインシデント対応規程に従って,表 3 の順序で初動対応を行った。
午後 1 時,不審 PC を回収して解析室に設置した後,M 君は初期判定を開始した。初期判定は図 3 に示す IS 部のマルウェア初期判定ガイドラインに従って実施した。
M 君が図 3 中の解析チェックリストの (2) について通信の有無を解析したところ,該当する通信を発見した。その通信は,被疑サーバを宛先とした通信であった。M 君は,不審 PC がマルウェアに感染している疑いがあると判定し,即座に V 課長に報告した。不審 PC は,マルウェア感染の疑いが濃くなってきたので,CSIRT では被疑 PC という名称で呼ぶことにした。
〔インシデントへの二次対応〕
V 課長は,次の指示を出した。
- M 君に対して,図 3 中の解析チェックリストの (3),(4) について解析した後,詳細解析を開始すること
- CSIRT メンバの G 君に対して,被疑 PC の利用者及び所属部署に連絡し,聞き取り調査をすること
- CSIRT メンバの Z 君に対して,EC サイトへの影響の有無を調査すること
G 君が,被疑 PC の利用者である S さんから聞き取り調査をした結果は次のとおりであった。
- 昨日まで出張が続いていたので,被疑 PC の電源を入れるのは 3 か月ぶりであった。
- 朝,被疑 PC の電源を入れ,午前 9 時 30 分までの間,Web ブラウザを開いて幾つか社外の Web ページを閲覧した。その後,今まで会議に出席していたので,それ以外は被疑 PC を操作していなかった。その間,被疑 PC にはログオンしたままであった。被疑 PC は,無操作状態でもスリープ状態にならない設定であった。
- 会社から貸与されている出張用スマートフォンでメールを読んでおり,今日は被疑 PC のメールソフトを起動していない。
G 君は,念のため各種ログを調査したが,聞き取り調査の結果との矛盾はなかった。
Z 君が実施した調査では,EC サイトへの影響は一切発見できなかった。
〔マルウェアの詳細解析〕
M 君が解析室に戻り,図 3 中の解析チェックリストの (4) についてファイルの差異を解析したところ,不審なファイルを発見した。その後,被疑 PC を図 4 の詳細解析環境に接続し,通信の観測を続けた。表 4 は,詳細解析環境内の各サーバの役割である。
被疑 PC の通信について,観測の結果は次のとおりであった。
- (ⅰ) 解析用認証サーバに,認証を要求する。
- (ⅱ) 解析用プロキシサーバを経由して被疑サーバに HTTPS 通信を行おうとする。
- (ⅲ) 被疑サーバ以外を宛先とした HTTP/HTTPS 通信は行わない。
- (ⅳ) 被疑 PC と同一サブネット上の IP アドレスに対して,何らかのアクセスをする。
このうち,アクセスの内容が不明であった (ⅳ) を詳細に解析した結果,社内 PC の OS で以前発見された脆弱性(以下,脆弱性 K という)を突いて攻撃を仕掛けていることが判明した。脆弱性 K は,2 か月ほど前に脆弱性修正プログラムと併せて公開されており,R 社でも社内 PC に脆弱性修正プログラムを配信していた。
被疑 PC が (ⅱ) と (ⅳ) の通信を行っている最中に,動いているプロセスを M 君が調査したところ,マルウェアと思われるプロセスを発見した。発見したプロセスは,一通りの処理を終えると自身のファイルの隠蔽処理を行うとともに,自身を所定の時間経過後に起動するための設定を OS に対して組み込み,終了することが判明した。
〔マルウェアの HTTPS 通信の解析〕
マルウェアのおおよその動きが判明したので,被害の有無を確認するために,被疑サーバにアクセスしている内容を確認すべく,M 君は詳細解析環境を図 5 のように変更した。また,次の三つを行った。
- 解析作業による被疑 PC の状態変化を考慮し,被疑 PC の状態を保存するために,被疑 PC の HDD の複製を作成した。
- 解析作業による情報漏えいを防ぐために,被疑 PC 内のファイルのうち,機密情報が含まれているファイルの内容をランダムデータに置き換えた。
- マルウェアが HTTPS 通信を行う際,サーバ証明書の検証を行っている可能性を考慮し,検証が成功するよう,②サーバ証明書を発行し,図 5 の環境に,サーバ証明書と,それに対応する秘密鍵を組み込んだ。
図 5 の環境で被疑 PC が HTTPS 通信を開始した場合の動作は,図 6 のとおりである。
M 君は,図 5 の環境で 1〜2 時間ほど被疑 PC を稼働させることにした。パケットデータの収集を待つ間,デバッガを用いた解析を行うことにした。
〔デバッガによる解析〕
M 君は,被疑 PC 内の不審なファイルのうち,マルウェアと思われる実行ファイルを所定の手続に従って取り出し,これを検体 α と呼ぶことにした。続いて,CSIRT で用意している,デバッガを含むコード解析環境に検体 α を投入した。
まず,検体 α から読解可能な文字列を探したが,ほとんど存在しなかった。続いて,デバッガによる逆アセンブルを試行した。その結果,得られたアセンブリコードには,通常であれば多数存在するはずのシステムコールの呼出しが少数しかなかった。M 君はブレークポイントを指定して検体 α を実行してみたが,コードの冒頭部分が実行されただけで,何ら不正な動作をすることなく終了してしまった。
解析に行き詰まった M 君が V 課長に相談したところ,検体 α にはデバッガ環境下で実行していることを検知して実行を停止する機能が組み込まれているのであろうという説明を受けた。マルウェアがデバッガ環境下であることを検知する方法としては,デバッガ環境下であるかどうかを調べるシステムコールを実行する方法があるが,③その他にも幾つかの方法が知られている。
M 君は,検体 α のアセンブリコードを読んで,デバッガ検知機能を発見し,これを無効化することに成功した。無効化後の検体を検体 α2 と呼ぶことにし,M 君は,検体 α2 の解析を次の手法で進めた。
- 検体 α2 をデバッガにロードした時点で,逆アセンブルを行い,システムコールの呼出し全てにブレークポイントを設定する。
- ブレークするごとにシステムコールの内容を記録し,検体 α の動作を推測する。
この結果判明したシステムコールの呼出し回数はごく僅かで,動作の推測には至らなかった。ごく僅かの回数ブレークした後は,ブレークすることなく検体 α2 の実行が続き,他の PC を感染させるための通信を試みた上で終了した。この通信を行うには,システムコールの呼出しが必要なはずであるが,ブレークすることはなかった。
またもや解析に行き詰まった M 君が V 課長に相談したところ,パッカーが使われている可能性が高いとの説明を受けた。V 課長は,パッカーの一般的な仕組みについて図 7 と図 8 を使って説明した。
M 君は,パッカーによる動作を解析して,検体 α2 のマルウェア本体のコードを手に入れることができた。
〔応急措置の決定と実施〕
M 君がデバッガを使って検体 α2 を解析している間に,図 5 の環境において十分なパケットデータが取得できた。このパケットデータから,被疑サーバに送信していた情報が判明した。情報は暗号化されていたが,検体 α2 のマルウェア本体から取り出した鍵を使って復号したところ,平文を得ることができた。
その結果,次の三つが被疑サーバに送信されていることが確認できた。
- 被疑 PC 内に一時的に保存された認証情報(利用者 ID と,パスワードのハッシュ値を含む)
- 解析用認証サーバから取得した認証情報(利用者 ID だけを含み,パスワードのハッシュ値を含まない)
- OS の設定情報及びシステムファイルのファイル名の一覧
M 君の報告を受けた V 課長は,マルウェアの動作の特定並びに被害の有無及び影響範囲の確認ができたと考え,これ以上の被害拡大を防ぐために,表 5 の応急措置を即時実施することを T 部長に進言した。
〔感染経路の特定と対処〕
V 課長は,再感染を防止するために,M 君に感染経路を特定するよう指示した。M 君は,S さんからの聞き取り調査の内容から,被疑 PC が社外の Web ページを閲覧した際にマルウェアに感染した可能性が高いと考え,表 6 の手順で感染経路の特定を目指した。
確認したところ,URL の一覧に記載された Web サイトの中で,インターネット上の EC サービスに関するニュースを提供している Q 社の Web サイト内の 1 ページ(以下,N ページという)に,不自然な形でスクリプトが埋め込まれていることが発見された。このスクリプトは複雑であり,M 君が読んでも動作を把握することができなかった。そこで V 課長が N ページを分析してみたところ,次のことが分かった。
- N ページを Web ブラウザで開くと,Q 社のドメイン外のサイトから PDF ファイルをダウンロードして,PDF 閲覧ソフトで開く。
- N ページから不自然なスクリプトを削除したページを Web ブラウザで開くと,N ページと表示に違いはないが,PDF ファイルはダウンロードされない。
V 課長と M 君は,N ページが改ざんされ,マルウェアを配布していると推測した。しかし,比較対照用 PC をインターネットにアクセスできる環境とした上で N ページを開いても,PDF の内容が表示されるだけで,不審なファイルや不審なプロセスが生成されることはなく,マルウェアに感染しなかった。
困った M 君が V 課長に相談したところ,④比較対照用 PC の状態と,今日の勤務開始時刻時点の被疑 PC の状態では,重要な点が異なっている可能性が高いので,f のログを確認してみるようアドバイスを受けた。f のログを確認した M 君は,比較対照用 PC の状態を,今日の勤務開始時刻時点の被疑 PC と同一の状態にした上で,もう一度 N ページにアクセスした。その結果,不審なプロセスや検体 α などの不審なファイルが生成されていた。このことによって,マルウェア(以下,マルウェア L という)に感染したことが分かった。
この時点で,マルウェア L の感染経路は N ページを閲覧したことによるものと判断することができた。この報告を受けた V 課長は,次の対応策の実施を T 部長に進言した。
- 当面の間,社内 PC から Q 社の Web サイトへのアクセスを遮断する。
- 過去 1 週間の a のログを調査し,Q 社の Web サイトを閲覧した社内 PC を洗い出し,それらの PC について,a のログと f のログを突き合わせ,⑤マルウェア L に感染する可能性があったかどうか判断する。
- Q 社に対して適切な方法で,Web サイトが改ざんされている旨を伝える。
調査の結果,S さんの PC 以外に感染した社内 PC は存在しないことが確認できた。最後に,検体及び複製 HDD を消去し,インシデント対応を無事終了した。
〔インシデント対応の事後評価〕
V 課長は,今回のインシデント対応を振り返り,1 日以内に全ての対応を完了したこと,マルウェア L に感染した PC も 1 台だけであり,拡大を防げたことから,対応は成功したと考えた。
後日,V 課長は,今回のインシデント対応に当たったメンバを招集し,事後評価を実施した。その結果,⑥ディジタルフォレンジックスという観点から,実施するタイミングを見直す必要がある作業があること,⑦被疑 PC の利用者の業務継続を考慮して対応する必要があることが課題として挙げられた。さらに,今回のマルウェア L の場合,図 3 中の解析チェックリストではマルウェア感染を発見できない場合があるので,解析チェックリストの項目に,“g を比較対照用 PC と突き合わせると,差異が存在する”という項目を追加する必要があるとの結論に至った。
その後,Q 社から Web サイトの改ざんの原因の判明と復旧の連絡が届いたので,内容を確認後,Q 社 Web サイトへのアクセス遮断を解除した。
出題趣旨(IPA)
最新のウイルス対策システムをもってしても,検知が困難なマルウェアが増えてきており,PCのマルウェア感染はなかなか減少しない。マルウェア感染に迅速に対応するために,情報セキュリティ技術者にとってマルウェアを解析する能力は重要になってきている。本問では,CSIRTを設置している企業におけるインシデント対応を題材に,マルウェアの動作を解析する能力,及びマルウェア感染による被害を最小限に抑えるための対策を立案する能力を問う。
採点講評(問全体・IPA)
問1では,マルウェアの解析について出題した。
設問と解答例
図 2 中の下線①について,該当する情報を,解答群の中から全て選び,記号で答えよ。解答群 ア HDD のパーティションテーブルの情報 イ OS のバージョンの情報 ウ 画面に表示されているウィンドウの名称一覧 エ 起動しているプロセスの一覧 オ 脆弱性修正プログラムの適用状況
解答例
- ウ,エ
解説
本文の根拠
図2 (2)
電源オンの状態のまま移動できない場合は,①電源をオフにすると消去されてしまう情報について,必要な調査を電源オンの状態で行い,調査終了後,電源をオフにして直ちに解析室へ不審 PC を移動する。
図3 4.(1)
動作中のプロセスの一覧を比較対照用 PC と突き合わせると,比較対照用 PC には存在しないプロセスが存在する。
電源をオフにすると消えるのは,メモリ上にだけある情報,つまりPCが今動いている状態を表す情報である。解答群では,画面に表示されているウィンドウの名称一覧(ウ)と,起動しているプロセスの一覧(エ)がこれに当たる。どちらも電源を切った時点で失われ,次に起動したときには同じ状態は再現できない。解答例は“ウ,エ”である。
HDDのパーティションテーブル(ア)はHDDに書き込まれている情報で,電源を切っても残る。OSのバージョン(イ)と脆弱性修正プログラムの適用状況(オ)も,OSの設定やファイルとしてHDDに残るので,解析室に移してから調べられる。図3の解析チェックリストの(1)が“動作中のプロセスの一覧”を比較の対象にしているのも,プロセスがマルウェアの動作の手掛かりになるからで,電源を切る前に取っておかないと失われる。
“全て選び”なので,二つとも選ぶ。片方だけでは正答にならない。迷ったら,電源を入れ直したときに同じ内容が得られるかどうかで分ける。
表 3,表 6 及び本文中の a,表 3 中の b に入れる適切な字句を,図 1 中の構成要素から選び,答えよ。
〔a〕解答例
- プロキシサーバ
〔b〕解答例
- DHCPサーバ
解説
本文の根拠
表3 順序1
a のログから,被疑サーバを宛先としたエントリを抽出し,送信元 IP アドレスとアクセス時刻を洗い出した。
表3 順序1
送信元 IP アドレスとアクセス時刻を基に,b のログを検索し,アクセス時刻に送信元 IP アドレスを使用していた不審 PC の MAC アドレスを特定した。
表1 プロキシサーバ
社内 PC から社外の Web サーバへのアクセスを中継する。本サーバ以外から社外の Web サーバへの直接アクセスは,FW1 で遮断される。
表1 DHCPサーバ
IP アドレスのリース期間は,20 時間である。ログは DHCP による割当て結果。
aは,被疑サーバを宛先としたエントリと送信元IPアドレス,アクセス時刻が分かるログである。社内PCから社外のWebサーバへのアクセスは必ずプロキシサーバを経由し,プロキシサーバはアクセスログを取っている。不審な通信もU君がプロキシサーバのアクセスログから見つけたものである。aはプロキシサーバである。表6の順序2(被疑PCがアクセスした社外のURLの一覧)と本文の対応策(Q社のWebサイトを閲覧した社内PCの洗い出し)も,社外へのWebアクセスの記録なので同じくプロキシサーバのログを使う。
bは,ある時刻にあるIPアドレスを使っていたPCのMACアドレスが分かるログである。事務用PCのIPアドレスはDHCPサーバが割り当て,リース期間は20時間なので,時刻によって同じIPアドレスを別のPCが使っていることがある。DHCPサーバは割当て結果をログに取っているので,アクセス時刻とIPアドレスからMACアドレスを引ける。bはDHCPサーバである。
字数制限は無いが,“図1中の構成要素から選び”なので,図1の表記どおり“プロキシサーバ”“DHCPサーバ”と書く。FW1も通過するパケットのログを取るが,宛先がプロキシサーバになるので被疑サーバを宛先としたエントリは残らない。
本文中の下線②について,発行する証明書において,サブジェクトのコモンネームは,どのサーバの何を組み込むべきか。15 字以内で答えよ。
解答例
- 被疑サーバのFQDN
解説
本文の根拠
〔マルウェアのHTTPS通信の解析〕
マルウェアが HTTPS 通信を行う際,サーバ証明書の検証を行っている可能性を考慮し,検証が成功するよう,②サーバ証明書を発行し,図 5 の環境に,サーバ証明書と,それに対応する秘密鍵を組み込んだ。
図6 (1)
被疑サーバを宛先とした HTTPS 通信を開始するために,被疑 PC から解析用プロキシサーバにセッション開始要求を送信する。
本文(プライベートCA)
そのルート証明書を社内 PC にインストールしている。プライベート CA は,必要に応じてサーバ証明書を発行することができる。
HTTPSのクライアントは,サーバ証明書が信頼できるCAから発行されていることに加えて,証明書に書かれたサーバの名前が,接続しようとしているサーバの名前と一致することを確かめる。RFC 2818は,証明書にsubjectAltNameのdNSNameがあればそれを,無ければサブジェクトの(最も具体的な)コモンネームを,接続先のホスト名と照合すると定めている。マルウェアは被疑サーバに接続しているつもりなので,コモンネームには被疑サーバのFQDNを入れる。解答例は“被疑サーバのFQDN”である。
発行元は,ルート証明書が社内PCにインストールされているR社のプライベートCAである。被疑PCはこのルート証明書を信頼しているので,プライベートCAが発行した証明書なら検証が成功する。名前の照合は証明書の検証の一部なので,CAの条件だけでなく名前も被疑サーバに合わせておかないと,マルウェアが検証を行っていれば通信を中止してしまう。
字数は15字以内で,解答例は10字である。設問は“どのサーバの何”を問うので,“被疑サーバ”と“FQDN”の二つを書く。IPアドレスは証明書のコモンネームとの照合に使うものではないので,“FQDN”とする。
採点講評(IPA)
設問2は,正答率が低かった。HTTPSのセッション開始時の仕組みが理解できていれば正答が導き出せる問題である。HTTPSは通信の安全の確保のため重要な技術であるので,確実に理解しておいてほしい。
本文中の下線②について,発行した証明書と対応する秘密鍵を組み込むべきサーバの名称を,図 5 中の機器から選び,答えよ。
解答例
- 中継サーバ1
解説
本文の根拠
図6 (2)
解析用プロキシサーバが,HTTPS 通信を中継することによって,被疑 PC と中継サーバ 1 間の通信路が確立する。
図6 (4)
中継サーバ 1 は,HTTPS 通信を復号して HTTP 通信に変換した上で,中継サーバ 2 に転送する。
被疑PCとTLSの通信路を結ぶのは中継サーバ1である。解析用プロキシサーバはHTTPS通信をそのまま中継するだけで,TLSを終端しない。中継サーバ1がHTTPS通信を復号してHTTPに変換するので,被疑PCから見たTLSのサーバは中継サーバ1になる。TLSのサーバは,サーバ証明書を提示し,対応する秘密鍵で鍵交換を完了させるので,証明書と秘密鍵は中継サーバ1に組み込む。解答例は“中継サーバ1”である。
中継サーバ2は,中継サーバ1から受け取ったHTTP通信を暗号化して本物の被疑サーバと通信する。中継サーバ2はTLSのクライアントとして動くので,自分のサーバ証明書は要らない。パケットキャプチャ装置は中継サーバ1と中継サーバ2の間にあり,ここは平文のHTTPなので通信の中身が読める。
字数制限は無い。“図5中の機器から選び”なので,図5の表記どおり“中継サーバ1”と書く。
採点講評(IPA)
設問2は,正答率が低かった。HTTPSのセッション開始時の仕組みが理解できていれば正答が導き出せる問題である。HTTPSは通信の安全の確保のため重要な技術であるので,確実に理解しておいてほしい。
図 5 の解析環境を正常に動作させるためには,図 5 中の解析用プロキシサーバ上で特別な設定を行う必要がある。その設定内容を,45 字以内で述べよ。
解答例
- 被疑サーバへのHTTPS接続要求を,中継サーバ1に到達するようにする。
解説
本文の根拠
図6 (1)
被疑サーバを宛先とした HTTPS 通信を開始するために,被疑 PC から解析用プロキシサーバにセッション開始要求を送信する。
図6 (2)
解析用プロキシサーバが,HTTPS 通信を中継することによって,被疑 PC と中継サーバ 1 間の通信路が確立する。
図5
L2SW には解析用プロキシサーバ,解析用認証サーバ,解析用 DHCP サーバと,中継サーバ 1 が接続されている。
被疑PCは,被疑サーバを宛先としたHTTPSのセッション開始要求を解析用プロキシサーバに送る。普通のプロキシサーバなら,宛先の被疑サーバの名前を解決して被疑サーバに接続しに行く。しかし図5の環境では,被疑PCと中継サーバ1の間に通信路ができなければならない(図6の(2))。そのため,解析用プロキシサーバに,被疑サーバへのHTTPS接続要求を中継サーバ1へ届けるように設定しておく必要がある。解答例は“被疑サーバへのHTTPS接続要求を,中継サーバ1に到達するようにする。”である。
図5からは解析用DNSサーバが外されており,解析用プロキシサーバが被疑サーバの名前を引いても,中継サーバ1のアドレスは返らない。被疑サーバの名前やアドレスに対する接続先を中継サーバ1にする(上位のプロキシとして中継サーバ1を指定するなど)特別な設定が要る。HTTPSをプロキシで中継するときは,クライアントがCONNECTメソッド(RFC 9110)で宛先を伝え,プロキシがその宛先へのTCP接続を作るので,ここで接続先を差し替えればよい。
字数は45字以内で,解答例は35字である。“被疑サーバへのHTTPS接続要求”という対象と,“中継サーバ1に到達するようにする”という行き先の二つを残す。
採点講評(IPA)
設問2は,正答率が低かった。HTTPSのセッション開始時の仕組みが理解できていれば正答が導き出せる問題である。HTTPSは通信の安全の確保のため重要な技術であるので,確実に理解しておいてほしい。
本文中の下線③について,どのような方法があるか。40 字以内で述べよ。
解答例
- 実行中プロセスの一覧から既知のデバッガのプロセス名を探す。
解説
本文の根拠
〔デバッガによる解析〕
マルウェアがデバッガ環境下であることを検知する方法としては,デバッガ環境下であるかどうかを調べるシステムコールを実行する方法があるが,③その他にも幾つかの方法が知られている。
図3 4.(1)
動作中のプロセスの一覧を比較対照用 PC と突き合わせると,比較対照用 PC には存在しないプロセスが存在する。
デバッガ環境下では,デバッガそのものがプロセスとして動いている。そこでマルウェアは,実行中のプロセスの一覧を取り出し,よく知られたデバッガのプロセス名が含まれているかどうかを調べれば,デバッガ環境下で実行されていることを検知できる。解答例は“実行中プロセスの一覧から既知のデバッガのプロセス名を探す。”である。
下線③は,システムコールでデバッガの有無を直接問い合わせる方法“以外”を問うている。プロセスの一覧の取得はどのプログラムでも普通に行う処理なので,デバッガ検知用のシステムコールより目立たない。M君がシステムコールの呼出しにブレークポイントを設定しても,こうした検知は残りうる。
字数は40字以内で,解答例は29字である。“実行中プロセスの一覧”という調べる対象と,“既知のデバッガのプロセス名”という探すものの二つを残す。“デバッガを検知する”だけでは方法になっていないので,何を見て判断するかまで書く。
採点講評(IPA)
設問3は,正答率が低かった。攻撃者は,マルウェアの発見を遅らせるために様々な技法を用いている。マルウェアの技術動向について学習を進めてほしい。
図 7 の(5)について,検知が著しく難しい理由を,60 字以内で述べよ。
解答例
- 暗号鍵を変えてパック処理すると暗号化済みコード部が変化し,ウイルス定義ファイルに登録されていないファイルとなるから
解説
本文の根拠
図7 (3)
暗号化済みコード部のデータは実行プログラム部によって復号されて,見せかけのデータ部に書き込まれる。
図7 (5)
このようなマルウェアは,ウイルス定義ファイルに基づくウイルススキャンでの検知が著しく難しい。
ウイルス定義ファイルに基づくスキャンは,既知のマルウェアのファイルが持つ特徴(パターン)と照合して検知する。パッカーを使ったマルウェアでは,マルウェア本体は暗号化済みコード部として暗号化されてファイルに入っている。暗号鍵を変えてパック処理し直すと,暗号化済みコード部の中身が変わり,ファイルとしては別物になる。ウイルス定義ファイルには登録されていないファイルなので,検知できない。解答例は“暗号鍵を変えてパック処理すると暗号化済みコード部が変化し,ウイルス定義ファイルに登録されていないファイルとなるから”である。
マルウェア本体はメモリ上で実行するときに初めて復号されて現れる(図7の(3)(4))ので,ファイルを見ても本体のパターンは出てこない。同じ本体から鍵の数だけ違うファイルを作れるので,定義ファイルの登録が追い付かない。検体αから読解可能な文字列がほとんど見つからず,システムコールの呼出しも少なかったのも,本体が暗号化されていたからである。
字数は60字以内で,解答例は57字である。“暗号鍵を変えて(パック処理する)”“暗号化済みコード部が変化する”“ウイルス定義ファイルに登録されていない”の三つを因果の順につなぐ。
採点講評(IPA)
設問3は,正答率が低かった。攻撃者は,マルウェアの発見を遅らせるために様々な技法を用いている。マルウェアの技術動向について学習を進めてほしい。
表 5 中の c に入れる適切な字句を,20 字以内で述べよ。
〔c〕解答例
- プロキシサーバのブラックリスト
解説
本文の根拠
表5
被疑サーバへの HTTPS アクセスの禁止:c に被疑サーバを登録するとともに,念のため FW1 のルールを変更する。
表1 プロキシサーバ
アクセス先 URL に基づき,アクセス制御を行う。ホワイトリスト/ブラックリストの登録ができる。
被疑PCのHTTPS通信は,プロキシサーバを経由して被疑サーバに向かっていた。表1のとおり,プロキシサーバはアクセス先URLに基づいてアクセス制御ができ,ブラックリストを登録できる。被疑サーバをブラックリストに登録すれば,社内PCから被疑サーバへのHTTPSアクセスを止められる。解答例は“プロキシサーバのブラックリスト”である。
FW1では,社外のWebサーバへの直接アクセスはもともと遮断されている。社内PCのHTTPS通信はプロキシサーバからFW1を通って出て行くので,FW1では送信元がプロキシサーバになる。表5が“念のため”FW1のルールを変更するとしているのは,プロキシサーバでの禁止を主にした上で,被疑サーバへの通信をFW1でも重ねて遮断するためである。
字数は20字以内で,解答例は15字である。“ブラックリスト”だけでは,どの機器のリストか分からないので,“プロキシサーバの”を付ける。ホワイトリストは許可する宛先を登録するものなので,禁止には使わない。
採点講評(IPA)
設問4及び設問5は,インシデントの終結に向けての対応について出題した。正答率は高かった。終結の手順はインシデント対応の中でも重要な点である。様々な状況を考えた上で机上演習を行うなど,学習を進めてほしい。
表 5 中の d に入れる適切な措置を,新規にソフトウェアや機器を調達しない前提で,30 字以内で述べよ。
〔d〕解答例
- 脆弱性Kに対応した脆弱性修正プログラムを適用する
解説
本文の根拠
〔マルウェアの詳細解析〕
社内 PC の OS で以前発見された脆弱性(以下,脆弱性 K という)を突いて攻撃を仕掛けていることが判明した。脆弱性 K は,2 か月ほど前に脆弱性修正プログラムと併せて公開されており,R 社でも社内 PC に脆弱性修正プログラムを配信していた。
観測の結果 (ⅳ)
被疑 PC と同一サブネット上の IP アドレスに対して,何らかのアクセスをする。
聞き取り調査
昨日まで出張が続いていたので,被疑 PC の電源を入れるのは 3 か月ぶりであった。
マルウェアは,同じサブネットのPCに対し,OSの脆弱性Kを突いて感染を広げようとしていた。脆弱性Kの修正プログラムは2か月ほど前に公開され,R社も社内PCに配信している。しかし,被疑PCのように長く電源が入っていなかったPCには適用されていない可能性がある。全ての社内PCで脆弱性Kの修正プログラムが適用されている状態にすれば,この経路での感染は防げる。解答例は“脆弱性Kに対応した脆弱性修正プログラムを適用する”である。
“新規にソフトウェアや機器を調達しない前提”なので,ウイルス対策製品の追加などではなく,既にあるパッチ配信サーバと各PCのパッチ管理プログラムで修正プログラムを配信・適用する。パッチ配信サーバは各PCの適用結果を収集しているので,未適用のPCを見つけて確実に適用できる。
字数は30字以内で,解答例は24字である。“脆弱性K”という対象と“脆弱性修正プログラムを適用する”という措置の二つを残す。“OSを最新にする”のように対象をぼかすより,感染に使われた脆弱性Kを名指しする。
採点講評(IPA)
設問4及び設問5は,インシデントの終結に向けての対応について出題した。正答率は高かった。終結の手順はインシデント対応の中でも重要な点である。様々な状況を考えた上で机上演習を行うなど,学習を進めてほしい。
表 5 中の e に入れる適切な字句を,10 字以内で答えよ。
〔e〕解答例
- パスワードの変更
解説
本文の根拠
〔応急措置の決定と実施〕
被疑 PC 内に一時的に保存された認証情報(利用者 ID と,パスワードのハッシュ値を含む)
表5
窃取されたアカウント情報の悪用の防止:被疑 PC 内にキャッシュされていた認証情報に含まれる利用者のアカウントについて,e を行う。
被疑サーバには,被疑PC内に保存されていた認証情報として,利用者IDとパスワードのハッシュ値が送られていた。ハッシュ値からは総当たりなどでパスワードを割り出される恐れがあり,割り出されれば利用者IDと組み合わせて不正にログインされる。窃取されたパスワードを使えなくするには,そのアカウントのパスワードを変更すればよい。解答例は“パスワードの変更”である。
解析用認証サーバから取得した認証情報は利用者IDだけでパスワードのハッシュ値を含まないので,表5もパスワードを変更する対象を被疑PC内にキャッシュされていた認証情報のアカウントに絞っている。利用者IDは変えなくても,パスワードが変われば窃取した情報ではログインできない。
字数は10字以内で,解答例は8字である。“eを行う”に続くので,“パスワードの変更”と名詞の形で書く。アカウントの削除や停止でも悪用は防げるが,利用者の業務が止まるので,応急措置としては変更が適切である。
採点講評(IPA)
設問4及び設問5は,インシデントの終結に向けての対応について出題した。正答率は高かった。終結の手順はインシデント対応の中でも重要な点である。様々な状況を考えた上で机上演習を行うなど,学習を進めてほしい。
本文中の下線④について,どのような点が異なっていたか。30 字以内で述べよ。
解答例
- PDF閲覧ソフトの脆弱性修正プログラムの適用状況
解説
本文の根拠
図3 2.
比較対照用 PC とは,OS 及びアプリケーションソフトウェアをインストールした後に,最新の脆弱性修正プログラムの適用やウイルス定義ファイルの更新を行った社内 PC であり,インシデント対応開始時に作成する。
〔感染経路の特定と対処〕
N ページを Web ブラウザで開くと,Q 社のドメイン外のサイトから PDF ファイルをダウンロードして,PDF 閲覧ソフトで開く。
聞き取り調査
昨日まで出張が続いていたので,被疑 PC の電源を入れるのは 3 か月ぶりであった。
表1 パッチ配信サーバ
OS と PDF 閲覧ソフトの脆弱性修正プログラムを社内 PC に配信し,適用結果を収集する。
比較対照用PCは,最新の脆弱性修正プログラムを適用した状態で作られる。一方,被疑PCは3か月ぶりに電源を入れたので,今日の勤務開始時刻の時点では,その間に公開された修正プログラムが適用されていなかった。Nページは外部のPDFファイルをPDF閲覧ソフトで開かせるので,PDF閲覧ソフトの脆弱性を突くPDFであれば,修正済みの比較対照用PCは感染せず,未修正の被疑PCだけが感染する。異なっていた点はPDF閲覧ソフトの脆弱性修正プログラムの適用状況である。解答例は“PDF閲覧ソフトの脆弱性修正プログラムの適用状況”である。
パッチ配信サーバはOSとPDF閲覧ソフトの修正プログラムを配信している。比較対照用PCを被疑PCと同じ(修正プログラムが未適用の)状態に戻してNページにアクセスしたところ感染したことで,この推測が確かめられた。
字数は30字以内で,解答例は24字である。“PDF閲覧ソフト”と“脆弱性修正プログラムの適用状況”の二つを残す。“OSの”としないのは,Nページの動作がPDFファイルを開くことだからである。
採点講評(IPA)
設問4及び設問5は,インシデントの終結に向けての対応について出題した。正答率は高かった。終結の手順はインシデント対応の中でも重要な点である。様々な状況を考えた上で机上演習を行うなど,学習を進めてほしい。
本文中の f に入れる適切な機器名称を,表 1 中の機器から選び,答えよ。
〔f〕解答例
- パッチ配信サーバ
解説
本文の根拠
本文
f のログを確認した M 君は,比較対照用 PC の状態を,今日の勤務開始時刻時点の被疑 PC と同一の状態にした上で,もう一度 N ページにアクセスした。
表1 パッチ配信サーバ
ログは配信した脆弱性修正プログラムの情報,各 PC の脆弱性修正プログラム適用結果。
fは,比較対照用PCを今日の勤務開始時刻の被疑PCと同じ状態にするために見るログである。設問5(1)のとおり,違いは脆弱性修正プログラムの適用状況なので,各PCにどの修正プログラムがいつ適用されたかが分かるログを見ればよい。表1で,各PCの脆弱性修正プログラム適用結果をログに取っているのはパッチ配信サーバである。解答例は“パッチ配信サーバ”である。
本文の対応策では,プロキシサーバ(a)のログでQ社のWebサイトを閲覧した社内PCと閲覧時刻を洗い出し,パッチ配信サーバ(f)のログでその時点の修正プログラムの適用状況を突き合わせている。fをパッチ配信サーバとすると,この二つのログの組合せとも筋が合う。
字数制限は無い。“表1中の機器から選び”なので,表1の表記どおり“パッチ配信サーバ”と書く。
採点講評(IPA)
設問4及び設問5は,インシデントの終結に向けての対応について出題した。正答率は高かった。終結の手順はインシデント対応の中でも重要な点である。様々な状況を考えた上で机上演習を行うなど,学習を進めてほしい。
本文中の下線⑤について,どのような場合に感染の可能性があったと判断するか。55 字以内で具体的に述べよ。
解答例
- PDF閲覧ソフトの脆弱性修正プログラムを適用する以前に,Q社のWebサイトを閲覧した場合
解説
本文の根拠
本文の対応策
過去 1 週間の a のログを調査し,Q 社の Web サイトを閲覧した社内 PC を洗い出し,それらの PC について,a のログと f のログを突き合わせ,⑤マルウェア L に感染する可能性があったかどうか判断する。
〔感染経路の特定と対処〕
比較対照用 PC の状態を,今日の勤務開始時刻時点の被疑 PC と同一の状態にした上で,もう一度 N ページにアクセスした。その結果,不審なプロセスや検体 α などの不審なファイルが生成されていた。
マルウェアLは,PDF閲覧ソフトの脆弱性修正プログラムが適用されていないPCがNページを閲覧したときに感染する。したがって,Q社のWebサイトを閲覧した時刻(プロキシサーバのログ)が,そのPCにPDF閲覧ソフトの脆弱性修正プログラムが適用された時刻(パッチ配信サーバのログ)より前であれば,感染の可能性があったと判断できる。解答例は“PDF閲覧ソフトの脆弱性修正プログラムを適用する以前に,Q社のWebサイトを閲覧した場合”である。
修正プログラムを適用した後に閲覧したPCは,比較対照用PCと同じく感染しない。二つのログを突き合わせるのは,閲覧した時刻と適用した時刻の前後を比べるためである。
字数は55字以内で,解答例は44字である。“PDF閲覧ソフトの脆弱性修正プログラムを適用する以前に”という時期と,“Q社のWebサイトを閲覧した”という行為の二つを残す。“具体的に”とあるので,“修正プログラムが未適用の場合”だけで終えず,閲覧との前後関係まで書く。
採点講評(IPA)
設問4及び設問5は,インシデントの終結に向けての対応について出題した。正答率は高かった。終結の手順はインシデント対応の中でも重要な点である。様々な状況を考えた上で机上演習を行うなど,学習を進めてほしい。
本文中の下線⑥について,実施するタイミングを見直す必要がある作業とは何か。20 字以内で述べよ。
解答例
- 被疑PCのHDDの複製作業
解説
本文の根拠
〔マルウェアのHTTPS通信の解析〕
解析作業による被疑 PC の状態変化を考慮し,被疑 PC の状態を保存するために,被疑 PC の HDD の複製を作成した。
〔マルウェアの詳細解析〕
M 君が解析室に戻り,図 3 中の解析チェックリストの (4) についてファイルの差異を解析したところ,不審なファイルを発見した。その後,被疑 PC を図 4 の詳細解析環境に接続し,通信の観測を続けた。
ディジタルフォレンジックスでは,証拠となるデータを改変しないよう,解析を始める前に原本の複製(証拠保全)を取り,以後の解析は複製で行うのが原則である。今回,被疑PCのHDDの複製を作成したのは,初期判定,チェックリストの(3)(4)の解析,詳細解析環境での通信の観測などを済ませた後の〔マルウェアのHTTPS通信の解析〕の段階だった。それまでの作業で被疑PCの状態は変わっており,マルウェア自身も動き続けていた。複製作業は解析を始める前に行うよう見直す必要がある。解答例は“被疑PCのHDDの複製作業”である。
本文でもHDDの複製の目的を“解析作業による被疑PCの状態変化を考慮し,被疑PCの状態を保存するため”としている。その目的からすれば,状態を変える解析作業より前に行うべきだったことになる。
字数は20字以内で,解答例は13字である。“被疑PCのHDD”と“複製作業”の二つを残す。“証拠保全”のような一般論でなく,本文の作業名で答える。
本文中の下線⑦について,どのような対応をすべきか。25 字以内で具体的に述べよ。
解答例
- 被疑PCの解析中に使用する代替PCの払出し
解説
本文の根拠
〔インシデント対応の事後評価〕
⑦被疑 PC の利用者の業務継続を考慮して対応する必要がある
表3 順序2
不審 PC はノート PC であったので,電源オンの状態のまま解析室に移動することにした。
被疑PCは解析のために解析室に移され,その後もHDDの複製や詳細解析に使われた。その間,利用者のSさんは自分のPCを使えず,業務を続けられない。業務継続を考えるなら,被疑PCを解析している間に使う代わりのPCを利用者に貸し出せばよい。解答例は“被疑PCの解析中に使用する代替PCの払出し”である。
本文の対応は,図2の手順どおり被疑PCを回収して解析を進めることに集中しており,利用者への手当ては書かれていない。マルウェアに感染していない代替PCを用意すれば,解析を急がずに済み,利用者も業務を止めずに済む。
字数は25字以内で,解答例は21字である。“代替PC”と,それを使う時期の“被疑PCの解析中”の二つを残す。“具体的に”とあるので,“業務に配慮する”のような言い方ではなく,何をするかを書く。
本文中の g に入れる適切な内容を 40 字以内で述べよ。
〔g〕解答例
- PC起動時や所定の時刻などに特定のプログラムを自動的に起動する設定内容
解説
本文の根拠
〔マルウェアの詳細解析〕
発見したプロセスは,一通りの処理を終えると自身のファイルの隠蔽処理を行うとともに,自身を所定の時間経過後に起動するための設定を OS に対して組み込み,終了することが判明した。
図3 4.
次のチェックリストのうち,不審 PC において 1 件でも該当すれば,マルウェアに感染している疑いがあると判定する。
マルウェアLは,一通りの処理を終えると自身のファイルを隠蔽し,所定の時間が経ってから自身を起動する設定をOSに組み込んで終了する。終了している間は,チェックリストの(1)のプロセスにも,(2)(3)の通信にも現れない。ファイルを隠蔽するので(4)でも見つからないことがある。しかし,自動的に起動する設定はOSに残るので,これを比較対照用PCと突き合わせれば差異が見つかる。解答例は“PC起動時や所定の時刻などに特定のプログラムを自動的に起動する設定内容”である。
今回は,たまたまプロセスが動いて通信している最中に解析したので発見できた。チェックリストを,プロセス・通信・システムファイルの比較に,起動の設定の比較を加えたものにすれば,マルウェアが休止している時でも感染を判定できる。
字数は40字以内で,解答例は35字である。“特定のプログラムを自動的に起動する設定”を中心に,“PC起動時や所定の時刻など”という起動の契機も入れる。本文の“所定の時間経過後に起動する”だけでなく,OS起動時の自動起動も同じ仕組みでありうるので,両方を含める書き方になっている。
出典:平成29年度 春期 情報処理安全確保支援士試験 午後Ⅱ 問1(表記を一部改変)