Mengumpulkan log aktivitas Microsoft Graph
Parser ini mengekstrak kolom dari log aktivitas Microsoft Graph, lalu mengubahnya menjadi Model Data Terpadu (UDM). Parser ini menginisialisasi kolom UDM, mengurai payload, mengekstrak stempel waktu, memetakan berbagai properti ke kolom UDM, menangani alamat IP dan port, serta mengategorikan jenis peristiwa berdasarkan keberadaan informasi utama dan jaringan.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps.
- Akses istimewa ke Microsoft Entra ID dan akun penyimpanan Azure.
Mengonfigurasi akun penyimpanan Azure
- Di konsol Azure, telusuri akun penyimpanan.
- Klik Buat.
- Tentukan nilai untuk parameter input berikut:
- Langganan: pilih langganan.
- Grup Resource: pilih grup resource.
- Region: pilih region.
- Performa: pilih tingkat performa yang Anda inginkan (standar direkomendasikan).
- Redundansi: pilih tingkat redundansi yang Anda inginkan (GRS atau LRS direkomendasikan).
- Nama akun penyimpanan: masukkan nama untuk akun penyimpanan baru.
- Klik Tinjau + buat.
- Tinjau ringkasan akun, lalu klik Buat.
- Dari halaman Ringkasan Akun Penyimpanan, pilih submenu Kunci akses di Keamanan + jaringan.
- Klik Tampilkan di samping key1 atau key2
- Klik Salin ke papan klip untuk menyalin kunci.
Simpan kunci di lokasi yang aman untuk referensi di masa mendatang.
Dari halaman Ringkasan Akun Penyimpanan, pilih submenu Endpoint di Setelan.
Klik Salin ke papan klip untuk menyalin URL endpoint Layanan blob (misalnya, https://
.blob.core.windows.net ).Simpan URL endpoint di lokasi yang aman untuk referensi di masa mendatang.
Mengonfigurasi ekspor log aktivitas Microsoft Graph ke akun penyimpanan
- Di konsol Azure, telusuri Entra ID.
- Pilih Pemantauan > Setelan diagnostik.
- Klik + Tambahkan setelan diagnostik.
- Beri setelan nama yang unik (misalnya, ms-graph-activity).
- Pilih kategori MicrosoftGraphActivityLog yang ingin Anda ekspor ke Google SecOps.
- Di bagian Detail tujuan, pilih Arsipkan ke akun penyimpanan.
- Pilih langganan dan akun penyimpanan yang Anda buat pada langkah sebelumnya.
Klik Simpan.
Cara menyiapkan log Aktivitas Microsoft Graph
- 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 Aktivitas Microsoft Graph.
- Pilih Microsoft Azure Blob Storage V2 sebagai Jenis sumber.
- Pilih Log Aktivitas Microsoft Graph sebagai Jenis log.
- Klik Berikutnya.
Tentukan nilai untuk parameter input berikut:
Azure uri: URL endpoint blob.
ENDPOINT_URL/BLOB_NAMEGanti kode berikut:
ENDPOINT_URL: URL endpoint blob (https://<storageaccountname>.blob.core.windows.net)BLOB_NAME: nama blob (misalnya, insights-logs-)
Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.
Usia File Maksimum: File yang diubah dalam jumlah hari terakhir. Defaultnya adalah 180 hari.
Kunci bersama: kunci akses ke Azure Blob Storage.
Klik Berikutnya.
Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.
Log contoh Log Aktivitas Microsoft Graph yang didukung
JSON Standar
{ "time": "2024-02-24T02:36:04.9540786Z", "resourceId": "/TENANTS/00000000-0000-0000-0000-000000000000/PROVIDERS/MICROSOFT.AADIAM", "operationName": "Microsoft Graph Activity", "operationVersion": "v1.0", "category": "MicrosoftGraphActivityLogs", "tenantId": "00000000-0000-0000-0000-000000000000", "resultSignature": "200", "durationMs": 856631, "callerIpAddress": "192.0.2.1", "correlationId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "Level": 4, "location": "South Central US", "properties": { "timeGenerated": "2024-02-24T02:36:04.9540786Z", "location": "South Central US", "requestId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "operationId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "clientRequestId": "ffffffff-gggg-hhhh-iiii-jjjjjjjjjjjj", "apiVersion": "v1.0", "requestMethod": "GET", "responseStatusCode": 200, "tenantId": "00000000-0000-0000-0000-000000000000", "ipAddress": "192.0.2.1", "userAgent": "Internal-Service-Scanner", "requestUri": "https://graph.microsoft.com/v1.0/subscribedSkus", "durationMs": 856631, "responseSizeBytes": 11808, "signInActivityId": "REDACTED_ACTIVITY_ID", "roles": "Organization.Read.All Policy.Read.All User.Read.All", "tokenIssuedAt": "2024-02-23T23:48:42Z", "appId": "00000000-0000-0000-0000-000000000000", "userId": null, "servicePrincipalId": "11111111-2222-3333-4444-555555555555", "identityProvider": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/", "clientAuthMethod": "2" } }Format PascalCase Azure Monitor
{ "TimeGenerated": "2024-06-07T11:52:40.4216173Z", "Location": "East US", "RequestId": "bbbbbbbb-1111-2222-3333-cccccccccccc", "OperationId": "bbbbbbbb-1111-2222-3333-cccccccccccc", "ClientRequestId": "dddddddd-4444-5555-6666-eeeeeeeeeeee", "ApiVersion": "v1.0", "RequestMethod": "GET", "ResponseStatusCode": 200, "AadTenantId": "00000000-0000-0000-0000-000000000000", "IPAddress": "198.51.100.50", "UserAgent": "LokiServer/1.2024", "RequestUri": "https://graph.microsoft.com/v1.0/users/user@example.com", "DurationMs": 1309774, "ResponseSizeBytes": 192, "SignInActivityId": "REDACTED_ACTIVITY_ID", "TokenIssuedAt": "2024-0G-07T11:47:39.0000000Z", "AppId": "00000000-0000-0000-0000-000000000000", "UserId": "user_id_9999", "Scopes": "User.Read User.Read.All", "ClientAuthMethod": 2, "_ItemId": "unique_item_id_001", "Type": "MicrosoftGraphActivityLogs", "TenantId": "00000000-0000-0000-0000-000000000000" }Kolom Wajib UDI
{ "time": "2024-08-14T19:37:39.2484449Z", "resourceId": "/TENANTS/00000000-0000-0000-0000-000000000000/PROVIDERS/MICROSOFT.AADIAM", "operationName": "Microsoft Graph Activity", "resultSignature": "200", "callerIpAddress": "203.0.113.10", "properties": { "__UDI_RequiredFields_TenantId": "00000000-0000-0000-0000-000000000000", "__UDI_RequiredFields_UniqueId": "uuid-123456-7890", "timeGenerated": "2024-08-14T19:37:39.2484449Z", "requestId": "uuid-123456-7890", "requestMethod": "GET", "responseStatusCode": 200, "ipAddress": "203.0.113.10", "userAgent": "Security-Audit-Tool", "requestUri": "https://graph.microsoft.com/v1.0/auditLogs/directoryAudits", "UserPrincipalObjectID": "user_obj_8888", "appId": "00000000-0000-0000-0000-000000000000" }, "tenantId": "00000000-0000-0000-0000-000000000000" }Format Beta UDI
{ "time": "2024-08-14T18:37:12.8698765Z", "operationVersion": "beta", "callerIpAddress": "2001:db8::ff00:42:8329", "level": "Informational", "properties": { "__UDI_RequiredFields_TenantId": "00000000-0000-0000-0000-000000000000", "apiVersion": "beta", "requestMethod": "GET", "responseStatusCode": 404, "ipAddress": "2001:db8::ff00:42:8329", "requestUri": "https://graph.microsoft.com/beta/users/user_id_masked/photos", "userId": "user_id_7777", "appId": "00000000-0000-0000-0000-000000000000" } }
Tabel Pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
callerIpAddress |
principal.asset.ip |
Kolom log mentah callerIpAddress disalin ke kolom UDM. |
callerIpAddress |
principal.ip |
Kolom log mentah callerIpAddress disalin ke kolom UDM. |
category |
security_result.category_details |
Kolom log mentah category disalin ke kolom UDM. |
correlationId |
security_result.detection_fields.value |
Kolom log mentah correlationId disalin ke kolom UDM, dengan kunci correlationId. |
Level |
security_result.detection_fields.value |
Kolom log mentah Level dikonversi menjadi string dan disalin ke kolom UDM, dengan kunci Level. |
operationName |
metadata.product_event_type |
Kolom log mentah operationName disalin ke kolom UDM. |
operationVersion |
additional.fields.value.string_value |
Kolom log mentah operationVersion disalin ke kolom UDM, dengan kunci operationVersion. |
properties.apiVersion |
metadata.product_version |
Kolom log mentah properties.apiVersion disalin ke kolom UDM. |
properties.appId |
target.resource.product_object_id |
Kolom log mentah properties.appId disalin ke kolom UDM. |
properties.atContent |
additional.fields.value.string_value |
Kolom log mentah properties.atContent disalin ke kolom UDM, dengan kunci atContent. |
properties.clientAuthMethod |
extensions.auth.auth_details |
Berdasarkan nilai properties.clientAuthMethod, kolom UDM ditetapkan ke "Klien Publik" (0), "ID Klien/Secret Klien" (1), atau "Sertifikat Klien" (2). |
properties.clientRequestId |
additional.fields.value.string_value |
Kolom log mentah properties.clientRequestId disalin ke kolom UDM, dengan kunci clientRequestId. |
properties.durationMs |
network.session_duration.seconds |
Kolom log mentah properties.durationMs dikonversi dari milidetik ke detik dan disalin ke kolom UDM. |
properties.identityProvider |
security_result.detection_fields.value |
Kolom log mentah properties.identityProvider disalin ke kolom UDM, dengan kunci identityProvider. |
properties.ipAddress |
principal.asset.ip |
Alamat IP dari kolom log mentah properties.ipAddress diekstrak dan disalin ke kolom UDM. |
properties.ipAddress |
principal.ip |
Alamat IP dari kolom log mentah properties.ipAddress diekstrak dan disalin ke kolom UDM. |
properties.location |
principal.location.name |
Kolom log mentah properties.location disalin ke kolom UDM. |
properties.operationId |
security_result.detection_fields.value |
Kolom log mentah properties.operationId disalin ke kolom UDM, dengan kunci operationId. |
properties.requestMethod |
network.http.method |
Kolom log mentah properties.requestMethod disalin ke kolom UDM. |
properties.requestId |
metadata.product_log_id |
Kolom log mentah properties.requestId disalin ke kolom UDM. |
properties.responseSizeBytes |
network.received_bytes |
Kolom log mentah properties.responseSizeBytes dikonversi menjadi bilangan bulat tanpa tanda dan disalin ke kolom UDM. |
properties.responseStatusCode |
network.http.response_code |
Kolom log mentah properties.responseStatusCode dikonversi menjadi bilangan bulat dan disalin ke kolom UDM. |
properties.roles |
additional.fields.value.string_value |
Kolom log mentah properties.roles disalin ke kolom UDM, dengan kunci roles. |
properties.scopes |
additional.fields.value.string_value |
Kolom log mentah properties.scopes disalin ke kolom UDM, dengan kunci Scopes. |
properties.servicePrincipalId |
principal.user.userid |
Kolom log mentah properties.servicePrincipalId disalin ke kolom UDM jika properties.userId kosong. |
properties.signInActivityId |
network.session_id |
Kolom log mentah properties.signInActivityId disalin ke kolom UDM. |
properties.tenantId |
metadata.product_deployment_id |
Kolom log mentah properties.tenantId disalin ke kolom UDM. |
properties.tokenIssuedAt |
additional.fields.value.string_value |
Kolom log mentah properties.tokenIssuedAt disalin ke kolom UDM, dengan kunci tokenIssuedAt. |
properties.userAgent |
network.http.user_agent |
Kolom log mentah properties.userAgent disalin ke kolom UDM. |
properties.userId |
principal.user.userid |
Kolom log mentah properties.userId disalin ke kolom UDM. |
properties.wids |
security_result.detection_fields.value |
Kolom log mentah properties.wids disalin ke kolom UDM, dengan kunci wids. |
resourceId |
target.resource.attribute.labels.value |
Kolom log mentah resourceId disalin ke kolom UDM, dengan kunci Resource ID. |
resultSignature |
additional.fields.value.string_value |
Kolom log mentah resultSignature disalin ke kolom UDM, dengan kunci resultSignature. |
time |
metadata.event_timestamp |
Kolom log mentah time diuraikan dan dikonversi menjadi stempel waktu, lalu disalin ke kolom UDM. Kolom UDM event.idm.read_only_udm.metadata.event_type ditetapkan ke "NETWORK_HTTP" jika has_principal benar (true) dan network.http tidak kosong, "STATUS_UPDATE" jika has_principal benar (true) dan network.http kosong, atau "GENERIC_EVENT" jika tidak. Kolom UDM ditetapkan ke "Microsoft Graph". Kolom UDM ditetapkan ke "Microsoft". |
Log Perubahan
Lihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.