Mengumpulkan log Microsoft Defender for Office 365
Dokumen ini menjelaskan cara mengumpulkan log Microsoft Defender untuk Office 365 dengan menyiapkan feed Google Security Operations menggunakan Microsoft Azure Blob Storage V2.
Microsoft Defender for Office 365 adalah solusi keamanan email yang melindungi organisasi dari ancaman tingkat lanjut seperti phishing, penyusupan email bisnis, dan serangan malware. Data peristiwa email dari Defender for Office 365 tersedia melalui Microsoft Defender XDR Streaming API, yang melakukan streaming peristiwa Advanced Hunting ke akun Azure Storage. Google SecOps membaca peristiwa yang di-streaming langsung dari akun penyimpanan, sehingga tidak diperlukan kolektor perantara.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Akses istimewa ke portal Microsoft Azure dengan izin untuk:
- Membuat Akun Penyimpanan di tenant yang sama dengan Microsoft Defender XDR
- Mendaftarkan penyedia resource di langganan
- Mengelola kunci akses
- Peran Contributor di akun penyimpanan (diperlukan oleh konfigurasi Streaming API)
- Akses ke portal Microsoft Defender dengan setidaknya peran Security Administrator
Microsoft Defender for Office 365 di-deploy di tenant Anda: tabel Advanced Hunting Email* dan UrlClickEvents diisi oleh data dari Defender for Office 365 dan tetap kosong tanpa data tersebut
Mengonfigurasi Akun Azure Storage
Mendaftarkan penyedia resource Microsoft.Insights
Streaming API memerlukan penyedia resource Microsoft.Insights pada langganan yang menyimpan akun penyimpanan:
- Login ke portal Azure.
- Buka Subscriptions > Your subscription > Resource providers.
- Telusuri Microsoft.Insights.
- Klik Daftar.
Membuat Akun Penyimpanan
- Di portal Azure, telusuri Storage accounts.
- Klik + Create.
Berikan detail konfigurasi berikut:
Setelan Nilai Langganan Pilih langganan Azure Anda (tenant yang sama dengan Microsoft Defender XDR) Grup resource Pilih yang sudah ada atau buat yang baru Nama akun penyimpanan Masukkan nama yang unik (misalnya, defenderemaillogs)Region Pilih region (misalnya, East US)Performa Standar (direkomendasikan) Redundansi GRS (Geo-redundant storage) atau LRS (Locally redundant storage) Klik Review + create.
Tinjau ringkasan akun, lalu klik Buat.
Tunggu hingga deployment selesai.
Mengizinkan layanan Microsoft tepercaya
- Buka Storage Account yang baru saja Anda buat.
- Pilih Networking di bagian Security + networking.
- Di tab Firewalls and virtual networks, di bagian Exceptions, pastikan Allow Azure services on the trusted services list to access this storage account dipilih.
- Klik Simpan.
Mendapatkan kredensial Akun Penyimpanan
- Di Storage Account yang sama, pilih Access keys di bagian Security + networking.
- Klik Show keys.
- Salin dan simpan hal berikut untuk digunakan nanti:
- Storage account name: Nama yang dimasukkan selama pembuatan (misalnya,
defenderemaillogs) - Kunci 1 atau Kunci 2: Kunci akses bersama
- Storage account name: Nama yang dimasukkan selama pembuatan (misalnya,
Mendapatkan ID Resource Akun Penyimpanan
- Di Akun Penyimpanan yang sama, di halaman Overview, klik JSON View.
Salin dan simpan ID Resource. Formatnya adalah sebagai berikut:
/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
Mengonfigurasi Microsoft Defender XDR Streaming API
- Login ke portal Microsoft Defender menggunakan akun yang memiliki setidaknya izin Security Administrator.
- Buka Settings > Microsoft Defender XDR > Streaming API.
- Klik Tambahkan.
- Di flyout Add new Streaming API settings, berikan detail konfigurasi berikut:
- Name: Masukkan nama untuk setelan (misalnya,
secops-email-events). - Pilih Forward events to Azure Storage.
- Storage Account Resource ID: Tempelkan ID Resource yang disimpan sebelumnya.
- Name: Masukkan nama untuk setelan (misalnya,
- Pilih Jenis peristiwa berikut:
- EmailEvents
- EmailAttachmentInfo
- EmailUrlInfo
- EmailPostDeliveryEvents
- UrlClickEvents
- Klik Kirim.
Setelah streaming dimulai, container blob akan dibuat di akun penyimpanan untuk setiap jenis peristiwa yang dipilih (didokumentasikan oleh Microsoft). Nama container mengikuti pola insights-logs-advancedhunting-<event type> (misalnya, insights-logs-advancedhunting-emailevents). Dokumentasi Microsoft menunjukkan pola untuk tabel lain, jadi selalu ambil nama yang sama persis dari akun penyimpanan Anda. Setiap baris blob membawa peristiwa sebagai JSON dengan time, tenantId, category (nama tabel dengan awalan AdvancedHunting-), dan kolom peristiwa di dalam objek properties.
Mengonfigurasi feed di Google SecOps untuk menyerap log Microsoft Defender for Office 365
Buat satu feed per penampung jenis peristiwa:
- Buka Setelan > Pengelolaan Data > Feed. Jika Anda menggunakan platform khusus SIEM, buka Settings > Feeds.
- Klik Tambahkan Feed Berita Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya,
Defender for Office 365 - EmailEvents). - Pilih Microsoft Azure Blob Storage V2 sebagai Source type.
- Pilih Microsoft Defender for Office 365 sebagai Log type.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
- Azure URI: Masukkan URL endpoint Blob Service dengan jalur container:
https://<STORAGE_ACCOUNT_NAME>.blob.core.windows.net/insights-logs-advancedhunting-emailevents/Ganti kode berikut:
<STORAGE_ACCOUNT_NAME>: Nama akun penyimpanan Azure Anda.Segmen container: nama container persis yang disalin dari akun penyimpanan.
Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda:
- Jangan pernah hapus file: Jangan pernah hapus file dari sumber.
- Hapus file yang ditransfer dan direktori kosong: Hapus file dan direktori kosong dari sumber setelah pengambilan berhasil diselesaikan.
Usia File Maksimum: Sertakan file yang diubah dalam jumlah hari terakhir (defaultnya adalah 180 hari)
Dari drop-down autentikasi (defaultnya adalah Access/Shared key), pilih metode yang ingin Anda gunakan dan berikan kredensial yang sesuai:
- Access/Shared key: Di kolom Key, tempelkan kunci akses akun penyimpanan (Key 1 atau Key 2) yang diambil sebelumnya.
- Token SAS: Di kolom Token, tempel token tanda tangan akses bersama (SAS) yang dikeluarkan untuk container.
- Azure V2 Workload Identity Federation: Masukkan Client ID dan Tenant ID aplikasi Microsoft Entra. Salin ID Subjek hanya baca yang ditampilkan feed dan berikan akses identitas yang cocok ke akun penyimpanan di sisi Azure.
Namespace aset: Namespace aset
Label penyerapan: Label yang akan diterapkan ke peristiwa dari feed ini
Klik Berikutnya.
Tinjau konfigurasi feed berita baru Anda di layar Finalize, lalu klik Submit.
Ulangi langkah-langkah untuk setiap penampung yang tersisa (
insights-logs-advancedhunting-emailattachmentinfo,insights-logs-advancedhunting-emailurlinfo,insights-logs-advancedhunting-emailpostdeliveryevents,insights-logs-advancedhunting-urlclickevents), menggunakan Log type yang sama dan Feed name yang berbeda.
Mengonfigurasi firewall Azure Storage (jika diaktifkan)
Jika Akun Azure Storage Anda menggunakan firewall, Anda harus menambahkan rentang IP Google SecOps.
- Di portal Azure, buka Storage Account Anda.
- Pilih Networking di bagian Security + networking.
- Di bagian Firewalls and virtual networks, pilih Enabled from selected virtual networks and IP addresses.
- Di bagian Firewall, di bagian Address range, klik + Add IP range.
- Tambahkan setiap rentang IP Google SecOps dalam notasi CIDR.
Untuk mendapatkan rentang IP saat ini:
- Lihat dokumentasi Daftar IP yang Diizinkan
- Atau ambil secara terprogram menggunakan Feed Management API
Klik Simpan.
Tabel pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
CompAuth_label |
additional.fields |
Digabung |
DKIM_label |
additional.fields |
Digabung |
DMARC_label |
additional.fields |
Digabung |
SPF_label |
additional.fields |
Digabung |
additional_email_cluster_id |
additional.fields |
Digabung |
additional_fields_label |
additional.fields |
Digabung |
additional_replyto |
additional.fields |
Digabung |
attachment_cnt_label |
additional.fields |
Digabung |
attachment_count_label |
additional.fields |
Digabung |
bulk_complaint_level_label |
additional.fields |
Digabung |
clicked_label |
additional.fields |
Digabung |
confidence_level_label |
additional.fields |
Digabung |
connectors_label |
additional.fields |
Digabung |
delivery_action_label |
additional.fields |
Digabung |
delivery_location_label |
additional.fields |
Digabung |
detection_methods_label |
additional.fields |
Digabung |
email_action_label |
additional.fields |
Digabung |
email_action_policy_guid_label |
additional.fields |
Digabung |
email_action_policy_label |
additional.fields |
Digabung |
email_cluster_id_label |
additional.fields |
Digabung |
email_direction_label |
additional.fields |
Digabung |
email_language_label |
additional.fields |
Digabung |
exchange_transport_rule_label |
additional.fields |
Digabung |
is_first_contact_label |
additional.fields |
Digabung |
org_level_action_label |
additional.fields |
Digabung |
org_level_policy_label |
additional.fields |
Digabung |
phishData_label |
additional.fields |
Digabung |
sender_from_address_label |
additional.fields |
Digabung |
sender_mail_label |
additional.fields |
Digabung |
spamData_label |
additional.fields |
Digabung |
threat_names_label |
additional.fields |
Digabung |
threat_types_label |
additional.fields |
Digabung |
url_chain_list |
additional.fields |
Digabung |
url_count_label |
additional.fields |
Digabung |
url_loc_label |
additional.fields |
Digabung |
url_location_label |
additional.fields |
Digabung |
urlcount_label |
additional.fields |
Digabung |
user_level_action_label |
additional.fields |
Digabung |
user_level_policy_label |
additional.fields |
Digabung |
workload_label |
additional.fields |
Digabung |
_time |
metadata.event_timestamp |
Diurai sebagai RFC3339 |
time |
metadata.event_timestamp |
Diurai sebagai yyyy-MM-ddTHH:mm:ss.SSSSSSSZ |
event_type |
metadata.event_type |
Dipetakan secara langsung |
_raw.category |
metadata.product_event_type |
Dipetakan secara langsung |
operationName |
metadata.product_event_type |
Dipetakan secara langsung |
_raw.properties.ReportId |
metadata.product_log_id |
Dipetakan secara langsung |
_raw.properties.SenderFromAddress |
network.email.from |
Dipetakan secara langsung |
_raw.properties.InternetMessageId |
network.email.mail_id |
Dipetakan secara langsung |
_raw.properties.Subject |
network.email.subject |
Digabung |
properties.Subject |
network.email.subject |
Digabung |
_raw.properties.RecipientEmailAddress |
network.email.to |
Digabung |
email |
network.email.to |
Dipetakan: ^.+@.+$ → email |
properties.EmailSize |
network.received_bytes |
Diganti namanya/dipetakan |
_raw.properties.NetworkMessageId |
network.session_id |
Dipetakan secara langsung |
_raw.properties.SenderFromDomain |
principal.administrative_domain |
Dipetakan secara langsung |
_raw.properties.SenderMailFromDomain |
principal.administrative_domain |
Dipetakan secara langsung |
properties.SenderMailFromDomain |
principal.administrative_domain |
Dipetakan secara langsung |
_raw.properties.UrlDomain |
principal.asset.hostname |
Dipetakan secara langsung |
properties.SenderFromDomain |
principal.asset.hostname |
Dipetakan secara langsung |
properties.UrlDomain |
principal.asset.hostname |
Dipetakan secara langsung |
_raw.properties.SenderIPv4 |
principal.asset.ip |
Digabung |
_raw.properties.SenderIPv6 |
principal.asset.ip |
Digabung |
sender_ip |
principal.asset.ip |
Digabung |
_raw.properties.SenderMailFromAddress |
principal.email |
Dipetakan secara langsung |
target.SHA256 |
principal.file.sha256 |
Dipetakan secara langsung |
_raw.properties.UrlDomain |
principal.hostname |
Dipetakan secara langsung |
properties.SenderFromDomain |
principal.hostname |
Dipetakan secara langsung |
properties.UrlDomain |
principal.hostname |
Dipetakan secara langsung |
_raw.properties.SenderIPv4 |
principal.ip |
Digabung |
_raw.properties.SenderIPv6 |
principal.ip |
Digabung |
sender_ip |
principal.ip |
Digabung |
_raw.properties.Url |
principal.url |
Dipetakan secara langsung |
properties.Url |
principal.url |
Dipetakan secara langsung |
_raw.properties.SenderObjectId |
principal.user.product_object_id |
Dipetakan secara langsung |
tenantId |
principal.user.product_object_id |
Dipetakan secara langsung |
_raw.properties.SenderDisplayName |
principal.user.user_display_name |
Dipetakan secara langsung |
properties.SenderDisplayName |
principal.user.user_display_name |
Dipetakan secara langsung |
action |
security_result.action |
Digabung |
properties.Action |
security_result.action_details |
Dipetakan secara langsung |
security_result_category |
security_result.category |
Digabung |
category |
security_result.category_details |
Digabung |
Phish_level |
security_result.confidence |
Dipetakan: high → HIGH_CONFIDENCE, medium → MEDIUM_CONFIDENCE, low → LOW_CONFIDENCE |
properties.ActionResult |
security_result.description |
Dipetakan secara langsung |
action_type_label |
security_result.detection_fields |
Digabung |
cribl_pipe_label |
security_result.detection_fields |
Digabung |
email_action_label |
security_result.detection_fields |
Digabung |
email_action_policy_label |
security_result.detection_fields |
Digabung |
email_language_label |
security_result.detection_fields |
Digabung |
emailactpol_guid_label |
security_result.detection_fields |
Digabung |
internet_message_id_label |
security_result.detection_fields |
Digabung |
network_message_id_label |
security_result.detection_fields |
Digabung |
operation_name_label |
security_result.detection_fields |
Digabung |
phish_level_label |
security_result.detection_fields |
Digabung |
recipient_id_label |
security_result.detection_fields |
Digabung |
report_id_label |
security_result.detection_fields |
Digabung |
sender_id_label |
security_result.detection_fields |
Digabung |
tenant_label |
security_result.detection_fields |
Digabung |
transport_rule_guid_label |
security_result.detection_fields |
Digabung |
trigger_label |
security_result.detection_fields |
Digabung |
properties.DeliveryLocation |
security_result.summary |
Dipetakan secara langsung |
properties.ThreatNames |
security_result.threat_name |
Dipetakan secara langsung |
properties.AccountUpn |
target.email |
Dipetakan secara langsung |
_raw.properties.FileName |
target.file.full_path |
Dipetakan secara langsung |
_raw.properties.FileType |
target.file.mime_type |
Dipetakan secara langsung |
properties.FileType |
target.file.mime_type |
Dipetakan secara langsung |
properties.FileName |
target.file.names |
Digabung |
_raw.properties.FileSize |
target.file.size |
Diganti namanya/dipetakan |
properties.FileSize |
target.file.size |
Diganti namanya/dipetakan |
properties.RecipientDomain |
target.hostname |
Dipetakan secara langsung |
_raw.tenantId |
target.resource.id |
Dipetakan secara langsung |
_raw.properties.RecipientObjectId |
target.user.product_object_id |
Dipetakan secara langsung |
| T/A | metadata.event_type |
Konstanta: GENERIC_EVENT |
| T/A | metadata.product_name |
Konstanta: MICROSOFT_DEFENDER_MAIL |
| T/A | metadata.vendor_name |
Konstanta: MICROSOFT_DEFENDER_MAIL |
| T/A | network.direction |
Konstanta: INBOUND |
| T/A | security_result.confidence |
Konstanta: HIGH_CONFIDENCE |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.