Mengumpulkan log aktivitas Microsoft Graph

Didukung di:

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

  1. Di konsol Azure, telusuri akun penyimpanan.
  2. Klik Buat.
  3. 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.
  4. Klik Tinjau + buat.
  5. Tinjau ringkasan akun, lalu klik Buat.
  6. Dari halaman Ringkasan Akun Penyimpanan, pilih submenu Kunci akses di Keamanan + jaringan.
  7. Klik Tampilkan di samping key1 atau key2
  8. Klik Salin ke papan klip untuk menyalin kunci.
  9. Simpan kunci di lokasi yang aman untuk referensi di masa mendatang.

  10. Dari halaman Ringkasan Akun Penyimpanan, pilih submenu Endpoint di Setelan.

  11. Klik Salin ke papan klip untuk menyalin URL endpoint Layanan blob (misalnya, https://.blob.core.windows.net).

  12. Simpan URL endpoint di lokasi yang aman untuk referensi di masa mendatang.

Mengonfigurasi ekspor log aktivitas Microsoft Graph ke akun penyimpanan

  1. Di konsol Azure, telusuri Entra ID.
  2. Pilih Pemantauan > Setelan diagnostik.
  3. Klik + Tambahkan setelan diagnostik.
  4. Beri setelan nama yang unik (misalnya, ms-graph-activity).
  5. Pilih kategori MicrosoftGraphActivityLog yang ingin Anda ekspor ke Google SecOps.
  6. Di bagian Detail tujuan, pilih Arsipkan ke akun penyimpanan.
  7. Pilih langganan dan akun penyimpanan yang Anda buat pada langkah sebelumnya.
  8. Klik Simpan.

Cara menyiapkan log Aktivitas Microsoft Graph

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed; misalnya, Log Aktivitas Microsoft Graph.
  5. Pilih Microsoft Azure Blob Storage V2 sebagai Jenis sumber.
  6. Pilih Log Aktivitas Microsoft Graph sebagai Jenis log.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:

    • Azure uri: URL endpoint blob.

      ENDPOINT_URL/BLOB_NAME

      Ganti 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.

  9. Klik Berikutnya.

  10. 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.