web-dev-qa-db-ja.com

ユーザーおよびログオンタイプによるセキュリティログのフィルタリング

先週、ユーザーがいつシステムにログオンしたかを確認するように求められました。これで、Windowsの監査ログに、必要なすべての情報が含まれているはずです。特定のADユーザーとログオンタイプ2(インタラクティブログオン)でイベントID 4624(ログオン成功)を検索すると、必要な情報が得られると思いますが、実際には、実際にフィルターする方法がわかりませんこの情報を取得するためのイベントログ。イベントビューア内で可能ですか、それともこのレベルまで解析するために外部ツールを使用する必要がありますか?

私は http://nerdsknowbest.blogspot.com.au/2013/03/filter-security-event-logs-by-user-in.html を見つけました。これは私が必要としているものの一部のようです。過去7日間の価値があるように少し修正しました。以下は私が試したXMLです。

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[(EventID=4624) and TimeCreated[timediff(@SystemTime) &lt;= 604800000]]]</Select>
    <Select Path="Security">*[EventData[Data[@Name='Logon Type']='2']]</Select>
    <Select Path="Security">*[EventData[Data[@Name='subjectUsername']='Domain\Username']]</Select>
  </Query>
</QueryList>

それは私に最後の7日間を与えただけでしたが、残りはうまくいきませんでした。

誰かがこれを手伝ってくれる?

[〜#〜]編集[〜#〜]

ラッキールークの提案のおかげで私は進歩を遂げています。以下は現在のクエリですが、後で説明するように、結果が返されません。

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
     *[System[(EventID='4624')]
     and
     System[TimeCreated[timediff(@SystemTime) &lt;= 604800000]]
     and
     EventData[Data[@Name='TargetUserName']='john.doe']
     and
     EventData[Data[@Name='LogonType']='2']
     ] 
    </Select>
  </Query>
</QueryList>

前述のように、結果は返されなかったので、少しいじっていました。 LogonType行を追加するまで、結果を正しく生成することができます。その後、結果は返されません。これがなぜなのか、何か考えはありますか?

EDIT 2

LogonType行を次のように更新しました。

EventData[Data[@Name='LogonType'] and (Data='2' or Data='7')]

これにより、ワークステーションログオンとワークステーションロック解除がキャプチャされますが、それでも何も表示されません。次に、それを変更して、3や8などの多くの種類のログオンを検索します。これにより、クエリは正しく機能していると思いますが、何らかの理由でイベントログにログオンタイプが2のエントリがないため、意味がありません。これをオフにすることは可能ですか?

18
Trido

あなたは正しい軌道に乗っています-クエリの誤りの1つは 'Logon Type'のスペースです。それは 'LogonType'でなければなりません。

動作を確認したばかりのクエリを下に貼り付けました。それは少し単純化されていますが、あなたはアイデアを得ます。ユーザー 'john.doe'からの、ログオンタイプ2の4624イベントがすべて表示されます。

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
      *[
        EventData[Data[@Name='LogonType']='2']
        and
        EventData[Data[@Name='TargetUserName']='john.doe']
        and
        System[(EventID='4624')]
      ] 
    </Select>
  </Query>
</QueryList>

イベントビューアのXMLクエリの詳細については、こちらをご覧ください。 http://blogs.technet.com/b/askds/archive/2011/09/26/advanced-xml-filtering-in-the- windows-event-viewer.aspx

Wevtutil.exeを使用してコマンドラインからイベントをクエリできます: http://technet.Microsoft.com/en-us/magazine/dd310329.aspx

18
Lucky Luke

私はこの質問を見つけ、機能的な解決策を得るために、受け入れられた回答と質問の更新からコンテンツを一緒に解析するために少し作業を行う必要がありました。将来の参考のために、完全で機能するクエリ構文をここに投稿すると考えました。

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">
    *[System[(EventID=4624)
    and
    TimeCreated[timediff(@SystemTime) &lt;= 2592000000]]
    and
    EventData[Data[@Name='TargetUserName'] and (Data='john.doe')]
    and
    EventData[Data[@Name='LogonType'] and (Data='10')]]
    </Select>
  </Query>
</QueryList>

上記のクエリは、次のパラメーターに従ってイベントを絞り込むために機能します。

  • セキュリティログのイベント。
  • イベントID 6424
  • 過去30日以内に発生。
  • ユーザーjohn.doeに関連付けられています。
  • LogonType 10を使用。

上記のコードの(Data='10')を変更して、フィルターのLogonTypesを変更できます。たとえば、(Data='2')または(Data='10' or Data='2')を実行できます。

1
Iszi