カスタム パーサーを構成する
このドキュメントでは、事前構築済みパーサーが利用できない場合や、より詳細な制御が必要な場合に、カスタム パーサーを作成する方法について説明します。カスタム パーサーは、構築済みパーサーとともにパーサーのリストに表示されます。
一般的なユースケースには次のものがあります。
事前構築済みパーサーがないログタイプのログデータを取り込む。
確認は次のいずれかの方法で行います。
カスタム パーサーを作成して、事前構築済みパーサーのアップデートをスキップする。
制限事項とサポートされていないオペレーション
カスタム パーサーを作成して管理する場合は、次の運用上の境界を考慮してください。
- パーサーの構文と YARA-L 検出ルール: 取り込みパーサーとパーサー拡張機能は、取り込み時に Logstash Grok と構成構文をフィルタ(
grok、mutate、json、date、base64など)とともに使用して、未加工ログを Unified Data Model(UDM)に解析します。パーサーは、YARA-L 構文、結果ブロック、ジェネレータ関数(yieldなど)を使用できません。YARA-L 2.0 は、脅威アラート用に正規化された UDM イベントでダウンストリームで評価される検出エンジン クエリ言語であり、未加工のログの解析、UDM フィールドの変更、受信ログ トラフィックのドロップはできません。 - 1 対 1 の取り込みモデル: Google SecOps カスタム パーサーは、厳密に 1 対 1 の関係で動作します。カスタム パーサーは、複数の埋め込みイベント(JSON 配列や連結された文字列など)を含む単一のログエントリを、個別の UDM イベントにバッチ解除、ループ、分割することはできません。取り込み前に、BindPlane OP、OpenTelemetry Collector、Fluent Bit などのログ収集パイプライン、または取り込み前の Cloud Run 関数を使用して、マルチイベント ペイロードを分割する必要があります。
drop {}フィルタの動作: パーサーのdrop {}フィルタは、UDM イベントの生成のみを抑制します。パーサーがログをドロップすると、Google SecOps は UDM レコードを作成せず、検出ルールはイベントを評価できません。ただし、Google SecOps はコンプライアンスと監査保持のために、変更不可能な未加工リポジトリに元の未加工ログを保持します。未加工ログは、未加工ログ検索で引き続き検索できます。保存前にログを削除するには、転送またはコレクタで上流のフィルタリングを構成します。- デフォルトで前方のみの解析: カスタム パーサーを有効にすると、有効にした時点から新しく取り込まれたログにのみ適用されます。既存の履歴ログにカスタム パーサー マッピングを適用する必要がある場合は、バックエンドのログ再生タスクをリクエストできます。詳細については、履歴データの再解析(ログ再生)をご覧ください。
マッピング指示に基づいてカスタム パーサーを作成する
元の未加工ログを UDM レコードに変換するコードを記述して、カスタム パーサーを作成できます。
その他の情報:
- パーサーの構造の詳細については、ログ解析の概要をご覧ください。
- パーサー構文の詳細については、パーサー構文リファレンスをご覧ください。
パーサーを作成するときは、可能な限り多くの重要な UDM フィールドに入力するようにしてください。
[設定] に移動します。
[SIEM Settings] に移動します。
[パーサーを作成する] をクリックします。
[Log Source] リストから適切なログソースを選択します。
[Start with Raw Logs Only] を選択し、要件に応じて新しいパーサーを作成します。
[作成] をクリックします。
[Parser Code Terminal] にコードを入力します。詳細については、コード スニペット マッピング指示を作成するをご覧ください。
注: カスタム パーサーのロジックが正しくマッピングされ、有効な現在のタイムスタンプが生成されることを確認してください。カスタム パーサーがタイムスタンプを標準の保持期間外の日付に誤ってマッピングすると、データは正常に取り込まれますが、ユーザー インターフェースで検索できなくなります。検索機能はフィルタリングにイベントのタイムスタンプを使用するため、データが誤った日付にマッピングされていると、取り込みが成功してもデータは事実上表示されません。
省略可: [編集] をクリックして、既存の未加工ログを編集するか、コピーします。
省略可: [ 読み込む] をクリックして、最新の未加工ログを読み込みます。
[Preview] をクリックして UDM の出力を確認します。コードが正しくない場合は、エラー メッセージが表示されます。
プレビューでは、statedump フィルタ プラグインを使用して、パーサーの内部状態を検証できます。詳細については、statedump プラグインを使用してデータを検証するをご覧ください。
[Validate] をクリックして、カスタム パーサーを検証します。
検証プロセスには数分かかる場合があるため、まずカスタム パーサーをプレビューし、必要に応じて変更してから、カスタム パーサーを検証することをおすすめします。
[送信] をクリックします。
20 分後に、正規化プロセスでパーサーが有効になります。
既存のパーサーに基づいてカスタム パーサーを作成する
既存のパーサーをテンプレートとして使用して、新しいカスタム パーサーを作成します。この方法は、コードベースのアプローチのみをサポートしています。使用を開始するには、以下の手順に沿って操作します。
のアプリケーション メニューから、[Settings] > [Parsers] を選択します。
[パーサーを作成する] をクリックします。
[Log Source] リストから適切なログソースを選択します。
[既存のビルド済みパーサーで開始] を選択し、既存のパーサーをベースとして使用して新しいカスタム パーサーを作成します。
[作成] をクリックします。
パーサーコード ターミナルでコードを編集します。詳細については、コード スニペット マッピング指示を作成するをご覧ください。
省略可: [編集] をクリックして未加工ログを編集します。
省略可: [ 更新] をクリックして、未加工ログを更新します。
パーサーを構築するコードを追加したら、[Preview] をクリックして UDM 出力を確認します。コードが正しくない場合は、エラー メッセージが表示されます。
プレビューでは、statedump フィルタ プラグインを使用して、パーサーの内部状態を検証できます。詳細については、statedump プラグインを使用してデータを検証するをご覧ください。
[Validate] をクリックして、カスタム パーサーを検証します。
検証プロセスには数分かかることがあるため、まずカスタム パーサーをプレビューし、必要に応じて変更してから、カスタム パーサーを検証することをおすすめします。
[送信] をクリックします。
20 分後に、正規化プロセスでパーサーが有効になります。
カスタム パーサーを無効にする
のアプリケーション メニューから、[Settings] > [Parsers] を選択します。
無効にするパーサーの [Menu] をクリックし、リストから [Make inactive] を選択します。
[Make parser inactive] ダイアログが表示されます。
[Make inactive] をクリックします。
カスタム パーサーは無効になり、20 分後に現在の構築済みのパーサー バージョンが有効になります。構築済みパーサーがデフォルト パーサーになります。
カスタム パーサーを削除する
のアプリケーション メニューから、[Settings] > [Parsers] を選択します。
削除するカスタム パーサーの [Menu] をクリックし、リストから [Delete] を選択します。注: 組み込みのパーサーは削除できません。
[カスタム パーサーを削除] ダイアログが表示されます。
[削除] をクリックします。
カスタム パーサーは削除され、20 分後に現在の構築済みパーサー バージョンが有効になります。
拡張機能を作成する
パーサー拡張機能を使用すると、既存のカスタム パーサーの機能を柔軟に拡張できます。カスタム パーサーに代わるものではありません。代わりに、元の未加工ログから UDM レコードへの追加フィールドのシームレスな抽出を可能にします。パーサー拡張機能はカスタム パーサーとは異なります。
パーサー拡張機能を作成するには、パーサー拡張機能を使用するをご覧ください。
検証ステータス
[検証] 列には、カスタム パーサーまたはパーサー拡張機能の検証テストのステータスが表示されます。
- パーサーが失敗しました: カスタム パーサーの検証に失敗しました
- パーサーの検証に合格しました: カスタム パーサーの検証に成功しました
- スキップ: カスタム パーサーが検証されていません
- 拡張機能の検証はスキップされました: パーサー拡張機能が検証されていません
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。