Halcyon Anti-Ransomware のログを収集する
このドキュメントでは、Google Cloud Storage V2 を使用して Halcyon Anti-Ransomware ログを Google Security Operations に取り込む方法について説明します。
Halcyon は、AI を使用してランサムウェア攻撃を検出、防止し、復元するランサムウェア対策プラットフォームです。ランサムウェアの検出イベント、暗号化の試行、復元アクションに関するアラートを生成します。パーサーは、JSON 形式のログフィールドを統合データモデル(UDM)にマッピングし、ファイル オペレーション、ユーザー アクティビティ、セキュリティ結果などのイベントタイプを処理します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Cloud Storage API が有効になっている GCP プロジェクト
- GCS バケットと IAM ポリシーを作成および管理する権限
- ログ エクスポート機能を備えた Halcyon コンソールへの特権アクセス
Google Cloud Storage バケットを作成する
- Google Cloud コンソールに移動します。
- プロジェクトを選択するか、新しいプロジェクトを作成します。
- ナビゲーション メニューで、[Cloud Storage > バケット] に移動します。
- [バケットを作成] をクリックします。
次の構成情報を提供してください。
設定 値 バケットに名前を付ける グローバルに一意の名前( halcyon-logsなど)を入力します。ロケーション タイプ ニーズに応じて選択します(リージョン、デュアルリージョン、マルチリージョン)。 ロケーション 場所を選択します(例: us-central1)。ストレージ クラス Standard(頻繁にアクセスされるログにおすすめ) アクセス制御 均一(推奨) 保護ツール 省略可: オブジェクトのバージョニングまたは保持ポリシーを有効にする [作成] をクリックします。
Halcyon ログを Google Cloud Storage にエクスポートする
Halcyon は、JSON 形式でのログデータのエクスポートをサポートしています。次のいずれかの方法で、ログを GCS に配信します。
オプション A: Halcyon API を使用してログをエクスポートし、GCS にアップロードする
- Halcyon 管理コンソールにログインします。
- [設定] > [API アクセス] に移動し、読み取り権限を持つ API キーを生成します。
- API キーをコピーして保存します。
- スケジュール設定されたスクリプトまたは Cloud Run 関数を使用して Halcyon REST API を呼び出し、イベントログを取得して JSON 形式で GCS に書き込みます。
オプション B: SIEM 統合を構成して GCS に転送する
- Halcyon 管理コンソールにログインします。
- [設定] > [インテグレーション] > [SIEM] に移動します。
- ログのエクスポート先を構成して、JSON 形式のイベントをローカル ディレクトリまたは中間ストレージに書き込みます。
Cloud Run 関数を使用して、ログを定期的に GCS バケットにアップロードします。
- エクスポートしたファイルが JSON 形式であることを確認します。
- 各ファイルには 1 つ以上のイベント レコードが含まれている必要があります。
Google SecOps サービス アカウントを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- [単一フィードを設定] をクリックします。
- [ソースタイプ] として [Google Cloud Storage V2] を選択します。
- [ログタイプ] として [Halcyon Anti Ransomware] を選択します。
[サービス アカウントを取得する] をクリックします。一意のサービス アカウントのメールアドレスが表示されます(例:)。
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comこのメールアドレスをコピーします。次のステップでこれを使用します。
Google SecOps サービス アカウントに IAM 権限を付与する
- [Cloud Storage] > [バケット] に移動します。
- バケット名をクリックします。
- [権限] タブに移動します。
- [アクセス権を付与] をクリックします。
- 次の構成の詳細を指定します。
- プリンシパルを追加: Google SecOps サービス アカウントのメールアドレスを貼り付けます。
- ロールを割り当てる: [Storage オブジェクト閲覧者] を選択します。
[保存] をクリックします。
- 削除オプション(転送されたファイルを削除する)を使用する場合は、Storage オブジェクト閲覧者ではなく、Storage オブジェクト管理者ロールを付与します。
Halcyon Anti-Ransomware のログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- [単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Halcyon Anti-Ransomware logs)。 - [ソースタイプ] として [Google Cloud Storage V2] を選択します。
- [ログタイプ] として [Halcyon Anti Ransomware] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
フィールド 値 ストレージ バケット URI gs://halcyon-logs/halcyon/events/ソース削除オプション 必要に応じて削除オプションを選択します。 最大ファイル経過日数 デフォルトは 180 日 アセットの名前空間 アセットの名前空間 取り込みラベル このフィードのイベントに適用されるラベル halcyon-logsは、実際の GCS バケット名に置き換えます。- URI の末尾には必ず末尾のスラッシュ(
/)を含めてください。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| sshd、tty、euid、dataType、filterName、totalOccurrences、occurredAt、count、occurrences.IncorrectPasswords、occurrences.FailedPassword、occurrences.AuthFailure、policyMode、action | additional.fields | 各フィールドから作成されたラベルと統合(存在する場合)。totalOccurrences、count、occurrences フィールドが文字列に変換 |
| dnsArtifact.uri | network.dns.questions | 名前を含む質問配列と統合 |
| asset.id | principal.asset.asset_id | 「ASSET:」+ asset.id として連結されます |
| asset.kind | principal.asset.attribute.labels | asset.kind から作成された asset_kind_label と統合されました |
| asset.name | principal.asset.hostname | 値を直接コピー |
| ipArtifact.ipAddress | principal.asset.ip | 値を直接コピー |
| summary.applicationName | principal.application | 値を直接コピー |
| phost、asset.name | principal.hostname | phost の値(存在する場合)。asset.name が存在する場合はその値で上書きされます。 |
| ipArtifact.ipAddress | principal.ip | 値を直接コピー |
| process.commandLine | principal.process.command_line | 値を直接コピー |
| modifiedFilePath、artifact.filePath、process.artifact.filePath、processes.artifact.filePath | principal.process.file.full_path | 存在する場合は modifiedFilePath に設定され、存在する場合は artifact.filePath で上書きされ、存在する場合は process.artifact.filePath で上書きされ、存在する場合は processes.artifact.filePath で上書きされます(processes.artifact.filePath の引用符は削除されます)。 |
| lastOccurredAt | principal.process.file.last_seen_time | ISO8601 形式の日付フィルタを使用して変換 |
| process.artifact.kind、artifact.kind、primaryProcess.artifact.kind | principal.process.file.mime_type | 存在する場合は process.artifact.kind の値。存在する場合は artifact.kind の値で上書き。存在する場合は primaryProcess.artifact.kind の値で上書き |
| artifact.sha256、process.artifact.sha256、processes.artifact.sha256 | principal.process.file.sha256 | artifact.sha256 の値(存在する場合)。process.artifact.sha256(存在する場合)で上書きされ、processes.artifact.sha256(存在する場合)で上書きされます。 |
| process.parentPid | principal.process.parent_pid | 値を直接コピー |
| process.pid | principal.process.pid | 値を直接コピー |
| user_displayname | principal.user.user_display_name | 値を直接コピー |
| ユーザー | principal.user.userid | 値を直接コピー |
| summary.artifact.filePath | target.file.full_path | 値を直接コピー |
| summary.artifact.sha256 | target.file.sha256 | 値を直接コピー |
| primaryProcess.commandLine | target.process.command_line | 引用符を削除した直後にコピーされた値 |
| primaryProcess.kind | target.process.file.mime_type | 値を直接コピー |
| primaryProcess.parentPid | target.process.parent_process.pid | 値を直接コピー |
| primaryProcess.pid | target.process.pid | 値を直接コピー |
| uid | target.user.userid | 値を直接コピー |
| id | target.asset_id | 「ASSET:」+ ID として連結されます。 |
| アクション | security_result.action | アクションが「Block」または「Allow」の場合は大文字 |
| reason.exitCode | security_result.action_details | 値を直接コピー |
| dxpRule、monitoringReason、tenantId | security_result.detection_fields | 各フィールドから作成されたラベルと統合(存在する場合)。dxpRule のバックスラッシュを削除 |
| dxpRuleType | security_result.rule_type | 値を直接コピー |
| ipArtifact.version | security_result.rule_version | 値を直接コピー |
| msg, reason.cause | security_result.summary | msg の値(存在する場合)。reason.cause が存在する場合はその値で上書きされます。 |
| timestamp | metadata.event_timestamp | MMM dd HH:mm:ss または MMM d HH:mm:ss 形式の日付フィルタを使用して変換 |
| phost、ipArtifact.ipAddress、asset.name、user、uid、summary.artifact.sha256、summary.artifact.filePath | metadata.event_type | has_principal と has_target_file の場合は FILE_UNCATEGORIZED、has_principal と has_target の場合は USER_UNCATEGORIZED、has_principal の場合は STATUS_UPDATE、それ以外の場合は GENERIC_EVENT に設定します(ソースから派生したフラグ)。 |
| kind | metadata.product_event_type | 値を直接コピー |
| gupid、guid | metadata.product_log_id | gupid が存在する場合はその値、guid が存在する場合はその値で上書き |
| metadata.product_name | 「Halcyon Anti Ransomware」に設定します。 | |
| metadata.vendor_name | 「Halcyon」に設定 | |
primaryProcess.kind |
event.idm.read_only_udm.target.process.file.mime_type |
変更履歴からマッピング |
primaryProcess.artifact.kind |
event.idm.read_only_udm.principal.process.file.mime_type |
変更履歴からマッピング |
processes.artifact.filePath |
event.idm.read_only_udm.principal.process.file.full_path |
変更履歴からマッピング |
processes.artifact.sha256 |
event.idm.read_only_udm.principal.process.file.sha256 |
変更履歴からマッピング |
action |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
filterName |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
policyMode |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
euid |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
occurrences.AuthFailure |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
occurrences.FailedPassword |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
occurredAt |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
occurrences.IncorrectPasswords |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
guid |
event.idm.read_only_udm.metadata.product_log_id |
変更履歴からマッピング |
gupid |
event.idm.read_only_udm.metadata.product_log_id |
変更履歴からマッピング |
count |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
artifact.filePath |
event.idm.read_only_udm.principal.process.file.full_path |
変更履歴からマッピング |
artifact.sha256 |
event.idm.read_only_udm.principal.process.file.sha256 |
変更履歴からマッピング |
artifact.kind |
event.idm.read_only_udm.principal.process.file.mime_type |
変更履歴からマッピング |
monitoringReason |
event.idm.read_only_udm.security_result.detection_fields |
変更履歴からマッピング |
dxpRule |
event.idm.read_only_udm.security_result.detection_fields |
変更履歴からマッピング |
modifiedFilePath |
event.idm.read_only_udm.principal.process.file.full_path |
変更履歴からマッピング |
ipArtifact.version |
event.idm.read_only_udm.security_result.rule_version |
変更履歴からマッピング |
ipArtifact.ipAddress |
event.idm.read_only_udm.principal.ip |
変更履歴からマッピング |
ipArtifact.ipAddress |
event.idm.read_only_udm.principal.asset.ip |
変更履歴からマッピング |
process.parentPid |
event.idm.read_only_udm.principal.process.parent_pid |
変更履歴からマッピング |
dxpRuleType |
event.idm.read_only_udm.security_result.rule_type |
変更履歴からマッピング |
summary.applicationName |
event.idm.read_only_udm.principal.application |
変更履歴からマッピング |
process.pid |
event.idm.read_only_udm.principal.process.pid |
変更履歴からマッピング |
reason.exitCode |
event.idm.read_only_udm.security_result.action_details |
変更履歴からマッピング |
reason.cause |
event.idm.read_only_udm.security_result.summary |
変更履歴からマッピング |
dnsArtifact_uri |
event.idm.read_only_udm.network.dns.questions |
変更履歴からマッピング |
uid |
event.idm.read_only_udm.target.user.userid |
変更履歴からマッピング |
tty |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
sshd |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
phost |
event.idm.read_only_udm.principal.hostname |
変更履歴からマッピング |
user_displayname |
event.idm.read_only_udm.principal.user.user_display_name |
変更履歴からマッピング |
msg |
event.idm.read_only_udm.security_result.summary |
変更履歴からマッピング |
timestamp |
event.idm.read_only_udm.metadata.event_timestamp |
変更履歴からマッピング |
user |
event.idm.read_only_udm.principal.user.userid |
変更履歴からマッピング |
変更履歴
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。