メインコンテンツまでスキップ
Sumo Logic Japanese

Active Directory アプリケーションのログ ファイルの収集

Windows Active Directory (AD) は、ネットワーク上のさまざまなオブジェクトに関する情報を格納する、Microsoft が開発したディレクトリ サービスです。

Active Directory アプリケーションで、この情報 (ドメイン コントローラ、フォレスト、サイト、ユーザ、グループ、コンピューター、組織単位を含む) を分析してユーザとネットワーク管理者にグラフィック表示します。Sumo Logic を使用すると、通常の Windows イベントをこのデータで増強したり、このデータと連結したりして、よりコンテキストに即したインサイトを得ることができます。たとえば、ドメイン名に基づいてイベントを増強すると、特定の AD サイト固有の検索を構築したり、特定の組織単位下のユーザのアクティビティを追跡したりできます。

ログ タイプ

Active Directory 診断ログ ファイルの詳細については、Microsoft ヘルプ を参照してください。

前提条件

Active Directory ログの収集を開始するには、まず次の操作を行います。

  • A. Active Directory モジュールの確認
  • B. Sumo Logic スクリプトのダウンロードとデプロイ

A. Active Directory モジュールの確認

続行する前に Active Directory モジュールを使用できることを確認します。リモート サーバ管理ツール (RSAT) がインストールされている場合、Active Directory モジュールは Windows 7 と Windows 2008 Server (R2 移行) でサポートされます。詳細については、Microsoft TechNet を参照してください。

Active Directory モジュールを使用できるかどうかを確認するには、次の手順を実行します。

  1. [スタート] > [管理ツール] を選択します。
  2. [Windows PowerShell 用 Active Directory モジュール] を探します。

  1. このモジュールがインストールされていない場合、Microsoft TechNet の説明に従って RSAT をインストールします。

B. Sumo スクリプトのダウンロードとデプロイ

ファイルを取得するには、次のスクリプトをダウンロードします。

これらのスクリプトを、ログ ファイルが存在するドメインに含まれるマシンにデプロイする必要があります。スクリプトをデプロイしたら、Sumo Logic で domainCollector.ps1 用のスクリプト Source と、adObjectCollector.ps1 用の別のスクリプト Source を設定する必要があります。

スクリプトをデプロイするには、次の手順を実行します。

  1. スクリプトをフォルダ (C:\PSScripts など) にダウンロードします
  2. SCRIPTPATH がフォルダのパスに一致するようにスクリプトを編集します。

スクリプトのテストは省略可能ですが、テストすることをお勧めします。

スクリプトを手動でテストするには、次の手順を実行します。

  1. コマンド ライン インターフェイスを開きます。
  2. スクリプトがインストールされている場所のパスを使用して、domainCollectoradObjectCollector を実行します。

powershell.exe -ExecutionPolicy Bypass -InputFormat None -File c:\PSScripts\domainCollector.ps1 

powershell.exe -ExecutionPolicy Bypass -InputFormat None -File c:\PSScripts\adObjectCollector.ps1

セットアップに失敗した場合、Active Directory ドメインとオブジェクトの情報が収集され、結果が画面に出力されます。

ステップ 1: Collector の設定

Installed Collector を設定します。

Active Directory で管理されているドメインに属するマシンに Collector がインストールされていることを確認します。1 つの Collector をインストールし、リモート Source を使用できますが、パフォーマンス上の理由でドメイン コントローラごとに Collector をインストールすることをお勧めします。

ステップ 2: イベント ログ Source の設定

推奨のとおりにドメイン コントローラごとに Collector をインストールした場合、各ドメイン コントローラでローカル Windows イベント ログ Source を設定します。それ以外の場合、各 Active Directory サーバからイベントを収集するようにリモート Windows イベント ログ Source を設定します。これらの Windows イベント Source の Source Category を [OS/Windows] に設定します。

ステップ 3: スクリプト Source の設定

以下の手順に従って、設定を 2 回行って、adObjectCollector.ps1 用のスクリプト Source と domainCollector.ps1 用のスクリプト Source を 1 つずつ作成します。

同じドメイン内にドメイン コントローラがある場合は、厳選した 1 つまたはいくつかのドメイン コントローラ マシンでスクリプトを実行するだけです。ドメイン コントローラごとに異なるデータが存在するまたは許可される場合があるため、最良のドメイン コントローラを選択する必要があります。adObjectCollector.ps1 スクリプトは負荷が最も高くなります。AD オブジェクトを複数回取り込む必要はありません。 

スクリプト Source を設定するには、次の手順を実行します。

  1. Sumo Logic で [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] を選択します。
  2. Source を追加する Installed Collector の名前を見つけます。[Add... (追加...)] をクリックして、ポップアップ メニューから [Add Source (Source の追加)] を選択します。
  3. [Script (スクリプト)] を Source タイプとして選択します。バージョン 19.245-4 以降の新しい Collector では、スクリプト Source の作成はデフォルトでは禁止されています。スクリプト Source を許可するには、user.properties 内の Collector のパラメータ enableScriptSource を true に設定する必要があります。
    Active directory working directory example.png
  4. Name (名前): 設定しているスクリプトに応じて、「DomainCollector」または「ADObjects」と入力します。必要に応じて説明を入力します。 
  5. Source Host (Source ホスト) (省略可能): マシンのホスト名または IP アドレスを入力します。ホスト名は _sourceHost という検索可能なフィールドに格納されます。ホスト名は最大 128 文字です。
  6. Source Category: これらのスクリプトからのログと、ドメイン コントローラの Windows イベント ログからのログの両方を含めることができるベスト プラクティスに従って、Source Category を入力します。たとえば、DC/Windows/adObjectsDC/Windows/domainCollectorDC/Windows/Event です。これにより、_sourceCategory=DC/Windows/* のようなクエリを指定して、すべての AD 関連ログを取り込むことができます。
  7. Frequency (頻度): テストでは短い時間 (5 分など) を選択し、正常に動作することを確認したら、長い間隔に変更します。
  1. スクリプトにタイムアウトを設定する場合は、[Specify a timeout for your command (コマンドのタイムアウトを指定)] をオンにします。タイムアウトが必要ないか、スクリプトを毎日 1 回実行する場合は、このオプションをオフのままにすることをお勧めします。 
  2. Command (コマンド): [PowerShell Script (PowerShell スクリプト)] を選択します。
  3. Script (スクリプト): 次のいずれかを実行します。
    • スクリプトをファイルの場所に保存しており、実行中のスクリプトに制約がない場合、[Type a path to the script to execute (実行するスクリプトへのパスを入力)] をオンにして、スクリプトへのパスを入力します。c:\PSScripts\adObjectCollector.ps1 や c:\PSScripts\domainCollector.ps1 など。(入力するスクリプトのパスは、現在設定しているスクリプト Source によって決まります)。
    • 実行中のスクリプトに制約がある場合、[Type the script the execute (実行するスクリプトを入力)] を選択します。システムでのテスト時に実行するコマンドを入力します。このコマンドは、設定しているスクリプトに固有のコマンドになります。

      powershell.exe -ExecutionPolicy Bypass -InputFormat None -File c:\PSScripts\adObjectCollector.ps1

      powershell.exe -ExecutionPolicy Bypass -InputFormat None -File c:\PSScripts\domainCollector.ps1
       
  4. Working Directory (作業ディレクトリ): スクリプトを配置している場所のパスを入力します。 
  5. [Processing Rules (処理ルール)] の横にあるアイコンをクリックして、ダイアログを展開します。
  6. [Add Rule (ルールの追加)] をクリックします。
  7. Name (名前): 処理ルールの名前を入力します (domainCollector など)。
  8. Filter (フィルタ): コマンド出力をログの記録から除外するには、フィルタを入力します。
    .*domainCollector\.ps1.*
    .*adObjectCollector\.ps1.*
    .*adQueryDS\.ps1.*
  9. Type (タイプ): [Exclude messages that match (一致するメッセージを除外する)] を選択します。
  10. [Save (保存)] をクリックして、Source を作成します。 

ログ メッセージのサンプル

ドメイン コントローラ

DomainController DName=="DC=local" DomainName=="local" Forest=="local" NetBIOSName=="LOCAL" ControllerHostName=="HOST1DC01.local" IP=="102.240.30.12" Site=="DC1"

AD ドメイン

UserMembership SearchBase=="DC=local" DistinguishedName=="NN=Service My-Service,OU=DC=local" Name=="My-Service" ObjectGUID=="c1234249-6401-40e7-18a8-289fbb2faf26" Parent=="DC=local"

Windows Event (Windows イベント)

instance of Win32_NTLogEvent
{
    Computer = "HOSTDC01";
    EventCode = 4634;
    EventIdentifier = 4634;
    Logfile = "Security";
    RecordNumber = 184879601;
    SourceName = "Microsoft-Windows-Security-Auditing";
    TimeGenerated = "20170213222816.000000-000";
    TimeWritten = "20170213222816.000000-000";
    Type = "Audit Success";
    EventType = 4;
    Category = 12545;
    CategoryString = "Logoff";
    Message = "An account was logged off.

Subject:
    Security ID:        HOST1DC01$ (S-1-5-21-3123024953-243645673-3382258605-1103)
    Account Name:        HOST1DC01$
    Account Domain:        Local
    Logon ID:        0x6C367A5

Logon Type:            3

This event is generated when a logon session is destroyed. It may be positively correlated with a logon event using the Logon ID value. Logon IDs are only unique between reboots on the same computer.";
    InsertionStrings = {"S-1-5-21-3123024953-2436456723-3382258605-1103", "HOST1DC01$", "HOSTING", "0x6c488a5", "3"};
};

クエリのサンプル

ディレクトリ サービス オブジェクトの変更 (Active Directory アプリケーションから)

_sourceCategory=delete_test _sourceName=Security "Directory Service Changes" 
| parse "EventCode = *;" as event_id nodrop | parse "Computer = \"*\";" as host nodrop | parse "ComputerName = \"*\";" as host nodrop | parse regex "Message = \"(?<msg_summary>[^\r]+?)\r" nodrop | parse "CategoryString = \"*\";" as CategoryString nodrop | parse regex "Subcategory:\s+(?<subcategory>[^\r]+?)\r" nodrop
| parse regex "Logfile = \"Security\";[\s\S]+?Account Name:\s+(?<src_user>[^\r]+?)\r[\s\S]+?Account Domain:\s+(?<src_domain>[^\r]+?)\r" nodrop 
| parse regex "Logfile = \"Security\";[\s\S]+?Account Name:\s+(?<src_user>[^\r]+?)\r[\s\S]+?Account Domain:\s+(?<src_domain>[^\r]+?)\r[\s\S]+?Account Name:\s+(?<dest_user>[^\r]+?)\r[\s\S]+?Account Domain:\s+(?<dest_domain>[^\r]+?)(?:\r|\";)" nodrop
| parse regex "Directory Service:[\s\S]+?Name:\s+(?<directory_ServiceName>[^\r]+?)\r" nodrop | parse regex "Directory Service:[\s\S]+?Type:\s+(?<directory_ServiceType>[^\r]+?)\r" nodrop | parse "Object:\r\n\tDN:\t*\r\n\tGUID" as dest_ou nodrop
| fields msg_summary, categoryString, subcategory, event_id, src_user, src_domain, dest_user, dest_domain, host
| where categoryString="Directory Service Changes" or subcategory="Directory Service Changes"

  • この記事は役に立ちましたか?