ハッシュ・マスクによるログのフィルタ
問合せでmd5ファンクションを使用するか、またはwhere
およびeval
コマンドを使用して、ハッシュ・マスクされたデータを含むログ・データをフィルタできます。
通常、ログ・ソースを作成して特定のフィールドをマスクするハッシュ・マスクを定義すると、結果のログ・データには、フィルタに使用できるフィールドのハッシュが含まれます。ハッシュ・マスクされたフィールド情報を含むログ・レコードを抽出するには、問合せで、またはwhere
およびeval
コマンドでmd5ファンクションを使用します。
たとえば、次のログ・データについて考えます:
Jul 1,2018 23:43:23 severe jack User logged in
Jul 2,2018 02:43:12 warning jack User logged out
Jul 2,2018 05:23:43 info jane User logged in
ユーザー名情報がハッシュ・マスクされると、ログ・レコードは次のようになります:
Jul 1,2018 23:43:23 severe 241fcf33eaa2ea61285f36559116cbad User logged in
Jul 2,2018 02:43:12 warning 241fcf33eaa2ea61285f36559116cbad User logged out
Jul 2,2018 05:23:43 info 8fb2f1187c72aab28236d54f0193a203 User logged in
ユーザーjack
およびjane
には、次のハッシュ値が割り当てられます:
241fcf33eaa2ea61285f36559116cbad
8fb2f1187c72aab28236d54f0193a203
- 検索問合せでのmd5ファンクションの使用: ユーザー
jack
に対応するハッシュ・マスクされたレコードをフィルタするには、問合せ* | search md5(jack)
を指定します。 - whereおよびevalコマンドでのハッシュの使用: ユーザー
jack
に対応するログ・レコードを抽出するには、ユーザー名のハッシュを検索文字列* | where user = "241fcf33eaa2ea61285f36559116cbad"
で使用できます。 - whereおよびevalコマンドでのmd5ファンクションの使用: 特定のユーザー名に対してハッシュを使用せずに、使用するハッシュ・マスクを指定できます。たとえば、ユーザー
jack
に対応するログ・レコードを抽出するには、検索文字列* | where user = md5("jack")
を指定します。これにより、検索対象の可能性がある値を知っている場合に検索できます。ハッシュ文字列を読取り可能な文字列に戻すことはできません。ハッシュ化されていることがわかっている検索対象の値を知っている場合にのみ、検索を実行できます。
md5と同様に、ハッシュ・マスキングには、sha1、sha256、sha512などの他のハッシュ・ファンクションを使用できます。