Lacework Cloud Security のログを収集する
概要
このパーサーは、Lacework Cloud Security JSON ログからフィールドを抽出し、UDM 形式に変換します。未加工のログフィールドを UDM フィールドにマッピングし、さまざまなデータ型を処理して、タグから追加のコンテキストでイベントを拡充します。最終的に、プリンシパル情報とターゲット情報の有無に基づいてイベントタイプを分類します。
始める前に
次の前提条件を満たしていることを確認します。
- Google Security Operations インスタンス。
- FortiCNAPP Lacework への特権アクセス。
フィードを設定する
フィードを構成する手順は次のとおりです。
- [SIEM Settings] > [Feeds] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Lacework Logs)。
- [Source type] として [Webhook] を選択します。
- [ログタイプ] として [Lacework] を選択します。
- [次へ] をクリックします。
- 省略可: 次の入力パラメータの値を指定します。
- Split delimiter: ログ行を区切るために使用される区切り文字(
\nなど)。
- Split delimiter: ログ行を区切るために使用される区切り文字(
- [次へ] をクリックします。
- [Finalize] 画面でフィードの設定を確認し、[Submit] をクリックします。
- [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
- 秘密鍵をコピーして保存します。この秘密鍵を再び表示することはできません。必要に応じて、新しい秘密鍵を再生成できますが、その場合以前の秘密鍵は無効になります。
- [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。 このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。
- [完了] をクリックします。
Webhook フィード用の API キーを作成する
Google Cloud コンソール > [認証情報] に移動します。
[認証情報を作成] をクリックして [API キー] を選択します。
API キーのアクセスを Chronicle API に制限します。
エンドポイント URL を指定する
- クライアント アプリケーション内で、Webhook フィードで提供される HTTPS エンドポイント URL を指定します。
次の形式でカスタム ヘッダーの一部として API キーと秘密鍵を指定して、認証を有効にします。
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET推奨事項: API キーは URL 内で指定するのではなくヘッダーとして指定してください。
Webhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーと秘密鍵を指定できます。
ENDPOINT_URL?key=API_KEY&secret=SECRET以下を置き換えます。
ENDPOINT_URL: フィード エンドポイントの URL。API_KEY: Google SecOps に対する認証に使用する API キー。SECRET: フィードの認証用に生成した秘密鍵。
Google SecOps 用に Lacework Webhook を構成する
- 管理者権限で Lacework FortiCNAPP コンソールにログインします。
- [設定] > [通知] > [アラート チャンネル] に移動します。
- [+ 新規追加] をクリックします。
- [Webhook] を選択します。
- [次へ] をクリックします。
- チャンネルに一意の名前を指定します(例: Google SecOps)。
- Webhook URL:
<ENDPOINT_URL>の後に<API_KEY>と<SECRET>を入力します。 - [保存] をクリックします。
- [アラートルール] を選択し、必要なアラートの転送の詳細を構成します。
サポートされている Lacework Cloud Security のサンプルログ
エージェントまたはマシン情報(ホスト インベントリ)
{ "AGENT_VERSION": "6.7.6-4ce73a7b", "CREATED_TIME": "Thu, 03 Nov 2022 02:09:36 -0700", "HOSTNAME": "host-agent-1", "IP_ADDR": "10.0.0.1", "LAST_UPDATE": "Wed, 18 Oct 2023 17:59:09 -0700", "MID": 6516601498285932156, "MODE": "ebpf", "OS": "Linux", "STATUS": "ACTIVE", "TAGS": { "Account": "999999999999", "AmiId": "ami-00000000000000000", "ExternalIp": "203.0.113.10", "Hostname": "internal-host-1.zone.compute.internal", "InstanceId": "i-00000000000000000", "InternalIp": "172.16.1.10", "LwTokenShort": "DUMMYTOKENABCD123456", "Name": "proxy-DMZ-app-1", "ResourceType": "proxy-machines", "SubnetId": "subnet-00000000000000000", "VmInstanceType": "t3.small", "VmProvider": "AWS", "VpcId": "vpc-00000000000000000", "Zone": "us-west-2a", "arch": "amd64", "falconx.io/application": "proxy-machines", "falconx.io/environment": "prod", "falconx.io/project": "edge", "falconx.io/team": "edge", "os": "linux" } }ファイル メタデータまたは整合性
{ "CREATED_TIME": "Wed, 18 Oct 2023 17:02:01 -0700", "FILEDATA_HASH": "DUMMYHASH582C741AD91CA817B4718DEAA4E8A83C0B9D92E2", "FILE_PATH": "/usr/local/bin/secure_config", "MID": 7371220731851617371, "MTIME": "Fri, 25 Aug 2023 13:03:09 -0700", "SIZE": 8078 }ホストの脆弱性評価
{ "CVE_PROPS": { "description": "DOCUMENTATION: The MITRE CVE dictionary describes this issue as: " "This CVE ID has been rejected or withdrawn by its CVE Numbering " "Authority for the following reason: This CVE ID has been rejected " "or withdrawn by its CVE Numbering Authority.", "link": "https://vendor.example.com/security/cve/CVE-2021-47472", "metadata": null }, "CVE_RISK_INFO": { "HOST_COUNT": 1249, "IMAGE_COUNT": 0, "PKG_COUNT": 0, "SEVERITY_LEVEL": 2, "score": 0.5154245281584533 }, "CVE_RISK_SCORE": 3.77, "END_TIME": "2024-09-04 07:00:00.000", "EVAL_CTX": { "collector_type": "Agent", "exception_props": [], "hostname": "vuln-host-1.example.net" }, "EVAL_GUID": "3dc61df780e3b722aa59b0ffcac85683", "FEATURE_KEY": { "name": "kernel-headers", "namespace": "centos:7", "package_active": 1, "package_path": "", "version_installed": "0:3.10.0-1160.119.1.el7.tuxcare.els2" }, "MACHINE_TAGS": { "Account": "999999999999", "AmiId": "ami-00000000000000000", "ExternalIp": "203.0.113.10", "Hostname": "ip-172-16-1-10.example-prod.aws.featurespace.net", "InternalIp": "10.0.0.1", "LwTokenShort": "DUMMYTOKENABCD123456", "VmProvider": "AWS", "VpcId": "vpc-00000000000000000", "os": "linux" }, "MID": 5746003737030963813, "PACKAGE_STATUS": "ACTIVE", "REGION": "eu-west-2", "RISK_SCORE": 10, "SEVERITY": "Low", "START_TIME": "2024-09-04 06:00:00.000", "STATUS": "Exception", "VULN_ID": "CVE-2021-47472" }クラウド構成のコンプライアンス(監査)
{ "ACCOUNT": { "AccountId": "999999999999", "Account_Alias": "" }, "EVAL_TYPE": "LW_SA", "ID": "lacework-global-87", "REASON": "Default security group does not restrict traffic", "RECOMMENDATION": "Ensure the default security group of every Virtual Private Cloud (VPC) restricts all traffic", "REGION": "eu-north-1", "REPORT_TIME": "2024-11-10 18:00:00.000", "RESOURCE_ID": "arn:aws:ec2:eu-west-1:999999999999:security-group/sg-00000000000000000", "SECTION": "", "SEVERITY": "High", "STATUS": "NonCompliant" }DNS クエリまたは解決
{ "CREATED_TIME": "2024-11-06 05:14:44.329", "DNS_SERVER_IP": "10.0.0.53", "FQDN": "data-service-prod-1234567890.s3.eu-west-2.amazonaws.com", "HOST_IP_ADDR": "172.16.1.20", "MID": 8843985456817096491, "TTL": 5 }イメージの脆弱性評価
{ "CVE_PROPS": null, "EVAL_CTX": { "collector_type": "Agentless", "image_info": { "digest": "sha256:52d5cb782dad7a8a03c8bd1b285bbd32bdbfa8fcc435614bb1e6ceefcf26ae1d", "id": "sha256:31427c44cac7ab632d541181073bbd46a964e4ed38d087d8a47f60bb66eef4df", "registry": "999999999999.dkr.ecr.eu-west-1.amazonaws.com", "repo": "amazon/aws-network-policy-agent" } }, "EVAL_GUID": "3a17a74f0a65eed2bddd2d37bb02e6af", "FEATURE_KEY": { "name": "perl-threads", "namespace": "amzn:2", "version": "1.87-4.amzn2.0.2" }, "FIX_INFO": { "fix_available": 0, "fixed_version": "" }, "IMAGE_ID": "sha256:31427c44cac7ab632d541181073bbd46a964e4ed38d087d8a47f60bb66eef4df", "IMAGE_RISK_INFO": { "factors": [ "cve", "reachability" ], "factors_breakdown": { "cve_counts": { "Critical": 0, "High": 21, "Medium": 73 }, "internet_reachability": "Unknown" } }, "IMAGE_RISK_SCORE": 6.4, "PACKAGE_STATUS": "NO_AGENT_AVAILABLE", "RISK_SCORE": 6.4, "START_TIME": "2024-11-05 19:05:03.553", "STATUS": "GOOD" }ネットワーク トラフィックまたは接続の概要
{ "DST_ENTITY_ID": { "hostname": "service-A.region.amazonaws.com", "ip_internal": 0, "port": 443, "protocol": "TCP" }, "DST_ENTITY_TYPE": "DnsSep", "DST_IN_BYTES": 0, "DST_OUT_BYTES": 0, "ENDPOINT_DETAILS": [ { "dst_ip_addr": "203.0.113.10", "dst_port": 443, "protocol": "TCP", "src_ip_addr": "192.168.1.10" }, { "dst_ip_addr": "198.51.100.5", "dst_port": 443, "protocol": "TCP", "src_ip_addr": "192.168.1.10" } ], "END_TIME": "2024-11-05 21:00:00.000", "NUM_CONNS": 4, "SRC_ENTITY_ID": { "mid": 2080882850610892909, "pid_hash": 744766973756676842 }, "SRC_ENTITY_TYPE": "Process", "SRC_IN_BYTES": 25028, "SRC_OUT_BYTES": 11962, "START_TIME": "2024-11-05 20:00:00.000" }パッケージ情報または更新
{ "ARCH": "x86_64", "CREATED_TIME": "2024-11-08 01:28:30.566", "MID": 4172267319977985370, "PACKAGE_NAME": "grub2", "VERSION": "2:2.02-0.87.0.2.el7.el7.centos.14.tuxcare.els2" }コンテナ プロセス アクティビティ
{ "CONTAINER_ID": "4853339865add970f72213ec5d76ff51d1308c61a7680cc23c8de20c38c0a8e1", "END_TIME": "2024-11-08 02:00:00.000", "FILE_PATH": "/app/grpc-health-probe", "MID": 3708952045169222383, "PID": 177267, "POD_NAME": "kubernetes-pod-abc", "PPID": 177257, "PROCESS_START_TIME": "2024-11-08 01:43:29.960", "START_TIME": "2024-11-08 01:00:00.000", "UID": 0, "USERNAME": "serviceuser" }一般的なアラートまたはイベント(CloudTrail)
{ "EVENT_ID": "413328", "EVENT_NAME": "Unauthorized API Call", "EVENT_TYPE": "CloudTrailDefaultAlert", "SUMMARY": " For account: 999999999999 (and 22 more) : event Unauthorized API Call from a username other " "than whitelisted ones. Replaces lacework-global-29 occurred 3772 times by user " "UDM-PRINCIPAL-ID:UDM-SERVICE-ROLE (and 167 more) ", "START_TIME": "07 Feb 2025 12:00 GMT", "EVENT_CATEGORY": "Aws", "LINK": "https://security.example.net/ui/alert/12345/details", "ACCOUNT": "UDM_ACCOUNT", "SOURCE": "CloudTrail", "subject": { "srcEvent": { "event": { "errorCode": "AccessDenied", "errorMessage": "User: arn:aws:sts::999999999999:assumed-role/UDM-SERVICE-ROLE-IngestionApiRole/UDM-SERVICE-PRINCIPAL " "is not authorized to perform: kinesis:ListShards on resource: " "arn:aws:kinesis:us-east-1:999999999999:stream/ingestion-qa-rel-fraud-review-Stream " "because no identity-based policy allows the kinesis:ListShards action", "eventName": "ListShards", "eventSource": "kinesis.amazonaws.com", "eventTime": "2025-02-07T12:00:24Z", "recipientAccountId": "999999999999", "sourceIPAddress": "firehose.amazonaws.com", "userIdentity": { "accessKeyId": "ACCESSKEYIDDUMMY", "accountId": "999999999999", "arn": "arn:aws:sts::999999999999:assumed-role/UDM-SERVICE-ROLE-IngestionApiRole/UDM-SERVICE-PRINCIPAL", "sessionContext": { "sessionIssuer": { "accountId": "999999999999", "arn": "arn:aws:iam::999999999999:role/UDM-SERVICE-ROLE-IngestionApiRole", "principalId": "PRINCIPALIDDUMMY", "userName": "UDM-SERVICE-ROLE-IngestionApiRole" } } }, "vpcEndpointId": "vpce-00000000000000000" }, "principalId": "PRINCIPALIDDUMMY:UDM-SERVICE-PRINCIPAL", "recipientAccountId": "999999999999", "sourceIPAddress": "firehose.amazonaws.com", "userIdentityName": "UDM-SERVICE-ROLE-IngestionApiRole" } } }
UDM マッピング テーブル
| ログフィールド | UDM マッピング | 論理 |
|---|---|---|
AGENT_VERSION |
metadata.product_version |
AGENT_VERSION フィールドから直接マッピングされます。 |
CREATED_TIME |
metadata.event_timestamp |
CREATED_TIME フィールドから直接マッピングされ、タイムスタンプに変換されます。 |
FILEDATA_HASH |
target.file.sha256 |
FILEDATA_HASH フィールドから直接マッピングされます。 |
FILE_PATH |
target.file.full_path |
FILE_PATH フィールドから直接マッピングされます。 |
IP_ADDR |
principal.ip |
IP_ADDR フィールドから直接マッピングされます。 |
OS |
target.platform |
OS フィールドからマッピングされます。ロジックは、さまざまな OS 文字列(Linux、Windows、Mac)を UDM 列挙値(LINUX、WINDOWS、MAC)に変換します。一致するものが見つからない場合、デフォルトは UNKNOWN_PLATFORM です。 |
STATUS |
additional.fields[].key:"STATUS", value.string_value |
STATUS フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.Account |
metadata.product_deployment_id |
TAGS.Account フィールドから直接マッピングされます。 |
TAGS.AmiId |
additional.fields[].key:"AmiId", value.string_value |
TAGS.AmiId フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.ExternalIp |
target.ip |
TAGS.ExternalIp フィールドから直接マッピングされます。 |
TAGS.Hostname |
principal.hostname |
TAGS.Hostname フィールドから直接マッピングされます。 |
TAGS.InstanceId |
target.asset_id |
TAGS.InstanceId フィールドから直接マッピングされ、「Device Instance Id:」という接頭辞が付いています。 |
TAGS.LwTokenShort |
additional.fields[].key:"LwTokenShort", value.string_value |
TAGS.LwTokenShort フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.MID |
additional.fields[].key:"MID", value.string_value |
MID フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.MODE |
additional.fields[].key:"MODE", value.string_value |
MODE フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.Name |
additional.fields[].key:"Name", value.string_value |
TAGS.Name フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.QSConfigName-vfzg0 |
additional.fields[].key:"QSConfigName", value.string_value |
TAGS.QSConfigName-vfzg0 フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.ResourceType |
target.resource.resource_subtype |
TAGS.ResourceType フィールドから直接マッピングされます。 |
TAGS.SubnetId |
target.resource.attribute.labels[].key:"Subnet Id", value |
TAGS.SubnetId フィールドから target.resource.attribute 内のラベルとして直接マッピングされます。 |
TAGS.VmInstanceType |
target.resource.attribute.labels[].key:"VmInstanceType", value |
TAGS.VmInstanceType フィールドから target.resource.attribute 内のラベルとして直接マッピングされます。 |
TAGS.VmProvider |
target.resource.attribute.labels[].key:"VmProvider", value |
TAGS.VmProvider フィールドから target.resource.attribute 内のラベルとして直接マッピングされます。 |
TAGS.VpcId |
target.resource.product_object_id |
TAGS.VpcId フィールドから直接マッピングされます。 |
TAGS.Zone |
target.cloud.availability_zone |
TAGS.Zone フィールドから直接マッピングされます。 |
TAGS.alpha.eksctl.io/nodegroup-name |
additional.fields[].key:"eksctl_nodegroup_name", value.string_value |
TAGS.alpha.eksctl.io/nodegroup-name フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.alpha.eksctl.io/nodegroup-type |
additional.fields[].key:"eksctl_nodegroup_type", value.string_value |
TAGS.alpha.eksctl.io/nodegroup-type フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.arch |
principal.platform_version |
TAGS.arch フィールドから直接マッピングされます。 |
TAGS.aws:autoscaling:groupName |
additional.fields[].key:"autoscaling_groupName", value.string_value |
TAGS.aws:autoscaling:groupName フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.aws:ec2:fleet-id |
additional.fields[].key:"ec2_fleetid", value.string_value |
TAGS.aws:ec2:fleet-id フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.aws:ec2launchtemplate:id |
additional.fields[].key:"ec2launchtemplate_id", value.string_value |
TAGS.aws:ec2launchtemplate:id フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.aws:ec2launchtemplate:version |
additional.fields[].key:"ec2launchtemplate_ver", value.string_value |
TAGS.aws:ec2launchtemplate:version フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.aws:eks:cluster-name |
additional.fields[].key:"eks_cluster_name", value.string_value |
TAGS.aws:eks:cluster-name フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.enableCrowdStrike |
additional.fields[].key:"enableCrowdStrike", value.string_value |
TAGS.enableCrowdStrike フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.falconx.io/application |
additional.fields[].key:"io/application", value.string_value |
TAGS.falconx.io/application フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.falconx.io/environment |
additional.fields[].key:"io/environment", value.string_value |
TAGS.falconx.io/environment フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.falconx.io/managedBy |
additional.fields[].key:"io/managedBy", value.string_value |
TAGS.falconx.io/managedBy フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.falconx.io/project |
additional.fields[].key:"io/project", value.string_value |
TAGS.falconx.io/project フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.falconx.io/proxy-type |
additional.fields[].key:"io/proxy_type", value.string_value |
TAGS.falconx.io/proxy-type フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.falconx.io/service |
additional.fields[].key:"io/service", value.string_value |
TAGS.falconx.io/service フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.falconx.io/team |
additional.fields[].key:"io/team", value.string_value |
TAGS.falconx.io/team フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.k8s.io/cluster-autoscaler/enabled |
additional.fields[].key:"k8s_autoscaler_enabled", value.string_value |
TAGS.k8s.io/cluster-autoscaler/enabled フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.k8s.io/cluster-autoscaler/falcon |
additional.fields[].key:"k8s_cluster_autoscaler", value.string_value |
TAGS.k8s.io/cluster-autoscaler/falcon フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.kubernetes.io/cluster/falcon |
additional.fields[].key:"kubernetes_io_cluster", value.string_value |
TAGS.kubernetes.io/cluster/falcon フィールドから追加フィールドとして直接マッピングされます。 |
TAGS.lw_KubernetesCluster |
additional.fields[].key:"lw_KubernetesCluster", value.string_value |
TAGS.lw_KubernetesCluster フィールドから追加フィールドとして直接マッピングされます。 |
LAST_UPDATE |
additional.fields[].key:"LAST_UPDATE", value.string_value |
LAST_UPDATE フィールドから追加フィールドとして直接マッピングされます。「LACEWORK」にハードコードされています。「Lacework Cloud Security」にハードコードされています。 |
metadata.event_type |
metadata.event_type |
ロジックによって決定されます。principal.ip と target.ip の両方が存在する場合は「NETWORK_CONNECTION」に設定します。principal.ip のみ存在する場合は「STATUS_UPDATE」に設定します。それ以外の場合は「GENERIC_EVENT」に設定します。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。