13章

1 Windowsイベントログの解析

イベントログとは

Windowsのイベントログには、システムコンポーネントのイベントログサービス(Eventlog)により、Windows OS上で発生する様々なイベントの情報が記録されます。

イベントログの実体は、Binary XMLと呼ばれるバイナリ形式で記録されており、ユーザーはWindows標準のイベントビューアーにより参照できます。


Readme_Eventlog


イベントログは、以下のような項目で構成されています。

 

レベル

発生事象の重要度が記録されます。重要度の段階は以下になります。

  • 重大:重要なコンポーネントの停止等、すぐに対処が必要なイベント
  • エラー:問題発生を示すイベント
  • 警告:潜在的な問題の事前警告
  • 情報:状況報告や成功の通知、参考情報

 

発生日時

イベントの発生日時が世界標準時(UTC)で記録されます。

なお、イベントビューアーでは、PCに設定されたタイムゾーンに変換して表示されます。

 

ソース

イベント発生元のシステムコンポーネントやアプリケーション名が記録されます。

例えば、PCの起動/終了に関するイベントは「Kernel-General」、Windows認証(アカウントログオン)に関するイベントは「Microsoft-Windows-Security-Auditing」が記録されます。

 

イベントID

発生した事象を表現するコード(数字)が記録されます。このコードは、Microsoft社によって上記のソースごとに決められたものです。イベントログでは、ソースとイベントIDの組み合わせで発生事象が特定されます。

例えば、「アカウントログオンの成功」イベントは、以下になります。

  • ソース:Microsoft-Windows-Security-Auditing

  • イベントID:4624

 

詳細情報

発生事象の詳細な情報(発生時のユーザーアカウント、エラーの発生理由など)が記録されます。事象により、記録される項目は異なります。なお、多くの情報はコード化されていますので、コードが示す意味をMicrosoft社の公式サイトで調べる必要があります。

例えば、以下の図の例では「ログオンの種類:5」と記録されています。これは「サービス コントローラによって起動された Windows サービス」によるログオンを示しています。


<「アカウントログオンの成功」イベントに記録される詳細情報の例>

Lecture01_Eventlog


 

イベントログの種類(カテゴリー)

イベントログは、記録対象のイベントのカテゴリーごとに分類され、複数のファイルに記録されます。特にシステムの重要イベントが記録されるカテゴリーは、以下のSecurity、System、Applicationです。

 

Security

Securityには、Windowsのセキュリティ設定やアクセス制御、監査、グループポリシーに関連するイベントの情報が記録されます。インシデントレスポンスでは、Windowsへのログオン成功・失敗に関連する認証イベントが重要になります。

 

System

Systemには、Windowsサービスやドライバ、OSのコンポーネントに関連するイベントが記録されます。インシデントレスポンスでは、攻撃者によるWindowsサービスの登録や実行を記録したイベントが重要になります。

 

Application

Applicationには、Windowsのシステム関係以外のソフトウェアに関連するイベントの情報が記録されます。インシデントレスポンスでは、アンチウイルス製品の動作状況やアラートを記録したイベントが重要になります。なお、Applicationイベントログに何を記録する/しないについては、各ソフトウェアの開発者が任意に設定できるものですので、マルウェアの挙動自体が記録されていることはまず期待できません。

 

その他のカテゴリー

上記の主要カテゴリー以外にも、インシデントレスポンスの調査対象となる個別カテゴリーがあります。

例えば、以下のカテゴリーは、サイバー攻撃やマルウェアの調査対象として重要です。

  • Microsoft-Windows-TaskScheduler

    Windows標準のタスクスケジューラに関連する、タスク登録や実行のイベントが記録されます。

  • Microsoft-Windows-PowerShell

    Windows PowerShellの実行に関連するイベントを記録されます。

その他にも数多くのカテゴリーが存在します。インシデントの内容により、必要に応じてさまざまなイベントログの調査を検討しましょう。

 

イベントログの保存フォルダ

イベントログは、Windows Vista以降のOSでは「C:\Windows\System32\winevt\Logs 」フォルダ配下に、拡張子「.evtx 」のファイルとして保存されています。

このフォルダを開くと、以下のように、イベントログの実体である「.evtx」ファイルが多数格納されています。


Lecture01_EventlogFiles


各ファイル名は、「Security.evtx」や、「System.evtx」など、基本的に「カテゴリー名 + ".evtx"」という形式で、ファイル名とカテゴリーが対応するような命名がされています。

なお、Windows XP以前の古いOSでは、「C:\Windows\System32\config 」フォルダ配下に、拡張子「 .evt」のファイルとして保存されており、「.evtx」とは保存形式が異なります。

 

イベントログの参照方法(イベントビューア―)

イベントログは、Windows標準のイベントビューアーで参照することができます。


Lecture01_EventID_4634


イベントビューアーでは、画面の左サイドパネルから参照したいイベントログのカテゴリーを選択すると、中央上部パネルにそのイベント一覧が表示され、一覧から特定のイベントを選択すると、イベントの詳細が中央下部のパネルに表示されます。

上の図は、左サイドパネルで、カテゴリー「Windowsログ」ー「セキュリティ」を選択した例です。「Windowsログ」の階層では、前述の重要イベントを含むシステムの主要カテゴリーがリスト表示されます。日本語化された「セキュリティ」カテゴリを選択すると、「Security(Security.evtx)」に記録されているイベント一覧が表示されます。

上の図では、一覧から選択した「アカウントのログオフ」イベントの詳細情報が、中央下部パネルに表示されています。

以下は、詳細情報に表示された内容です。

 

イベント 4634, Microsoft Windows security auditing.

アカウントがログオフしました。

サブジェクト:
    セキュリティ ID:        DESKTOP-5LKG45F\04180
    アカウント名:        04180
    アカウント ドメイン:        DESKTOP-5LKG45F
    ログオン ID:        0x2BA5A54

ログオン タイプ:            2

このイベントは、ログオン セッションが破棄された場合に生成されます。
これは、ログオン ID の値を使用して、ログオン イベントに関連付けられる場合があります。
ログオン ID は、同一コンピューターが次に再起動するまでの間のみ一意です。

 

この詳細情報は、アカウント名「04180」のログオフを示しています。

なお、「アカウントがログオフしました」などの文言は、イベントビューアーがソースとイベントIDから判定して自動表示しているもので、ログの中にこのような文言が記録されているわけではありません。ソース「Microsoft Windows security auditing」とイベントID「4634」の組み合わせが、アカウントのログオフを意味しています。

実際のイベントログ(バイナリデータ)を可読化すると、項目名とそのデータのみが、以下のようなXML形式で記録されています。イベントビューアーの中央下部パネルを、「詳細」タブ-「XMLで表示」へ切り替えることにより、イベントログをXML形式で表示できます。


Lecture01_EventID_4634_xml 


 

インシデントレスポンスにおけるイベントログ調査

イベントログ調査の着眼点

イベントログには、PC内のさまざまなイベントが記録されています。インシデントレスポンスにおいて調査すべき主なポイントは、以下のようなものが考えられます。

  • 攻撃者やマルウェアの侵入経路および侵入手法
  • 調査対象PCから他のPCやサーバへの侵入有無(横展開:Lateral Movement)
  • 攻撃者やマルウェアが、調査対象PCの中で利用したシステムコマンドやPowerShellコマンド

侵入状況や横展開の有無については、アカウントの認証に関するイベントが記録される Security イベントの調査が有効です。

Windowsのリモートコマンドなどによる外部からの攻撃があった場合は、Systemイベントにリモートサービスのインストール記録が残ることもあります。

また、タスクスケジューラやPowerShellに関するカテゴリーのイベントログから、攻撃者やマルウェアが利用したコマンドの履歴が発見されるケースもあります。

こうしたイベントログ調査において着目すべきイベントについて、以下カテゴリー別に事例を紹介します。

 

アカウント認証のイベント(Security.evtx)

Windowsにおけるアカウント認証イベントは Securityカテゴリのイベントログに記録されます。

Windows Vista以降、デフォルトの設定で、ログオンの成功・失敗やログオフに関するイベントはすべて記録されるようになりました。これらのイベントを調査することで、インシデント発生時のユーザーアカウントのログオン状況や、PC間でのリモートログオンの状況など、インシデントの発生原因や影響範囲の把握に役立ちます。

特に、次のログオン/ログオフに関するソース・イベントIDは重要です。

  • ソース:Microsoft-Windows-Security-Auditing
  • イベントID
    • 4624:ログオンの成功
    • 4625:ログオンの失敗
    • 4634 / 4647:ログオフ

これらのイベントには、詳細情報としてログオンの種別(ログオンタイプ)が記録されており、どのような方法/経路でログオンが行われたかを確認することもできます。通常のローカルユーザーによる対話型ログオンは、ログオンタイプ:2 となります。

一方、インシデントレスポンスにおいて着目すべきログオンタイプは、以下のものです。

  • ログオンタイプ:3

    異なるコンピュータ間で、ネットワーク経由のリモートログオンが発生したことを示す

  • ログオンタイプ:10

    リモートデスクトップ接続(Windows標準の遠隔操作機能)によるログオンを示す

組織内において、運用上リモートログオンが許可されていないのにも関わらず、このようなイベントが記録されている場合は、攻撃者やマルウェアによる不正なアクセスが疑われます。

また、リモートログオンの許可有無に関わらず、侵害を受けた可能性のあるPCでこのようなログオンが記録されている場合は、正規ユーザーによるものかどうかを慎重に調査する必要があります。

さらに、次のイベントも重要です。

  • ソース:Microsoft-Windows-Security-Auditing
  • イベントID
    • 4648:ログオン中のユーザーの認証情報とは異なる認証情報を利用したログオン

高度なサイバー攻撃においては、攻撃者はまず最初に侵入に成功したアカウントを使用して情報収集を行ない、より高い権限を持った管理者アカウントを奪取して横展開を図ります。

以下は、そうした横展開により記録されるイベントログの例です。 

イベント 4648, Microsoft Windows security auditing.

明示的な資格情報を使用してログオンが試行されました。

サブジェクト:
    セキュリティ ID:    DESKTOP-G6RKBG5\user02
    アカウント名:    user02
    アカウント ドメイン:    DESKTOP-G6RKBG5
    ログオン ID: 0x35B93
    ログオン GUID:    {00000000-0000-0000-0000-000000000000}

資格情報が使用されたアカウント:
    アカウント名:    Administrator
    アカウント ドメイン:    DESKTOP-G6RKBG5
    ログオン GUID:    {00000000-0000-0000-0000-000000000000}

ターゲット サーバー:
    ターゲット サーバー名: DESKTOP-5LKG45F
    追加情報: DESKTOP-5LKG45F

プロセス情報:
    プロセス ID: 0x290
    プロセス名:    C:\Windows\System32\lsass.exe

ネットワーク情報:
    ネットワーク アドレス: -
    ポート: -

このイベントは、プロセスがアカウントの資格情報を明示的に指定して、そのアカウントへのログオンを試行した場合に生成されます。これは、スケジュール タスクなどのバッチ タイプ構成で、または RUNAS コマンドの使用時に発生するのが最も一般的です。

この例では、「user02」という一般アカウントで侵入した攻撃者やマルウェアが、「Administrator」アカウント(管理者)を使用して、他のコンピュータ(DESKTOP-5LKG45F)へログオンを試みたことがわかります。 

本来使用されないはずの管理者権限のアカウントを使用して、他のコンピュータへのログオンを試みた記録がある場合、サイバー攻撃の可能性が高いと考えるべきでしょう。

なお、ログオンが成功したか否かについては、ログオン先コンピュータのイベントログ(Security)から、前述のログオンイベント(イベントID:4624、4625)を確認する必要があります。

 

サービス登録のイベント(System.evtx)

Systemカテゴリのイベントログには、OSとそのコンポーネントに関連するイベントや、Windowsサービスに関連するイベントの情報が記録されます。

「永続化されたマルウェアの調査」の章でも紹介したように、マルウェアは自分自身をWindowsサービスとして常駐させ、感染の永続化を行うことがあります。この痕跡は、Windowsサービスが登録されるレジストリから調査できます。しかし、攻撃者やマルウェアが目的を達成して証拠隠滅を図る場合、レジストリのサービス登録を削除することは比較的容易です。一方、イベントログに記録されたサービス登録のイベントを削除することは、レジストリほど容易ではないため、削除されずに残っている可能性があります。

また、別のPCからリモートコマンドを使った横展開手法により侵入された場合も、リモートコマンドを受け入れるために、サービスの新規登録のイベントが記録されていることがあります。

こうしたサービスとしてしばしば悪用されるものに、Microsoft社が提供する「PsExec」ツールがあります。「PsExec」によるリモートPCへの通信が成功すると、リモートPCでの任意のコマンド実行が可能です。このとき、侵入される側のリモートPCには、自動的に「PSEXESVC」というサービスが新規登録され、そのイベントが記録されます。

意図せずにこのようなイベントが記録されている場合は、横展開による侵入を疑いましょう。

 

新しいWindowsサービスが作成された場合は、Systemに以下のイベントが記録されます。

  • ソース:Service Control Manager

  • イベントID

    • 7045 :サービスのインストール

このイベントログの詳細情報には、作成されたWindowsサービスの名前 や サービスとして登録されたファイルのフルパス が記録されます。例えば、攻撃者により「PsExec」を悪用した攻撃を受けた場合は、侵入される側のリモートPC(侵入対象マシン)に以下のようなイベントログが記録されます。

イベント 7045, Service Control Manager

サービスがシステムにインストールされました。

サービス名:  PSEXESVC
サービス ファイル名:  %SystemRoot%\PSEXESVC.exe
サービスの種類:  user mode service
サービス開始の種類:  demand start
サービス アカウント:  LocalSystem

また、「PsExec」実行時には、侵入対象マシンの管理者権限があるローカルユーザーアカウントとそのパスワードを指定する必要があります。

以下は、アカウント「user01」、パスワード「a3l@em5i3」により、IPアドレス「192.168.1.xxx」のマシンにPsExecコマンドで侵入し、リモートコンソール(cmd.exe)を起動するコマンド例です。

psexec -u user01 -p a3l@em5i3 \\192.168.1.xxx -i cmd.exe

これによりアカウント認証が行われますので、認証が成功すると、侵入対象マシンのSecurityイベントに以下のログオン成功が記録されます。

  • イベントID: 4624 (ログオン成功)
  • ログオンタイプ: 3 (ネットワークログオン)

以下は、PsExecコマンドにより認証が成功した際の、侵入対象マシンでのSecurityイベントの例(抜粋)です。

イベント 4624, Microsoft Windows security auditing. 
アカウントが正常にログオンしました。
(--- 中略 ---)
ログオン情報:
    ログオン タイプ:        3
(--- 中略 ---)
    アカウント名:        user01
    アカウント ドメイン:        WIN-SV-VICTIM
(--- 中略 ---)
ネットワーク情報:  ( <== 攻撃元となったマシンの情報 )
    ワークステーション名:    CLIENT-PC001
    ソース ネットワーク アドレス:    10.20.100.1xx
    ソース ポート:        55101

詳細な認証情報:
    ログオン プロセス:        NtLmSsp 
    認証パッケージ:    NTLM
(--- 中略 ---)
このイベントは、ログオン セッションの作成時に生成されます。このイベントは、アクセス先のコンピューターで生成されます。

Systemイベントに「PSEXESVC」のサービスインストールが記録されていた場合、Securityイベントにはほぼ同時刻に上記のログオン成功イベントが記録されているはずです。それにより攻撃元になったマシンのワークステーション名・ソースネットワークアドレス(IPアドレス)や侵害されたアカウント名を確認し、封じ込め/復旧を行う必要があります。

Windowsサービスとして常駐化される正規アプリケーションも多いため、サービスのインストールイベントの大多数は問題のないものでしょう。

しかし、ユーザーがPCを使用していない時間帯にWindowsサービスが登録されていたり、例えば「PsExec」のようなユーザーがインストールしていないプログラムがサービス登録されている場合は、不審なサービスであることが疑われます。このような観点で調査を行う場合は、PCの使用時間帯や、インストール済みの正規のサービスを事前に把握しておくことが重要です。

 

タスク登録/実行のイベント(Microsoft-Windows-TaskScheduler)

「永続化されたマルウェアの調査」の章では、タスクスケジューラへのタスク登録による永続化手法も紹介しました。

マルウェアが、定期的に実行されるようなタスクとして永続化された場合、イベントログには、タスクの登録やタスクの実行などのイベントが記録されます。

タスクの登録は、Windows 7以前であれば 「at」コマンド 、Windows 8以降は 「schtasks」コマンドで行われます。これらのコマンドは、他のPCへリモートからタスクを登録して、マルウェアなどを実行させることもできるため、横展開の手法として使用されることもあります。

なお、「at」コマンドで作成されたタスクは、タスク名が自動的に「At」+「数字」という形式(At1、At2など)になるという特徴がありました。そのため、システムの正規タスクや、正規ユーザーが登録したタスクとは、容易に区別することができました。

しかし、Windows 8.1以降のOSでは「at」コマンドが廃止され、タスク名を任意に指定できる「schtasks」コマンドに置き換えられました。そのため現在では、タスク名から「schtasks」コマンドで作成されたものかどうかを判断することはできません。実行ファイルパスを手がかかりに、不審なタスクを調査しましょう。

タスク登録や実行が行われた場合、イベントログの個別カテゴリ「 Microsoft-Windows-TaskScheduler 」ー「Operational」にイベントが記録されます。

このカテゴリのイベントログファイルは、次のファイル名で保存されています。

  • Microsoft-Windows-TaskScheduler%4Operational.evtx

なお、このカテゴリは、デフォルトの設定ではログの取得が無効になっている場合があります。インシデント発生時には重要なイベントですので、有効化しておくことを推奨します。設定の変更は、イベントビューアーから行います。

以下のように、左サイドパネルから「アプリケーションとサービスのログ」-->「Microsoft」--> 「Windows」-->「TaskScheduler」と順次展開し、「Operational」を右クリックして、「ログの有効化」を選択します。


Lecture01_TaskScheduler_Settings_1


有効化を行う前は、「Operational」のイベント数が0(ゼロ)になっており、 「(無効)」 と表示されていますが、有効化すると「(無効)」の表示が消えます。以後は、タスク登録や実行のイベントが記録されるようになります。


Lecture01_TaskScheduler_Settings_2


タスク登録に関連するソース・イベントIDは、下記のとおりです。

  • ソース:TaskScheduler

  • イベントID

    • 106:タスクの登録
    • 100:タスクの開始
    • 200:タスクで設定したアクションの開始
    • 102:タスクの完了
    • 107:タスクスケジューラに設定された条件によるトリガー
    • 140:タスクの更新
    • 141:タスクの削除

 

以下は、schtasksコマンドでタスクを登録したイベント(イベントID:106)の例です。

イベント 106, TaskScheduler
ユーザー "DESKTOP-5LKG45F\user01" はタスク スケジューラのタスク "\TaskNotepad" を登録しました。

 

上記のとおり、タスク登録のイベント(イベントID:106)には、実行するファイル名(ファイルパス)が記録されません。

上記の例では、実際には「C:\Windows\System32\notepad.exe」(メモ帳)の実行をタスク登録していますが、タスク名(「TaskNotepad」)しか表示されていません。

 

イベントログからタスク登録された実行ファイル名を調査するためには、タスクの実行イベントであるアクションの開始(イベントID:200)を確認する必要があります。

イベント 200, TaskScheduler
タスク スケジューラは、タスク "\TaskNotepad" のインスタンス "{6908edd1-cc29-4fa8-9ab8-be811b066e5e}" で操作 "C:\Windows\System32\notepad.exe" を開始しました。

「イベントID:200」に記録された実行ファイルを調査して、不審なタスクかどうかを分析しましょう。

 

イベントログの消去イベント(Security/System)

管理者権限を奪取した攻撃者は、攻撃活動の発覚を回避するため、イベントログを消去する場合があります。

一般的なイベントログの消去方法には、イベントビューアーの消去機能や、Windows標準機能の「wevtutil」コマンドを使用する方法があります。こうした方法で消去された場合には、以下のようなイベントが記録されます。

  • 「Security」イベントログが消去された場合
    • 消去後のSecurityイベントログに、 イベントID:1102(監査ログの消去)が記録されます。
イベント 1102, Eventlog
監査ログが消去されました。
サブジェクト:
    セキュリティ ID:    S-1-5-21-617299131-1942669902-374550125-1001
    アカウント名:    user01
    ドメイン名:    DESKTOP-5LKG45F
    ログイン ID:    0x312A9

 

  • Security以外のイベントログが消去された場合
    • 「System」イベントログに、 イベントID:104(ログファイルの消去)が記録されます。以下は、「Microsoft-Windows-TaskScheduler」ー「Operational」のイベントログをイベントビューアーで削除した例です。
イベント 104, Eventlog
Microsoft-Windows-TaskScheduler/Operational ログ ファイルが消去されました。

 

イベントログの消去が行われた場合、正規ユーザーやシステムの運用担当者が行ったものでなければ、サイバー攻撃によるものである可能性が極めて高いと考えられます。直ちにインシデントレスポンスを開始するべきでしょう。

一方、記録や痕跡を残さずに、イベントログファイル自体を直接編集し、必要なイベントだけを一部消去できる攻撃ツールも存在しています。「DanderSpritz」は、イベントログ改変ツールとして有名なものです。

(参考) Detection and recovery of NSA’s covered up tracks https://blog.fox-it.com/2017/12/08/detection-and-recovery-of-nsas-covered-up-tracks/

消去イベントが記録されていない場合でも、攻撃者がピンポイントで痕跡を消去している可能性は念頭に置きましょう。

 


以上の事例のように、インシデントレスポンスにおいては、ある程度調査すべきイベントのソースやイベントIDを絞り込むことが必要です。絞り込みには、イベントビューアーのフィルタリング機能や検索機能が有用となりますので、後続のHands-on-1で詳しく紹介します。

さらに、次節「2 イベントログのファストフォレンジック」では、ログ解析ツール「Log Parser Studio」を使用して、インシデント調査にフォーカスする解析手法を紹介します。

results matching ""

    No results matching ""