サイレント ホストのモニタリング
このドキュメントでは、Google Security Operations のサイレント ホスト モニタリング(SHM)を使用して、環境内でサイレント状態になったホストを特定する方法について説明します。
サイレント ホストは、コレクタの停止の可能性を通知できます。
SHM の検出ルールを使用する
SHM の検出ルールを構成することをおすすめします。
このメソッドは、UDM フィールド(hostname
、ip
、mac
など)をモニタリングし、指定された期間内に想定される値が受信されなかった場合にアラートをトリガーします。
SHM の検出ルールの例
このセクションでは、SHM の検出ルールの例を示します。この例は、特定のニーズに合わせて使用または調整できます。たとえば、期間を変更したり、他のフィールド(ip
など)を使用したり、ルールを他の方法で分割したりできます。
ホスト名でサイレント ホストを検出する
次の例では、hostname
によってサイレント ホストを検出します。
- 20 分間のウィンドウをスキャンします。
ip
、hostname
、mac
を使用してホストを追跡します。- 過去 10 分間にホストでイベントが受信されず、過去 20 分間に silent でない場合にアラートを生成します。
rule shm_using_hostname {
meta:
events:
$event.metadata.event_timestamp.seconds > timestamp.current_seconds() - 1200
// $identifier_hash = hash.sha256(strings.concat($event.principal.ip[0], $event.principal.hostname, $event.principal.mac[0]))
$silent_hostname = $event.principal.hostname
match:
$silent_hostname over 10m
outcome:
$max_event_time = max($event.metadata.event_timestamp.seconds)
$max_diff = timestamp.current_seconds() - $max_event_time
condition:
$event and $max_diff > 600
}
取り込みラベルを使用してサイレント コレクタを検出する
SHM の検出ルールの例を次に示します。
- 20 分間のウィンドウをスキャンします。
ingestion_source
取り込みラベルを使用して無音を識別します。- 指定したタイムゾーン(この例では Asia/Calcutta)で、過去 10 分間は無音だったが、過去 20 分間は無音ではなかった値を特定します。
rule shm_using_ingestion_label {
meta:
events:
$event.metadata.event_timestamp.seconds > timestamp.current_seconds() - 1200
$event.metadata.ingestion_labels.key = "ingestion_source"
$silent_ingestion_source = $event.metadata.ingestion_labels.value
match:
$silent_ingestion_source over 20m
outcome:
$max_time_seconds = max($event.metadata.event_timestamp.seconds)
$max_diff_seconds = timestamp.current_seconds() - $max_time_seconds
$max_timestamp = timestamp.get_timestamp($max_time_seconds, "SECOND", "Asia/Calcutta")
$current_timestamp = timestamp.get_timestamp(timestamp.current_seconds(), "SECOND", "Asia/Calcutta")
condition:
$event and $max_diff_seconds > 600
}
SHM に取り込みラベルで Google Cloud Monitoring を使用する
この方法では、Google Cloud Monitoring を使用して、SHM の取り込みラベルに基づいてログ取り込み率をモニタリングします。
このセクションでは、Bindplane を使用してこのメソッドを設定する方法について説明します。手順は次のとおりです。
SHM の取り込みラベルを適用するログ パイプラインを設定したら、取り込み率が指定されたしきい値を下回った場合に、コレクタごとに Google Cloud Monitoring アラートを設定できます。アラートを Google SecOps 以外のさまざまな場所に送信するように構成し、アラートをワークフローに統合できます。
この方法のメリット:
- イベント時間ではなく取り込み時間をモニタリングします。
- Cloud Monitoring の高度なアラート機能を利用します。
この方法のデメリット:
- Google SecOps の外部で個別の構成が必要です。
- 取り込みラベルの数によって制限されます。
Google Cloud Monitoring で SHM 用に Bindplane を構成する
Google Cloud Monitoring で SHM 用に Bindplane を構成するための前提条件は次のとおりです。
- Google SecOps 標準化 プロセッサで構成された、デプロイ済みの Bindplane サーバー。
- Google SecOps 標準化プロセッサは、サポートされている
log_type
と取り込みラベル(ingestion_source
など)を追加するように構成されています。
Google Cloud Monitoring で SHM 用に Bindplane を構成するには、次の操作を行います。
- 各ログエントリの属性としてコレクタ サーバーのホスト名を送信します。
- [ログ] タブで、[プロセッサ] > [プロセッサを追加] > [フィールドをコピー] を選択します。
- Copy Field プロセッサを構成します。
- リソースの簡単な説明を入力します。
Logs
テレメトリー タイプを選択します。Copy From
フィールドをResources
に設定します。Resource field
フィールドをhost.name
に設定します。Copy To field
フィールドをAttributes
に設定します。Attributes Field
フィールドをchronicle_ingestion_label["ingestion_source"]
などに設定します。
SHM の Google Cloud Monitoring しきい値を構成する
予想される取り込みレートに基づいてしきい値を定義します。しきい値を低くするとコレクタの停止が検出され、しきい値を高くするとアップストリーム ログのギャップが検出されます。
SHM の Google Cloud Monitoring しきい値を構成したら、Chronicle Collector > Ingestion > Total Ingestion Log Count 指標をモニタリングすることをおすすめします。サンプル設定の詳細な手順については、サイレント Google SecOps 収集エージェントを検出するサンプル ポリシーを設定するをご覧ください。
SHM に Google SecOps ダッシュボードを使用する
Google SecOps ダッシュボードを使用して、サイレント状態になったモニタリング ホストの毎日のカウントを表示します。
この方法は、毎日の概要を大まかに把握するのに適していますが、アラートはサポートされておらず、結果には最大 6 時間の遅延があります。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。