OpenSearch を Google SecOps と統合する
統合バージョン: 1.0
このドキュメントでは、OpenSearch を Google Security Operations と統合する方法について説明します。
ユースケース
OpenSearch 統合は、次のセキュリティ オーケストレーションと調査のユースケースに対応しています。
脅威ハンティングの自動化: Lucene と DSL クエリを使用して、すべての OpenSearch インデックスで特定のセキュリティ侵害インジケーター(IoC)または不審なパターンを定期的に検索します。
アラートの一元的な取り込み: OpenSearch のドキュメントを、対応可能なアラートとして Google SecOps に取り込み、データレイクのセキュリティ イベントに優先順位を付けて調査します。
コンテキスト データの取得: OpenSearch から関連するログや履歴データを自動的に取得して、既存のセキュリティ ケースを拡充し、調査中にアナリストがより深いコンテキストを把握できるようにします。
柔軟なデータ マッピング: OpenSearch ドキュメントの重大度レベルと環境タグを Google SecOps 標準に動的にマッピングし、さまざまなログソース間で一貫性を維持します。
始める前に
Google SecOps プラットフォームで統合を構成する前に、次のものが揃っていることを確認してください。
CA 証明書ファイル: 接続を保護するための有効な認証局ファイル。
最新の統合バージョン: OpenSearch 統合の最新バージョンを使用していることを確認します。
Base64 でエンコードされた証明書: CA 証明書ファイルの内容は、構成前に Base64 文字列に変換する必要があります。
CA 証明書を使用して統合を構成するには、次の手順を完了します。
- インテグレーション構成パラメータのページを開きます。
- Base64 でエンコードされた文字列を [CA 証明書ファイル] フィールドに貼り付けます。
- [SSL の検証] チェックボックスをオンにします。
- [テスト] をクリックして、統合が正しく構成されていることを確認します。
統合のパラメータ
OpenSearch 統合には、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Server Address |
必須。 OpenSearch インスタンスのエンドポイント URL。プロトコルとポートを含みます(例: |
Username |
省略可。 OpenSearch インスタンスの認証に使用されるユーザー名。 |
Password |
省略可。 指定されたユーザー名に関連付けられているパスワード。 |
API Token |
省略可。 ユーザー名とパスワードの代わりに認証に使用される API トークン。 |
Authenticate |
省略可。 選択すると、統合によって、指定された認証情報を使用して OpenSearch サーバーへの接続が認証されます。 |
Verify SSL |
省略可。 選択すると、OpenSearch サーバーに接続するときに SSL 証明書が検証されます。 |
CA Certificate File |
省略可。 サーバーの SSL 証明書の検証に使用される、PEM 形式の認証局(CA)証明書ファイルの内容。 |
Google SecOps で統合を構成する手順については、統合を構成するをご覧ください。
必要に応じて、後の段階で変更できます。統合インスタンスを構成すると、ハンドブックで使用できるようになります。複数のインスタンスの構成とサポートの方法については、複数のインスタンスのサポートをご覧ください。
操作
アクションの詳細については、 デスクから保留中のアクションに対応すると手動アクションを実行するをご覧ください。
高度な ES 検索
高度な ES 検索アクションを使用して、OpenSearch サーバーで事前構成された検索クエリを実行し、結果を辞書形式で取得します。
このアクションは Google SecOps エンティティに対して実行されません。
アクション入力
[Advanced ES Search] アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Index |
省略可。 OpenSearch インデックスの検索パターン(例: デフォルト値は |
Query |
省略可。 Lucene 構文を使用して実行する検索クエリ(例: デフォルト値は |
Limit |
省略可。 返すドキュメントの最大数。上限なしにするには、この値を デフォルト値は |
Display Field |
省略可。 返す特定のフィールドのカンマ区切りリスト。 デフォルト値は |
Search Field |
省略可。
デフォルト値は |
Timestamp Field |
省略可。 時間ベースのフィルタリングに使用されるフィールドの名前。
デフォルト値は |
Oldest Date |
省略可。 検索の開始日。このアクションは、このタイムスタンプ以降に発生したレコードを返します。 正確な UTC タイムスタンプ( デフォルト値は |
Earliest Date |
省略可。 検索の終了日。このアクションは、このタイムスタンプ以降に発生したレコードを返します。 正確な UTC タイムスタンプ( デフォルト値は |
アクションの出力
[Advanced ES Search] アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用不可 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
次の表に、高度な ES 検索アクションを使用する場合のスクリプト結果出力の値を示します。
| スクリプトの結果名 | 値 |
|---|---|
results |
RESULTS |
DSL 検索
DSL 検索アクションを使用して、すべての OpenSearch インデックスで包括的な検索を実行し、結果を辞書形式で取得します。
このアクションは Google SecOps エンティティに対して実行されません。
アクション入力
DSL 検索アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Index |
省略可。 OpenSearch インデックスの検索パターン(例: デフォルト値は |
Query |
省略可。 Lucene 構文を使用して実行する検索クエリ(例: デフォルト値は |
Limit |
省略可。 返すドキュメントの最大数。上限なしにするには、この値を デフォルト値は |
アクションの出力
DSL 検索アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用可能 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
JSON の結果
次の例は、DSL 検索アクションを使用した場合に受信する JSON 結果の出力を示しています。
[
{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source": {
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
}, {
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
スクリプトの結果
次の表に、DSL 検索アクションを使用する場合のスクリプト結果出力の値を示します。
| スクリプトの結果名 | 値 |
|---|---|
results |
RESULTS |
Ping
Ping アクションを使用して、OpenSearch への接続をテストします。
このアクションは Google SecOps エンティティに対して実行されません。
アクション入力
なし
アクションの出力
Ping アクションは次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用不可 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
スクリプトの結果
次の表に、Ping アクションを使用した場合のスクリプト結果出力の値を示します。
| スクリプトの結果名 | 値 |
|---|---|
| is_success | true または false |
Simple ES Search
Simple ES Search アクションを使用して、OpenSearch のすべてのインデックス付きフィールドで基本的な検索を実行し、結果を辞書形式で取得します。
このアクションは Google SecOps エンティティに対して実行されません。
アクション入力
Simple ES Search アクションには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Index |
省略可。 OpenSearch インデックスの検索パターン(例: デフォルト値は |
Query |
省略可。 Lucene 構文を使用して実行する検索クエリ(例: デフォルト値は |
Limit |
省略可。 返すドキュメントの最大数。上限なしにするには、この値を デフォルト値は |
アクションの出力
[Simple ES Search] アクションは、次の出力を提供します。
| アクションの出力タイプ | 対象 |
|---|---|
| ケースウォールのアタッチメント | 利用不可 |
| ケースウォールのリンク | 利用不可 |
| ケースウォール テーブル | 利用不可 |
| 拡充テーブル | 利用不可 |
| JSON の結果 | 利用可能 |
| 出力メッセージ | 利用可能 |
| スクリプトの結果 | 利用可能 |
JSON の結果
次の例は、Simple ES Search アクションを使用した場合に受信する JSON 結果の出力を示しています。
[{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source":
{
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
},
{
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
スクリプトの結果
次の表に、Simple ES Search アクションを使用する場合のスクリプト結果出力の値を示します。
| スクリプトの結果名 | 値 |
|---|---|
results |
RESULTS |
コネクタ
Google SecOps でコネクタを構成する方法については、データを取り込む(コネクタ)をご覧ください。
OpenSearch コネクタ
OpenSearch コネクタを使用して、指定された OpenSearch インデックスを Lucene クエリで検索し、ドキュメントをアラートとして Google SecOps に取り込みます。
コネクタの入力
OpenSearch コネクタには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Product Field Name |
必須。 商品名が保存されるフィールドの名前。 商品名は主にマッピングに影響します。コネクタのマッピング プロセスを合理化して改善するため、デフォルト値はコードから参照されるフォールバック値に解決されます。このパラメータの無効な入力は、デフォルトでフォールバック値に解決されます。 デフォルト値は |
Event Field Name |
必須。 イベント名(サブタイプ)を特定するフィールドの名前。 デフォルト値は |
Script Timeout (Seconds) |
必須。 現在のスクリプトを実行する Python プロセスのタイムアウト上限(秒単位)。 デフォルト値は |
Server Address |
必須。 OpenSearch インスタンスのエンドポイント URL。プロトコルとポートを含みます(例: |
Username |
省略可。 OpenSearch インスタンスの認証に使用されるユーザー名。 |
Password |
省略可。 指定されたユーザー名に関連付けられているパスワード。 |
Authenticate |
省略可。 選択すると、統合によって、指定された認証情報を使用して OpenSearch サーバーへの接続が認証されます。 |
API Token |
省略可。 ユーザー名とパスワードの代わりに認証に使用される API トークン。 |
Verify SSL |
省略可。 選択すると、OpenSearch サーバーに接続するときに SSL 証明書が検証されます。 |
Alert Name Field |
必須。 アラート名を含むフィールドの名前(例: |
Timestamp Field |
必須。 タイムスタンプを含むフィールドの名前(例: |
Environment Field Name |
省略可。 環境名が保存されるフィールドの名前。 環境フィールドがない場合、コネクタはデフォルト値を使用します。 デフォルト値は |
Indexes |
省略可。 検索するインデックス パターン。すべてのインデックスを検索するには、 |
Query |
省略可。 Lucene 構文を使用して実行する検索クエリ。 |
Alerts Count Limit |
必須。 1 回のサイクルで取得するアラートの最大数。 デフォルト値は |
Max Days Backwards |
必須。 アラートを取得する現在までの日数。 このパラメータは、コネクタを初めて有効にした後の最初のコネクタ イテレーション、または期限切れのコネクタ タイムスタンプのフォールバック値に適用できます。 デフォルト値は |
Severity Field Name |
省略可。 アラートの重大度値を抽出するために使用されるフィールド名。 フィールドに数値(整数または浮動小数点数)が含まれている場合、コネクタはそれらを Google SecOps の重大度レベルに自動的にマッピングします(たとえば、 |
Proxy Server Address |
省略可。 使用するプロキシ サーバーのアドレス。 |
Proxy Username |
省略可。 プロキシ サーバーでの認証に使用されるユーザー名。 |
Proxy Password |
省略可。 プロキシ サーバーでの認証に使用されるパスワード。 |
Environment Regex Pattern |
省略可。
デフォルト値 正規表現パターンが null か空の場合、または環境値が null の場合、最終的な環境の結果はデフォルト環境になります。 |
OpenSearch DSL コネクタ
OpenSearch DSL コネクタを使用して、ドメイン固有言語(DSL)クエリを使用して REST API 呼び出しを行うことで、ドキュメントをアラートとして Google SecOps に取り込みます。
コネクタの入力
OpenSearch DSL コネクタには、次のパラメータが必要です。
| パラメータ | 説明 |
|---|---|
Product Field Name |
必須。 商品名が保存されるフィールドの名前。 商品名は主にマッピングに影響します。コネクタのマッピング プロセスを合理化して改善するため、デフォルト値はコードから参照されるフォールバック値に解決されます。このパラメータの無効な入力は、デフォルトでフォールバック値に解決されます。 デフォルト値は デフォルト値は |
Event Field Name |
必須。 イベント名(サブタイプ)を特定するフィールドの名前。 デフォルト値は |
Script Timeout (Seconds) |
必須。 現在のスクリプトを実行する Python プロセスのタイムアウト上限(秒単位)。 デフォルト値は |
Server Address |
必須。 OpenSearch インスタンスのエンドポイント URL。プロトコル( |
Port |
必須。 OpenSearch API サーバーへの接続に使用されるポート。 |
Query |
必須。 検索に使用される DSL クエリ(JSON 形式)。 コネクタの安定性を高めるには、クエリ内で並べ替えタイムスタンプ キーを昇順で含めることをおすすめします。 |
Index |
必須。 検索に使用されたインデックス。すべてのインデックスを検索するには、 |
Timestamp Field |
必須。 タイムスタンプを含むフィールドの名前(例: |
Alert Field Name |
必須。 アラート名を含むフィールドの名前(例: |
Description Field |
省略可。 アラートの説明を含むフィールドの名前(例: |
Severity |
必須。 取り込まれたすべてのアラートに割り当てる静的な重大度レベル。このパラメータは、 デフォルト値は |
Alert Severity |
省略可。 アラートに割り当てる重大度。このパラメータは
|
Severity Field Name |
省略可。 アラートの重大度値を抽出するために使用されるフィールド名。 フィールドに数値(整数または浮動小数点数)が含まれている場合、コネクタはそれらを Google SecOps の重大度レベルに自動的にマッピングします(たとえば、 |
Alerts Count Limit |
省略可。 1 回のサイクルで取得するアラートの最大数。 デフォルト値は |
Authenticate |
省略可。 選択すると、コネクタは指定された認証情報を使用して接続を認証します。 |
Username |
省略可。 OpenSearch インスタンスの認証に使用されるユーザー名。 |
Password |
省略可。 OpenSearch インスタンスの認証に使用されるパスワード。 |
Use SSL |
省略可。 選択すると、コネクタはサーバーへの SSL/TLS 接続を有効にします。 |
Proxy Server Address |
省略可。 接続に使用するプロキシ サーバーのアドレス。 |
Proxy Username |
省略可。 プロキシ サーバーでの認証に使用されるユーザー名。 |
Proxy Password |
省略可。 プロキシ サーバーでの認証に使用されるパスワード。 |
Environment Field Name |
省略可。 環境名が保存されるフィールドの名前。 環境フィールドがない場合、コネクタはデフォルト値を使用します。 デフォルト値は |
Environment Regex Pattern |
省略可。
デフォルト値 正規表現パターンが null か空の場合、または環境値が null の場合、最終的な環境の結果はデフォルト環境になります。 デフォルト値は |
表記のサポート
コネクタは、フィールド マッピング用に 3 種類の表記をサポートしています。たとえば、event.type をマッピングするには、_source_event_type、event_type、event.type を指定します。
これは次のパラメータに適用されます。
Product Field NameEvent Field NameSeverity Field NameEnvironment Field NameTimestamp FieldAlert Field NameDescription Field(DSL コネクタのみ)
コネクタで重大度をマッピングする方法
Severity Field Name に数値(整数または浮動小数点数)が含まれている場合、コネクタは次のようにマッピングします。
- 重大: 100
- 高: 80 ≤ x < 100
- 中: 60 ≤ x < 80
- 低: 40 ≤ x < 60
- 情報: x < 40
文字列値の場合は、コネクタ スクリプト フォルダの severity_map_config.json ファイルを更新する必要があります。
構成の例
「悪意」、「不明」、「良性」を含む event.severity フィールドをマッピングするには:
- [Severity Field Name] パラメータに「
event.severity」と入力します。 severity_map_config.jsonを更新します。
{
"event.severity": {
"Malicious": 100,
"Unknown": 60,
"Benign": -1
},
"Default": 50
}
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。