top of page

第2章 インシデント対応方法(2/2)

第2章 インシデント発生後の対応方法(つづき)

5.情報の保全

6.影響範囲、感染原因調査

7.封じ込め、根絶及び復旧

5.情報の保全

 インシデントが発生した場合は、すぐにログや各種データを保全する必要があります。時間が経つとインシデント発生時点のメモリの情報や通信パケットの情報等が失われること、被害を受けた機器上で調査活動を行うことにより、ログなどの当該機器における活動を記録した情報が書き換えられ、どこまでが攻撃者の活動によるものか不明になること、犯罪証拠としての有効性が失われることが想定されるためです。

 JPCERT『高度サイバー攻撃(APT)への備えと対応ガイド』では、証拠として保全すべきデータの種類は、攻撃方法・侵入経路や、侵害に関わったシステムから実際に収集できるものによって決まる、としています。収集できるデータはどのようなシステムを使用しているかによって変わってきますし、攻撃方法によってどのようなデータを収集すべきは変わります。通常は、攻撃が開始されてから発見されるまで長い期間があるため、メモリや通信データなどの揮発性データより、ログやファイルの使用状況などの過去のデータの収集により重点が置かれることが多いようです。しかし、もしマルウェアがシステムのドライブ上にロードされず、メモリのみにロードされるものであれば、メモリ全体のデータを失われる前に取得しておくことが重要です。なるべく多くの情報を保全した方がいいのは確かですが、どんな時でもシステムメモリの全てのデータを取得する、ハードディスクのビットイメージコピーを取得する、と決めてしまうのは、大きな負担となり、使用しないデータも取得することにもなるため、攻撃方法やシステムの状況などによって決めるべきかと思われます。

 インシデントの状況によって保全すべき情報が異なってくるものであり、経験のない人間がやろうとしても問題が発生する可能性が高いため、実際の現場では十分な経験のあるインシデント対応専門事業者が実施しているのではないでしょうか。

 

5.1ライブレスポンスツール

 インシデント発生時に必要な情報を一つ一つコマンドを打ちながら保全していると非常に時間がかかる上、高度な専門知識を要するため、一度にシステムから必要なデータをまとめて効率よく収集するライブレスポンスツールというものがあります。よく知られているツールとしては、AccessDataのFTK Imager Liteというツールがあり、少なくとも以下の情報を取得できます。

  • $MFTファイル(WindowsのNTFSというファイルシステムで、ファイルシステム上に存在するすべてのファイルのエントリを管理しているテーブル)

  • USNジャーナル(NTFSボリューム上のファイルおよびディレクトリの変更ジャーナル情報)

  • レジストリファイル

  • Prefetchファイル(C:\\Windows\Prefetchフォルダの下に格納されているファイルで、実行されたプログラムと実行日時がわかる)

  • Internet Explorerの履歴

  • イベントログファイル

  • ツールAutorunsの出力結果

 

 Jason T.Luttegens 他著“Incident Response & Computer Forensics, Third Edition”によれば、ライブレスポンスツールが最低限、収集すべきデータとして、以下のデータを挙げています。

  • システムの日時(タイムゾーンの情報を含む)

  • OSとそのバージョン

  • メモリ容量、ハードディスクドライブ、マウントされたファイルシステムといったシステム情報

  • 起動時に自動的にスタートするサービス、プログラムのリスト

  • スケジュールされたタスクのリスト

  • ローカルユーザーアカウントとローカルグループのメンバーのリスト

  • IP、MACアドレスを含むネットワークインターフェース

  • ルーティングテーブル、ARPテーブル、DNSキャッシュ

  • ネットワーク接続と関連のプロセス

  • ロードされているドライバーとモジュール

  • 使用中のファイル

  • システム構成

  • ユーザログイン履歴

  • システムログ

  • インストールされたソフトウェアのリスト

  • 適切なアプリケーションのログ・・・ブラウザの履歴、ウイルス対策ソフトウェアのログなど

  • ファイルシステムのリスト

 

上記にはメモリのデータが含まれていませんが、それを収集し、解釈するためには専用のツールが必要となります。

 ライブレスポンスツールを使用する場合も、使用方法を間違えると、調査対象機器にライブレスポンスツールを入れてしまい、そこから実行することによって、対象機器の情報を変えてしまったり、取得した情報を調査対象機器に保存してしまったり、調査対象機器につなげた機器がマルウェアに感染してしまったり、調査実施者が使用するユーザIDのパスワードが盗まれたりすることがありますので、注意が必要です。

 同書によると、ライブレスポンスツールは既成のものを利用するか、自ら作成するか、その両方を組み合わせて利用するか、の3つの選択肢があります。同書によるリサーチの結果では、既成のものであまり良いものはないようですが、唯一許容できるものとしてMandiant(現在はFireEye社によって買収されている)社のRedlineをあげています(2014年時点)。Redlineは、上記の情報を含む25のカテゴリーから情報を収集します。それらの情報は非常に役立つものですが、逆に言うと情報量が必要以上に多く、収集にも時間がかかります。必要な情報のみを収集するよう調整し、収集時間を短くするという工夫も必要なようです。また、Redlineは作成したデータに対してMD5チェックサム(MD5はハッシュ関数の一つで、チェックサムはそのハッシュ関数を計算した結果、算出される値。対象のデータに一部でも変更が加えられれば、この計算結果は別の値となるため、改ざんが行われていないことを確認するために使用される。)を計算しないため、データが収集後に改ざんされていないことを証明するためには別途、MD5チェックサムを計算して記録しておく必要があります。

 

5.2メモリデータの収集

 同書ではまた、Microsoft Windows環境下におけるメモリデータの収集については、いくつか信頼できるツールが無料で入手できると紹介しており、Mandiant Memoryze、AccessData FTK Imager Lite、Mantech MDD、Moonsols Windows Memory Tooolkitを挙げています。AccessData FTK Imager Liteは、メモリだけでなく、ハードディスクドライブのイメージも取得することができます。このツールはインストールする必要がないため、USBメモリなどにコピーしておき、そのUSBメモリを調査対象機器に接続、USBメモリ内にあるFTK Imager.exeをクリックするだけで、メモリを取得することができます。取得したメモリのデータを保存する場所も指定できるため、調査対象機器以外のUSBメモリやネットワーク上のドライブを指定できます。AccessData FTK Imager Liteは、メモリ全体の情報を取得しますが、一部のプロセスに関するメモリの情報のみを取得したい場合は、Mandiant Memoryze、Microsoft userdump、Microsoft procdump、Ntsecurity.nu.pmdumpを利用することが必要となります。

 ちなみにApple OS Xでのメモリ収集ツールでは、MandiantのMemoryze for Mac、ATC-NYのMacMemeory Readerが紹介されています。

 

5.3ハードディスクドライブのイメージの取得

 ハードディスクドライブのイメージとは、単にファイルやディスクの一部をコピーしたものではなく、ハードディスクの先頭から終端まで1ビットずつ、スラックスペースや未使用領域も含めてコピーする方式です。未使用領域とはファイルシステム上でファイルに割り当てられていない領域のことで、この領域には削除されたデータやその痕跡が残されている場合がありますので、削除されたファイルの復元や調査には不可欠です。MicrosoftのWindowsではNTFSというファイルシステムが使用されていますが、ここでは$MFTと呼ばれる管理テーブルがあり、ファイルシステム上に存在するすべてのファイルのエントリを管理しています。Windows上でファイルを削除した場合、MFT領域にある情報が破棄されるため、ファイルへのアクセスができなくなりますが、ファイル本体はデータ領域に残っているため、ファイルの痕跡を探し出しデータの復旧が可能です。

 ハードディスクドライブのイメージを取得するための代表的なツール(ソフトウェア)としては、DC3dd、AccessDataのFTK Imager、Guidance SoftwareのEncaseがあります。

ディスクイメージコピー取得のための専用機器もあります。

 最近は、通常の物理的なマシンとは別に仮想のバーチャルマシンが広く使われるようになりましたが、バーチャルマシンのイメージコピーはどのように取得すればいいのでしょうか。多くのバーチャルマシンには、現在の稼働状態をそのまま保存する機能があり、動作中のメモリの内容やハードディスクの状態をファイルとして書き出すことができます。これは物理マシンに比べ非常に便利で効率的な機能と言えます。物理マシンの場合、

動作中にハードディスクドライブのイメージを取得するのは、システムの情報を書き換えてしまうなど何らかの影響を与える可能性があり、難しいと言われています。

 これらのライブレスポンスツールは、非常に有用なものですが、専門家の支援を得ながら使用することが重要です。どのような場合でもハードディスクドライブのイメージを取得するべきだという考えは古い考えで、非常に時間が差し迫ったクリティカルな状況の中では、どのようにライブレスポンスツールを使用して調査を行うかによって、サイバー攻撃の被害に大きな差が生じると、同書では説明しています。

6.影響範囲、感染原因調査

 インシデントの発生を認知した後、どのように調査を進め、どのように攻撃の拡大を食い止め、根絶・復旧するかは、サイバー攻撃に関する高度な専門的知識を要し、対応を間違えると、調査をするための証拠を消され被害の全体像を把握できない、適切な対応ができず被害拡大を招く、完全な根絶ができず再発を招く、などの事態に陥る可能性も十分あります。通常の組織では、サイバー攻撃に関する高度な専門的知識及び経験を持つスタッフを擁している場合は少ないので、外部のインシデント対応専門事業者に支援を依頼するのが、賢明な選択肢と言えるでしょう。

6.1 優先して調査を行うべき領域

 しかし、どのような調査を行うか、全く知らなくていいというわけにもいきませんので、どのような調査を行うのか、Jason T.Luttegens 他著“Incident Response & Computer Forensics, Third Edition”の解説を参考として見ていきたいと思います。同書では詳しい調査方法まで説明していますが、ボリュームが大きく、難解なものとなるため、ここでは、Windows環境の調査において優先して調査する以下の領域について紹介します。

 

  • NTFSとファイルシステムの分析

  • Prefetch(C:\\Windows\Prefetchフォルダの下に格納されているファイルで、実行されたプログラムと実行日時がわかる)

  • イベントログ

  • スケジュールタスク

  • レジストリ

  • メモリ

 

NTFSとファイルシステムの分析

 NTFSは、Windowsのファイルシステムで、ディスクスペースをどのように配分して利用するか、どのようファイルを生成して削除するか、どのようにファイルと関連づけられたメタデータ(データの作成者、日時、属性に関するデータ)を保存し、更新するのかを決めています。Master File Table(MFT)は、NTFSにおけるメタデータの主なソースであり、ファイルに関する全ての情報(タイムスタンプ、データサイズ、権限、内容など)を保有、あるいは間接的に参照しています。NTFSのボリュームごとにMFTがあり、$MFTという名前のファイルがあります。$MFTといった$で始まるファイル名のファイルは、Windows Explorerなどの通常のアプリケーションのインターフェースでは見ることができないため、フォレンジック用ソフトウェアなどを利用して$MFTファイルを取得する必要があります。

 ご存知の通り、Windowsシステム上でファイルを削除しても、実際にはディスクからなくなったわけではなく、回復不可能なわけではありません。それは、MFTのエントリーの中で、Active/InactiveのフラグがActiveからInactiveに変わっただけで、データ自体は上書きされない限り、ディスクに残っているからです。これによって削除されたファイルを見つけ出すことが可能になります。

 $MFTファイルの取得や構造解析にはEnCase、FTKなどのフォレンジックツールが利用できます。他に利用できる無料のオープンソースのツールとして、Sleuth Kit(ディスクイメージやファイルシステムのメタデータを分析できる)、mft2csv(MFTをcsvファイルに変換できる)、AnalyzeMFT(MFTの解析、csvや他のフォーマットへの変換ができる)、plaso(タイムライン分析ができる強力なエンジン)などがあります。

 NTFSのファイルシステムの中には、ディレクトリやファイルへの変更を追跡するいくつかのログがあります。この中で最も重要なものが、$Log-fileと$UsnJrnlです。$Log-fileは、ファイルやディレクトリの作成、コピー、削除、変更といった、NTFSボリュームの構造を変える全てのトランザクションを追跡します。$UsnJrnlという名前のUpdate Sequence Number(USN) Journalは、NTFSボリューム上のファイルおよびディレクトリの変更についてのより高いレベルの変更ジャーナル情報となります。

 これらの情報を取得、解析することにより、どのようなデータが作成され、削除されたかということを調査することができます。

 

Prefetch

  Prefetchの意味は先読みで、システムが起動する時やアプリケーションがスタートする時にロードされるファイルを追跡し、Prefetchファイルに記録しておき、次に起動する時やアプリケーションがスタートする時に、このPrefetchファイルを利用し、ファイルがロードされるプロセスを早めようとします。従って、Prefetchファイルを見ればシステム上で実行された全てのプログラムについて、いつ、何回、どこのパスから実行されたかを知ることができます。

 

イベントログ

 Windowsシステムでは、アプリケーション、システム、セキュリティについての3つのログを記録します。これらは非常に有用で様々な情報を得ることができますが、特別なフォーマットのファイルのため、WindowsのEvent Viewerでみるか、特別なツールでなければ見ることができません。

 

スケジュールタスク

 atコマンドやschtasksコマンドを使用してスケジュールタスクを追加することができますが、攻撃者はマルウェアを実行するのにこのスケジュールタスクを利用します。Windowsのタスクスケジューラサービスは、実行されたスケジュールタスクの開始時間と終了をSchedLgU.txtという簡易なテキストファイルに記録しますので、これを確認することにより、スケジュールタスクの実行状況を調査することができます。

 

レジストリ

 レジストリは、Windowsのオペレーティングシステムとその上で動くアプリケーションの構成データのデータベースの役割を果たしています。レジストリファイルは人間によって読むことのできないフォーマットなので、ツール利用して解析をする必要があります。Windowsには、%SYSTEMROOT%/system32/config:のパスの下にSYSTEM、SECURITY、SOFTWARE、SAM、DEFAULTの5つの主要なレジストリがあります。Windowsのレジストリエディター(regedit.exe)を利用すると、確認、変更することができますが、ツリー構造になっており、HKEY_LOCAL_MACHINE/SOFTWAREという並び方をしています。Rootのレジストリキーは以下のとおりです。

  • HKEY_LOCAL_MACHINE(aka HKLM)

  • HKEY_USERS(aka HKU)

  • HKEY_CURRENT_USER(aka HKCU)

  • HKEY_CURRENT_CONFIG(aka HKCC)

  • HKEY_CLASSESS_ROOT

 レしストリの場合、LastWriteTimeという時間をを持っていますが、ファイルシステムのメタデータと違い、最後に更新された時間しかないため、ファイルシステムやイベントログのエビデンスと関連づけて調査する必要があります。また、これはOSやソフトウェアの更新によっても更新されますので注意が必要です。

 

メモリ

 メモリのデータから得られる情報は非常に多いですが、以下のものがあります。

  • 稼働中のプロセスと対象のオブジェクト

  • ネットワークの接続情報

  • ロードされたドライバ

  • ユーザの認証情報(ハッシュされている場合もあればテキスト形式の場合もある)

  • 前に実行されたコマンドの形跡

  • ディスク上では暗号化されているテキストデータの形跡

  • プロセスの説明、動き、実行に対して洞察を与える、カーネル内の重要なデータ構造

 

 メモリはRAMと呼ばれる物理的なメモリとページファイルから成ります。物理メモリの取得や解析は、Volatility FrameworkやRedlineといったツールによって可能です。ページファイルとは、OSがハードディスクに作成するファイルの一つで、使われていないメモリ領域の内容を保管して置くためのものです。ページファイルはOSの管理するメモリ領域の一部として物理メモリ装置と一続きに取り扱われるため、物理メモリサイズを超えるメモリ容量を確保して利用することができます。ページファイルは通常、%SYSTEMDRIVE%の下のpage.sysにありますが、これを取得するためには、そのためのフォレンジック用ツールを使用する必要があります。

6.2 ログ分析などによる調査

高度サイバー攻撃への対処におけるログの活用と分析方法1.1版』によると、一般的に機器のログは、Windowsのログは別として、テキストファイルの形式で取り出すことができ、これをテキストエディタなどで開けば、基本的なログ調査が始められます。SIEM などの専用のシステムやソフトウエアを活用することで調査を効率化することもできます。テキストエディタでも、単純な文字列検索だけでなく、正規表現などを利用して、高度な検索を行うことのできるものもあります。grepなどの文字列検索コマンドを利用したログ調査で見通しを立てることも有益です。

 また、ログ調査には知識や技術が必要と考えられがちですが、専門家でなくても一定の手順に従って実施できる定型的な調査項目も少なからずあります。そうした作業の方法を文書化しておくことで、緊急時に大量のログを、初心者を含むチームで手分けして解析することができる。そのためには、普段からログを調査する手順と体制を整備し、定期的に訓練しておくことが望ましいといえます。

 インシデントの発生が疑われる事象を検知した場合のログの分析方法についてはJPCERT『高度サイバー攻撃への対処におけるログの活用と分析方法1.1版』の「4.1.2.異常事象の報告に対応して行うログ分析」に記載されています。

 同書では、報告されることの多い3つの異常事象を挙げて、その異常事象ごとに基本的な考え方を述べるとともにそれぞれのログの分析方法を以下のとおり紹介しています。

 

(1) 高度サイバー攻撃のデリバリ段階のメールの受信が疑われる事象が報告された場合

・メールサーバのログを分析し、疑わしいと報告されたメールと同じ送信元や、添付ファイル名をもつメールの受信記録が他にないかを調べる。

 見つかった場合には、メールサーバのログを使って配送先を調べて、配送先のユーザが添付ファイルを開くなどしてマルウェア感染が起きていないかを確認しておくべきである。

 

(2) 組織内で遠隔操作型のマルウェア感染が疑われる場合

・C&C  サーバのURLが分かっていれば、Web  プロキシサーバのログを分析する。

・C&CサーバのIPアドレスだけしか分かっていなければ、Webプロキシサーバのログに加えて、Firewallの内部から外部に対するログなどを分析する。

 これらの分析により、当該マルウェアの活動の有無を確認できる。また、この調査で、組織内の PCが C&C サーバにアクセスした痕跡が見つかった場合には、当該PC関して次の調査を行うべきである。

・当該PCから、組織外あるいは組織内の許可されていないセグメントなどへの不審なアクセスが無いかをFirewallのログを分析する。

・組織内で利用しないブラウザなどのUserAgentやCONNECTメソッドを使ったアクセスをしていないかをWebプロキシサーバのログを分析する。

・アカウント認証の失敗が無いか、普段と異なるアカウントの利用が無いかを認証サーバのログを分析する

 

(3)機密情報の組織外への持出しが疑われる場合

 機密情報が組織外に持ち出された可能性が強く疑われる場合には、すでに高度サイバー攻撃が最終段階に至っていることも想定しつつ、少なくとも次のような分析をすべきである。

・組織外に向けた著しく大量のデータの送信が行われていないかWebプロキシサーバのログを分析する​。

 

 上記ログ分析方法の出典:JPCERT『高度サイバー攻撃への対処におけるログの活用と分析方法1.1版

 上記ログ分析の詳しい実施方法については、JPCERT『高度サイバー攻撃への対処におけるログの活用と分析方法1.1版』に記載されていますので、ご参照ください。

7.封じ込め、根絶及び復旧

  調査により攻撃の概要をある程度把握した段階で、攻撃が進行しているおそれがある場合は、それを食い止めるための封じ込め対策を実施します。例えば、重要な顧客情報が窃取されているのであれば、この進行を食い止めるために顧客情報を保管するサーバをオフラインにするなどの一時的措置が必要ですが、これによって業務上の影響がある場合は、担当業務部門あるいは幹部と協議し、対応策を決める必要があります。その後、恒久的対策として攻撃者のアクセス能力を完全に除去し、攻撃者が二度と重要なサーバや組織のネットワークに侵入できないように根絶対策を実施する必要があります。

 

7.1 封じ込め(Containment)

  封じ込め計画を立てるためには、守るべき重要なデータがどこにあるかをまず把握することが重要です。重要なデータを保管しているサーバにアクセスすることのできる入り口を全て塞ぎます。ファイアウォール等のアクセスルールを”DENY ALL”にすると同時に、無線ネットワークでのアクセスが可能になっていないかも含めて、抜け穴がないか再確認します。重要なデータを保管するサーバへの全てのアクセスを拒否するようにした結果、必要なデータを入手できず、業務に支障が生ずる場合は、システム管理者がマニュアルで必要なデータを渡すなどにより対応するなどの対策を検討して実施します。

 これらのアクセスを全て拒否する封じ込め対策は一時的対策ですが、通信の必要性の要件を再確認し、恒久的対策として、DENY ALLとして残せるものは残し、アクセスできる通信の種類を最低限の必要要件に絞り込むようにします。

 

7.2 セキュリティ改善及び監視態勢強化

 封じ込めを行うと同時に、セキュリティ対策の強化及び攻撃者の活動を可視化するために以下の対策を実施します。

  • 拒否したものだけでなく、許可した接続についてもログに記録するようにする。インシデントの最中においてはどのような通信が許可されたかの方がどの通信が拒否されたかより重要です。これにより、攻撃者の活動を追跡する調査能力を高めることができます。

  • パスワードが漏えいした全てのアカウントについて新しいアカウントを使うようにします。

  • 古いアカウントを使用した場合は攻撃者である可能性が高いため、アラートを出すようにし、攻撃者の活動を特定しやすくする。

  • 一時的に二要素認証を使用する。

  • 安全なメディアからのレストアにより侵入を受けたシステムを再構築する。封じ込め対策を実施することにより攻撃者はターゲットとなるシステムにアクセスすることはできないため、根絶対策の前にシステムを再構築しても大丈夫です。

  • インターネットとの通信がある場合、重要サーバの外向け通信については原則禁止とし、必要なもののみホワイトリスト化して許可する。

  • 重要情報を保管するサーバ上において、ホワイトリストで許可されたアプリケーション以外は実行をできないようにシステム上(警告モードでなく)ブロッキングモードで禁止する。これにより攻撃者がマルウェアを実行するのを防止することができます。

 

7.3 根絶(Eradication)及び復旧

 特定のセグメントやアプリケーションに対する攻撃者のアクセスを取り除くことを目的として即時に行うべき封じ込め計画に対して、根絶計画はシステム環境全体への攻撃者のアクセスを取り除くことを目的としています。根絶計画では、攻撃者が別の脆弱性を利用して再侵入する可能性も考慮して多方面に渡る対策を行う必要があります。

 また、バックドアがどこかに仕掛けられている可能性やアクセス制御の仕組みに欠陥がある可能性もありますので、慎重に再確認し、多重的防御対策を実施することが重要です。

  • システムをインターネットから切り離す。これにより、攻撃者は根絶対策実施中にアクセスすることはできなくなり、新しく構築したシステムも危うくすることができなくなります。

  • 不審なIPアドレスについては、通信ができないよう全てブロックする。

  • 全ての攻撃を受けたシステムはネットワークから切り離し再構築する。

  • パスワードを摂取されたアカウントだけでなく、管理者アカウント、サービスアカウントを含め、全てのアカウントのパスワードを変更する。一部のアカウントのパスワードしか窃取されていないとしても、全てのアカウントのパスワードが窃取されたと想定して対策を行うべきです。2日間の根絶期間のうちに全てのアカウントのパスワードを変更できない場合は、リスクの高いアカウントを優先して変更し、残りのアカウントについてはできる限り早く変更します。

  • 全てのWindowsのローカルのAdministratorアカウントを無効にする。これにより攻撃者が一つのアカウントを利用して複数のシステムにアクセスする能力を取り除くことができます。

  • rootアカウントを利用したSSHでの認証を全てのLinuxシステムで無効にする。

  • 一時的に実施していた封じ込めのための措置を取り除く。

  • 強化された監視をその後も最低2週間は継続する。感染端末を持った職員が出張中で、根絶対策が完了した後にネットワークに感染端末を接続すれば、再びマルウェアがC&Cサーバと通信を開始し、攻撃が侵入を再開しようとする可能性もあります。

  • 侵入を許した原因として、古いWebアプリケーションの脆弱性の存在などがある場合は、コードをレビューして修正するよりは、古いWebアプリケーション自体を廃止するなどの抜本的対策を行う。

© 2023 by SecurityLearning. Proudly created with Wix.com

bottom of page