Mengumpulkan log Audit Azure Storage

Didukung di:

Dokumen ini menjelaskan cara mengekspor log Azure Storage Audit ke Google Security Operations menggunakan Akun Storage Azure. Parser memproses log dalam format JSON, yang mengubahnya menjadi Unified Data Model (UDM). Proses ini mengekstrak kolom dari log mentah, melakukan konversi jenis data, memperkaya data dengan konteks tambahan (seperti penguraian agen pengguna dan pengelompokan alamat IP), dan memetakan kolom yang diekstrak ke kolom UDM yang sesuai.

Sebelum Memulai

  • Pastikan Anda memiliki instance Google Chronicle.
  • Pastikan Anda memiliki tenant Azure yang aktif.
  • Pastikan Anda memiliki akses dengan hak istimewa ke Azure.

Mengonfigurasi Akun Azure Storage

  1. Di konsol Azure, telusuri Storage accounts.
  2. Klik Buat.
  3. Tentukan nilai untuk parameter input berikut:
    • Langganan: pilih langganan.
    • Resource Group: pilih grup resource.
    • Region: pilih region.
    • Performa: pilih performa (Standar direkomendasikan).
    • Redundansi: pilih redundansi (GRS atau LRS direkomendasikan).
    • Nama akun penyimpanan: masukkan nama untuk akun penyimpanan baru.
  4. Klik Review + create.
  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 kunci1 atau kunci2.
  8. Klik Salin ke papan klip untuk menyalin kunci.
  9. Simpan kunci di lokasi yang aman untuk digunakan nanti.
  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://<storageaccountname>.blob.core.windows.net.
  12. Simpan URL endpoint di lokasi yang aman untuk digunakan nanti.

Mengonfigurasi Ekspor Log untuk Azure Storage Audit Logs

  1. Login ke Portal Azure menggunakan akun dengan hak istimewa Anda.
  2. Buka Storage Accounts > Diagnostic Settings.
  3. Klik + Tambahkan setelan diagnostik.
  4. Pilih setelan diagnostik untuk blob, queue, table, dan file.
    • Pilih opsi allLogs di Grup kategori untuk setiap setelan diagnostik.
    • Masukkan nama deskriptif untuk setiap setelan diagnostik.
  5. Pilih kotak centang Arsipkan ke akun penyimpanan sebagai tujuan.
    • Tentukan Langganan dan Akun Penyimpanan.
  6. Klik Simpan.

Mengonfigurasi feed di Google SecOps untuk menyerap log Audit Storage Azure

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan baru.
  3. Di kolom Nama feed, masukkan nama untuk feed; misalnya, Log Audit Penyimpanan Azure.
  4. Pilih Microsoft Azure Blob Storage sebagai Jenis sumber.
  5. Pilih Azure Storage Audit sebagai Jenis log.
  6. Klik Berikutnya.
  7. Tentukan nilai untuk parameter input berikut:

    • URI Azure: 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 (seperti, <logname>-logs)
    • URI adalah: pilih JENIS URI sesuai dengan konfigurasi aliran log (File tunggal | Direktori | Direktori yang menyertakan subdirektori).
    • Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.

    • Kunci bersama: kunci akses ke Azure Blob Storage.

    • Namespace aset: namespace aset.

    • Label penyerapan: label yang akan diterapkan ke peristiwa dari feed ini.

  8. Klik Berikutnya.

  9. Tinjau konfigurasi feed baru Anda di layar Finalize, lalu klik Submit.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
callerIpAddress principal.asset.ip Alamat IP diekstrak dari kolom callerIpAddress menggunakan pola grok dan ditetapkan ke principal.asset.ip.
callerIpAddress principal.ip Alamat IP diekstrak dari kolom callerIpAddress menggunakan pola grok dan ditetapkan ke principal.ip.
callerIpAddress principal.port Nomor port diekstrak dari kolom callerIpAddress menggunakan pola grok dan ditetapkan ke principal.port.
category security_result.category_details Nilai kolom category ditetapkan ke security_result.category_details.
correlationId security_result.detection_fields[0].key String literal correlationId ditetapkan ke kolom kunci.
correlationId security_result.detection_fields[0].value Nilai kolom correlationId ditetapkan ke security_result.detection_fields[0].value. Nilai kolom time diuraikan sebagai stempel waktu dan ditetapkan ke event.idm.read_only_udm.metadata.event_timestamp. Jika category adalah StorageWrite dan principal.user.userid ada (berasal dari properties.accountName), nilainya akan ditetapkan ke USER_RESOURCE_UPDATE_CONTENT. Jika category adalah StorageDelete dan principal.user.userid ada, nilainya akan ditetapkan ke USER_RESOURCE_DELETION. Jika tidak, nilai ini ditetapkan ke USER_RESOURCE_ACCESS. String literal AZURE_STORAGE_AUDIT ditetapkan ke event.idm.read_only_udm.metadata.log_type. String literal AZURE_STORAGE_AUDIT ditetapkan ke event.idm.read_only_udm.metadata.product_name. Nilai kolom schemaVersion ditetapkan ke event.idm.read_only_udm.metadata.product_version. String literal AZURE_STORAGE_AUDIT ditetapkan ke event.idm.read_only_udm.metadata.vendor_name.
location target.location.name Nilai kolom location ditetapkan ke target.location.name.
operationName additional.fields[x].key String literal operationName ditetapkan ke kolom kunci.
operationName additional.fields[x].value.string_value Nilai kolom operationName ditetapkan ke additional.fields[x].value.string_value.
operationVersion additional.fields[x].key String literal operationVersion ditetapkan ke kolom kunci.
operationVersion additional.fields[x].value.string_value Nilai kolom operationVersion ditetapkan ke additional.fields[x].value.string_value.
properties.accountName principal.user.userid Nilai kolom properties.accountName ditetapkan ke principal.user.userid.
properties.clientRequestId additional.fields[x].key String literal clientRequestId ditetapkan ke kolom kunci.
properties.clientRequestId additional.fields[x].value.string_value Nilai kolom properties.clientRequestId ditetapkan ke additional.fields[x].value.string_value.
properties.etag additional.fields[x].key String literal etag ditetapkan ke kolom kunci.
properties.etag additional.fields[x].value.string_value Nilai kolom properties.etag ditetapkan ke additional.fields[x].value.string_value.
properties.objectKey additional.fields[x].key String literal objectKey ditetapkan ke kolom kunci.
properties.objectKey additional.fields[x].value.string_value Nilai kolom properties.objectKey ditetapkan ke additional.fields[x].value.string_value.
properties.requestMd5 additional.fields[x].key String literal requestMd5 ditetapkan ke kolom kunci.
properties.requestMd5 additional.fields[x].value.string_value Nilai kolom properties.requestMd5 ditetapkan ke additional.fields[x].value.string_value.
properties.responseMd5 additional.fields[x].key String literal responseMd5 ditetapkan ke kolom kunci.
properties.responseMd5 additional.fields[x].value.string_value Nilai kolom properties.responseMd5 ditetapkan ke additional.fields[x].value.string_value.
properties.serviceType additional.fields[x].key String literal serviceType ditetapkan ke kolom kunci.
properties.serviceType additional.fields[x].value.string_value Nilai kolom properties.serviceType ditetapkan ke additional.fields[x].value.string_value.
properties.tlsVersion network.tls.version Nilai kolom properties.tlsVersion ditetapkan ke network.tls.version.
properties.userAgentHeader network.http.parsed_user_agent Nilai kolom properties.userAgentHeader diuraikan sebagai string agen pengguna dan ditetapkan ke network.http.parsed_user_agent.
properties.userAgentHeader network.http.user_agent Nilai kolom properties.userAgentHeader ditetapkan ke network.http.user_agent.
protocol network.application_protocol Nilai kolom protocol ditetapkan ke network.application_protocol.
resourceId target.resource.id Nilai kolom resourceId ditetapkan ke target.resource.id.
resourceId target.resource.product_object_id Nilai kolom resourceId ditetapkan ke target.resource.product_object_id. String literal DATABASE ditetapkan ke target.resource.resource_type.
resourceType additional.fields[x].key String literal resourceType ditetapkan ke kolom kunci.
resourceType additional.fields[x].value.string_value Nilai kolom resourceType ditetapkan ke additional.fields[x].value.string_value. Jika statusText adalah Success, nilainya akan ditetapkan ke ALLOW.
statusCode network.http.response_code Nilai kolom statusCode dikonversi menjadi bilangan bulat dan ditetapkan ke network.http.response_code. String literal MICROSOFT_AZURE ditetapkan ke target.cloud.environment.
time timestamp Nilai kolom time diuraikan sebagai stempel waktu dan ditetapkan ke timestamp.
uri network.http.referral_url Nilai kolom uri ditetapkan ke network.http.referral_url.

Perubahan

2024-12-12

  • Memetakan identity.tokenHash, identity.type, identity.requester.appId, identity.requester.tenantId, identity.requester.tokenIssuer, properties.sourceAccessTier, principal.type, auth.action, auth.roleAssignmentId, dan auth.roleDefinitionId ke additional.fields.
  • Memetakan identity.requester.upn ke src.user.userid.
  • Memetakan identity.requester.objectId ke src.user.product_object_id.

2024-12-06

  • Memetakan smbCommandMinor ke security_result.action_details.

2024-07-31

  • Melakukan inisialisasi statusText dan correlationId ke null.

2024-04-08

  • Parser yang baru dibuat.

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.