Thinkst Canary のログを収集する
このドキュメントでは、サードパーティ API を使用して Google Security Operations フィードを設定し、Thinkst Canary ログを収集する方法について説明します。
Thinkst Canary は、欺瞞ベースの脅威検出を提供します。ハードウェア、仮想、クラウドの Canary は実際のアセットを装い、Canarytoken はファイル、認証情報、URL のトリップワイヤとして機能します。攻撃者が Canary に触れたり、トークンをトリップさせたりすると、Canary Console はインシデントを記録します。フィードは、Console API からこれらのインシデントを取得します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Thinkst Canary コンソールへの特権アクセス
Thinkst Canary で REST API を構成する
- Thinkst Canary Console(
https://<DOMAIN_HASH>.canary.tools)にログインします。 - 右上にある歯車アイコンをクリックし、[グローバル設定] を選択します。
- メニューで [API] をクリックします。
- API が無効になっている場合は、[API を有効にする] をクリックします。
既存のデフォルトの API キーを使用するか、[+ 新しい API キーを追加] をクリックして専用の API キーを作成します。
- API キーのタイプ: [読み取り専用] を選択します。ログの収集にはこれで十分です。
- 注: 鍵の名前(
Google SecOps Integrationなど)を入力します。
次の内容をコピーして安全な場所に保存します。
- Domain Hash: コンソールの識別子。API ホスト名は
<DOMAIN_HASH>.canary.toolsです。 - 認証トークン: リクエストの認証に使用される API キー。
- Domain Hash: コンソールの識別子。API ホスト名は
Thinkst Canary のログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで、[単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Thinkst Canary Logs)。 - [ソースタイプ] として [サードパーティ API] を選択します。
- [Log type] として [Thinkst Canary] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- Authentication HTTP header: 以前に生成されたトークン(
auth_token:<TOKEN>形式、例:auth_token:AAAABBBBCCCC111122223333)。 - API ホスト名: Thinkst Canary REST API エンドポイントの完全修飾ドメイン名(
<DOMAIN_HASH>.canary.tools形式)(例:myinstance.canary.tools)。 - アセットの名前空間: アセットの名前空間
- Ingestion labels: このフィードのイベントに適用されるラベル
- Authentication HTTP header: 以前に生成されたトークン(
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
セットアップが完了すると、フィードは Thinkst Canary インスタンスからログを時系列順に取得し始めます。
インシデントの最新情報と再配信
Canary Console API は、インシデントが作成されたときだけでなく、更新されるたびにインシデントを返します。Canary は、同じソースから発生した類似のイベントを既存のインシデントにバンドルします。たとえば、各ブルート フォース攻撃の試行は、単一のインシデント内のイベントになります。他のインシデントの変更も再配信をトリガーする可能性があります。
Google SecOps では次の動作が想定されます。
- 配信済みのインシデントは、更新後にフィードに再表示されます。
- 再配信されたインシデントは、再配信された時点よりもかなり古いイベント タイムスタンプで表示されることがあります。これは、パーサーがイベントのタイムスタンプをインシデントの元の作成時間とバンドルされたイベントの発生時間から取得するためです。更新時間からは取得しません。
再配信自体は、インシデント収集 API のドキュメントに記載されている動作(インシデントの更新カウンタでフィルタリング)であり、データ損失やパーサーの欠陥ではありません。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
_canary_uptime_label |
additional.fields |
統合済み |
desc_events_n_func_code_label |
additional.fields |
統合済み |
desc_events_n_func_name_label |
additional.fields |
統合済み |
desc_events_n_sfunc_code_label |
additional.fields |
統合済み |
desc_events_n_sfunc_name_label |
additional.fields |
統合済み |
desc_events_n_timestamp_std_label |
additional.fields |
統合済み |
desc_events_n_unit_id_label |
additional.fields |
統合済み |
description_created_std_label |
additional.fields |
統合済み |
description_events_list_label |
additional.fields |
統合済み |
event_data_list |
additional.fields |
統合済み |
event_descrip_label |
additional.fields |
統合済み |
events_url_label |
additional.fields |
統合済み |
local_time_label |
additional.fields |
統合済み |
locale_label |
additional.fields |
統合済み |
lt_label |
additional.fields |
統合済み |
offline_text_label |
additional.fields |
統合済み |
updated_label |
additional.fields |
統合済み |
updated_std_label |
additional.fields |
統合済み |
_auth |
extensions.auth |
名前変更済み/マッピング済み |
_metadata |
metadata |
名前変更済み/マッピング済み |
_event_time |
metadata.event_timestamp |
UNIX として解析済み |
_metadata_event_timestamp |
metadata.event_timestamp |
UNIX として解析済み |
description.created_std |
metadata.event_timestamp |
UNIX_MS として解析済み |
elem.timestamp_std |
metadata.event_timestamp |
yyyy-MM-dd HH:mm:ss ZZZ+0000 として解析済み |
updated |
metadata.event_timestamp |
EEE, dd MMM yyyy HH:mm:ss ZZZ として解析済み |
updated_std |
metadata.event_timestamp |
UNIX_MS として解析済み |
format |
metadata.event_type |
マッピング: grok → STATUS_UPDATE、grok → GENERIC_EVENT |
has_principal_hostname |
metadata.event_type |
マッピング: true → STATUS_UPDATE |
_network |
network |
名前変更済み/マッピング済み |
_observer |
observer |
名前変更済み/マッピング済み |
_principal |
principal |
名前変更済み/マッピング済み |
ThinkstCanary_Process |
principal.application |
直接マッピングされます。 |
ThinkstCanary_Process |
principal.asset.hostname |
直接マッピングされます。 |
ThinkstCanary_Hostname |
principal.hostname |
直接マッピングされます。 |
_md_product_event_type |
security_result |
マッピングされた値(合計 10 個、例: Shared File Opened → _security_result、Host Port Scan → ... |
_security_result |
security_result |
統合済み |
format |
security_result |
マッピング: kv → _security_result、json → _security_result |
_source |
src |
名前変更済み/マッピング済み |
_target |
target |
名前変更済み/マッピング済み |
| なし | metadata.event_type |
定数: STATUS_UPDATE |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。