Mengumpulkan log pemberitahuan Microsoft Defender for Cloud
Ringkasan
Parser ini mengekstrak data pemberitahuan keamanan dari log berformat JSON Microsoft Defender for Cloud. Log tersebut mengubah dan memetakan kolom log mentah ke UDM Google SecOps, menangani berbagai jenis data dan struktur bertingkat, sekaligus memperkaya data dengan konteks dan label tambahan untuk meningkatkan analisis.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps.
- Akses istimewa ke Microsoft Defender untuk Cloud.
Menyiapkan feed
Ada dua titik entri berbeda untuk menyiapkan feed di platform Google SecOps:
- Setelan SIEM > Feed
- Hub Konten > Paket Konten
Menyiapkan feed dari Setelan SIEM > Feed
Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed; misalnya, Log pemberitahuan Microsoft Defender for Cloud.
- Pilih Webhook sebagai Jenis sumber.
- Pilih Microsoft Defender for Cloud sebagai Log type.
- Klik Berikutnya.
- Opsional: tentukan nilai untuk parameter input berikut:
- Pemisah pemisahan: pemisah yang digunakan untuk memisahkan baris log, seperti
\n
.
- Pemisah pemisahan: pemisah yang digunakan untuk memisahkan baris log, seperti
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Selesaikan, lalu klik Kirim.
- 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.
- Di tab Detail, salin URL endpoint feed dari kolom Informasi Endpoint. Anda perlu menentukan URL endpoint ini di aplikasi klien Anda.
- Klik Selesai.
Menyiapkan feed dari Hub Konten
Tentukan nilai untuk kolom berikut:
- Pemisah pemisahan: pemisah yang digunakan untuk memisahkan baris log, seperti
\n
.
Opsi lanjutan
- Nama Feed: Nilai yang telah diisi otomatis yang mengidentifikasi feed.
- Jenis Sumber: Metode yang digunakan untuk mengumpulkan log ke Google SecOps.
- Namespace Aset: Namespace yang terkait dengan feed.
Label Penyerapan: Label yang diterapkan ke semua peristiwa dari feed ini.
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.
Di tab Detail, salin URL endpoint feed dari kolom Informasi Endpoint. Anda perlu menentukan URL endpoint ini di aplikasi klien Anda.
Membuat kunci API untuk feed webhook
Buka konsolGoogle Cloud > Kredensial.
Klik Create credentials, lalu pilih API key.
Batasi akses kunci API ke Google Security Operations API.
Tentukan URL endpoint
- Di aplikasi klien Anda, tentukan URL endpoint HTTPS yang disediakan di feed webhook.
Aktifkan autentikasi dengan menentukan kunci API dan kunci rahasia 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 Security Operations.SECRET
: kunci rahasia yang Anda buat untuk mengautentikasi feed.
Buat Azure Logic App
- Login ke Azure Portal (https://portal.azure.com).
- Klik Create a resource, lalu telusuri Logic App.
- Klik Create untuk memulai proses deployment.
- Konfigurasi Aplikasi Logika:
- Nama: Berikan nama deskriptif untuk Aplikasi Logika (misalnya, GoogleSecOpsWebhook).
- Langganan: Pilih langganan yang sesuai.
- Grup Resource: Pilih grup resource yang ada atau buat grup resource baru.
- Lokasi: Pilih lokasi yang paling dekat dengan lingkungan Anda.
- Log Analytics: Aktifkan opsi ini jika Anda ingin mencatat data diagnostik untuk Logic App.
- Klik Review + Create untuk membuat Aplikasi Logika.
- Klik Create untuk men-deploy Logic App.
Mengonfigurasi koneksi Webhook Azure Logic App
- Buka Logic App yang dibuat pada langkah sebelumnya.
- Klik Development Tools > Logic App Designer.
- Klik Tambahkan pemicu.
Telusuri Microsoft Defender for Cloud > Saat pemberitahuan Microsoft Defender for Cloud dibuat atau dipicu sebagai pemicu.
Klik Buat baru dan ikuti petunjuk untuk melakukan autentikasi.
Klik Sisipkan langkah baru untuk menambahkan langkah baru ke alur kerja.
Klik Tambahkan tindakan.
Telusuri HTT.
Pilih HTTP sebagai tindakan.
Konfigurasi tindakan HTTP:
- URI: Di sinilah Anda akan memasukkan URL endpoint Google SecOps API.
- Metode:
POST
- Tambahkan header Content-Type: Tetapkan
Content-Type
sebagai kunci header danapplication/json
sebagai nilai header. Hal ini memberi tahu Google SecOps format data yang dikirim. - Menambahkan Kunci API ke kueri: Tetapkan
key
sebagai kunci kueri pertama dan<API_KEY>
sebagai nilai kueri.API_KEY
adalah nilai Kunci API yang dihasilkan selama konfigurasi Feed Google SecOps. - Menambahkan Kunci Rahasia ke kueri: Tetapkan
secret
sebagai kunci kueri kedua dan<SECRET_KEY>
sebagai nilai kueri.SECRET_KEY
adalah Kunci Rahasia yang dibuat selama konfigurasi Feed Google SecOps. - Tetapkan Isi dari langkah sebelumnya: Klik Masukkan konten permintaan > klik Masukkan data dari langkah sebelumnya (tombol dengan ikon petir di sebelah kiri kolom input).
Klik Simpan.
Mengonfigurasi Webhook Pemberitahuan Cloud Microsoft Defender
- Buka Microsoft Defender untuk Cloud.
- Klik Pengelolaan > Otomatisasi alur kerja.
- Klik Tambahkan otomatisasi alur kerja.
- Nama: Berikan nama deskriptif untuk aturan otomatisasi (misalnya, ForwardAlertsToGoogleSecOps).
- Grup Resource: Pilih grup resource yang ada.
- Jenis data Defender for Cloud: Pilih Peringatan keamanan.
- Tingkat keparahan pemberitahuan: Pilih Pilih semua.
- Tampilkan instance Logic App dari langganan berikut: Pilih langganan tempat Logic App dibuat.
- Select Logic App: Pilih Logic App yang dibuat pada langkah sebelumnya.
- Klik Buat untuk menyimpan otomatisasi alur kerja.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
AlertLink |
principal.resource.attribute.labels.AlertLink.value |
Dipetakan secara langsung. |
AlertName |
security_result.rule_name |
Dipetakan secara langsung. |
AlertSeverity |
security_result.severity |
Dipetakan secara langsung jika nilainya adalah salah satu dari HIGH, MEDIUM, LOW, CRITICAL, UNKNOWN_SEVERITY. Jika tidak, dipetakan ke security_result.severity_details . Nilai dikonversi menjadi huruf besar sebelum perbandingan. |
AlertType |
security_result.threat_name |
Dipetakan secara langsung. |
CompromisedEntity |
principal.resource.attribute.labels.CompromisedEntity.value |
Dipetakan secara langsung. |
Description |
security_result.description |
Dipetakan secara langsung. |
DisplayName |
security_result.summary |
Dipetakan secara langsung. |
EndTime |
about.resource.attribute.labels.EndTime.value |
Dipetakan secara langsung. |
Entities[].Location.City |
principal.location.city |
Dipetakan secara langsung. |
Entities[].Location.CountryName |
principal.location.country_or_region |
Dipetakan secara langsung. |
ExtendedLinks[].Category |
about.resource.attribute.labels.extendedLink_Category.value |
Dipetakan secara langsung. |
ExtendedLinks[].Href |
about.resource.attribute.labels.extendedLink_Href.value |
Dipetakan secara langsung. |
ExtendedLinks[].Label |
about.resource.attribute.labels.extendedLink_Label.value |
Dipetakan secara langsung. |
ExtendedLinks[].Type |
about.resource.attribute.labels.extendedLink_Type.value |
Dipetakan secara langsung. |
ExtendedProperties.Account Session Id |
network.session_id |
Dipetakan langsung setelah diganti namanya menjadi accountSessionId . |
ExtendedProperties.Alert Id |
metadata.product_log_id |
Dipetakan langsung setelah diganti namanya menjadi alertId . |
ExtendedProperties.Authentication type |
extensions.auth.auth_details |
Dipetakan langsung setelah diganti namanya menjadi authenticationType . |
ExtendedProperties.Client Application |
principal.application |
Dipetakan langsung setelah diganti namanya menjadi clientApplication . |
ExtendedProperties.Client Hostname |
principal.asset.hostname , principal.hostname |
Dipetakan langsung setelah diganti namanya menjadi clientHostName . |
ExtendedProperties.Client IP address |
principal.asset.ip , principal.ip |
Dipetakan langsung setelah diganti namanya menjadi clientIpAddress . |
ExtendedProperties.Client IP location |
principal.location.country_or_region |
Dipetakan langsung setelah diganti namanya menjadi clientIpLocation . |
ExtendedProperties.Client Location |
principal.location.country_or_region |
Dipetakan langsung setelah diganti namanya menjadi clientLocation . |
ExtendedProperties.Client Principal Name |
principal.user.userid |
Dipetakan langsung setelah diganti namanya menjadi clientPrincipalName . |
ExtendedProperties.Compromised Host |
principal.asset.hostname , principal.hostname |
Dipetakan langsung setelah diganti namanya menjadi compromisedHost . |
ExtendedProperties.Suspicious Command Line |
target.process.command_line |
Dipetakan langsung setelah diganti namanya menjadi suspiciousCommandLine . |
ExtendedProperties.Suspicious Process |
target.process.file.full_path |
Dipetakan langsung setelah diganti namanya menjadi suspiciousProcess . |
ExtendedProperties.Suspicious Process Id |
target.process.pid |
Dipetakan langsung setelah diganti namanya menjadi suspiciousProcessId . |
ExtendedProperties.User agent |
network.http.user_agent |
Dipetakan langsung setelah diganti namanya menjadi userAgent . |
ExtendedProperties.User Name |
principal.user.user_display_name |
Dipetakan langsung setelah diganti namanya menjadi userName . |
ExtendedProperties.resourceType |
principal.resource.name |
Dipetakan secara langsung. |
IsIncident |
security_result.detection_fields.IsIncident.value |
Dipetakan secara langsung. Dikonversi ke string. |
ProcessingEndTime |
about.resource.attribute.labels.ProcessingEndTime.value |
Dipetakan secara langsung. |
ProductName |
metadata.product_name |
Dipetakan secara langsung. |
ResourceId |
principal.resource.product_object_id |
Dipetakan secara langsung. |
SourceSystem |
security_result.detection_fields.SourceSystem.value |
Dipetakan secara langsung. |
StartTime |
about.resource.attribute.labels.StartTime.value |
Dipetakan secara langsung. |
Status |
security_result.detection_fields.Status.value |
Dipetakan secara langsung. |
SystemAlertId |
metadata.product_log_id |
Dipetakan secara langsung. |
Tactics |
security_result.attack_details.tactics.name |
Dipetakan secara langsung. |
TenantId |
additional.fields.TenantId.string_value |
Dipetakan secara langsung. |
TimeGenerated |
about.resource.attribute.labels.TimeGenerated.value |
Dipetakan secara langsung. |
VendorName |
metadata.vendor_name |
Dipetakan secara langsung. |
WorkspaceResourceGroup |
target.resource.attribute.labels.WorkspaceResourceGroup.value |
Dipetakan secara langsung. |
WorkspaceSubscriptionId |
target.resource.attribute.labels.WorkspaceSubscriptionId.value |
Dipetakan secara langsung. |
_Internal_WorkspaceResourceId |
target.resource.product_object_id |
Dipetakan secara langsung. |
properties.alertDisplayName |
security_result.rule_name |
Dipetakan secara langsung. |
properties.alertType |
security_result.threat_name |
Dipetakan secara langsung. |
properties.alertUri |
principal.resource.attribute.labels.AlertUri.value |
Dipetakan secara langsung. |
properties.correlationKey |
principal.resource.attribute.labels.correlationKey.value |
Dipetakan secara langsung. |
properties.description |
security_result.description |
Dipetakan secara langsung. |
properties.endTimeUtc |
additional.fields.EndTime.string_value |
Dipetakan secara langsung. |
properties.entities[].location.city |
principal.location.city |
Dipetakan secara langsung. |
properties.entities[].location.countryName |
principal.location.country_or_region |
Dipetakan secara langsung. |
properties.entities[].location.latitude |
principal.location.region_coordinates.latitude |
Dipetakan secara langsung. Dikonversi menjadi float. |
properties.entities[].location.longitude |
principal.location.region_coordinates.longitude |
Dipetakan secara langsung. Dikonversi menjadi float. |
properties.extendedProperties.alert_Id |
metadata.product_log_id |
Dipetakan secara langsung. |
properties.extendedProperties.clientApplication |
principal.application |
Dipetakan secara langsung. |
properties.extendedProperties.clientIpAddress |
principal.asset.ip , principal.ip |
Dipetakan secara langsung. Diuraikan sebagai alamat IP. |
properties.extendedProperties.clientLocation |
principal.location.country_or_region |
Dipetakan secara langsung. |
properties.extendedProperties.clientPrincipalName |
principal.user.userid |
Dipetakan secara langsung. |
properties.extendedProperties.compromisedEntity |
principal.resource.attribute.labels.CompromisedEntity.value |
Dipetakan secara langsung. |
properties.extendedProperties.resourceType |
principal.resource.name |
Dipetakan secara langsung. |
properties.IsIncident |
security_result.detection_fields.isIncident.value |
Dipetakan secara langsung. Dikonversi ke string. |
properties.productName |
metadata.product_name |
Dipetakan secara langsung. |
properties.resourceIdentifiers[].<key> |
additional.fields.<key>_<index>.string_value |
Dipetakan secara langsung. Kunci $id dan type ditambahkan dengan indeks elemen dalam array. |
properties.severity |
security_result.severity |
Dipetakan secara langsung jika nilainya adalah salah satu dari HIGH, MEDIUM, LOW, CRITICAL, UNKNOWN_SEVERITY. Jika tidak, dipetakan ke security_result.severity_details . Nilai dikonversi menjadi huruf besar sebelum perbandingan. |
properties.startTimeUtc |
additional.fields.StartTime.string_value |
Dipetakan secara langsung. |
properties.status |
security_result.detection_fields.Status.value |
Dipetakan secara langsung. |
properties.timeGeneratedUtc |
additional.fields.TimeGenerated.string_value |
Dipetakan secara langsung. Ditetapkan ke "MICROSOFT_DEFENDER_CLOUD_ALERTS" jika tidak disediakan dalam log. Tetapkan ke "MICROSOFT_DEFENDER_CLOUD_ALERTS". Disetel ke "USER_RESOURCE_ACCESS" jika principal atau target ada, jika tidak, disetel ke "GENERIC_EVENT". |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.