フォルダー権限の変更を監査します。 Windows Server 用のシンプルなファイルとフォルダーの削除監査システム

27.03.2019 モバイルインターネット

こんにちは!。 まだドメイン内でシャーロック ホームズになりきれていない場合は、今がその時です。 毎分、追跡および記録する必要がある何千もの変更がシステム内で発生します。 構造のサイズが大きくなり複雑になると、管理上のエラーやデータ漏洩の可能性が高くなります。 変化 (成功または失敗) を継続的に分析しなければ、真に構築することは不可能です。 安全な環境。 システム管理者は常に 答えなければなりません、誰が、いつ、何が変更され、誰に権利が委任され、何を 変更の場合に発生した(成功または失敗)、古いパラメータと新しいパラメータの値は何か、誰がシステムにログインしたりリソースにアクセスできたのか、誰がデータを削除したのかなど。

変更監査は IT インフラストラクチャ管理に不可欠な部分となっていますが、組織は常に監査に注意を払っているわけではありません。 技術的な問題。 結局のところ、何をどのように追跡する必要があるのか​​は完全には明確ではなく、この問題に関して文書が常に役立つとは限りません。 監視する必要があるイベントの数はすでに複雑で、データ量も多く、 標準ツール利便性と追跡タスクを簡素化する機能に違いはありません。 スペシャリストは、次の設定を行って独立して監査を設定する必要があります。 最適なパラメータ監査に加えて、結果を分析し、選択したイベントに関するレポートを生成する責任もあります。 ネットワーク上でいくつかのサービスが実行されていると考えると、 アクティブディレクトリ/GPO 交換サーバー、 MS。 SQLサーバー、仮想マシンなど、非常に多くのイベントが生成されるため、説明だけを読んでその中から本当に必要なものを選択するのは非常に困難です。

その結果、管理者はこの対策で十分であると考えています。 予約コピー問題が発生した場合は、単純に古い設定にロールバックすることを好みます。 監査の実施の決定は、多くの場合、重大な事件が発生した後にのみ行われます。 次に、Active Directory 監査を設定するプロセスを見てみましょう。 Windowsの例 Server 2008 R2、この記事で説明されているすべてのアクションは新しいエディションに適用されます Windowsサーバー.

Active Directory ドメインを監査するのは誰ですか?

最も差し迫った問題は常に、組織のドメイン内で発生するセキュリティ イベントを収集して分析する責任は誰にあるのかということです。 原則として、ロシアのほとんどの企業では、次のような理由から、

  • 小さなもの
  • 追加の人員を雇用するのに十分な資金がない
  • 必要はありません

その場合、彼らにとって、Active Directory、ファイル サーバー、メールの監査はまったく関係なく、発生したインシデントの形で本当に必要があり、真剣な調査が必要な場合にのみ必要になります。 中堅および上級レベルの企業では、原則として、イベントの監査がすでに確立されており、システム管理者がその調査に関与しているか、会社に別のセキュリティ部門があり、その部門長がその部門に割り当てられていることがほとんどです。退職間近の高齢男性で、すでに政府機関から追い出されて退職している。 私たちの政府は、年金受給者が豊かに暮らすことをどれほど気にかけているのか。

オペレーティング システム ツールを使用した Active Directory 監査

Windows Server 2008 R2 ファミリ以降のオペレーティング システムでは、Windows Server 2003 などの以前のオペレーティング システムと比較して、セキュリティ ポリシーを通じて構成された監査サブシステムの機能が更新され、監視されるパラメータの数が 53 個増加しました。古いオペレーティング システムでは、ディレクトリ サービス イベント監査を有効にするか無効にするかを制御する、ディレクトリ サービス アクセス監査ポリシーのみが存在していました。 カテゴリ レベルで監査を管理できるようになりました。 たとえば、Active Directory 監査ポリシーはカテゴリに分類されており、それぞれに特定の設定があります。

  • ディレクトリ サービス アクセス (ディレクトリ サービスへのアクセス)。
  • ログイン監査
  • システムイベントの監査
  • プロセス追跡
  • 特権使用状況の監査
  • アカウントとグループの管理
  • ディレクトリサービスの変更。
  • ディレクトリ サービス レプリケーション (ディレクトリ サービス レプリケーション)。
  • 詳細なディレクトリ サービス レプリケーション。

グローバル監査ポリシーのディレクトリ サービス アクセス監査を有効にすると、ディレクトリ サービス ポリシーのすべてのサブカテゴリが自動的に有効になります。
Windows Server 2008 R2 の監査システムは、オブジェクトの作成、変更、移動、復元のすべての試行を追跡します。 ログには、変更された属性の以前の値と現在の値、および操作を実行したユーザー アカウントが記録されます。 ただし、オブジェクトの作成時に属性のデフォルトのパラメータが使用された場合、その値は記録されません。

Active Directory ドメインで監査ポリシーを有効にする

AD ドメインがもともとより多くの目的で発明されたのは論理的です。 便利な制御あらゆる面でそのオブジェクトを監視し、監査する 情報セキュリティーここでは企業も例外ではありません。 システム管理者は、コンピューターとドメイン コントローラーの両方に適用されるグループ ポリシーを通じて、ドメインまたはフォレスト全体のレベルですべての設定を行います。 これに関連するツールから次の点を強調できます。

  • グローバル監査ポリシー (GAP)。
  • システム アクセス制御リスト (SACL) - 監査される操作を定義します。
  • スキーム – イベントのリストを完成させるために使用されます。

デフォルトでは、クライアント システムでは監査が無効になっており、サーバー システムではサブカテゴリ「Active Directory ディレクトリ サービスへのアクセス」が有効で、残りは無効になっています。 グローバル ポリシー「ディレクトリ サービス アクセスの監査」を有効にするには、「セキュリティ設定」に移動して「グループ ポリシー管理エディター」を呼び出す必要があります。 ローカルポリシー/Audit ポリシー。ポリシーをアクティブ化し、制御されたイベント (成功、失敗) を設定します。

さらに、より巧妙で選択的な AD 監査モードも追加されており、これもポリシーにあります。

コンピュータの構成 - ポリシー - Windows の構成- セキュリティ設定 - 詳細監査ポリシー構成 - 監査ポリシー - アカウント管理 (コンピュータ構成 - ポリシー - Windows 設定 - セキュリティ設定 - 詳細監査ポリシー構成 - アカウント管理)

その中には次のセクションがあります。

  1. 入り口 アカウント
  2. アカウント管理
  3. 詳細な追跡
  4. ディレクトリ サービス (DS) アクセス
  5. 入る 出る
  6. オブジェクトへのアクセス
  7. 方針変更
  8. 特権の使用
  9. システム
  10. グローバル オブジェクトへのアクセスを監査する

2 番目の実装オプションは、コマンド ライン ユーティリティを使用して構成することです。 監査ポール、GAP の完全なリストを取得するには、 パラメータを設定する。 Auditpol を使用するには、次のコマンドを入力するだけです。

Auditpol /list /subcategory:*

ご覧のとおり、auditpol コマンドの結果は、監査設定もセキュリティ イベントも存在しませんでした。

次のコマンドを使用して、「ディレクトリ サービス アクセス」ポリシーをアクティブにします。

Auditpol /set /subcategory:"ディレクトリ サービスの変更" /success:enable

コマンドの詳細情報を取得するには、auditpol /h として実行します。

待たずにドメイン コントローラー ポリシーを更新しましょう。

ディレクトリ サービス アクセス監査ポリシー サブカテゴリは、セキュリティ ログにコード 4662 のイベントを生成します。このイベントは、イベント ビューア コンソールの Windows ログ - セキュリティ タブを使用して表示できます。

イベントを表示する別の方法は、Get-EventLog PowerShell コマンドレットを使用することです。 例えば:

Get-EventLog セキュリティ | ?($_.eventid -eq 4662)

Get-EventLog コマンドレットは、After、AsBaseObject、AsString、Before、ComputerName、EntryType、Index、InstanceID、List、LogName、Message、Newest、Source、および UserName という特定の条件に基づいてイベントをフィルター処理できる 14 個のパラメーターを受け入れることができます。

さらに、他の多数のイベント 5136 (属性変更)、5137 (属性作成)、5138 (属性削除の取り消し)、および 5139 (属性の移動) がログに記録されます。
特定のイベントを簡単に選択できるように、イベント ビューアー コンソールはフィルターとカスタム ビューに加えて、他のサーバーからログ データを収集できるサブスクリプションを使用します。

イベントコレクター

ドメイン コントローラーで毎秒生成される何百万ものイベントを詳しく調べることが常に便利であるとは限らないことに同意してください。そのような状況では、作業が楽になり、情報セキュリティ監査の実施が容易になります。 ここには非常に多くの解決策のオプションがありますが、これらを強調したいと思います。

  • 個人的には、Active Directory を監査するために、必要なサーバーから 1 つのいわゆるコレクター サーバーへのすべてのイベントのリダイレクトを使用しています。そのタスクには、構成したすべてのサーバーからのログの集約が含まれます。 この機能も一般的です。私は個人的に Windows Server 2016 にリダイレクトされたログ コレクターを実装していますが、これは重要ではありません。

  • 2 番目の実装は、Zabbix 監視システムです。 完全に無料ですが、適切に設定するには少し作業する必要がありますが、一度設定すると、非常に優れた機能を制御できるようになります。 便利なツール Active Directory ドメインの監査について。 これはトリガーの 1 つの実装例です。「アカウントでのログインが成功しました」というイベントに関する情報が表示されます。以下では、ID 番号 4624 がこれに関与していることがわかります (詳細は https:// を参照してください)。 habr.com/post/215509/)

  • もう 1 つの優れたソリューションは、Netwrix Active Directory Change Reporter 製品を実装することです。 これは非常にクールなセキュリティ監査ハーベスターです 情報システム Active Directory ドメイン インフラストラクチャ。 この製品は文字通り 30 分で展開され、タスクを実行できるようになります (詳細については、http://itband.ru/2011/09/audit-adds/ を参照してください)。

Windows Server 2008 R2 の Active Directory イベント監査イベントのリスト

以下に、情報システムのセキュリティを監査する際に必要となる、最も一般的で最もよく使用されるイベントを書き留めてみました。入手可能なすべての情報を調べたい場合は、ポータルにアクセスすることをお勧めします。 マイクロソフト高度な監査に特化しています。リンク自体はここにあります https://docs.microsoft.com/ru-ru/windows/security/threat-protection/auditing/event-4723

資格情報の検証

  1. 4774 アカウントはログイン用にマップされました。
  2. 4775 ログイン アカウントをマッピングできませんでした。
  3. 4776 ドメイン コントローラー アカウントの資格情報を確認しようとしました。
  4. 4777 ドメイン コントローラー アカウントの資格情報を検証できませんでした。

コンピュータアカウント管理

  1. 4741 コンピューター アカウントが作成されました。
  2. 4742 コンピュータ アカウントが変更されました。
  3. 4743 コンピュータ アカウントが削除されました。

配布グループの管理

  1. 4744 作成されました ローカルグループセキュリティチェックは無効になっています。
  2. 4745 セキュリティチェックが無効になっているローカルグループが変更されました。
  3. 4746 セキュリティが無効になっているローカル グループにユーザーを追加しました。
  4. 4747 セキュリティが無効になっているローカル グループからユーザーが削除されました。
  5. 4748 セキュリティが無効になっているローカル グループが削除されました。
  6. 4749 グローバル グループがセキュリティ チェックを無効にして作成されました。
  7. 4750 セキュリティチェックが無効になっているグローバルグループが変更されました。
  8. 4751 セキュリティが無効になっているグローバル グループにユーザーを追加しました。
  9. 4752 セキュリティが無効になっているグローバル グループからユーザーが削除されました。
  10. 4753 セキュリティが無効になっているグローバル グループが削除されました。
  11. 4759 ユニバーサル グループがセキュリティ チェックを無効にして作成されました。
  12. 4760 セキュリティチェックが無効になっているユニバーサルグループが変更されました。
  13. 4761 セキュリティが無効になっているユニバーサル グループにメンバーが追加されました。
  14. 4762 セキュリティが無効になっているユニバーサル グループからユーザーが削除されました。

その他のアカウント管理イベント

  1. 4739 ドメイン ポリシーが変更されました。
  2. 4782 アクセス アカウントのパスワードのハッシュ。
  3. 4793 パスワード ポリシー チェック API が呼び出されました。

セキュリティグループの管理

  1. 4727 セキュリティが有効なグローバル グループが作成されました。
  2. 4728 ユーザーがセキュリティが有効なグローバル グループに追加されました。
  3. 4729 ユーザーがセキュリティが有効なグローバル グループから削除されました。
  4. 4730 セキュリティが有効なグローバル グループが削除されました。
  5. 4731 セキュリティが有効なローカル グループが作成されました。
  6. 4732 ユーザーがセキュリティが有効なローカル グループに追加されました。
  7. 4733 ユーザーは、セキュリティが有効なローカル グループから削除されました。
  8. 4734 セキュリティが有効なローカル グループが削除されました。
  9. 4735 セキュリティが有効なローカル グループが変更されました。
  10. 4737 セキュリティが有効なグローバル グループが変更されました。
  11. 4754 セキュリティが有効なユニバーサル グループが作成されました。
  12. 4755 セキュリティが有効なユニバーサル グループが変更されました。
  13. 4756 セキュリティが有効なユニバーサル グループにユーザーを追加しました。
  14. 4757 ユーザーは、セキュリティが有効なユニバーサル グループから削除されました。
  15. 4758 セキュリティが有効なユニバーサル グループが削除されました。
  16. 4764 グループタイプが変更されました。

ユーザーアカウント管理

  1. 4720 ユーザーアカウントが作成されました。
  2. 4722 ユーザー アカウントが有効になりました。
  3. 4724 ユーザーのパスワードをリセットします。
  4. 4725 ユーザー アカウントが無効になっています。
  5. 4726 ユーザーアカウントが削除されました。
  6. 4738 ユーザーアカウントが変更されました。
  7. 4765 ジャーナル SID がアカウントに追加されました。
  8. 4766 ログアカウント SID の追加に失敗しました。
  9. 4767 ユーザー アカウントのロックが解除されました。
  10. 4780 ACL は、Administrators グループのメンバーであるアカウントに設定されています。
  11. 4781 アカウント名が変更されました。
  12. 4794 ディレクトリ サービス復元モードを設定しようとしました。
  13. 5376 資格情報マネージャー: 資格情報は保存されました。
  14. 5377 資格情報マネージャー: 資格情報は次から復元されました。 バックアップコピー.

その他のイベント

  1. 1102 セキュリティログがクリアされました
  2. 4624 ログイン成功
  3. 4625 ログインに失敗しました

[監査ポリシー] ブランチでは、ログイン/ログアウト監査、アカウント管理監査、オブジェクト アクセス、ポリシー変更などの他の機能もアクティブになります (図 1 を参照)。 たとえば、共有フォルダーの例を使用して、オブジェクトへのアクセスの監査を設定してみましょう。 これを行うには、上で説明したように、監査ポリシーをアクティブ化します。 オブジェクトアクセス、フォルダーを選択し、フォルダー オプション メニューを呼び出します。このメニューで、セキュリティ サブ項目に移動し、詳細ボタンをクリックします。 今、開いたウィンドウで「 追加オプション「監査」タブに移動し、「編集」ボタンをクリックしてから「追加」をクリックし、監査を実行するアカウントまたはグループを指定します。 次に、監視されているイベント (実行、読み取り、ファイル作成など) と結果 (成功または失敗) を記録します。 「適用」リストを使用して、監査ポリシーの適用範囲を指定します。 変更を確認します。

これで、指定されたすべての操作がセキュリティ ログに表示されます。
監査の設定を容易にするため、 大量のオブジェクトの場合は、「親オブジェクトからパラメータを継承」チェックボックスをアクティブにする必要があります。 この場合、「継承元」フィールドには、設定の取得元の親オブジェクトが表示されます。
ログに記録されるイベントをより詳細に制御するには、セキュリティ設定/ローカル ポリシー/詳細監査ポリシー構成で構成される詳細な監査ポリシーを使用します。 ここには 10 のサブポイントがあります。

  • アカウント ログイン - 資格情報の検証、Kerberos 認証サービス、Kerberos サービス チケットの操作、その他のログイン イベントを監査します。
  • アカウント管理 – アプリケーション グループ、コンピューターとユーザー アカウント、セキュリティと配布グループの管理を監査します。
  • 詳細な追跡 - RPC および DPAPI イベント、プロセスの作成と終了。
  • ディレクトリ サービス アクセス DS - ディレクトリ サービスのアクセス、変更、レプリケーション、および詳細なレプリケーションを監査します。
  • ログイン/ログアウト – アカウントのロック、システムのログインとログアウト、IPSec の使用、ネットワーク ポリシー サーバーの監査。
  • オブジェクトへのアクセス - カーネル オブジェクトの監査、記述子、イベントの操作 アプリケーションによって作成された、認証サービス、 ファイルシステム、共有フォルダー、フィルタリング プラットフォーム。
  • ポリシーの変更 – 監査、認証、認可、フィルタリング プラットフォーム、MPSSVC セキュリティ サービス ルールなどの変更。
  • 権利の使用 – さまざまなカテゴリのデータへのアクセス権の監査。
  • システム – システムの整合性、セキュリティ状態の変更と拡張、IPSec ドライバー、その他のイベントを監査します。
  • グローバル オブジェクトへのアクセスの監査 - ファイル システムとレジストリの監査。

ユーザー アカウント管理監査を有効にすると、作成、変更、削除、ブロック、有効化、およびパスワードや権限を含むその他のアカウント設定を追跡できるようになります。 実際にどのように機能するかを見てみましょう。[ユーザー アカウント管理] サブカテゴリを選択してアクティブにします。 Auditpol コマンドは次のようになります。

Auditpol /set /subcategory:"ユーザー アカウント管理" /success:enable /failure:enable
gpudate /force

コンソールでの監査システム イベントを表示すると、すぐにイベント番号 4719 が表示されます。監査パラメータの変更により、ポリシー名と新しい値が表示されます。

イベントを作成するには、Active Directory ユーザーとコンピュータ コンソールを開き、任意のアカウントのパラメータの 1 つを変更します (たとえば、セキュリティ グループにユーザーを追加します)。 イベント ビューア コンソールでは、複数のイベントが一度に生成されます。イベント番号 4732 および 4735 は、セキュリティ グループ メンバーシップの変更とアカウントの追加を示します。 新しい集団セキュリティ (図 8 では紫色で強調表示)。
新しいアカウントを作成しましょう - システムはいくつかのイベントを生成します: 4720 (新しいアカウントの作成)、4724 (アカウントのパスワードのリセット試行)、コード 4738 (アカウントの変更) のいくつかのイベント、そして最後に 4722 (新しいアカウントの有効化) )。 監査データに基づいて、管理者は古い属性値と新しい属性値を追跡できます。たとえば、アカウントの作成時に UAC 値が変更されます。

定期監査制度のデメリット

標準ツール オペレーティング·システム多くの場合、基本的な分析ツールのセットのみが提供されています。 公式ドキュメント (http://technet.microsoft.com/ru-ru/library/dd772623(WS.10).aspx) では、ツール自体の機能が非常によく似た方法で説明されていますが、パラメーターの選択についてはほとんど助けがありません。変化を監視する必要があります。 その結果、この問題の解決策はすべてシステム管理者の肩にかかっており、システム管理者は監査の技術的側面を十分に理解する必要があり、トレーニングのレベルに依存するため、エラーが発生する可能性が高くなります。 また、結果の分析や各種レポートの作成も担当します。
特定のイベントを簡単に選択できるように、イベント ビューアー コンソール インターフェイスでフィルターとカスタム ビューを作成できます。 データを選択するためのパラメーターとして、日付、イベントのログとソース、レベル (重大、警告、エラーなど)、コード、ユーザーまたはコンピューター、および キーワード。 組織には、グループや部門にグループ化された多数のユーザーがおり、監査を個別に構成する必要がある場合がありますが、 この機会インターフェイスでは提供されません。

ルールがカスタム ビューでトリガーされる場合は、タスク (タスクをイベントにバインド メニュー) を作成できます。プログラムを起動し、メッセージを送信します。 Eメールまたはデスクトップにメッセージを表示します。

ただし、繰り返しになりますが、アラートの実装、特にイベントの選択は完全に管理者に任されています。
変更された属性を前の値にロールバックする必要がある場合、このアクションは手動で実行されます。コンソールにはパラメーターの値のみが表示されます。

一部のセキュリティ標準では、監査プロセス中に収集されたデータを長期間(たとえば、SOX では最大 7 年間)保持する必要があります。 システム手段によるこれを実装することは可能ですが、非常に困難です。 セキュリティ ログのサイズは (他のものと同様) 128 MB に制限されており、イベントが多数発生すると、数時間以内にデータが上書きされる (つまり、失われる) 可能性があります。 これを回避するには、イベント ビューアでログ プロパティ ウィンドウを呼び出し、ログ サイズを増やし、[いっぱいになったときにログをアーカイブする] チェックボックスをオンにしてアーカイブをアクティブにする必要があります。 イベントを上書きしないでください。」

しかし今後は、多くのアーカイブ内のイベントを検索するという問題を解決する必要があります。 デメリットにも注意が必要です 標準システム監査には以下が含まれます 限られた機会グループポリシーを監視します。 この変更の事実にもかかわらず、 定期的な手段追跡できても、変更されたパラメータの値は記録されないため、正確に何が変更され、新しい値が何になったのかという質問に答えることは不可能です。 状況によってはこれで十分ですが、本格的な監査と呼ぶのは困難です。質問がある場合は、コメントに書き込んでください。

Windows Server 2008 R2 のファイルおよびフォルダーへのアクセスを監査するには、監査機能を有効にし、アクセスを記録するフォルダーおよびファイルも指定する必要があります。 監査を設定すると、サーバー ログには、選択したファイルとフォルダーに対するアクセスやその他のイベントに関する情報が含まれます。 ファイルおよびフォルダーへのアクセスの監査は、NTFS ファイル システムを備えたボリュームでのみ実行できることに注意してください。

Windows Server 2008 R2 でファイル システム オブジェクトの監査を有効にする

ファイルとフォルダーのアクセス監査は、グループ ポリシーを使用して有効または無効にします: ドメイン ポリシー ドメインアクティブスタンドアロン サーバーのディレクトリまたはローカル セキュリティ ポリシー。 個々のサーバーで監査を有効にするには、ローカル ポリシー管理コンソールを開く必要があります。 開始 ->全てプログラム ->管理的ツール ->地元安全ポリシー。 ローカル ポリシー コンソールで、ローカル ポリシー ツリーを展開する必要があります ( 地元ポリシー)要素を選択します 監査ポリシー.

右側のパネルで要素を選択する必要があります 監査物体アクセス表示されるウィンドウで、記録する必要があるファイルおよびフォルダーへのアクセス イベントの種類 (アクセスの成功/失敗) を指定します。


必要な設定を選択したら、 をクリックします。 わかりました。

アクセスを記録するファイルとフォルダーの選択

ファイルおよびフォルダーへのアクセスの監査をアクティブ化した後、アクセスを監査する特定のファイル システム オブジェクトを選択する必要があります。 NTFS アクセス許可と同様に、監査設定は、(別の方法で構成されていない限り) デフォルトですべての子オブジェクトに継承されます。 ファイルやフォルダーにアクセス権を割り当てる場合と同様に、すべてのオブジェクトまたは選択したオブジェクトのみに対して監査設定の継承を有効にすることができます。

特定のフォルダー/ファイルの監査を設定するには、それをクリックする必要があります 右クリックマウスを移動して「プロパティ」( プロパティ)。 プロパティウィンドウで、「セキュリティ」タブに移動します( 安全)を押してボタンを押します 高度な。 高度なセキュリティ設定ウィンドウ ( 高度な安全設定) 「監査」タブに移動します ( 監査)。 もちろん、監査を設定するには管理者権限が必要です。 の上 この段階では監査ウィンドウには、このリソースの監査が有効になっているユーザーとグループのリストが表示されます。

にアクセスできるユーザーまたはグループを追加するには このオブジェクト修正されるので、ボタンを押す必要があります 追加…これらのユーザー/グループの名前を指定します (または、 みんな– すべてのユーザーのアクセスを監査するため):

この設定を適用した直後 システムログセキュリティ (スナップインで見つけることができます) コンピューター管理 ->イベント ビューア)、監査が有効になっているオブジェクトにアクセスするたびに、対応するエントリが表示されます。

あるいは、PowerShell コマンドレットを使用してイベントを表示およびフィルタリングすることもできます- イベントログの取得たとえば、eventid 4660 のすべてのイベントを表示するには、次のコマンドを実行します。

Get-EventLog セキュリティ | ?($_.eventid -eq 4660)

アドバイス。 ログ内の任意のイベントに割り当てることができます Windows確実送信などのアクション Eメールまたはスクリプトの実行。 これをどのように構成するかについては、次の記事で説明されています。

2012 年 6 月 8 日より更新 (コメンテーターに感謝します)。

Windows 2008/Windows 7では監査管理が導入されました 特別なユーティリティ 監査ポール. 完全なリスト監査を有効にできるオブジェクトのタイプは、次のコマンドを使用して確認できます。

Auditpol /list /subcategory:*

ご覧のとおり、これらのオブジェクトは 9 つのカテゴリに分類されます。

  • システム
  • ログオン/ログオフ
  • オブジェクトアクセス
  • 特権の使用
  • 詳細な追跡
  • ポリシーの変更
  • アカウント管理
  • DS アクセス
  • アカウントのログオン

それに応じて、それぞれがサブカテゴリーに分類されます。 たとえば、オブジェクト アクセス監査カテゴリにはファイル システム サブカテゴリが含まれており、コンピュータ上のファイル システム オブジェクトの監査を有効にするには、次のコマンドを実行します。

Auditpol /set /subcategory:"ファイル システム" /failure:enable /success:enable

これは、次のコマンドで無効にされます。

Auditpol /set /subcategory:"ファイル システム" /failure:disable /success:disable

それらの。 不要なサブカテゴリの監査を無効にすると、ログの量と不要なイベントの数を大幅に減らすことができます。

ファイルとフォルダーへのアクセスの監査をアクティブ化した後、監視する特定のオブジェクトを (ファイルとフォルダーのプロパティで) 指定する必要があります。 デフォルトでは、監査設定はすべての子オブジェクトに継承されることに注意してください (特に指定しない限り)。

どれでも Windows管理者怒ったユーザーが正確に誰がメガを削除したのか知りたいという状況に遭遇しました。 重要なファイル年次報告書付き 共有フォルダの上 ファイルサーバー。 この情報は、ファイル サーバー上のファイルとフォルダーの削除を監査する場合にのみ取得できます。そうでない場合は、残っているのは、削除されたファイルをバックアップ コピーから復元し (既に実行していますか?)、手を放すことだけです。

ただし、ファイル削除の監査が有効になっている場合でも、ログ内の何かを見つけるのが問題となる場合があります。 まず、見つけてください 希望のエントリー何千ものイベントの中からそれを行うのは非常に困難です (Windows には、柔軟なフィルタリングが可能な、目的のイベントを検索するまともな手段がありません)。第二に、ファイルがかなり前に削除されている場合、このイベントは単純に存在しない可能性があります。ログにあるので、 新しいものによって上書きされました。

この記事では、組み込みの整理の例を示します。 Windows ツール 共有ネットワーク ディレクトリ内のファイルとフォルダーの削除を監査するシステム(ファイル サーバー)イベントは別の MySQL データベースに記録されます。

すべての情報を含むデータベースの存在のおかげで、 削除されたファイル管理者は次の質問に答えることができます。

  • 誰がいつファイルを削除しましたか?
  • ファイルはどのアプリケーションから削除されましたか?
  • どの時点でバックアップを復元する必要がありますか?

まずはファイル上で Windowsサーバーファイル削除に関する情報がシステム ログに記録されるようにするには、イベント監査を有効にする必要があります。 この手順については、この記事ですでに説明しました。

監査は次の方法で有効にできます。 一般方針 オブジェクトアクセスの監査ポリシーセクションで セキュリティ設定 -> ローカル ポリシー -> 監査ポリシー

または (できれば) GPO 経由で: セキュリティ設定 -> 高度な監査ポリシー構成 -> オブジェクト アクセス -> 監査ファイル システム.

アドバイス。 監査を実施すると、システム リソースに追加のコストがかかります。 特に高負荷のファイル サーバーの場合は、注意して使用する必要があります。

共有ネットワークフォルダーのプロパティ (セキュリティ -> 詳細 -> 監査) で、グループの追跡するファイルを削除します。 みんなフォルダーとファイルの削除イベントの監査を有効にする ( 消去サブフォルダーそしてファイル).

アドバイス。 特定のフォルダー内のファイル削除の監査は、PowerShell 経由で有効にすることもできます。

$Path = "D:\パブリック"
$AuditChangesRules = New-Object System.Security.AccessControl.FileSystemAuditRule("Everyone", "Delete,DeleteSubdirectoriesAndFiles", "none", "none", "Success")
$Acl = Get-Acl -Path $Path
$Acl.AddAuditRule($AuditChangesRules)
Set-Acl -Path $Path -AclObject $Acl

ファイルが正常に削除されると、イベント ID イベントがシステム セキュリティ ログに表示されます 4663 ソースから マイクロソフトウィンドウズセキュリティ監査。 イベントの説明には、削除されたファイルの名前、削除が実行されたアカウント、およびプロセスの名前に関する情報が含まれます。

したがって、関心のあるイベントはログに書き込まれます。次に、次のフィールドで構成されるテーブルを MySQL サーバー上に作成します。

  • サーバーの名前
  • リモートファイル名
  • 削除時間
  • ファイルを削除したユーザーの名前

このようなテーブルを作成するための MySQL クエリは次のようになります。

CREATE TABLE track_del (id INT NOT NULL AUTO_INCREMENT、server VARCHAR(100)、file_name VARCHAR(255)、dt_time DATETIME、user_name VARCHAR(100)、PRIMARY KEY (ID));

イベントログから情報を収集するためのスクリプト。 今日のイベント ID 4663 でログをフィルタリングします。



$event = $_.ToXml()
if($event)
{




}
}

次のスクリプトは、受信したデータをリモート サーバー上の MySQL データベースに書き込みます。




$Connection.Open()
$sql = 新しいオブジェクト MySql.Data.MySqlClient.MySqlCommand
$sql.Connection = $Connection
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
Get-WinEvent -FilterHashTable @(LogName="Security";starttime="$today";id=4663) | フォーリーチ (
$event = $_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
$File = $event.Event.EventData.Data."#text"

$File = $File.Replace('\','|')
$User = $event.Event.EventData.Data."#text"
$Computer = $event.Event.System.computer
$sql.CommandText = "トラックデル (サーバー,ファイル名,dt_時刻,ユーザー名) の値に挿入 ("$Computer","$File","$Time","$User")"
$sql.ExecuteNonQuery()
}
}
$Reader.Close()
$Connection.Close()

次に、誰がファイルを削除したかを調べます。」 document1 - コピー.DOC」の場合は、PowerShell コンソールで次のスクリプトを実行するだけです。

$DeletedFile = "%document1 - Copy.DOC%"
Set-ExecutionPolicy RemoteSigned
追加タイプ - パス「C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5\MySql.Data.dll」
$Connection = @(ConnectionString="server=10.7.7.13;uid=posh;pwd=P@ssw0rd;database=aduser")
$Connection.Open()
$MYSQLCommand = 新しいオブジェクト MySql.Data.MySqlClient.MySqlCommand
$MYSQLDataAdapter = 新しいオブジェクト MySql.Data.MySqlClient.MySqlDataAdapter
$MYSQLDataSet = 新しいオブジェクト System.Data.DataSet
$MYSQLCommand.Connection=$Connection
$MYSQLCommand.CommandText="SELECT user_name,dt_time from track_del where file_name LIKE "$DeletedFile""
$MYSQLDataAdapter.SelectCommand=$MYSQLCommand
$NumberOfDataSets=$MYSQLDataAdapter.Fill($MYSQLDataSet, "データ")
foreach($MYSQLDataSet.tables の $DataSet)
{
書き込みホスト "ユーザー:" $DataSet.user_name "at:" $DataSet.dt_time
}
$Connection.Close()

コンソールで、ユーザー名とファイルが削除された時刻を取得します。

注記。 なぜなら 問題が発見されました。文字「\」がデータベースに書き込まれず、「|」に置き換えられました。 したがって、データベースから選択するときにファイルへのフルパスを指定する必要がある場合は、逆置換 $DataSet.file_name.Replace(‘|’,’\’) を実行できます。 Alex Kornev さん、メモをありがとう!

ログからデータベースにデータをダンプするためのスクリプトは、スケジューラに従って 1 日の終わりに 1 回実行することも、より多くのリソースを消費する削除イベント () に割り当てることもできます。 すべてはシステム要件によって異なります。

アドバイス。セキュリティ ログが、その日のすべてのイベントを含めるのに十分な大きさであることを確認する必要があります。 それ以外の場合は、ログからデータベースにデータをリセットするタスクを 1 日に 1 回以上、またはトリガーごとに実行する必要があります。 ワークステーション用 最大ログサイズ原則として、少なくとも設定する価値があります 64 MB、北にある - 262 MB. 上書きオプションを有効のままにしておきます ( 必要に応じてイベントを上書きする).

必要に応じて、PHP で単純な Web ページを操作して、より便利な形式でファイル削除の原因に関する情報を取得できます。 この問題は、PHP プログラマーであれば 1 ~ 2 時間で解決できます。

重要なヒント。 ユーザーがファイルを削除したという情報がログにある場合は、それを意図的または悪意のあるものとして急いで明確に解釈しないでください。 多くのプログラム (特に MS Office プログラムがこの問題を起こします) は、データを保存するときに、まず一時ファイルを作成し、そのファイルに文書を保存します。 古いバージョンファイルが削除されます。 この場合、それは理にかなっています 追加エントリファイルを削除したプロセスの名前 (イベントの ProcessName フィールド) をデータベースに記録し、この事実を考慮してファイルの削除を分析します。 または、winword.exe、excel.exe などのガベージ プロセスからのイベントを徹底的にフィルターで除外します。

そこで、ネットワーク共有内のリモート ファイルに関する情報を監査および保存するシステムのアイデアと一般的なフレームワークを提案しました。必要に応じて、ニーズに合わせて簡単に変更できます。

最適なツールはグループ ポリシーです (監視対象サーバーの OU に適用されます)。 各サーバーに同様のローカル ポリシーを使用することが可能

「コンピューターの設定\Windows の設定\セキュリティの設定\高度な監査ポリシーの構成\システム監査ポリシー\オブジェクト アクセス\監査」 ファイルシステム" => 「監査イベント: 成功」が有効になりました。

ファイルへのアクセスの失敗を監視する必要がある可能性はほとんどありません。 その可能性があることは否定しません。 しかし、多くの場合、誰がファイルを削除 (またはアップロード) したかを調べる必要があります。

2. 特定のフォルダーに対する監査の設定

次に、データを保存するサーバー上で直接、エクスプローラーを使用して監視するフォルダーのプロパティに移動し、監視するグループの監査設定を有効にします。 たとえば、Everyone、考えられるユーザーやサービスによる変更を追跡したい場合は、次のようにします。

「サブフォルダーとファイルの削除 - 成功しました」

「削除 - 成功しました」

「ファイルの作成/データの書き込み - 成功しました」

「フォルダーの作成/データの追加 - 成功しました」

3. イベント監視

これ以降、上記のフォルダーでファイルやサブディレクトリが作成および削除されると、サーバー (ファイルが保存されている) のセキュリティ イベント ログにイベントが表示されます。

次の 2 つのイベントを使用して、操作の特定の参加者を追跡できます。

イベントID: 4660
説明: オブジェクトが削除されました。

  • ファイルが削除されたことを通知します。
  • 削除操作を実行した人のアカウントが含まれます
  • ファイル名は含まれません。 彼のハンドルIDのみ

イベントID: 4663
説明: オブジェクトにアクセスしようとしました。

  • ファイルへのアクセス試行を報告します。
  • 操作を実行した人のアカウントが含まれます。
  • ハンドルIDとファイル名(オブジェクト名)が含まれます
  • アクセス マスク – アクセス マスク – ファイルへのアクセスがどのような目的で行われたかを決定します。

アクセスマスクの種類:

アクセスタイプ 16進数 説明
ReadData (または ListDirectory) 0×1 データの読み取りファイルまたはディレクトリ オブジェクトからデータを読み取る。 リストディレクトリディレクトリの内容を表示します。
データの書き込み (またはファイルの追加) 0×2 データの書き込みデータをファイルに書き込む。 ファイルの追加 -ディレクトリにファイルを作成します。
AppendData (または AddSubdirectory または CreatePipeInstance) 0×4 データの追加データをファイルに追加する。 WriteData フラグも含まれていない限り、既存のデータは上書きされません。 サブディレクトリの追加 -サブディレクトリを作成しています。
消去 0×10000 オブジェクトの削除。

主要な情報源 - イベント 4663:

主題オブジェクトに対する操作が実行されたアカウントに関する情報が含まれます。

物体– ファイル情報 (パス、名前、ハンドル)

プロセス情報どのプロセスがファイルに対して操作を実行したかに関する情報が含まれています。

章内 アクセス要求情報アクセスタイプとアクセスマスクに関する情報が掲載されています。

ファイルを作成する指定されたフォルダー内で、ID を持つイベントのペアがセキュリティ イベント ログに表示されます。 4663 、最初はマスクで 0x2、2番目はマスク付き 0x4.

ファイルの削除 ID付きのイベントが表示される 4663 そしてアクセスマスク 0x10000、イベントだけでなく 4660 。 同一のハンドルを持つ前のイベント 4663 を見つけることで、イベント 4660 によってどのファイルが削除されたかを判断できます。

ログを分析するには、ツールを使用できます ログパーサー https://www.microsoft.com/en-us/download/details.aspx?id=24659 たとえば、次のリクエストです。

LogParser.exe -i:evt "SELECT TimeGenerated, EventID, Extract_Token(Strings, 1, '|') AS ユーザー、Extract_Token(Strings, 6, '|') AS ファイル、Extract_Token(Strings, 7, '|') AS 'C:\ から 111.docx.txt へのハンドル ID \*.evtx’ WHERE (STRCNT(Strings, ‘111.docx’) >0) ORDER BY TimeGenerated DESC"

ここで、「111.docx」は検索文字列、C:\ \*.evtx – EVTX 形式でアップロードされたログ ファイルへのパス。 LogParser は他の形式も理解します。

場合によっては、誰が特定のファイルまたはフォルダーを削除/変更/名前変更したかを把握する必要があります。 Windows OS では、これにオブジェクト アクセス監査が使用されます。

監査とは、特定のイベント (ソース、イベント コード、成功、オブジェクトなど) に関する情報を特別なログに記録することです。 監査オブジェクトには、任意のファイルまたはフォルダー、または特定のイベント (システムへのログインまたはログアウトなど) を指定できます。つまり、特定のファイルまたはフォルダーで発生するすべてのイベント (読み取り、書き込み、削除など) を記録できます。 、イベントログインなどができます。

監査が引き継ぐことを理解する必要があります。

ファイルとフォルダーの監査を構成できるようにするには、まずローカル (または Microsoft AD グループを使用している場合) のセキュリティ ポリシーを通じてこの機能を有効にする必要があります。

ローカル ポリシーの場合、これを行うには、「ローカル セキュリティ ポリシー」スナップインを起動する必要があります。Win+R キーの組み合わせを押し、表示されるフィールドに「secpol.msc」と入力して Enter キーを押します。

開いたスナップインの左側のツリーで、「ローカル ポリシー」-「監査ポリシー」セクションに移動する必要があります。

次に、必要なポリシーを選択する必要があります。 この場合それが「オブジェクトアクセス監査」です。 ファイル システム オブジェクト (ファイルとフォルダー) へのアクセスを規制するのはこのポリシーであり、マウスをダブルクリックすることで開くことができます。 開いたウィンドウで、どのタイプのイベントを記録するかを選択する必要があります - 「成功」(操作の許可が受け取られた) および/または操作が禁止されている「拒否」 - 適切なボックスにチェックを入れて、「」をクリックします。わかりました"。

関心のあるイベントとそのタイプを監査する機能が有効になったので、オブジェクト自体 (この場合はファイルとフォルダー) の設定に進むことができます。

これを行うには、ファイルまたはフォルダーのプロパティを開き、「セキュリティ」タブに移動し、「詳細設定」と「監査」をクリックする必要があります。

「追加」をクリックして監査の設定を開始します。

まず、対象を選択します。これは、アクションが監査される (監査ログに記録される) 対象です。

そこにユーザーまたはグループの名前を入力できます。名前が事前に不明な場合は、「詳細」ボタンを使用すると、検索フォームが開き、興味のあるユーザーとグループを選択できます。 すべてのユーザーのアクションを制御するには、「Everyone」グループを選択する必要があります。

次に、監査対象イベントのタイプ (成功、失敗、すべて) と、監査フォルダーの範囲 (このフォルダーのみ、サブフォルダーを含むフォルダー、サブフォルダーのみ) を構成する必要があります。 監査イベント自体だけでなく、ファイルなどのみも含まれます。

フォルダーの場合、フィールドは次のとおりです。

ファイルについては次のとおりです。

この後、監査データの収集が開始されます。 すべての監査イベントは「セキュリティ」ログに書き込まれます。 これを開く最も簡単な方法は、「コンピュータの管理」スナップイン compmgmt.msc を使用することです。

左側のツリーで、「イベント ビューア」-「Windows ログ」-「セキュリティ」を選択します。

各 Windows OS イベントには独自のイベント コードがあります。 イベントのリストは非常に広範囲に及ぶため、Microsoft の Web サイトまたはインターネットから入手できます。 たとえば、監査イベントを表示できます。

たとえば、ファイル削除イベントを見つけてみましょう。これを行うには、監査が事前に構成されているファイルを削除します (これがテスト ファイルでない場合は、そのコピーを作成することを忘れないでください)監査はアクションに関する単なる情報であり、これらのアクションを許可/禁止するものではないため)。 コード 4663 のイベントが必要です。つまり、「アクセス操作」フィールドに「DELETE」と書かれているオブジェクトへのアクセスを取得します。 イベントを検索する Windows ログ非常に複雑なため、通常は監視システムやスクリプトなどの特殊な分析ツールが使用されます。

たとえば、次のようにフィルターを手動で設定できます。

ダブルクリックして開くと、誰が削除したかがわかります このファイル件名フィールドに。