Mengumpulkan log Audit Azure Storage
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
- Di konsol Azure, telusuri Storage accounts.
- Klik Buat.
- 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.
- Klik Review + create.
- Tinjau ringkasan akun, lalu klik Buat.
- Dari halaman Ringkasan Akun Penyimpanan, pilih submenu Kunci akses di Keamanan + jaringan.
- Klik Tampilkan di samping kunci1 atau kunci2.
- Klik Salin ke papan klip untuk menyalin kunci.
- Simpan kunci di lokasi yang aman untuk digunakan nanti.
- Dari halaman Ringkasan Akun Penyimpanan, pilih submenu Endpoint di Setelan.
- Klik Salin ke papan klip untuk menyalin URL endpoint Layanan blob; misalnya,
https://<storageaccountname>.blob.core.windows.net
. - Simpan URL endpoint di lokasi yang aman untuk digunakan nanti.
Mengonfigurasi Ekspor Log untuk Azure Storage Audit Logs
- Login ke Portal Azure menggunakan akun dengan hak istimewa Anda.
- Buka Storage Accounts > Diagnostic Settings.
- Klik + Tambahkan setelan diagnostik.
- Pilih setelan diagnostik untuk
blob
,queue
,table
, danfile
.- Pilih opsi allLogs di Grup kategori untuk setiap setelan diagnostik.
- Masukkan nama deskriptif untuk setiap setelan diagnostik.
- Pilih kotak centang Arsipkan ke akun penyimpanan sebagai tujuan.
- Tentukan Langganan dan Akun Penyimpanan.
- Klik Simpan.
Mengonfigurasi feed di Google SecOps untuk menyerap log Audit Storage Azure
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Nama feed, masukkan nama untuk feed; misalnya, Log Audit Penyimpanan Azure.
- Pilih Microsoft Azure Blob Storage sebagai Jenis sumber.
- Pilih Azure Storage Audit sebagai Jenis log.
- Klik Berikutnya.
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
)
- Ganti kode berikut:
- 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.
- URI Azure: URL endpoint blob.
Klik Berikutnya.
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
, danauth.roleDefinitionId
keadditional.fields
. - Memetakan
identity.requester.upn
kesrc.user.userid
. - Memetakan
identity.requester.objectId
kesrc.user.product_object_id
.
2024-12-06
- Memetakan
smbCommandMinor
kesecurity_result.action_details
.
2024-07-31
- Melakukan inisialisasi
statusText
dancorrelationId
ke null.
2024-04-08
- Parser yang baru dibuat.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.