家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

インシデント発生時の初動調査の手引き

概要

「サイバーレスキュー隊(J-CRAT)技術レポート2017 インシデント発生時の初動調査の手引き~WindowsOS標準ツールで感染を見つける~」で学んだことをまとめます。

www.ipa.go.jp

 

 

 

 

J-CRATとは

IPAは標的型サイバー攻撃の被害拡大防止のため、2014年7月16日、経済産業省の協力のもと、相談を受けた組織の被害の低減と攻撃の連鎖の遮断を支援する活動として、サイバーレスキュー隊(J-CRAT:Cyber Rescue and Advice Team against targeted attack of Japan)を発足させました。
J-CRATは、「標的型サイバー攻撃特別相談窓口」にて、広く一般から相談や情報提供を受付けています。

 

本記事の概要

この資料は、インシデントの初期段階に実施すべき「初動調査」について具体的な手順を解説しています。
そして、解説されている内容はJ-CRATのレスキュー活動において初動対応でも活用しているものとなります。

ガイドラインの章構成は以下の通りです。

目次
1.はじめに
1.1.本レポートの目的と想定読者
1.2.インシデント対応における調査の全体像
1.3.本レポートでの対象範囲と前提環境
2.基礎知識
2.1.マルウェア感染の特性
2.1.1.永続化
2.1.2.偽装
2.1.3.外部通信
2.2.攻撃痕跡を判断するために
2.2.1.マルウェアが配置されやすい場所(感染頻出箇所)
2.2.2.実行痕跡
2.2.3.攻撃によく使われるツール
2.3.情報収集作業の事前知識
2.4.共通する手法とツール
3.情報収集
3.1.永続化設定の取得
3.1.1.スタートアップ起動プログラム
3.1.2.サービス起動プログラム
3.1.3.スタートアップフォルダ
3.1.4.タスクスケジューラ
3.2.外部通信情報の取得
3.2.1.DNSキャッシュ
3.2.2.ネットワーク接続情報
3.3.実行痕跡の取得
3.3.1.アプリケーションの実行痕跡
3.3.2.実行痕跡の収集
3.4.感染頻出箇所の取得
3.5.情報収集コマンドの整理
3.6.活用例(バッチファイル)
4.評価
4.1.評価の基本的な手順
4.1.1.評価対象別の手順
4.2.永続化設定の評価
4.2.1.スタートアップ起動プログラムの評価と感染例
4.2.1.サービス起動プログラムの評価と感染例
4.2.2.タスクスケジューラでの評価と感染例
4.3.通信先の評価
4.3.1.DNSキャッシュの評価手順
4.3.2.ネットワーク接続情報の評価手順
4.4.実行痕跡の評価
4.4.1.実行痕跡評価の手順
4.4.2.実行痕跡における着眼点
4.5.感染頻出箇所の評価
4.5.1.感染頻出箇所における着眼点
4.6.攻撃事例と痕跡
4.6.1.攻撃事例概要
4.6.2.痕跡
5.おわりに

 

2章では標的型攻撃で使用されるマルウェアの基本的な情報をまとめています。

マルウェアの特性

永続化

攻撃者はRATを利用する場合が多く見られます。また、感染させた状態を維持しておくため、RAT等をOS起動時に自動的に起動するように設定します。これが永続化という特性です。

Windowsでは以下の部分に設定されることが多いです。

  • 自動起動レジストリ
  • スタートアップ起動プログラム
  • サービス起動プログラム
  • スタートアップフォルダ
  • ログオンスクリプト
  • タスクスケジューラ

偽装

マルウェアはフォルダ名やファイル名、サービス名などを偽装することが多く見られます。

  • 著名なアプリケーションと同じ、または似せた名称を使用
  • Windowsの正規ファイルと同じ、または似せた名称をファイル名を使用

また、マルウェアの起動時に偽装を行うケースもあります。

  • Windows標準の正規プログラムを利用する。
  • 正規アプリケーションの一部のプログラムを利用する。

外部通信

外部通信に関しては、ネットワーク機器の調査が必要になりますが、このレポートではPCを対象としており、外部への通信の調査の一つとして「DNSキャッシュ」の調査を解説しています。

 

攻撃の痕跡確認

マルウェアが配置されやすい場所(感染頻出箇所)

マルウェアが配置される傾向にあるフォルダがあります。特に管理者権限がないユーザーが権限を有し、環境変数でアクセスしやすい箇所がそれにあたります。

f:id:iestudy:20210409200757p:plain

感染頻出箇所

 

実行痕跡

マルウェアが実行された痕跡の調査例として以下のものが解説されています。

f:id:iestudy:20210409200942p:plain

実行痕跡の例

上記の「RunMRU」に関して、これは「ファイル名を指定して実行」で実行したプログラムの情報で、以下のレジストリに格納されています。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU

 

また「Prefetch」は、利用頻度が高いアプリケーションの起動を高速化する仕組みで、WindowsXPから導入されたものです。プログラムが起動された10秒後に、「C:\Windows\Prefetch」に、ファイル名が「プログラム名-フルパスのハッシュ値.pf」のファイルが作成されます。

ハッシュ値は、プログラムのフルパスから計算されるため、「プログラム名」部分が同一でハッシュ値が異なるPFファイルは、異なるフォルダから実行されたと判断できます。
PFファイルには、プログラムのフルパス、実行日時、実行回数、プログラムが起動時に読み込んだファイル名(DLLファイルなど)、ボリューム関連情報が記録されます。

 

3章では実際の調査方法を解説しています。

 

調査するユーザアカウントに関して

インシデントの調査時には、調査するユーザアカウントに注意する必要があります。

Windowsのレジストリには以下のものがあります。

f:id:iestudy:20210409202354p:plain

主なルートキー

HKCUは、現在ログオンしているユーザーのレジストリとなるため、インシデント検知時のログオンユーザーと情報収集時のログオンユーザーが異なると情報収集する内容も異なる場合があります。

また、レジストリ以外にもユーザごとに作成されるものとしてプロファイルがあります。
レジストリと同じく、調査対象となるユーザーアカウントでログオン時に情報収集することが推奨されます。
なお、プロファイルの情報は以下のコマンドで確認できます。

wmic path win32_userprofile

永続化設定の取得

システムのスタートアップ時に起動されるプログラムをレジストリから取得します。

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /s

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"/s

reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce"/s

reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx" /s

reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices" /s

reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce"/s

reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run"/s

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon"/v "Userinit"

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon"/v "Shell"

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify" /s

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows"/v "AppInit_DLLs"

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /s

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce" /s

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx" /s

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices" /s

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce" /s

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run"/s

reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows"/v "Load"

reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows"/v "Run"

reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Shell"

reg query "HKU\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run"/s

 

サービス起動プログラムもレジストリから収集できます。

reg query HKLM\SYSTEM\currentControlSet\services /s

 

スタートアップフォルダの位置は、下記レジストリに設定されています。
このレジストリの値“Startup”を照会するよう指定して収集します。

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"/v "Startup"

reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"/v "Startup"

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"/v "Startup"

reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"/v "Startup"

 

上記実行後に実際のファイルを取得します

dir /q /r /s "C:\Users\hajime.kamagata\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"


タスクスケジューラも永続化させる手段としてよく使われます。

下記コマンドで設定内容を出力できます。

schtasks /fo CSV /query /v

外部通信情報の取得

ipconfig /displaydns
netstat -naob

 

実行痕跡

プリフェッチ

dir /od /tc C:\Windows\PreFetch\

RunMRU

reg query " HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU "/s

TypedURLsTypedURLs

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU" /s

PsExecの実行痕跡

PsExecはリモート実行ツールで、感染拡大によく利用されます。レジストリを確認することで、過去に実行したことがあるかを判断できます。

reg query "HKEY_USERS" /s /k /f PsExec
reg query "HKCU\Software\Sysinternals\PsExec" /s