Mengumpulkan log aktivitas Microsoft Graph
Parser ini mengekstrak kolom dari log aktivitas Microsoft Graph, lalu mengubahnya menjadi Model Data Terpadu (UDM). Alat 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 ada atau tidaknya 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 storage accounts.
- Klik Create.
- Tentukan nilai untuk parameter input berikut:
- Subscription: pilih langganan.
- Resource Group: pilih grup resource.
- Region: pilih region.
- Performa: pilih tingkat performa yang Anda inginkan (disarankan standar).
- Redundancy: pilih tingkat redundansi yang Anda inginkan (GRS atau LRS direkomendasikan).
- Storage account name: masukkan nama untuk akun penyimpanan baru.
- Klik Review + create.
- Tinjau ringkasan akun, lalu klik Buat.
- Dari halaman Storage Account Overview, pilih submenu Access keys di Security + networking.
- Klik Show di samping key1 atau key2
- Klik Salin ke papan klip untuk menyalin kunci.
Simpan kunci di lokasi yang aman untuk referensi pada masa mendatang.
Dari halaman Storage Account Overview, pilih submenu Endpoints di Settings.
Klik Copy to clipboard untuk menyalin URL endpoint Blob service (misalnya, https://
.blob.core.windows.net ).Simpan URL endpoint di lokasi yang aman untuk referensi pada masa mendatang.
Mengonfigurasi ekspor log aktivitas Microsoft Graph ke akun penyimpanan
- Di konsol Azure, telusuri Entra ID.
- Pilih Monitoring > Diagnostic settings.
- Klik + Add diagnostic setting.
- Beri nama unik untuk setelan (misalnya, ms-graph-activity).
- Pilih kategori MicrosoftGraphActivityLog yang ingin Anda ekspor ke Google SecOps.
- Di bagian Destination details, pilih Archive to a storage account.
- Pilih langganan dan akun penyimpanan yang Anda buat di langkah sebelumnya.
Klik Simpan.
Cara menyiapkan log Aktivitas Microsoft Graph
- 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 Feed name, masukkan nama untuk feed; misalnya, Microsoft Graph Activity Logs.
- Pilih Microsoft Azure Blob Storage V2 sebagai Source type.
- Pilih Microsoft Graph Log aktivitas sebagai Log type.
- 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.
Shared key: kunci akses ke Azure Blob Storage.
Klik Berikutnya.
Tinjau konfigurasi feed berita baru Anda di layar Finalize, lalu klik Submit.
Contoh log 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 "Public Client" (0), "Client ID/Client Secret" (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 bernilai benar dan network.http tidak kosong, "STATUS_UPDATE" jika has_principal bernilai benar dan network.http kosong, atau "GENERIC_EVENT" jika tidak. Kolom UDM ditetapkan ke "Microsoft Graph". Kolom UDM ditetapkan ke "Microsoft". |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.