本記事は2019年11月5日に公開したものをアップデートしたものです。
「会社の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イベント
ここで注目したい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についての詳細は、製品紹介ページをご参照ください。