Windowsイベントログから不正侵入を暴く

本記事は2019年11月5日に公開したものをアップデートしたものです。

「会社のWindowsサーバーが不正侵入を受けているかもしれない!」
これを調査するには、何に注目すれば良いでしょうか?
不正侵入の兆候は、例えば Windowsイベントログ から見つけることが出来ます。

前提1

この記事はイベントログの監視ツール EventReporter を使い、Windowsイベントログを収集し、不正侵入の兆候を捉える方法をご紹介します。

前提2

※Windows10の使用を前提としています。
他のWindows上では結果に違いが生じる可能性がありますので、ご注意下さい。

ログイン失敗の検知

ログイン失敗を何度も繰り返している場合、何者かがユーザーパスワードを見つけ出そうとしている兆候 かもしれません。

古くからよく使われる辞書攻撃と呼ばれる手段では、パスワードとして用いるための文字のリスト(=辞書)で、狙ったアカウントに対してログインを試みます。

よく注意して作成されたパスワード(長い、推測されにくい)であれば、攻撃者は多くのログイン失敗を繰り返し、侵入をよく防ぐだけでなく、逆に不正行為の証拠を得ることが出来ます。

ログイン失敗が上限に達すれば、アカウントは一定期間使用不能になり、Windowsはイベントログに記録を残します。

Windowsの設定を変更する

Windowsはデフォルトではこれらの攻撃を記録しないため、「監査ポリシー」内で記録をONにする必要があります。
管理者ツール「ローカルグループポリシーエディター」を使用して下さい。
管理者権限で実施する必要があります。

1.) 「ファイル名を指定して実行」で「gpedit.msc」を入力して下さい。

2.) 「OK」を押すと「ローカルグループポリシーエディター」が起動します。

3.) 下記に従って選択して下さい。

コンピューターの構成
→Windowsの設定
→セキュリティの設定
→ローカルポリシー
→監査ポリシー

4.) 「ログオンイベントの監査」をダブルクリックし、「成功」と「失敗」のチェックをオンにして下さい。

OKを押して設定を確定させて下さい。
これで、ログインを試みて成功または失敗した際、イベントとして記録されます。

「EventReporter」でルールを作成する

Windowsイベントログは通常、「*.evtx」の名前でローカルに保存されますが、弊社で提供するソフトウェアEventReporterを用いて、このWindowsイベントログを監視し、テキスト形式で保存したり、syslogに変換して他サーバーに転送することが出来ます。

ルールの構築

さっそくこのEventReporterを用いて、ルールを構築しましょう。

数あるWindowsイベントログのうち相応しいものを選択し、異常の検知を目指します。

※以下にご注意下さい。

「サービス」を「ルールセット」に必ず紐付けて下さい。
ここでは、サービス「イベントログの監視 V2」の設定内で、該当の「ルールセット」を指定します。

上記の紐付けを実施しないと、いかなるWindowsイベントを受信しても、ルールそしてアクションが発動しません。

ログオン失敗(4625)時に発動するルールを作成する:

(アクション1/3) 該当イベントが発生した際、管理者にメールで知らせる:

(アクション2/3) 該当イベントが発生した際、テキストファイルにイベント内容を書き込む:

(アクション3/3) 該当イベントが発生した際、別のsyslogサーバに転送する:

本ルールでは「ログイン失敗の回数」をトリガーとしています。

与えられた時間の間に、ログイン失敗の回数がしきい値に達したら、何かがおかしいと疑うことが出来るでしょう。

一方で、正規のユーザーが不注意で誤ったパスワードを入力し、しきい値に達しても、このルールは発動してしまいます。

サーバーの用途によって、しきい値の大小も変わってきます。

例えばWebサーバーにおいては、
通常はWebコンテンツを提供するだけで、
ログオンするのは管理者とWeb編集者だけあり、
ログイン失敗の回数は非常に少ないはず(べき)です。

一方でファイルサーバーにおいては、しきい値はもう少し高くなるでしょう。

このように、設定する値(今回だとログイン失敗の回数)がいくつ位が妥当か、用途や環境に合わせてご検討下さい。

Windowsの設定変更のうち
特に疑わしいものを検知する

何をもって「疑わしい」と判断するかの根拠は様々です。
対象サーバーの用途から考えてみましょう。

ここでは例として、以下のようなサーバーの使用を想定します。

  • Webサーバー
  • スタンドアローン
  • 構築設定が完了し、既に稼働中

本例では、設定変更の頻度は少なく、
下記で述べる「疑わしいイベント」の発生は稀であると判断しました。

他の用途のサーバー(例えばドメインコントローラ)に対しては、本例での設定を実施すると、受け取る警告が多すぎるかもしれません。

ここでの考え方
「疑わしい事象を特定し、上限(しきい値)を与え、それに達する場合に記録する」
自体は、その他様々な場面で使えますが、
しきい値の妥当性については、用途や環境に合わせてご検討下さい。

注目したいWindowsイベント

ここで注目したいWindowsイベントを以下に挙げます。:

カテゴリ: アカウントの管理

4720 – ユーザー アカウントが作成されました。
4722 – ユーザー アカウントが有効になります。
4723 – アカウントのパスワードを変更しようとしました。
4724 – アカウントのパスワードをリセットしようとしました。
4725 – ユーザー アカウントが無効にされました。
4726 – ユーザー アカウントが削除されました。
4727 – セキュリティが有効なグローバル グループが作成されました。
4728 – セキュリティが有効なグローバル グループにメンバーが追加されました。
4729 – セキュリティが有効なグローバル グループからメンバーが削除されました。
4730 – セキュリティが有効なグローバル グループが削除されました。
4731 – セキュリティが有効なローカル グループが作成されました。
4732 – セキュリティが有効なローカル グループにメンバーが追加されました。
4733 – セキュリティが有効なローカル グループからメンバーが削除されました。
4734 – セキュリティが有効なローカル グループが削除されました。
4735 – セキュリティが有効なローカル グループが変更されました。
4737 – セキュリティが有効なグローバル グループが変更されました。
4738 – ユーザー アカウントが変更されました。
4739 – ドメイン ポリシーが変更されました。
カテゴリ: システム
4612 – 監査メッセージのキュー用に割り当てられている内部リソースが枯渇し、一部の監査が失われました。
1102 – 監査ログは消去されました。
カテゴリ: ポリシーの変更
4704 – ユーザー権利が割り当てられていました。
4705 – ユーザー権利が削除されました。
4706 – 新しい信頼は、ドメインに作成されました。
4707 – ドメインに信頼関係が削除されました。
4719 – ドメイン ポリシーが変更されました。
4864 – 名前空間の衝突が検出されました。

太字で示したイベントは、
(対象のサーバーの用途にも依りますが、)
日常的な運用で発生することは非常に稀です。

先ほど例として挙げたWebサーバーでは、そもそもログイン失敗自体、頻繁にあるべきではありません。

EventReporterにルールを作成

EventReporterに2つのルールを作成します。

  • 非常に疑わしいイベント
  • その他の疑わしいイベント

「非常に疑わしいイベント」から始めましょう。

「その他の疑わしいイベント」を条件としたフィルターはこちらです。

新たに作成したこれらのフィルターに合致した際に、
どんなアクションを発動させるか、ご用途に応じ選択して設定して下さい。

  • 管理者にメールで知らせる
  • テキストファイルにイベント内容を書き込む
  • 別のsyslogサーバに転送する

弊社ではWindowsイベントをSyslogに変換して送信する「EventReporter」を提供、販売しております。

主な特長としては、

  • 日本語インターフェイス
  • 日本語ログを正常に処理
  • SyslogサーバーWinSyslogと併用し、共通のインターフェイスで操作
  • フィルタにより受信時アクションをカスタマイズ

などです。
評価版のダウンロード、マニュアル等をご用意しておりますので、EventReporterをこの機会に是非お試しください。

EventReporterについての詳細は、製品紹介ページをご参照ください。

こんな記事も読まれています

最新記事

おすすめ記事

  1. 産業スパイを発見し、防ぐ方法とは

  2. Flexible NetFlowとは?を5分で理解する

  3. WinSyslog 使い方ガイド#2 受信時刻とデバイスタイムスタンプ両方を出力する

製品カテゴリー

JTC IT用語集
TOP