はじめに
Windowsパソコンを利用していると、大なり小なりトラブルに見舞われたことがあるかと思います。
例えば
- インターネットにつながらない
- アプリケーションが起動しない
- 突然パソコンが青い画面になって停止した(通称ブルスク/BSOD、Blue Screen of Death)
- アプリケーションが起動しない
- ユーザログインができない
などなど・・・
そんなとき、ログ解析をして原因を追究し、対処すれば解決することもあります。
Windowsにおけるログ解析の第一歩はまずはイベントログとなります。
イベントログはシステムの動作の記録が記録され続けており、動作確認、障害解析、監査など
様々な用途に利用されます。
今回はそのイベントログに記録される内容の一例及びその解析例の紹介と、
そのほか"システム情報"についても紹介していこうと思います。
イベントログ
まずはイベントログ、ここには Windows の動作ログが記録されています。
コマンドを指定して実行(Windowsキー + R)より eventvwr で確認可能で
主にシステム(system)、アプリケーション(application)、セキュリティ(security)の3種があります。
そしてそれぞれエクスポート(evtx,csv形式等)可能で、csv形式ならば
もちろんテキストエディタで確認可能です。
evtx形式の場合、イベントビューアーから"保存したログを開く"必要があります。
システムにはシステム関連、つまりパソコンそのものの起動や、停止、サービスの起動停止などが、
アプリケーションにはアプリケーション動作のログ、例えばウィルス対策ソフトの動作記録や、
アプリケーションのインストールの記録等、
そしてセキュリティにはユーザのログインログオフ、
アカウントのロックアウトなどが記録されています。
具体的な解析の一例とともにそれぞれ紹介していきます。
システムログ
OSの起動はこのように記録されています。
(ソース:Kernel-General ID:12)
その他、ソース:EventLog ID:6005(eventlogの開始イベント)からも確認可能です。
これに対し、OSの正常停止ならばこのように記録されます。
(ソース:Kernel-General ID:13)
その他、ソース:EventLog ID:6006(eventlogの開始イベント)や
ソース:User32 ID:1074からも確認可能です。
そして、OSが異常停止した場合は、以下のように記録されます。
(ソース:EventLog ID:6008)
システムの予期せぬ停止となりますと、申告時間とともにこのログの前後の挙動から見ていくことになります。
(なおこの手法はおおよそ Linux の /var/log/message の解析にも利用できます)
本格的な原因についてはイベントログやBSODの画面に表示されるSTOPコードからだけでは
判明できないことも多く、メモリダンプと呼ばれる設定を有効にし、
異常停止時に出力されたメモリダンプを解析などが必要になってくることが多いですが
本部分の解析で原因が判明することも多くまずは確認する価値はあるかと思います。
※なおメモリダンプ解析については今回の説明範囲外
その他参考になる情報の一つとしてOSを稼働してた時間もあり、
これはソース:EventLog ID:6013からシステムの稼働時間を確認可能です。
アプリケーション
アプリケーションでは先ほど言ったようなウィルス対策ソフトの動作記録などが残されています。
アプリケーションの停止(Java仮想マシンなども)も記録され、その解析に役立つことが多いです。
ここではウィルス対策ソフト(SEP)によるウィルス探索時のログを紹介します。。
このほかウィルス対策ソフトではセキュリティリスク検知時などの確認などもできます。
・セキュリティリスク検知時のイベントログ出力について
https://knowledge.broadcom.com/external/article/233535/.html
ソース:Symantec AntiVirus
イベントID:51
例に挙げたJava仮想マシンでは例えば Hinemo Agent(JVM上で動作します。)
が起動できないときに、
「Could not load the Java Virtual Machine」などとエラーが出ることがあり、
このログから JVM への path が通っていないなどの予想ができる場合があります。
セキュリティ
そしてセキュリティではアカウントのログオン、ログオフ、ロックアウトが記録されていきます。
ユーザがロックアウトした場合はおおむねこの部分から追うことになります。
(ロックアウトした時間からその時の操作やアプリケーションの動作など。
ユーザのパスワード変更後、タスクスケジューラーで動作するタスクでの編集が漏れて
ロックアウトさせるなどがありがちです。)
なおActiveDirectoryの属性情報などからも解析することがありますが、今回はスコープ外となります。
ここで要注意なのですが、デフォルトではアカウントのログオン、ログオフは記録されません。
記録するためには、グループポリシーと呼ばれる設定を編集する必要があります。
ドメイン所属している場合はドメインのグループポリシーを編集しないといけない場合がありますが、
個人のPCならばローカルグループポリシーの編集から可能です。
コマンドを指定して実行(Windowsキー + R)より gpedit.msc で
ローカルグループポリシーエディターは起動可能で、
起動画面より
コンピュータの構成
└Windowsの設定
└セキュリティの設定
└ローカルポリシー
└監査ポリシー
└アカウント ログオン イベントの監査
この設定後、ログオンログオフが以下の様に記録されるようになります。
ログオン成功の記録例
ログオン失敗の記録例
アカウントロックアウトの記録例
ドメインに所属しているユーザーならば、そのアカウントの詳細情報(最終ログオン日時など)は
ActiveDirectoryに属性として保存されており、csvde などで確認、エクスポート可能なのですが
次回以降で紹介しようと思います。
システム情報
次にシステム情報ですが、こちらは
コマンドを指定して実行(Windowsキー + R)より msinfo32 で確認可能です。
こちらもエクスポートすることで、情報一式をテキストとして保存可能です。
こちらにはハードウェア情報、動作しているサービス一覧情報等、
まさに"システム情報"が詰まってます。
おわりに
今回紹介したような情報を自分で解析するのは何かと大変ですが
やはり種別(システム/アプリケーション/セキュリティ)、ソース、イベントIDを
インターネットで検索して調べるのが基本になります。
一応参考になりそうなサイトとしては以下でしょうか。
https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/default.aspx
(昔はeventid.netという便利なサイトがあったのですが現在はないようです…)
エンタープライズの場合でテクニカルサポートを結んでいる場合などは、
トラブル時、上記イベントログ、システム情報はあらかじめ取得しておいて送付すると
初動が早くなったりすることもありますので、覚えておいて損はないかと思います。
今回の内容はここまでになります。
次回はレジストリについて紹介できればと思います。