Mengumpulkan log Azure APP Service
Dokumen ini menjelaskan cara mengekspor log Azure APP Service ke Google Security Operations menggunakan Akun Penyimpanan Azure. Parser mengubah log Azure App Service berformat JSON mentah menjadi Unified Data Model (UDM) terstruktur. Alat ini mengekstrak kolom yang relevan dari log mentah, melakukan pembersihan dan normalisasi data, serta memetakan informasi yang diekstrak ke kolom UDM yang sesuai, yang pada akhirnya menghasilkan objek JSON yang sesuai dengan UDM untuk setiap entri log.
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 + Create.
- 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 Log Login Azure AD
- Login ke Portal Azure menggunakan akun dengan hak istimewa.
- Buka Layanan Aplikasi, lalu pilih layanan aplikasi yang diperlukan dan sedang digunakan.
- Pilih Monitoring > App Service Logs.
- Aktifkan AKTIFKAN untuk Logging Aplikasi (blob).
- Pilih Storage di bagian Web Service Logging.
- Pilih Langganan dan Akun Penyimpanan.
- Tentukan Periode Retensi dan Kuota sesuai dengan persyaratan Anda.
- Aktifkan AKTIF untuk Pesan error mendetail.
- Aktifkan AKTIF untuk Pelacakan permintaan yang gagal.
- Klik Simpan.
Mengonfigurasi feed di Google SecOps untuk menyerap log Azure APP Service
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya, Azure APP Service Logs).
- Pilih Microsoft Azure Blob Storage sebagai Jenis sumber.
- Pilih Azure APP Service sebagai Log type.
- 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
)
- 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 |
---|---|---|
AppRoleInstance | read_only_udm.principal.resource.product_object_id | Pemetaan langsung |
AppRoleName | read_only_udm.principal.resource.name | Pemetaan langsung |
AppVersion | read_only_udm.principal.resource.attribute.labels.value | Pemetaan langsung |
Kategori | read_only_udm.metadata.product_event_type | Pemetaan langsung |
CIp | read_only_udm.target.asset.ip | Pemetaan langsung |
CIp | read_only_udm.target.ip | Pemetaan langsung |
ClientCity | read_only_udm.principal.location.city | Pemetaan langsung |
ClientCountryOrRegion | read_only_udm.principal.location.country_or_region | Pemetaan langsung |
ClientIP | read_only_udm.principal.asset.ip | Pemetaan langsung |
ClientIP | read_only_udm.principal.ip | Pemetaan langsung |
ClientStateOrProvince | read_only_udm.principal.location.state | Pemetaan langsung |
ClientType | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
ComputerName | read_only_udm.principal.asset.hostname | Pemetaan langsung |
ComputerName | read_only_udm.principal.hostname | Pemetaan langsung |
Cookie | read_only_udm.principal.resource.attribute.labels.value | Pemetaan langsung |
CsBytes | read_only_udm.network.sent_bytes | Diganti namanya dari CsBytes |
CsHost | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
CsMethod | read_only_udm.network.http.method | Pemetaan langsung |
CsUriQuery | read_only_udm.principal.resource.attribute.labels.value | Pemetaan langsung |
CsUriStem | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
CsUriStem | read_only_udm.target.url | Pemetaan langsung |
CsUsername | read_only_udm.principal.user.user_display_name | Pemetaan langsung |
EventIpAddress | read_only_udm.principal.asset.ip | Pemetaan langsung |
EventIpAddress | read_only_udm.principal.ip | Pemetaan langsung |
EventPrimaryStampName | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
EventStampName | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
EventStampType | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
Host | read_only_udm.principal.asset.hostname | Pemetaan langsung |
Host | read_only_udm.principal.hostname | Pemetaan langsung |
IKey | read_only_udm.target.resource.attribute.labels.value | Pemetaan langsung |
Instance | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
Nama | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
Protokol | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
Protokol | read_only_udm.network.application_protocol | Dipetakan ke HTTP jika Protokol adalah HTTP/1.1 |
Referer | read_only_udm.network.http.referral_url | Pemetaan langsung |
ResourceGUID | read_only_udm.target.resource.product_object_id | Diganti namanya dari ResourceGUID |
SDKVersion | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
SDKVersion | read_only_udm.principal.resource.attribute.labels.value | Pemetaan langsung |
SPort | read_only_udm.principal.port | Diganti namanya dari SPort |
ScBytes | read_only_udm.network.received_bytes | Diganti namanya dari ScBytes |
ScStatus | read_only_udm.network.http.response_code | Diganti namanya dari ScStatus |
TimeTaken | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
Jenis | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
Pengguna | read_only_udm.principal.user.userid | Pemetaan langsung |
UserAddress | read_only_udm.principal.asset.ip | Diekstrak dari UserAddress jika merupakan alamat IP yang valid |
UserAddress | read_only_udm.principal.ip | Diekstrak dari UserAddress jika merupakan alamat IP yang valid |
UserAgent | read_only_udm.network.http.user_agent | Pemetaan langsung |
UserDisplayName | read_only_udm.principal.user.user_display_name | Pemetaan langsung |
kategori | read_only_udm.metadata.product_event_type | Pemetaan langsung |
level | read_only_udm.security_result.severity | Diubah menjadi huruf besar dan diganti namanya dari level |
location | read_only_udm.principal.location.name | Pemetaan langsung |
operationName | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
record.properties.Protocol | read_only_udm.additional.fields.value.string_value | Pemetaan langsung |
record.properties.Result | read_only_udm.security_result.summary | Pemetaan langsung |
record.time | read_only_udm.metadata.event_timestamp | Diurai sebagai stempel waktu RFC 3339 |
resourceId | read_only_udm.target.resource.attribute.labels.value | Pemetaan langsung |
resourceId | read_only_udm.target.resource.product_object_id | Diubah namanya dari resourceId |
read_only_udm.metadata.event_type | Ditentukan berdasarkan keberadaan akun utama, target, dan Protokol. Tetapkan ke NETWORK_HTTP jika akun utama, target, dan Protocol=HTTP ada. Tetapkan ke NETWORK_CONNECTION jika akun utama dan target ada. Tetapkan ke STATUS_UPDATE jika hanya ada akun utama. Jika tidak, tetapkan ke GENERIC_EVENT . |
Perubahan
2024-10-18
Peningkatan:
- Memetakan
properties.XForwardedHost
keprincipal.hostname
danprincipal.asset.hostname
. - Memetakan
properties_category
keadditional.fields
. - Memetakan
properties.roleInstance
keprincipal.resource.product_object_id
. - Memetakan
properties.message
kesecurity_result.summary
.
2024-09-30
Peningkatan:
- Menambahkan dukungan untuk mengurai format baru log JSON yang tidak diuraikan.
2024-06-24
Peningkatan:
- Memetakan
metadata.product_name
danmetadata.vendor_name
keAZURE_APP_SERVICE
.
2024-06-07
Peningkatan:
- Menambahkan dukungan untuk log JSON, jika tidak dalam format array.
- Memetakan
properties.ScSubStatus
keadditional.fields
. - Memetakan
properties.ScWin32Status
keadditional.fields
.
2024-04-25
Peningkatan:
- Memetakan
properties.User
keprincipal.user.userid
. - Memetakan
properties.UserDisplayName
keprincipal.user.user_display_name
. - Memetakan
properties.UserAddress
keprincipal.ip
. - Memetakan
properties.Protocol
,ClientBrowser
,ClientModel
,ClientOS
,OperationId
,ParentId
, danItemCount
keadditional.fields
. - Memetakan
CsUriQuery
,SDKVersion
, danCookie
keprincipal.resource.attribute.labels
. - Memetakan
SessionId
kenetwork.session_id
. - Memetakan
Message
kesecurity_result.summary
. - Memetakan
SeverityLevel
kesecurity_result.severity_details
.
2024-02-20
Peningkatan:
- Memetakan
record.AppRoleInstance
keprincipal.resource.product_object_id
. - Memetakan
record.AppRoleName
keprincipal.resource.name
. - Memetakan
record.ClientCity
keprincipal.location.city
. - Memetakan
record.ClientCountryOrRegion
keprincipal.location.country_or_region
. - Memetakan
record.ClientStateOrProvince
keprincipal.location.state
. - Memetakan
record.ClientIP
keprincipal.ip
. - Memetakan
Result
kesecurity_result.summary
. - Memetakan
UserAgent
kenetwork.http.user_agent
. - Memetakan
Referer
kenetwork.http.referral_url
. - Memetakan
record.ResourceGUID
ketarget.resource.product_object_id
. - Jika
record.ResourceGUID
tidak ada, pemeta akan memetakanrecord.resourceId
ketarget.resource.product_object_id
. - Jika
record.ResourceGUID
ada, pemetakanrecord.resourceId
keadditional.fields
. - Memetakan
record.Type
keadditional.fields
. - Memetakan
record.ClientType
keadditional.fields
. - Memetakan
record.SDKVersion
keadditional.fields
. - Memetakan
record.Name
keadditional.fields
. - Memetakan
record.Instance
keadditional.fields
. - Memetakan
record.TimeTaken
keadditional.fields
. - Memetakan
record.Cookie
keadditional.fields
. - Memetakan
record.AppVersion
keprincipal.resource.attribute.labels
. - Memetakan
record.IKey
ketarget.resource.attribute.labels
. - Memetakan
record.Category
kemetadata.product_event_type
. - Memetakan
CsUriStem
ketarget.url
. - Mengubah pemetaan
CsBytes
darinetwork.received_bytes
menjadinetwork.sent_bytes
. - Mengubah pemetaan
ScBytes
darinetwork.sent_bytes
menjadinetwork.received_bytes
.
2023-12-07
- Parser yang baru dibuat.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.