Mengumpulkan log Microsoft Sentinel
Ringkasan
Parser ini mengekstrak kolom dari log JSON Microsoft Sentinel, melakukan transformasi seperti ekstraksi alamat IP dan manipulasi string, serta memetakan data yang diekstrak ke UDM, termasuk kolom principal, target, security_result, dan metadata. Fungsi ini juga menangani berbagai jenis data dan menggabungkan entitas yang diekstrak ke dalam struktur UDM.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Akses ke Microsoft Sentinel.
Mengonfigurasi feed di Google SecOps untuk menyerap log Microsoft Sentinel
- Buka SIEM Settings > Feeds.
- Klik Tambahkan baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya, Log Microsoft Sentinel).
- Pilih Webhook sebagai Jenis sumber.
- Pilih Microsoft Sentinel 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 akan diterapkan ke peristiwa dari feed ini.
- Pemisah pemisahan: pembatas yang digunakan untuk memisahkan baris log, seperti
- Klik Berikutnya.
- Tinjau konfigurasi feed baru Anda di layar Finalize, lalu klik Submit.
- Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
- Salin dan simpan kunci rahasia karena Anda tidak dapat melihat rahasia ini lagi. Anda dapat membuat kunci rahasia baru lagi, tetapi pembuatan ulang kunci rahasia 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 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 Security Operations.SECRET
: kunci rahasia yang Anda buat untuk mengautentikasi feed.
Mengonfigurasi Logic App untuk Insiden Microsoft Sentinel
Untuk mengonfigurasi Logic App untuk Insiden Microsoft Sentinel, ikuti langkah-langkah berikut:
- Login ke Azure Portal.
- Klik Buat resource.
- Telusuri Logic App.
- Klik Create untuk memulai proses pembuatan.
- Tentukan nilai untuk parameter input berikut:
- Langganan: Pilih langganan.
- Grup resource: Pilih grup resource.
- Nama: Masukkan nama untuk Logic App.
- Region: Pilih region.
- Ruang kerja Log Analytics: Pilih ruang kerja Log Analytics.
- Klik Review + create.
- Klik Create.
- Setelah Logic App dibuat, klik Go to resource.
- Klik Development Tools > Logic App Designer.
- Klik Tambahkan pemicu.
- Telusuri Microsoft Sentinel.
- Pilih Insiden Microsoft Sentinel sebagai pemicu.
- Jika belum membuat koneksi ke Microsoft Sentinel, Anda harus melakukannya sekarang. Klik Buat baru dan ikuti petunjuk untuk melakukan autentikasi.
- Klik Sisipkan langkah baru.
- Klik Tambahkan tindakan.
- Telusuri dan pilih HTTP sebagai tindakan.
- Tentukan nilai untuk parameter input berikut:
- URI: URL endpoint feed.
- Metode: POST
- Header: Tambahkan header berikut:
- Content-Type: application/json
- X-goog-api-key: kunci API untuk mengautentikasi ke Google Security Operations.
- X-Webhook-Access-Key: kunci rahasia yang Anda buat untuk mengautentikasi feed.
Mengonfigurasi Logic App untuk Pemberitahuan Microsoft Sentinel
Untuk mengonfigurasi Logic App untuk Pemberitahuan Microsoft Sentinel, ikuti langkah-langkah berikut:
- Buka Halaman Beranda Azure Portal.
- Klik Buat resource.
- Telusuri Logic App.
- Klik Create untuk memulai proses pembuatan.
- Tentukan nilai untuk parameter input berikut:
- Langganan: Pilih langganan.
- Grup resource: Pilih grup resource.
- Nama: Masukkan nama untuk Logic App.
- Region: Pilih region.
- Ruang kerja Log Analytics: Pilih ruang kerja Log Analytics.
- Klik Review + create.
- Klik Create.
- Setelah Logic App dibuat, klik Go to resource.
- Klik Development Tools > Logic App Designer.
- Klik Tambahkan pemicu.
- Telusuri Microsoft Sentinel.
- Pilih Peringatan Microsoft Sentinel sebagai pemicu.
- Jika belum membuat koneksi ke Microsoft Sentinel, Anda harus melakukannya sekarang. Klik Buat baru dan ikuti petunjuk untuk melakukan autentikasi.
- Klik Sisipkan langkah baru.
- Klik Tambahkan tindakan.
- Telusuri dan pilih HTTP sebagai tindakan.
- Tentukan nilai untuk parameter input berikut:
- URI: URL endpoint feed.
- Metode: POST
- Header: Tambahkan header berikut:
- Content-Type: application/json
- X-goog-api-key: kunci API untuk mengautentikasi ke Google Security Operations.
- X-Webhook-Access-Key: kunci rahasia yang Anda buat untuk mengautentikasi feed.
Mengonfigurasi aturan Otomatisasi untuk Microsoft Sentinel
Untuk mengonfigurasi Aturan otomatisasi untuk Microsoft Sentinel, ikuti langkah-langkah berikut:
- Buka Ruang Kerja Microsoft Sentinel.
- Klik Konfigurasi > Otomatisasi.
- Klik Create.
- Pilih Aturan otomatisasi.
- Tentukan nilai untuk parameter input berikut:
- Nama: Masukkan nama untuk aturan otomatisasi.
- Pemicu: pilih Saat insiden dibuat.
- Tindakan: pilih Jalankan playbook > Logic App yang dibuat untuk insiden.
- Klik Terapkan.
- Klik Create.
- Pilih Aturan otomatisasi.
- Tentukan nilai untuk parameter input berikut:
- Nama: Masukkan nama untuk aturan otomatisasi.
- Pemicu: pilih Saat insiden diperbarui.
- Kondisi: klik Tambahkan > Kondisi (Dan) > Status > Berubah.
- Tindakan: pilih Jalankan playbook > Logic App yang dibuat untuk insiden.
- Klik Terapkan.
- Klik Create.
- Pilih Aturan otomatisasi.
- Tentukan nilai untuk parameter input berikut:
- Nama: Masukkan nama untuk aturan otomatisasi.
- Pemicu: pilih Saat pemberitahuan dibuat.
- Tindakan: pilih Jalankan playbook > Logic App yang dibuat untuk pemberitahuan.
- Klik Terapkan.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
AlertGenerationStatus |
security_result.detection_fields.AlertGenerationStatus |
Dipetakan langsung dari kolom ExtendedProperties setelah penguraian JSON. |
AlertLink |
principal.labels.AlertLink |
Dipetakan secara langsung. |
AlertName |
security_result.rule_name |
Dipetakan secara langsung. |
AlertSeverity |
security_result.severity |
Dipetakan secara langsung, dikonversi menjadi huruf besar. Jika nilainya adalah salah satu dari HIGH, MEDIUM, LOW, CRITICAL, atau UNKNOWN_SEVERITY, nilai tersebut akan dipetakan ke security_result.severity . Jika tidak, kolom akan dipetakan ke security_result.severity_details . |
AlertType |
security_result.threat_name |
Dipetakan secara langsung. |
Category |
security_result.detection_fields.Category |
Dipetakan langsung dari kolom ExtendedProperties setelah penguraian JSON. |
CompromisedEntity |
principal.resource.attribute.labels.CompromisedEntity |
Dipetakan secara langsung. |
CompromisedEntityId |
security_result.detection_fields.CompromisedEntityId |
Dipetakan langsung dari kolom ExtendedProperties setelah penguraian JSON. |
ConfidenceLevel |
security_result.confidence_details |
Dipetakan secara langsung. |
ConfidenceScore |
security_result.detection_fields.ConfidenceScore |
Dipetakan secara langsung. |
cribl_pipe |
additional.fields.cribl_pipe |
Dipetakan secara langsung. |
Description |
security_result.description |
Dipetakan secara langsung. |
DestinationDevice |
security_result.detection_fields.DestinationDevice ATAU target.ip |
Dipetakan dari kolom ExtendedProperties setelah penguraian JSON. Jika nilainya adalah alamat IP yang valid, nilai tersebut akan dipetakan ke target.ip . Jika tidak, kolom akan dipetakan sebagai kolom deteksi. |
DestinationDeviceAddress |
target.ip |
Dipetakan dari kolom ExtendedProperties setelah penguraian JSON, hanya jika alamat IP valid. |
DeviceId |
security_result.detection_fields.DeviceId |
Dipetakan langsung dari kolom ExtendedProperties setelah penguraian JSON. |
DisplayName |
security_result.summary |
Dipetakan secara langsung. |
EndTime |
about.labels.EndTime |
Dipetakan secara langsung. |
Entities.Address |
principal.asset.ip |
Diekstrak dari array Entities setelah penguraian JSON. Hanya alamat IP yang dipetakan. |
Entities.HostName |
principal.asset.hostname ATAU principal.asset.ip |
Diekstrak dari array Entities setelah penguraian JSON. Jika nilainya berupa alamat IP yang valid, nilai tersebut akan dipetakan ke principal.asset.ip . Jika tidak, kolom akan dipetakan ke principal.asset.hostname . |
Entities.IoTDevice.DeviceId |
security_result.detection_fields.IoTDeviceID |
Diekstrak dari array Entities setelah penguraian JSON. |
Entities.IoTDevice.DeviceType |
security_result.detection_fields.IoTDeviceType |
Diekstrak dari array Entities setelah penguraian JSON. |
Entities.IoTDevice.DeviceTypeId |
security_result.detection_fields.IoTDeviceTypeId |
Diekstrak dari array Entities setelah penguraian JSON. |
Entities.IoTDevice.Importance |
security_result.detection_fields.IoTDeviceImportance |
Diekstrak dari array Entities setelah penguraian JSON. |
Entities.IoTDevice.IoTSecurityAgentId |
security_result.detection_fields.IoTSecurityAgentId |
Diekstrak dari array Entities setelah penguraian JSON. |
Entities.IoTDevice.Manufacturer |
security_result.detection_fields.IoT Manufacturer |
Diekstrak dari array Entities setelah penguraian JSON. |
Entities.IoTDevice.OperatingSystem |
principal.asset.platform_software.platform_version |
Diekstrak dari array Entities setelah penguraian JSON, spasi di akhir dihapus. |
Entities.IoTDevice.PurdueLayer |
security_result.detection_fields.IoT PurdueLayer |
Diekstrak dari array Entities setelah penguraian JSON. |
Entities.IoTDevice.Sensor |
security_result.detection_fields.IoT Sensor |
Diekstrak dari array Entities setelah penguraian JSON. |
ExtendedProperties.Protocol |
security_result.detection_fields.Protocol |
Dipetakan langsung dari kolom ExtendedProperties setelah penguraian JSON. |
ExtendedProperties.SensorId |
security_result.detection_fields.SensorId |
Dipetakan langsung dari kolom ExtendedProperties setelah penguraian JSON. |
ExtendedProperties.SourceDevice |
principal.ip ATAU security_result.detection_fields.SourceDevice |
Dipetakan dari kolom ExtendedProperties setelah penguraian JSON. Jika nilainya adalah alamat IP yang valid, nilai tersebut akan dipetakan ke principal.ip . Jika tidak, kolom akan dipetakan sebagai kolom deteksi. |
ExtendedProperties.SourceDeviceAddress |
principal.ip |
Dipetakan dari kolom ExtendedProperties setelah penguraian JSON, hanya jika alamat IP valid. |
IsIncident |
security_result.detection_fields.IsIncident |
Dipetakan langsung, dikonversi menjadi string. |
ProcessingEndTime |
about.labels.ProcessingEndTime |
Dipetakan secara langsung. |
ProductComponentName |
principal.resource.attribute.labels.ProductComponentName |
Dipetakan secara langsung. |
ProductName |
principal.resource.attribute.labels.ProductName |
Dipetakan secara langsung. |
ProviderName |
principal.resource.attribute.labels.ProviderName |
Dipetakan secara langsung. |
ResourceId |
principal.resource.product_object_id , target.resource.name |
Dipetakan secara langsung. |
SourceComputerId |
principal.asset.asset_id |
Dipetakan secara langsung, diawali dengan "SourceComputerId:". |
SourceSystem |
security_result.detection_fields.SourceSystem |
Dipetakan secara langsung. |
StartTime |
about.labels.StartTime |
Dipetakan secara langsung. |
Status |
security_result.detection_fields.Status |
Dipetakan secara langsung. |
SystemAlertId |
metadata.product_log_id |
Dipetakan secara langsung. |
Tactics |
security_result.attack_details.tactics.name |
Diekstrak dari kolom Tactics setelah penguraian JSON dan penghapusan garis miring terbalik. |
Techniques |
security_result.attack_details.techniques.id |
Diekstrak dari kolom Techniques setelah penguraian JSON dan penghapusan garis miring terbalik. |
TenantId |
additional.fields.TenantId |
Dipetakan secara langsung. |
TimeGenerated |
about.labels.TimeGenerated |
Dipetakan secara langsung. |
timestamp |
metadata.event_timestamp , events.timestamp |
Dipetakan secara langsung. |
VendorName |
metadata.vendor_name |
Dipetakan secara langsung. |
VendorOriginalId |
additional.fields.VendorOriginalId |
Dipetakan secara langsung. |
_time |
metadata.event_timestamp , events.timestamp |
Diurai sebagai stempel waktu menggunakan format UNIX atau UNIX_MS. |
(Logika Parser) | metadata.event_type |
Tetapkan ke "USER_RESOURCE_ACCESS" jika akun utama, target, dan ResourceId ada. Jika tidak, tetapkan ke "GENERIC_EVENT". |
(Logika Parser) | metadata.log_type |
Tetapkan ke "MICROSOFT_SENTINEL". |
(Logika Parser) | metadata.product_name |
Tetapkan ke "MICROSOFT_SENTINEL". |
Perubahan
2023-11-03
- Memetakan "ResourceId" ke "target.resource.name".
- Jika "ResourceId" adalah 'not null' dan peristiwa memiliki salah satu dari "principal" atau "target" sebagai 'not null', petakan "metadata.event_type" ke "USER_RESOURCE_ACCESS".
2023-08-31
- Parser yang baru dibuat.