セキュリティ ベストプラクティス
エンド システムの監視と監査
最終更新日: 2004年2月2日
マイクロソフト ソリューション フレームワーク
メモ このホワイトペーパーはシリーズになっています。企業セキュリティのベストプラクティスには、このシリーズのすべての記事がリストされています。セキュリティ要素構成アーキテクチャも参照してください。
トピック
このドキュメントの目的
監視の目的
監視のアーキテクチャ
イベントの監視
オブジェクトの監視
パフォーマンスの監視
その他の監視
監視ユーティリティ
参考資料と関連リンク
このドキュメントの目的
どの強力なコンピュータシステムでも、基盤となるのはオペレーティングシステムです。オペレーティングシステムは、個々のコンピュータの用途 (ファイルまたはプリントサーバー、メッセージングまたは Web サーバーなど) に関係なく、アプリケーションを有効にするための基本機能を提供します。このドキュメントでは、インストールされたハードウェアおよびオペレーティングシステムを "ローカルリソース" エンティティと呼びます。
多数のサーバーベンダが、自社製品のハードウェアプラットフォームを監視するための独自の機能や手法を提供しています。したがって、このドキュメントでは、オペレーティングシステム (Microsoft Windows NT 4.0 または Microsoft Windows 2000) 本体に対象を限定します。
監視の目的
目的を果たすには
監視の一般的な目的は、外部ユーザー、従業員、または誤動作による不審な動作を検知することです。組織では、これを直接行うことも (特定のイベントを監視するなど)、間接的に行うことも (長期間サーバー状態を監視して、異常な動作を調査するなど) できます。
組織のセキュリティ部門は、組織固有の監視ポリシーを決定する必要があります。このポリシーにおいて、組織固有の監視の目的を決定します。これには、以下のような質問に回答する必要があります。
サーバーのパフォーマンスのベースラインを設定することが目的ですか ? その場合、どのようなカウンタをどの程度の時間間隔で収集しますか ? どのような頻度でベースラインを設定しますか ?
どのオブジェクトを監査しますか ? 各オブジェクトクラスに対し、どのような種類のアクセスを監査しますか ? 各オブジェクトクラスに対し、どのインスタンスを監査しますか ?
そのほか、どのような種類のイベントを監査しますか ?
イベントログはどのように管理しますか ? マイクロソフトの提供するツールを使用しますか ? それとも独自に作成するか、サードパーティ製システムを購入しますか ?
どのような監視技術を使用しますか ?
どの程度の量の監視を行いますか ? (システムの監視により、システムパフォーマンスに著しい影響が及びます。システム状態の問い合わせや記録量が多いほど、その動作によって消費されるシステムリソースの量も多くなります)
監視のアーキテクチャ
組み込み機能
Windows NT 4.0 および Windows 2000 には、監視に使用できるいくつかの組み込み機能があります。
イベントログ (監査) - システム自身、およびシステム上の各アプリケーションが、重要なイベントの記録を生成する機能です。
パフォーマンスの監視 - システム、およびシステム上の特定のアプリケーションが、パフォーマンス情報を定期的に報告する機能です。
SNMP (簡易ネットワーク管理プロトコル) - システムでは SNMP 2 をサポートしています。これは、ネットワークデバイスを監視するための、プラットフォーム非依存の業界標準技術です。
WMI (Windows Management Instrumentation) - Windows 2000 には、Windows NT 4.0 にインストール可能な WMI という機能が付属します。WMI は監視サービスではありませんが、他のさまざまな監視機能を統合する、統一管理インターフェイスです。
イベントログ
イベントログデータは、システムの他の部分、またはシステム上で動作するアプリケーションによって Event Log サービスに報告されます。Event Log サービスはこのデータを、%systemroot%\system32\config ディレクトリ内の .evt ファイルに保存します。Windows NT 4.0 および Windows 2000 Professional には、システムログ、セキュリティログ、およびアプリケーションログが組み込まれています。Windows 2000 Server のインストールにより、DNS (ドメインネームシステム) およびディレクトリサービスのログが追加される場合もあります。イベントのログ記録が必要なすべてのアプリケーションは、Event Log サービスに登録する必要があります。
イベントログに記録される各イベントには、このイベントを説明するテキストデータが表示される説明フィールドがあります。これは通常、エラーメッセージを表すテキストです。ログには通常、イベントの特定インスタンスに固有の情報だけが、イベントと共に保存されます。テキスト文字列は、Event Log サービスに登録されたイベントメッセージファイル (通常は .dll または .exe ファイル) 内に保存されます。イベントを表示する際、イベントテキストが見つからないことを示すエラーが説明フィールドに表示された場合は、イベントを表示しようとしているコンピュータ上で、Event Log サービスにイベントメッセージファイルを登録する必要があります。この詳細については、https://support.microsoft.com/default.aspx?scid=kb;ja;165959 (英語) を参照してください。
イベントログ API (アプリケーションプログラミングインターフェイス) の使用に関する各ドキュメントについては、https://msdn2.microsoft.com/en-us/library/aa385785.aspx を参照してください。
パフォーマンスの監視
パフォーマンスデータはレジストリ内に保存されますが、通常は PDH (Performance Data Helper) などの API、または WMI を使用してアクセスします。パフォーマンス監視システムのアーキテクチャの詳細については、https://msdn.microsoft.com/library/te4y11y9.aspx を参照してください。
SNMP
SNMP サービスをインストールすると、SNMP 管理コンソールからの要求に対し、システムが応答できるようになります。また、SNMP サービスをインストールすることで、IP (Internet Protocol)、ICMP (Internet Control Message Protocol)、UDP (User Datagram Protocol)、および TCP (Transmission Control Protocol) に対するパフォーマンスカウンタが追加されます。SNMP を使用すると、多数のローカルリソースの現在の状態を問い合わせることができ、オペレーティングシステムおよびアプリケーション関連のいくつかのパラメータを制御することもできます。
Windows NT および Windows 2000 は、SNMP 管理コンソールを備えていません。したがって、SNMP を効率的に使用するのであれば、サードパーティ製コンソールを用意するか、または社内で何らかのこうしたコンソールを開発することが必要となります。また、マイクロソフトからも、2 つの便利なリソースキットユーティリティを提供しています。コマンドラインによる SNMP クエリユーティリティである SNMPUtil と、一定期間 SNMP カウンタに対してクエリおよびログ記録を実行し、テキストファイルによる設定の可能なコマンドラインユーティリティ SNMPMon です。
WMI
WMI (Windows Management Instrumentation) は、マイクロソフトによる WBEM (Web-based Enterprise Management) の実装です。WBEM は業界標準の管理アーキテクチャであり、企業環境において管理情報にアクセスするための、共通インターフェイスの開発を目的としたものです。
WMI には、イベントログ、パフォーマンス、および SNMP に関する情報をシステムに問い合わせる機能があります。また、Windows スクリプトホストと互換性のある任意のスクリプト言語 (Microsoft Visual Basic Scripting Edition (VBScript)、Microsoft JScript など) を使用して、簡単にスクリプト化できます。
WMI の詳細については、https://msdn.microsoft.com/library/aa394582.aspx (英語) を参照してください。
Windows NT および Windows 2000 プラットフォームでの WMI および SNMP の実装に関する詳細については、https://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/maintain/featusability/wmisnmp.mspx を参照してください。
WMI SDK (ソフトウェア開発キット) には、WMI のサンプルコードが含まれます。これは、https://www.microsoft.com/download/details.aspx?FamilyID=afe41f46-e213-4cbf-9c5b-fbf236e0e875&DisplayLang=ja からダウンロードできます。
イベントの監視
イベントログの管理
多くの種類のイベントを収集するようにシステムを構成すると、イベントログはすぐにいっぱいになってしまいます。逆に、ごく小数の種類のイベントだけを記録するように構成すると、重要な情報を見逃してしまう可能性もあります。したがって、何を記録して何を記録しないかは、複雑な判断となります。
ログを記録するイベントのカテゴリを決める際は、生成されるイベントの量、および特定の情報を捕捉するためのユーティリティについて検討することが大切です。最善の方法は、捕捉する情報の種類を正確に決めてから、その情報を収集するために最低限必要な数のイベントを記録する手段を構成する方法です。ログ記録を最大設定にして、やみくもにイベントを記録する方法では、多くの場合、データの量が多すぎて分析または保管しきれないため、大量のデータが無視または破棄されることになります。
Windows NT 4.0 および Windows 2000 には、イベントログの閲覧 (フィルタ処理あり/なし)、保存、および消去を行うための、イベントビューアというユーティリティが付属しています。管理者はこのユーティリティを使用することで、ログが満杯になった場合、新規イベントによって古いイベントを上書きするかどうかを制御でき、イベントログの最大サイズを制限することもできます。Windows NT 4.0 および Windows 2000 のどちらにも、イベントログを中央から一元的に収集および管理するための機能は備わっていませんが、このようなユーティリティは、さまざまなサードパーティベンダから提供されています。
イベントログの管理は、企業の監視における最も重要な側面の 1 つです。システムレベルでは、イベントビューアなどのユーティリティでも、イベント監視の全体的な必要性に十分対応できるかもしれません。しかし、企業内の多数のコンピュータを監視するとなると、収集されるデータの量は通常、管理者の管理能力をはるかに超えてしまいます。したがって、一般的には、データを一元的に収集する何らかの機能が必要となります。
推奨 : 集中管理型のイベントログ管理システムは、企業に適したものを比較購入してください。各種のパッケージを評価する際は、各パッケージに対し、イベント収集システムの拡張性と機能、およびクエリ機能とレポート機能の品質の両面を考慮します。使いにくい分析ツールだと、イベントログデータを大量に収集しても役に立ちません。
イベントログ管理のもう 1 つの重要な面は、各イベントログに対し、サイズ、場所、および上書きポリシーを管理することです。
各ログには、いくつかの設定可能なパラメータが存在します。
ログファイルの場所と名前。これは各ログごとに個別に、次のキー内で、Fileという名前の REG_EXPAND_SZ 型の値に保管されます。
HKLM\SYSTEM\CurrentControlSet\Services\Eventlog\< ログ名 >
ログファイルの最大サイズ。これはイベントビューアアプリケーションで設定可能であり、既定値は 512 KB です。
ログが満杯になったときの上書き方法。必要に応じてイベントを上書きする、特定の日数より以前のイベントを上書きする、上書きしない、という 3 つの選択肢があります。特定の日数より以前のイベントだけを上書きする場合は、この日数を独自に設定できます。
ゲストアクセスの制限 (Windows 2000 のみ)。このパラメータを指定すると、許可されたユーザーだけがイベントログにアクセスできるようになります。
また、システム全体に適用される CrashOnAuditFail, というパラメータもあります。このパラメータを設定すると、セキュリティログが満杯になった時点でシステムが停止します。通常は、CrashOnAuditFailの設定は望ましくありません。詳細については、次の URL の『セキュリティ ログがフル Auditable 活動のようにする方法』を参照してください。https://support.microsoft.com/kb/140058
CrashOnAuditFailを使用する場合は、監査ログの各項目を慎重に設定する必要があります。このドキュメントの作成時点では、この設定に関し、"セキュリティログがいっぱいになると STOP 0xC0000244 が表示される" という、少なくとも 1 つの大きな問題が認められています。詳細についてはhttps://support.microsoft.com/default.aspx?scid=kb;ja;232564 を参照してください。
イベントの分析
イベントログ内の各イベントは、以下のフィールドで構成されます。
日付と時刻
種類 - イベントの重要度
ソース - イベントを記録したコンポーネント
カテゴリ - セキュリティイベントの詳細な分類
イベント ID - 発生したイベントを一意に識別する数値
ユーザー - イベントに関連するユーザーの名前 (存在する場合)
コンピュータ - イベントが記録されたコンピュータ
説明 - イベントに関連付けられたテキストデータ (エラーメッセージなど)
データ - イベントに関連付けられたバイナリデータ
これらの中で、注目すべき非常に重要なフィールドは、イベント ID と説明テキストです。イベント ID は、マイクロソフトのサポート技術情報内でこのイベントについて調べるための、最も簡単な手段として使用できます。説明テキストでは通常、発生した問題が簡単な表現で説明されています。また、説明フィールドには多くの場合、特定のイベント、特にセキュリティ関連のイベントに固有の情報も記述されています。マイクロソフト製品以外のイベント収集ツールを使用して、イベントを中央データベースに収集する場合は、すべてのセキュリティイベントに対し、説明フィールドが収集されるように設定してください。
イベントの構造の詳細については、次の URL の「Elements of an Event Record」を参照してください。https://technet.microsoft.com/library/cc749970.aspx (英語)
システムを監視する
一般的なシステムを監視する
原則的に、"システム" カテゴリでは、成功および失敗イベントの両方を監査することをお勧めします。
Windows ではこのカテゴリを使用して、システム全体のセキュリティに影響を与える以下のイベントを記録します。
512 | Windows NT を起動しています。 |
513 | Windows NT をシャットダウンしています。 |
514 | ローカル セキュリティ機関によって、認証パッケージが読み込まれました。 |
515 | 信頼されているログオン プロセスがローカル セキュリティ機関に 登録されました。 |
516 | 監査メッセージをキューに登録するために割り当てられた 内部リソースをすべて使用したため、一部の監査が失われました。 |
517 | 監査ログが消去されました。 |
518 | セキュリティ アカウント マネージャによって、 通知パッケージが読み込まれました。 |
これらのイベントに何らかの異常が見られた場合は、パスワード傍受プログラム、または安全性の保証されない無許可の認証プログラムのロードが、何者かによって試行されている可能性があります。
監査ポリシーを監視する
Windows NT または Windows 2000 システムのローカルセキュリティ機関 (LSA) は、システムのさまざまなセキュリティ関連タスクを実行します。また、システムのセキュリティポリシー (ローカルコンピュータが適用対象となる、Microsoftョ Active Directory" のサイト、ドメイン、および組織単位のポリシーを含む) が確実に実施されるための責任を持ちます。システムを監視する際、特に注意の必要な主要なポリシーの 1 つが、監査ポリシーです。
監査ポリシーは、Windows NT 4.0 ではユーザーマネージャで操作します。Windows 2000 が動作するコンピュータでは、グループポリシー内で操作します。これを実行するには、[スタート] メニューの [管理ツール] メニューから、[ローカルセキュリティポリシー] を選択します。監査ポリシーは、ツリー構造内のローカル ポリシー \ 監査ポリシーに保管されています。グループポリシーは、[Active Directory ユーザーとコンピュータ] スナップインで、適切なオブジェクトのプロパティシートから、ドメインまたは組織単位に対して設定することができます。また、[Active Directory サイトとサービス] スナップインで、適切なサイトのプロパティシートから、サイトに対して設定することもできます。
不正を企む管理者が、いったん監査を無効にし、禁止された行為を実行してから監査を有効に戻す事態を防止するには、監査ポリシーの監視がきわめて重要です。
ポリシーの変更の成功および失敗に対する監査を有効にすると、以下のイベントが有効になります (ほとんどのイベントは Windows 2000 のみで有効)。
608 | ユーザー権利が割り当てられました。 |
609 | ユーザー権利が削除されました。 |
610 | 他のドメインとの信頼関係が作成されました。 |
611 | 他のドメインとの信頼関係が削除されました。 |
612 | 監査ポリシーが変更されました。 |
592 | 新規プロセスが作成されました。 |
593 | プロセスが終了しました。 |
594 | オブジェクトのハンドルが複製されました。 |
595 | オブジェクトへの間接アクセスが取得されました。 |
560 | オブジェクトが開かれました。 |
561 | ハンドルが割り当てられました。 |
562 | ハンドルが閉じられました。 |
563 | 削除目的でオブジェクトが開かれました。 |
564 | オブジェクトが削除されました。 |
Everyone | Success | WRITE_DAC |
Everyone | Failure | (All) |
528 | ログオンが成功しました。 |
529 | ログオンが失敗しました。 理由 : ユーザー名を認識できないか、パスワードが間違っています。 |
530 | ログオンが失敗しました。 理由 : アカウントによるログオンが可能な時間の制限に違反しています。 |
531 | ログオンが失敗しました。 理由 : アカウントが現在無効です。 |
532 | ログオンが失敗しました。 理由 : 指定したユーザー アカウントの有効期限が切れています。 |
533 | ログオンが失敗しました。 理由 : このコンピュータへのログオンがユーザーに許可されていません。 |
534 | ログオンが失敗しました。 理由 : このコンピュータでは、要求されたログオンの種類が ユーザーに許可されていません。 |
535 | ログオンが失敗しました。 理由 : 指定したアカウントのパスワードの有効期限が切れています。 |
536 | ログオンが失敗しました。 理由 : NetLogon コンポーネントがアクティブではありません。 |
537 | ログオンが失敗しました。 理由 : ログオン中に予想外のエラーが発生しました。 |
538 | ユーザーがログオフしました。 |
539 | ログオンが失敗しました。 理由 : アカウントがロックアウトされています。 |
540 | ネットワーク ログオンが成功しました。 |
これらの各イベントには、それぞれのログオンについての詳細情報を示す説明テキストが記録されます。
また、Windows 2000 では、"アカウントログオン" カテゴリの成功および失敗監査を有効にできます。これにより、以下のイベントが有効になります。
672 | 認証チケットが付与されました。 |
673 | サービス チケットが付与されました。 |
674 | 付与されたチケットが更新されました。 |
675 | 事前認証に失敗しました。 |
676 | 認証チケットの要求が失敗しました。 |
677 | サービス チケットの要求が失敗しました。 |
678 | ログオンのためにアカウントがマップされました。 |
679 | ログオンのためにアカウントをマップできませんでした。 |
680 | アカウントがログオンに使用されました。 |
681 | <ワークステーション> の <ソース> によるアカウント <クライアント名> へのログインが失敗しました。 エラー コードは <エラー> です。 |
682 | セッションが winstation に再接続されました。 |
683 | セッションが winstation から切断されました。 |
576 | 新規ログインに特殊な特権が割り当てられました。 |
577 | ユーザーが特権を持つサービスが呼び出されました。 |
578 | ユーザーが特権を持つオブジェクトの操作が実行されました。 |
624 | ユーザー アカウントが作成されました。 |
625 | ユーザー アカウントの種類が変更されました。 |
626 | ユーザー アカウントが有効にされました。 |
627 | パスワードの変更が試行されました。 |
628 | ユーザー アカウント パスワードが設定されました。 |
629 | ユーザー アカウントが無効にされました。 |
630 | ユーザー アカウントが削除されました。 |
631 | セキュリティを有効にしたグローバル グループが作成されました。 |
632 | セキュリティを有効にしたグローバル グループに メンバが追加されました。 |
633 | セキュリティを有効にしたグローバル グループの メンバが削除されました。 |
634 | セキュリティを有効にしたグローバル グループが 削除されました。 |
635 | セキュリティを有効にしたローカル グループが 作成されました。 |
636 | セキュリティを有効にしたローカル グループに メンバが追加されました。 |
637 | セキュリティを有効にしたローカル グループの メンバが削除されました。 |
638 | セキュリティを有効にしたローカル グループが 削除されました。 |
639 | セキュリティを有効にしたローカル グループが 変更されました。 |
640 | 一般アカウント データベースが変更されました。 |
641 | セキュリティを有効にしたグローバル グループが 変更されました。 |
642 | ユーザー アカウントが変更されました。 |
643 | ドメイン ポリシーが変更されました。 |
644 | ユーザー アカウントがロックアウトされました。 |
645 | コンピュータ アカウントが作成されました。 |
646 | コンピュータ アカウントが変更されました。 |
647 | コンピュータ アカウントが削除されました。 |
648 | セキュリティを無効にしたローカル グループが 作成されました。 |
649 | セキュリティを無効にしたローカル グループが 変更されました。 |
650 | セキュリティを無効にしたローカル グループに メンバが追加されました。 |
651 | セキュリティを無効にしたローカル グループの メンバが削除されました。 |
652 | セキュリティを無効にしたローカル グループが 削除されました。 |
653 | セキュリティを無効にしたグローバル グループが 作成されました。 |
654 | セキュリティを無効にしたグローバル グループが 変更されました。 |
655 | セキュリティを無効にしたグローバル グループに メンバが追加されました。 |
656 | セキュリティを無効にしたグローバル グループの メンバが削除されました。 |
657 | セキュリティを無効にしたグローバル グループが 削除されました。 |
658 | セキュリティを有効にしたユニバーサル グループが 作成されました。 |
659 | セキュリティを有効にしたユニバーサル グループが 変更されました。 |
660 | セキュリティを有効にしたユニバーサル グループに メンバが追加されました。 |
661 | セキュリティを有効にしたユニバーサル グループの メンバが削除されました。 |
662 | セキュリティを有効にしたユニバーサル グループが 削除されました。 |
663 | セキュリティを無効にしたユニバーサル グループが 作成されました。 |
664 | セキュリティを無効にしたユニバーサル グループが 変更されました。 |
665 | セキュリティを無効にしたユニバーサル グループに メンバが追加されました。 |
666 | セキュリティを無効にしたユニバーサル グループの メンバが削除されました。 |
667 | セキュリティを無効にしたユニバーサル グループが 削除されました。 |
668 | グループの種類が変更されました。 |
669 | SID 履歴が追加されました (成功)。 |
670 | SID 履歴が追加されました (失敗)。 |