【LogPoint】検索クエリの基本とダッシュボード、アラートへの利用

LogPoint は、SIEM(セキュリティ情報およびイベント管理)製品です。
収集したさまざまなログに潜むセキュリティ脅威を検知でき、その際に検索クエリ(以下、クエリ)を用います。
LogPoint のクエリには、

  • 検索だけではなく、同じクエリをダッシュボード、アラート、レポートにも使用でき、個別に設定・記述を覚える必要がない
  • 基本を覚えれば簡単に使用できる
  • 相関分析、集計、数値計算など複雑な分析、処理にも対応している

といった特長があります。

本記事では、LogPoint のクエリの基本と、アラート登録してインシデントを検知する方法、クエリのダッシュボードへの追加方法を説明します。

LogPoint の検索の概要

図1は、LogPoint の検索画面の表示例です。

図1 LogPointの検索画面例

図1 LogPointの検索画面例

左のナビゲーションバーの[Search] ボタンをクリックして検索画面を表示します。そして、上部の検索バーに、検索クエリ「device_ip=127.0.0.1」を入力しています。
検索結果は、画面上側にヒストグラム、下側に正規化後のログと生ログのペアが一つのログメッセージ毎に表示されます。

LogPoint のクエリの概要

ここでは、検索画面での基本的なクエリの記述方法について説明します。検索画面自体の詳細については、「検索ガイド」を参照してください。

基本的なクエリ

LogPoint の基本的なクエリには、単語、フレーズ、フィールド バリュー形式のクエリがあります。また、単語やフレーズにワイルドカードを使用することができます。

login

単語 login を含むログメッセージを検索します。

"login failed"

フレーズ “login failed” を含むログメッセージを検索します。フレーズでは、指定した単語がその順番に出現する必要があります。

log*

ワイルドカード「*」は、任意の文字列を指定します。上の例では、login, logon, logout, logoffなどlogで始まる単語を含むログメッセージを検索します。

log?n

ワイルドカード「?」は、任意の一文字を指定します。上の例では、login, logon, logan などの単語を含むメッセージを検索します。

クエリの組み合わせ:論理演算子(and, or, not)

クエリは、論理積 (and)、論理和 (or)、論理否定 (not)といった論理演算子を用いて組み合わせることができます。

login and successful
login AND successful
login successful

上の3例はどれも login と successful を両方含むログメッセージを検索します。successful がlogin より先に出現するログメッセージも検索します。and は、ANDと書いてもかまいません。また、空白文字スペースは、and を指定したことと同じ効果があります。
and 自体を検索する場合は、”and”のようにダブルクォーテーションで囲みます。

device_ip = 192.168.2.1 or device_ip = 127.0.0.1

上の例は、device_ipが192.168.2.1または127.0.0.1であるログメッセージを検索します。

not device_ip = 192.168.2.243
-device_ip = 192.168.2.243
device_ip != 192.168.2.243

上の3例では、フィールドdevice_ip の値が192.168.2.243以外のログメッセージを検索します。論理否定”not”は、”-“, “!=”を用いて指定することもできます。

集計関数による可視化

集計関数は、chartコマンドまたはtimechart コマンドとともに用い、フィールドの集計を行います。検索画面でその結果を各種チャート形式で可視化することができます。

chartコマンド

chartコマンドでログメッセージをchart形式で集計できます。検索クエリの後ろにchartコマンド列をパイプ文字”|”でつないで記述します。
※パイプ文字(コマンドチェーン)は、複数のコマンドを連結する場合に使用できます。

クエリ記述例:

traffic source_address = * | chart count() by source_address

上の例は、単語trafficおよびフィールドsource_addressを含むログメッセージを検索し、source_addressの各値の個数をカウントします。

chartコマンドとcount関数の使用例

図2 chartコマンドとcount関数の使用例

集計関数には、count関数以外にもmax関数、min関数、avg関数その他があります。詳細は、「検索のクエリ言語」を参照してください。

また、チャートは、コラム、バー、ライン、エリアなど、さまざまな表示形式に変更できます。チャートの表示形式を変更するには、検索画面のチャートエリアの右上のドロップダウンリストを用います。

chartの表示形式の変更

図3 chartの表示形式の変更

timechart コマンド

timechart コマンドを使用すると、ログメッセージを時系列データとしてチャートを表示することができます。

クエリ記述例:

traffic source_address = * | timechart count()

上のクエリ例は、単語trafficおよびフィールドsource_addressを含むログメッセージの数を、横軸を時間としてグラフにプロットします。全体の表示期間は、検索クエリのために選択された期間です。

timechart コマンドとcount関数の使用例

図4 timechart コマンドとcount関数の使用例

検索クエリのダッシュボード、アラートへの利用

LogPoint のクエリは、検索画面だけでなくダッシュボードやアラートルール、レポート機能でも同じクエリを使用することができます。
同じクエリを複数の機能で使用できるようになっているため、機能ごとに使用方法を覚える必要がありません。また、ダッシュボード機能だけが提供されている組み込みパッケージがある場合、簡単にアラートルールやレポート機能に流用できるため、設定作成の工数が少なくて済みます。
本記事では、検索画面のクエリからダッシュボードを作成する方法とアラートルールを作成する方法を紹介します。

クエリからダッシュボードを作成

この節では、LogPoint の検索画面のクエリからダッシュボードを作成する方法を紹介します。ここでは、source_addressフィールドとdestination_addressフィールドを持つログメッセージを検索し、source_addressとdestination_addressの組み合わせの多い順に表示する例を示します。

  1. 検索画面のクエリの入力欄に、以下のようにクエリを入力します。
source_address=* destination_address=* | chart count() by source_address, destination_address limit 10

source_addressとdestination_addressの両方のフィールドがあるログメッセージを検索し、source_addressとdestination_addressの組毎にログ数を数えています。また、組み合わせのログ数の上位10件を表示しています。
例えば、以下の図5のような結果が表示されます。

source_addressとdestination_addressの組み合わせの検索

図5 source_addressとdestination_addressの組み合わせの検索

表示形式は、右上のドロップダウンリストを用いSankeyに変更しています。source_addressとdestination_addressの接続数の多さが視覚的に判別できます。

  1. ダッシュボードへクエリを追加します。

検索画面の右上の[Add Search To]ドロップダウンリストから[Dashboard]を選択します。 図6のように、ダッシュボードに追加するウィジェットの作成画面が表示されます。

ウィジェットの作成画面

図6 ウィジェットの作成画面

ウィジェットの作成画面には、検索画面で使用したクエリが自動的に挿入されています。 この画面の後、対象ログのウィジェットへの表示対象期間、ウィジェットの追加先ダッシュボードの設定等を行います。これ以降のウィジェットの作成手順については、「ダッシュボード管理者ガイド」を参照してください。

作成したダッシュボード例

図7 作成したダッシュボード例

この例では、新規のダッシュボードに先ほどのクエリを持つウィジェットが追加されています。

クエリからアラートルールを作成

この節では、LogPoint の検索画面のクエリからアラートルールを作成する方法を紹介します。 ここでは、admin ユーザーがログインに失敗した場合のログメッセージを検索し、その際使用したクエリをアラートとして登録する例を示します。

  1. 検索画面のクエリの入力欄に、以下のようにクエリを入力します。
label=Fail user=admin action=login*

正規化ログにラベルFailが付加されていて、userフィールドの値がadmin、actionにloginで始まる単語が含まれるログメッセージを検索しています。これは、adminユーザーがログインに失敗したことを示します。
このクエリで例えば、以下の図のような結果が表示されます。

ログインに失敗したadminのログ

図8 ログインに失敗したadminのログ

  1. アラートルールへクエリを追加します。

検索画面の右上の[Add Search To]ドロップダウンリストから[Alert Rule]を選択します。
図9のように、クエリ欄にさきほどのクエリが含まれる図9 アラートルール作成画面が表示されます。

アラートルール作成画面

図9 アラートルール作成画面

この画面の後、対象ログの検索期間、検索間隔、アラート判定条件、アラート通知メッセージの設定等を行います。これ以降のアラートルール作成手順の詳細については、「アラートとインシデント管理者ガイド」を参照してください。 アラートルールを追加すると、以下のように、[My Alert Rules]画面で確認することができます。

追加されたアラートルール

図10 追加されたアラートルール

まとめ

本記事では、LogPoint のクエリの基本的な使用方法を紹介し、ログメッセージの検索方法、可視化について説明しました。
また、LogPoint のクエリは、検索だけでなくダッシュボード、アラートルール、レポート機能でも共通に使用できることを説明しました。
各機能に対し、共通のクエリが使用、流用できるため一度クエリ言語を習得すると、各機能について応用できるため効率的に設定を行うことができます。みなさんも、LogPoint の検索機能を是非、ダッシュボードやアラートに使ってみてください。
LogPoint のクエリには、今回説明しなかった検索結果を並べ替えたり、グルーピングする機能もあります。詳細は、「検索のクエリ言語」を参照してください。

by ky


LogPoint の長所・製品情報

  1. LogPoint は、Windowsのイベントログなどを正規化する時に、自動的にログを分類して標準化したラベルとしてfileやwriteなどを付加します。そのため、label=file、label=write、label=login のようにラベルを使用してログを検索することができます。また、項目名もuserやfileのように標準化されており、フォーマットが異なるデバイスなどのログを相関分析することができるようになっています。LogPoint ではこれをシングル タクソノミーと呼んでいます。
  2. LogPointは、ログの種類に応じた正規化の定義を数多く装備しており、インストール後すぐに異常検知や分析をすることができます。
  3. 新しい形式のログをサポートするには、そのログ形式用のプラグインをインストールすることにより容易に対応できます。このプラグインはメーカーに作成を依頼できますし、お客様自身で容易に作成することもできます。

LogPointの製品情報は以下です。

製品一覧からLogPointを選択してください

LogPointをインストール後に評価ライセンスをリクエストしてください

こんな記事も読まれています

最新記事

おすすめ記事

  1. 産業スパイを発見し、防ぐ方法とは

  2. Flexible NetFlowとは?を5分で理解する

  3. WinSyslog 使い方ガイド#2 受信時刻とデバイスタイムスタンプ両方を出力する

製品カテゴリー

JTC IT用語集
TOP