Mengumpulkan log IOC CrowdStrike
Ringkasan
Parser ini mengekstrak data CrowdStrike Falcon Intelligence dari pesan berformat JSON. Alat ini mengubah berbagai kolom IOC menjadi format UDM, yang menangani berbagai jenis indikator (domain, IP, URL, hash, dll.) dan metadata terkaitnya, termasuk hubungan, label, dan informasi ancaman. Parser juga melakukan validasi data dan penanganan error. Fungsi ini memprioritaskan penguraian JSON, kembali ke pencocokan grok jika diperlukan, dan menghapus pesan yang salah formatnya.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki akses ke platform CrowdStrike Falcon Intelligence dengan izin yang sesuai.
Mengonfigurasi feed di Google SecOps untuk menyerap log IOC CrowdStrike
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya, CrowdStrike IOC Logs).
- Pilih Webhook sebagai Jenis sumber.
- Pilih Crowdstrike IOC 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.
- Di 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 Google Security Operations 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.
Membuat webhook CrowdStrike
- Login ke konsol CrowdStrike Falcon Intelligence.
- Buka CrowdStrike Store.
- Temukan Webhook.
- Aktifkan integrasi Webhook.
- Klik Konfigurasikan.
- Pilih Tambahkan konfigurasi.
- Pastikan hanya IOC yang dikirim ke webhook.
- Tempelkan URL endpoint ke kolom Webhook URL di layar Configure Webhook.
- Klik Simpan.
- CrowdStrike kini mengirim peristiwa yang dihasilkan ke feed Google SecOps yang ditentukan.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
_marker |
event.idm.entity.entity.labels.value |
Nilai kolom _marker dipetakan secara langsung. |
actors |
event.idm.entity.entity.group.group_display_name |
Jika nilai pertama di actors berisi "panda", "bear", "kitten", "chollima", "jackal", atau "Spider", nilai tersebut akan dipetakan dan event.idm.entity.entity.location.country_or_region akan diturunkan (masing-masing China, Rusia, Iran, Korea Utara, Grup aktivis, Grup kriminal). Nilai lain di actors ditambahkan sebagai label dengan kunci "actor" dalam event.idm.entity.entity.group.attribute.labels . |
actors |
event.idm.entity.entity.location.country_or_region |
Diderivasikan berdasarkan nilai pertama di actors (lihat di atas). |
deleted |
event.idm.entity.metadata.threat.action |
Jika deleted adalah "false", tindakannya adalah "BLOCK". Jika deleted adalah "true", tindakannya adalah "ALLOW". |
deleted |
event.idm.entity.metadata.threat.action_details |
Nilai deleted dipetakan secara langsung. |
domain_types |
event.idm.entity.metadata.threat.detection_fields.value |
Semua nilai di domain_types digabungkan dengan koma dan dipetakan dengan kunci "domain_types". |
id |
event.idm.entity.metadata.product_entity_id |
Nilai id dipetakan secara langsung. |
indicator |
event.idm.entity.entity.hostname |
Dipetakan jika type adalah "domain". |
indicator |
event.idm.entity.entity.file.md5 |
Dipetakan jika type adalah "hash_md5" dan nilainya adalah hash MD5 yang valid. |
indicator |
event.idm.entity.entity.file.sha1 |
Dipetakan jika type adalah "hash_sha1" dan nilainya adalah hash SHA1 yang valid. |
indicator |
event.idm.entity.entity.file.sha256 |
Dipetakan jika type adalah "hash_sha256" dan nilainya adalah hash SHA256 yang valid. |
indicator |
event.idm.entity.entity.ip |
Dipetakan jika type adalah "ip_address" dan nilainya adalah alamat IP yang valid. |
indicator |
event.ioc.ip_and_ports.ip_address |
Dipetakan jika type adalah "ip_address" dan nilainya adalah alamat IP yang valid. |
indicator |
event.idm.entity.entity.url |
Dipetakan jika type adalah "url". |
indicator |
event.idm.entity.entity.resource.name |
Dipetakan jika type adalah "device_name" atau "mutex_name". |
indicator |
event.idm.entity.entity.user.email_addresses |
Dipetakan jika type adalah "email_address" dan nilainya adalah alamat email yang valid. |
indicator |
event.idm.entity.metadata.threat.detection_fields.value |
Dipetakan dengan berbagai kunci berdasarkan kolom type (misalnya, "campaign_id", "binary_string", dll.). Jika jenis tidak ditangani secara khusus, jenis tersebut akan dipetakan dengan type sebagai kunci. |
indicator |
event.ioc.domain_and_ports.domain |
Dipetakan jika type bukan "ip_address" atau "port". |
ip_address_types |
event.idm.entity.metadata.threat.detection_fields.value |
Semua nilai di ip_address_types digabungkan dengan koma dan dipetakan dengan kunci "ip_address_types". |
kill_chains |
event.idm.entity.metadata.threat.category |
Kategori berasal berdasarkan nilai di kill_chains . "reconnaissance", "weaponization", atau "actionOnObjectives" menghasilkan "NETWORK_MALICIOUS". "delivery" atau "exploitation" menghasilkan "EXPLOIT". "installation" atau "c3" menghasilkan "SOFTWARE_MALICIOUS". "c2" menghasilkan "NETWORK_COMMAND_AND_CONTROL". Nilai lainnya akan menghasilkan "UNKNOWN_CATEGORY". Beberapa kategori dapat ditetapkan. |
kill_chains |
event.idm.entity.metadata.threat.category_details |
Nilai mentah dari kill_chains dipetakan secara langsung. Beberapa nilai dapat digunakan. |
labels |
event.idm.entity.metadata.threat.detection_fields |
Kolom "name" dalam setiap label dibagi menjadi label_key dan label_value dengan "/". Jika label_key adalah "Malware" atau "ThreatType", label_value akan dipetakan ke threat_name . Jika tidak, label_key dan label_value akan dipetakan sebagai pasangan nilai kunci. "created_on" dan "last_valid_on" dalam setiap label juga dipetakan sebagai pasangan nilai kunci. |
labels |
event.idm.entity.metadata.threat.threat_name |
Berasal dari kolom labels (lihat di atas). |
last_updated |
event.idm.entity.metadata.threat.detection_fields.value |
Nilai last_updated dipetakan dengan kunci "last_updated". |
malicious_confidence |
event.idm.entity.metadata.threat.confidence |
Jika malicious_confidence adalah "high", keyakinannya adalah "HIGH_CONFIDENCE". Jika "rendah", keyakinannya adalah "LOW_CONFIDENCE". Jika "sedang", keyakinannya adalah "MEDIUM_CONFIDENCE". Jika tidak, nilainya adalah "UNKNOWN_CONFIDENCE". |
malicious_confidence |
event.idm.entity.metadata.threat.confidence_details |
Nilai malicious_confidence dipetakan secara langsung. |
malicious_confidence |
event.ioc.confidence_score |
Nilai malicious_confidence dipetakan secara langsung. |
malware_families |
event.idm.entity.metadata.threat.threat_name |
Semua nilai di malware_families digabungkan dengan koma dan dipetakan. |
published_date |
event.idm.entity.metadata.creation_timestamp |
Nilai published_date dikonversi menjadi stempel waktu. |
published_date |
event.idm.entity.metadata.interval.start_time |
Nilai published_date dikonversi menjadi stempel waktu. |
published_date |
event.ioc.active_timerange.start |
Nilai published_date dikonversi menjadi stempel waktu. |
relations |
event.idm.entity.metadata.threat.about |
Kolom dalam setiap relasi dipetakan ke objek about berdasarkan type -nya. "created_date", "last_valid_date", dan "id" ditambahkan sebagai label. |
reports |
event.idm.entity.metadata.threat.about.labels.value |
Semua nilai di reports digabungkan dengan koma dan dipetakan dengan kunci "report_ids". |
threat_types |
event.idm.entity.metadata.threat.threat_name |
Semua nilai di threat_types digabungkan dengan koma dengan threat_name yang ada yang berasal dari malware_families . |
type |
event.ioc.categorization |
Nilai type dipetakan secara langsung. |
(Logika Parser) | event.idm.entity.metadata.collected_timestamp |
Nilai create_time dari log mentah akan digunakan. |
(Logika Parser) | event.idm.entity.metadata.interval.end_time |
Di-hardcode ke stempel waktu di masa mendatang (253402300799). |
(Logika Parser) | event.idm.entity.metadata.product_name |
Di-hardcode ke "Falcon". |
(Logika Parser) | event.idm.entity.metadata.vendor_name |
Di-hardcode ke "CrowdStrike". |
(Logika Parser) | event.idm.entity.metadata.entity_type |
Diperoleh berdasarkan kolom type dan keberadaan kolom lainnya. Lihat kode parser untuk logika tertentu. |
(Logika Parser) | event.ioc.feed_name |
Di-hardcode ke "CrowdStrike Falcon Intelligence". |
(Logika Parser) | event.timestamp |
Nilai create_time dari log mentah akan digunakan. |
Perubahan
2023-08-23
- Mengubah pemetaan untuk kolom
malicious_confidence
.
2023-05-04
- Mempromosikan parser
crowdstrike_ioc
ke default.