[Cortex XDR/XSIAM]XQLを使用して直近30日間アクセスのない端末を検索する

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
告知
重要なadvisoryがございます。Customer Advisoryエリアにサインインし、advisoryに添付の日本語PDFファイルをご確認ください。
L4 Transporter
評価なし

この記事ではXQLを使って直近30日間アクセスのない端末を検索してみます。

直近30日間アクセスのない端末の定義は、

現在の時間とエンドポイントの管理情報の「Last seen」の時間差を取って30日以上開きのあるもの、

としています。

Last seenの詳しい説明はこちらを確認してください。

 

作成したクエリは以下のとおりです。

 

dataset = endpoints |
alter 30days_before_from_now = to_timestamp(add(to_epoch(current_time()),-2592000)) |
filter last_seen <= 30days_before_from_now |
fields endpoint_name ,30days_before_from_now, last_seen

 

実際にクエリを実行すると、直近30日間アクセスのない端末の名前、last_seen、今から30日前の日時が、

出力されます。

 

massaito_0-1670995621037.png

 

以下ではこのXQLクエリについて簡単に解説します。

まず、この部分ですが、

to_epoch(current_time())

current_time()関数で現在時間を取得し、to_epoch関数でepoch timeに変換します。

epoch timeに変換するのは、次のadd関数で時間を足し算するときに正の整数にする必要があるからです。

(epoch timeは正の整数)

 

次にadd関数でepoch timeに変換した現在時間から-2592000秒足した時間、つまり30日前の時間を求めます。

2592000は30日間を秒に直した数値(30days x 24h x 60m x 60s)です。

add(to_epoch(current_time()),-2592000)

 

その後to_timestamp関数で、epoch timeをタイムスタンプ型に変換し、

alterコマンドで30days_before_from_nowという変数に30日前の時間を設定します。

これでおおよそ30日前の時間が求められます。

alter 30days_before_from_now = to_timestamp(add(to_epoch(current_time()),-2592000))

 

30days_before_from_nowとlast_seenを比較し、

last_seenの方が小さいデータだけ、つまり30日前からアクセスのないデータだけに

フィルタリングします。

filter last_seen <= 30days_before_from_now

 

最後にエンドポイント名、30日前の時間、last_seen、3つのフィールドだけを抽出します。

fields endpoint_name ,30days_before_from_now, last_seen

 

 

ダッシュボードで管理する

XQLはWidgetにしてダッシュボードに埋め込めば、都度検索しなくても常時確認することができます。

massaito_0-1671176311307.png

 

Tech Doc

to_epoch関数, add関数, to_timestamp関数についてはこちら

alterコマンドについてはこちら

 

 

 

 

この記事を評価:
  • 973 閲覧回数
  • 0 コメント
  • 0 賞賛
Register or Sign-in
寄稿者
記事ダッシュボード
バージョン履歴
最終更新日:
‎11-02-2023 02:45 AM
更新者: