2019年11月5日火曜日

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

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

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



※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イベントを以下に挙げます。:

カテゴリ: アカウントの管理
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に2つのルールを作成します。
  • 非常に疑わしいイベント
  • その他の疑わしいイベント

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

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

新たに作成したこれらのフィルターに合致した際に、
どんなアクションを発動させるか、ご用途に応じ選択して設定して下さい。
  • 管理者にメールで知らせる
  • テキストファイルにイベント内容を書き込む
  • 別のsyslogサーバに転送する

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

主な特長としては、
  • 日本語インターフェイス
  • 日本語ログを正常に処理
  • SyslogサーバーWinSyslogと併用し、共通のインターフェイスで操作
  • フィルタにより受信時アクションをカスタマイズ
などです。
評価版のダウンロード、マニュアル等をご用意しておりますので、
EventReporterをこの機会に是非お試しください。



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

評価版のダウンロード

問合わせ