【SC-200】KQLクエリの書き方-extend,orderby編

皆さんこんにちは。国井です。
前回紹介したKQLクエリの書き方シリーズの第4弾として、今日は extend 演算子と並べ替えを紹介します。
(今回からタイトルの表記を変えてみました)

extend 演算子

SentinelでSecurityEventを取得するようにOMSエージェントを入れておくとアラートを出力するような事象があった時、SecurityAlertテーブルに出力されます。
この時、重大度がHigh, Medium, Low, Informationalと出力されるのですが、これは数値に置き換えて出力してほしい。
そんなときは extend を使います。

SecurityAlert
| extend severityOrder = case (
    AlertSeverity == "High", 3,
    AlertSeverity == "Medium", 2, 
    AlertSeverity == "Low", 1,
    AlertSeverity == "Informational", 0,
    -1)

extend はテーブルの列を拡張して新しい列を作成する演算子です。このクエリの場合は severityOrder という列を作って、case文で AlertSeverity 列の文字列が High だったら3、Mediumだったら2、のように設定しています。

こうすると実行結果はこんな感じです。severityOrder列が作られて0から3までの番号が入っていることがわかりますね(実際には1と2しかないけど)。

image

並べ替え

前のクエリの実行結果ですが、3,2,1,0ってきれいに並べ替えたいですよね。
その時はSQLクエリと同じ order by を使います。

SecurityAlert
| where TimeGenerated > ago(7d)
| extend severityOrder = case (
    AlertSeverity == "High", 3,
    AlertSeverity == "Medium", 2, 
    AlertSeverity == "Low", 1,
    AlertSeverity == "Informational", 0,
    -1)
| order by severityOrder desc

order by に続けて並べ替えをする列の名前を入れ、最後にdescと書くと降順に並べ替えをしてくれます。ちなみにascと書けば昇順になります。
実行結果はこちら。

image

次回もお楽しみに。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください