Mengumpulkan log Lacework Cloud Security
Ringkasan
Parser ini mengekstrak kolom dari log JSON Lacework Cloud Security, yang mengubahnya menjadi format UDM. Fungsi ini memetakan kolom log mentah ke kolom UDM, menangani berbagai jenis data, dan memperkaya peristiwa dengan konteks tambahan dari tag, yang pada akhirnya mengklasifikasikan jenis peristiwa berdasarkan keberadaan informasi akun utama dan target.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki akses dengan hak istimewa ke FortiCNAPP Lacework.
Mengonfigurasi feed di Google SecOps untuk menyerap log Lacework
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Feed name, masukkan nama untuk feed (misalnya, Lacework Logs).
- Pilih Webhook sebagai Jenis sumber.
- Pilih Lacework sebagai Jenis log.
- Klik Berikutnya.
- Opsional: Tentukan nilai untuk parameter input berikut:
- Pemisah pemisahan: pembatas yang digunakan untuk memisahkan baris log, seperti
\n
. - Namespace aset: namespace aset.
- Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
- Pemisah pemisahan: pembatas yang digunakan untuk memisahkan baris log, seperti
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Finalize, lalu klik Submit.
- Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
- Salin dan simpan kunci rahasia. Anda tidak dapat melihat kunci rahasia ini lagi. Jika perlu, Anda dapat membuat ulang kunci rahasia baru, tetapi tindakan ini akan membuat kunci rahasia sebelumnya tidak berlaku lagi.
- Dari tab Detail, salin URL endpoint feed dari kolom Endpoint Information. Anda perlu menentukan URL endpoint ini di aplikasi klien.
- Klik Done.
Membuat kunci API untuk feed webhook
Buka Konsol Google Cloud > Kredensial.
Klik Create credentials, lalu pilih API key.
Batasi akses kunci API ke Chronicle API.
Menentukan URL endpoint
- Di aplikasi klien, tentukan URL endpoint HTTPS yang diberikan di feed webhook.
Aktifkan autentikasi dengan menentukan kunci API dan kunci secret sebagai bagian dari header kustom dalam format berikut:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Rekomendasi: Tentukan kunci API sebagai header, bukan menentukannya di URL.
Jika klien webhook Anda tidak mendukung header kustom, Anda dapat menentukan kunci API dan kunci rahasia menggunakan parameter kueri dalam format berikut:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Ganti kode berikut:
ENDPOINT_URL
: URL endpoint feed.API_KEY
: kunci API untuk mengautentikasi ke Google SecOps.SECRET
: kunci rahasia yang Anda buat untuk mengautentikasi feed.
Mengonfigurasi Webhook Lacework untuk Google SecOps
- Login ke Konsol FortiCNAPP Lacework dengan hak istimewa administratif.
- Buka Setelan > Notifikasi > Saluran pemberitahuan.
- Klik + Tambahkan baru.
- Pilih Webhook.
- Klik Berikutnya.
- Tentukan nama unik untuk saluran (misalnya, Google SecOps).
- URL webhook: masukkan
<ENDPOINT_URL>
, diikuti dengan<API_KEY>
dan<SECRET>
. - Klik Simpan.
- Pilih Aturan pemberitahuan dan konfigurasikan detail pemilihan rute pemberitahuan yang diperlukan.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
AGENT_VERSION |
metadata.product_version |
Dipetakan langsung dari kolom AGENT_VERSION . |
CREATED_TIME |
metadata.event_timestamp |
Dipetakan langsung dari kolom CREATED_TIME , dikonversi menjadi stempel waktu. |
FILEDATA_HASH |
target.file.sha256 |
Dipetakan langsung dari kolom FILEDATA_HASH . |
FILE_PATH |
target.file.full_path |
Dipetakan langsung dari kolom FILE_PATH . |
IP_ADDR |
principal.ip |
Dipetakan langsung dari kolom IP_ADDR . |
OS |
target.platform |
Dipetakan dari kolom OS . Logika mengonversi berbagai string OS (Linux, Windows, Mac) menjadi nilai enum UDM (LINUX, WINDOWS, MAC). Secara default, setelan ini ditetapkan ke UNKNOWN_PLATFORM jika tidak ditemukan kecocokan. |
STATUS |
additional.fields[].key:"STATUS", value.string_value |
Dipetakan langsung dari kolom STATUS sebagai kolom tambahan. |
TAGS.Account |
metadata.product_deployment_id |
Dipetakan langsung dari kolom TAGS.Account . |
TAGS.AmiId |
additional.fields[].key:"AmiId", value.string_value |
Dipetakan langsung dari kolom TAGS.AmiId sebagai kolom tambahan. |
TAGS.ExternalIp |
target.ip |
Dipetakan langsung dari kolom TAGS.ExternalIp . |
TAGS.Hostname |
principal.hostname |
Dipetakan langsung dari kolom TAGS.Hostname . |
TAGS.InstanceId |
target.asset_id |
Dipetakan langsung dari kolom TAGS.InstanceId , diawali dengan "Device Instance Id: ". |
TAGS.LwTokenShort |
additional.fields[].key:"LwTokenShort", value.string_value |
Dipetakan langsung dari kolom TAGS.LwTokenShort sebagai kolom tambahan. |
TAGS.MID |
additional.fields[].key:"MID", value.string_value |
Dipetakan langsung dari kolom MID sebagai kolom tambahan. |
TAGS.MODE |
additional.fields[].key:"MODE", value.string_value |
Dipetakan langsung dari kolom MODE sebagai kolom tambahan. |
TAGS.Name |
additional.fields[].key:"Name", value.string_value |
Dipetakan langsung dari kolom TAGS.Name sebagai kolom tambahan. |
TAGS.QSConfigName-vfzg0 |
additional.fields[].key:"QSConfigName", value.string_value |
Dipetakan langsung dari kolom TAGS.QSConfigName-vfzg0 sebagai kolom tambahan. |
TAGS.ResourceType |
target.resource.resource_subtype |
Dipetakan langsung dari kolom TAGS.ResourceType . |
TAGS.SubnetId |
target.resource.attribute.labels[].key:"Subnet Id", value |
Dipetakan langsung dari kolom TAGS.SubnetId sebagai label dalam target.resource.attribute. |
TAGS.VmInstanceType |
target.resource.attribute.labels[].key:"VmInstanceType", value |
Dipetakan langsung dari kolom TAGS.VmInstanceType sebagai label dalam target.resource.attribute. |
TAGS.VmProvider |
target.resource.attribute.labels[].key:"VmProvider", value |
Dipetakan langsung dari kolom TAGS.VmProvider sebagai label dalam target.resource.attribute. |
TAGS.VpcId |
target.resource.product_object_id |
Dipetakan langsung dari kolom TAGS.VpcId . |
TAGS.Zone |
target.cloud.availability_zone |
Dipetakan langsung dari kolom TAGS.Zone . |
TAGS.alpha.eksctl.io/nodegroup-name |
additional.fields[].key:"eksctl_nodegroup_name", value.string_value |
Dipetakan langsung dari kolom TAGS.alpha.eksctl.io/nodegroup-name sebagai kolom tambahan. |
TAGS.alpha.eksctl.io/nodegroup-type |
additional.fields[].key:"eksctl_nodegroup_type", value.string_value |
Dipetakan langsung dari kolom TAGS.alpha.eksctl.io/nodegroup-type sebagai kolom tambahan. |
TAGS.arch |
principal.platform_version |
Dipetakan langsung dari kolom TAGS.arch . |
TAGS.aws:autoscaling:groupName |
additional.fields[].key:"autoscaling_groupName", value.string_value |
Dipetakan langsung dari kolom TAGS.aws:autoscaling:groupName sebagai kolom tambahan. |
TAGS.aws:ec2:fleet-id |
additional.fields[].key:"ec2_fleetid", value.string_value |
Dipetakan langsung dari kolom TAGS.aws:ec2:fleet-id sebagai kolom tambahan. |
TAGS.aws:ec2launchtemplate:id |
additional.fields[].key:"ec2launchtemplate_id", value.string_value |
Dipetakan langsung dari kolom TAGS.aws:ec2launchtemplate:id sebagai kolom tambahan. |
TAGS.aws:ec2launchtemplate:version |
additional.fields[].key:"ec2launchtemplate_ver", value.string_value |
Dipetakan langsung dari kolom TAGS.aws:ec2launchtemplate:version sebagai kolom tambahan. |
TAGS.aws:eks:cluster-name |
additional.fields[].key:"eks_cluster_name", value.string_value |
Dipetakan langsung dari kolom TAGS.aws:eks:cluster-name sebagai kolom tambahan. |
TAGS.enableCrowdStrike |
additional.fields[].key:"enableCrowdStrike", value.string_value |
Dipetakan langsung dari kolom TAGS.enableCrowdStrike sebagai kolom tambahan. |
TAGS.falconx.io/application |
additional.fields[].key:"io/application", value.string_value |
Dipetakan langsung dari kolom TAGS.falconx.io/application sebagai kolom tambahan. |
TAGS.falconx.io/environment |
additional.fields[].key:"io/environment", value.string_value |
Dipetakan langsung dari kolom TAGS.falconx.io/environment sebagai kolom tambahan. |
TAGS.falconx.io/managedBy |
additional.fields[].key:"io/managedBy", value.string_value |
Dipetakan langsung dari kolom TAGS.falconx.io/managedBy sebagai kolom tambahan. |
TAGS.falconx.io/project |
additional.fields[].key:"io/project", value.string_value |
Dipetakan langsung dari kolom TAGS.falconx.io/project sebagai kolom tambahan. |
TAGS.falconx.io/proxy-type |
additional.fields[].key:"io/proxy_type", value.string_value |
Dipetakan langsung dari kolom TAGS.falconx.io/proxy-type sebagai kolom tambahan. |
TAGS.falconx.io/service |
additional.fields[].key:"io/service", value.string_value |
Dipetakan langsung dari kolom TAGS.falconx.io/service sebagai kolom tambahan. |
TAGS.falconx.io/team |
additional.fields[].key:"io/team", value.string_value |
Dipetakan langsung dari kolom TAGS.falconx.io/team sebagai kolom tambahan. |
TAGS.k8s.io/cluster-autoscaler/enabled |
additional.fields[].key:"k8s_autoscaler_enabled", value.string_value |
Dipetakan langsung dari kolom TAGS.k8s.io/cluster-autoscaler/enabled sebagai kolom tambahan. |
TAGS.k8s.io/cluster-autoscaler/falcon |
additional.fields[].key:"k8s_cluster_autoscaler", value.string_value |
Dipetakan langsung dari kolom TAGS.k8s.io/cluster-autoscaler/falcon sebagai kolom tambahan. |
TAGS.kubernetes.io/cluster/falcon |
additional.fields[].key:"kubernetes_io_cluster", value.string_value |
Dipetakan langsung dari kolom TAGS.kubernetes.io/cluster/falcon sebagai kolom tambahan. |
TAGS.lw_KubernetesCluster |
additional.fields[].key:"lw_KubernetesCluster", value.string_value |
Dipetakan langsung dari kolom TAGS.lw_KubernetesCluster sebagai kolom tambahan. |
LAST_UPDATE |
additional.fields[].key:"LAST_UPDATE", value.string_value |
Dipetakan langsung dari kolom LAST_UPDATE sebagai kolom tambahan. Di-hardcode ke "LACEWORK". Di-hardcode ke "Lacework Cloud Security". |
metadata.event_type |
metadata.event_type |
Ditentukan oleh logika. Tetapkan ke "NETWORK_CONNECTION" jika principal.ip dan target.ip ada, "STATUS_UPDATE" jika hanya principal.ip yang ada, dan "GENERIC_EVENT" jika tidak. |
Perubahan
2023-11-09
- Parser yang baru dibuat.