Mengumpulkan log Azure APP Service

Didukung di:

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

  1. Di konsol Azure, telusuri Storage accounts.
  2. Klik + Create.
  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 Log Login Azure AD

  1. Login ke Portal Azure menggunakan akun dengan hak istimewa.
  2. Buka Layanan Aplikasi, lalu pilih layanan aplikasi yang diperlukan dan sedang digunakan.
  3. Pilih Monitoring > App Service Logs.
  4. Aktifkan AKTIFKAN untuk Logging Aplikasi (blob).
  5. Pilih Storage di bagian Web Service Logging.
  6. Pilih Langganan dan Akun Penyimpanan.
  7. Tentukan Periode Retensi dan Kuota sesuai dengan persyaratan Anda.
  8. Aktifkan AKTIF untuk Pesan error mendetail.
  9. Aktifkan AKTIF untuk Pelacakan permintaan yang gagal.
  10. Klik Simpan.

Mengonfigurasi feed di Google SecOps untuk menyerap log Azure APP Service

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan baru.
  3. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Azure APP Service Logs).
  4. Pilih Microsoft Azure Blob Storage sebagai Jenis sumber.
  5. Pilih Azure APP Service sebagai Log type.
  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
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 ke principal.hostname dan principal.asset.hostname.
  • Memetakan properties_category ke additional.fields.
  • Memetakan properties.roleInstance ke principal.resource.product_object_id.
  • Memetakan properties.message ke security_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 dan metadata.vendor_name ke AZURE_APP_SERVICE.

2024-06-07

Peningkatan:

  • Menambahkan dukungan untuk log JSON, jika tidak dalam format array.
  • Memetakan properties.ScSubStatus ke additional.fields.
  • Memetakan properties.ScWin32Status ke additional.fields.

2024-04-25

Peningkatan:

  • Memetakan properties.User ke principal.user.userid.
  • Memetakan properties.UserDisplayName ke principal.user.user_display_name.
  • Memetakan properties.UserAddress ke principal.ip.
  • Memetakan properties.Protocol, ClientBrowser, ClientModel, ClientOS, OperationId, ParentId, dan ItemCount ke additional.fields.
  • Memetakan CsUriQuery, SDKVersion, dan Cookie ke principal.resource.attribute.labels.
  • Memetakan SessionId ke network.session_id.
  • Memetakan Message ke security_result.summary.
  • Memetakan SeverityLevel ke security_result.severity_details.

2024-02-20

Peningkatan:

  • Memetakan record.AppRoleInstance ke principal.resource.product_object_id.
  • Memetakan record.AppRoleName ke principal.resource.name.
  • Memetakan record.ClientCity ke principal.location.city.
  • Memetakan record.ClientCountryOrRegion ke principal.location.country_or_region.
  • Memetakan record.ClientStateOrProvince ke principal.location.state.
  • Memetakan record.ClientIP ke principal.ip.
  • Memetakan Result ke security_result.summary.
  • Memetakan UserAgent ke network.http.user_agent.
  • Memetakan Referer ke network.http.referral_url.
  • Memetakan record.ResourceGUID ke target.resource.product_object_id.
  • Jika record.ResourceGUID tidak ada, pemeta akan memetakan record.resourceId ke target.resource.product_object_id.
  • Jika record.ResourceGUID ada, pemetakan record.resourceId ke additional.fields.
  • Memetakan record.Type ke additional.fields.
  • Memetakan record.ClientType ke additional.fields.
  • Memetakan record.SDKVersion ke additional.fields.
  • Memetakan record.Name ke additional.fields.
  • Memetakan record.Instance ke additional.fields.
  • Memetakan record.TimeTaken ke additional.fields.
  • Memetakan record.Cookie ke additional.fields.
  • Memetakan record.AppVersion ke principal.resource.attribute.labels.
  • Memetakan record.IKey ke target.resource.attribute.labels.
  • Memetakan record.Category ke metadata.product_event_type.
  • Memetakan CsUriStem ke target.url.
  • Mengubah pemetaan CsBytes dari network.received_bytes menjadi network.sent_bytes.
  • Mengubah pemetaan ScBytes dari network.sent_bytes menjadi network.received_bytes.

2023-12-07

  • Parser yang baru dibuat.

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