Bagikan melalui


Pemantauan dan pembuatan log Azure Web Application Firewall

Azure Web Application Firewall di Azure Front Door menyediakan pengelogan dan telemetri yang luas untuk membantu Anda memahami performa firewall aplikasi web (WAF) Anda dan tindakan yang diperlukan.

Log WAF Azure Front Door terintegrasi dengan Azure Monitor. Azure Monitor memungkinkan Anda melacak informasi diagnostik, termasuk pemberitahuan dan log WAF. Anda dapat mengonfigurasi pemantauan WAF dalam sumber daya Azure Front Door di portal Azure di bawah tab Diagnostik, melalui infrastruktur sebagai pendekatan kode, atau dengan menggunakan Azure Monitor secara langsung.

Metrik

Azure Front Door secara otomatis merekam metrik untuk membantu Anda memahami perilaku WAF Anda.

Untuk mengakses metrik WAF Anda:

  1. Masuk ke portal Azure dan buka profil Azure Front Door Anda.
  2. Di panel paling kiri di bawah Pemantauan, pilih tab Metrik .
  3. Tambahkan metrik Jumlah Permintaan Web Application Firewall untuk melacak jumlah permintaan yang cocok dengan aturan WAF.

Anda dapat membuat filter kustom berdasarkan jenis tindakan dan nama aturan. Metrik menyertakan permintaan dengan semua tindakan kecuali Log.

Cuplikan layar yang memperlihatkan metrik untuk Azure Front Door WAF.

Metrik tantangan JavaScript (pratinjau)

Untuk mengakses metrik WAF tantangan JavaScript Anda:

  • Tambahkan metrik Web Application Firewall JS Challenge Request Count untuk melacak jumlah permintaan yang cocok dengan aturan WAF tantangan JavaScript.

Filter berikut disediakan sebagai bagian dari metrik ini:

  • PolicyName: Ini adalah nama kebijakan WAF
  • Aturan: Ini bisa menjadi aturan kustom atau aturan bot apa pun
  • Tindakan: Ada empat nilai yang mungkin untuk tindakan JS Challenge
    • Dikeluarkan: JS Challenge dipanggil untuk pertama kalinya
    • Lulus: Komputasi JS Challenge berhasil dan jawaban diterima
    • Valid: Cookie validitas JS Challenge hadir
    • Diblokir: Komputasi JS Challenge gagal

Cuplikan layar memperlihatkan metrik tantangan JavaScript.

Log dan diagnostik

Azure Front Door WAF menyediakan pelaporan terperinci pada setiap permintaan dan setiap ancaman yang dideteksinya. Pengelogan terintegrasi dengan log dan pemberitahuan diagnostik Azure dengan menggunakan log Azure Monitor.

Log tidak diaktifkan secara default. Anda harus mengaktifkan log secara eksplisit. Anda dapat mengonfigurasi log di portal Azure dengan menggunakan tab Pengaturan diagnostik.

Cuplikan layar yang memperlihatkan cara mengaktifkan log WAF.

Jika pengelogan diaktifkan dan aturan WAF dipicu, pola yang cocok dicatat dalam teks biasa untuk membantu Anda menganalisis dan men-debug perilaku kebijakan WAF. Anda dapat menggunakan pengecualian untuk menyempurnakan aturan dan mengecualikan data apa pun yang ingin Anda kecualikan dari log. Untuk informasi selengkapnya, lihat Daftar pengecualian firewall aplikasi web di Azure Front Door.

Anda dapat mengaktifkan tiga jenis log Azure Front Door:

  • Log WAF
  • Log akses
  • Log pemeriksaan kesehatan

Log aktivitas diaktifkan secara default dan memberikan visibilitas ke dalam operasi yang dilakukan pada sumber daya Azure Anda, seperti perubahan konfigurasi pada profil Azure Front Door Anda.

Log WAF

Log FrontDoorWebApplicationFirewallLog mencakup permintaan yang cocok dengan aturan WAF.

Log FrontdoorWebApplicationFirewallLog mencakup permintaan apa pun yang cocok dengan aturan WAF.

Tabel berikut ini memperlihatkan nilai yang dicatat untuk setiap permintaan.

Properti Deskripsi
Tindakan Tindakan yang diambil atas permintaan. Log mencakup permintaan dengan semua tindakan. Tindakannya adalah:
  • Allow dan allow: Permintaan diizinkan untuk melanjutkan pemrosesan.
  • Block dan block: Permintaan cocok dengan aturan WAF yang dikonfigurasi untuk memblokir permintaan. Atau, ambang penskoran anomali tercapai dan permintaan diblokir.
  • Log dan log: Permintaan cocok dengan aturan WAF yang dikonfigurasi untuk menggunakan Log tindakan.
  • AnomalyScoring dan logandscore: Permintaan cocok dengan aturan WAF. Aturan berkontribusi pada skor anomali. Permintaan mungkin atau mungkin tidak diblokir tergantung pada aturan lain yang berjalan pada permintaan yang sama.
  • JS Challenge dan JSChallengeIssued: Dikeluarkan karena izin tantangan yang hilang/tidak valid, jawaban yang hilang.

    Log dibuat ketika klien meminta akses ke aplikasi web untuk pertama kalinya dan belum ditantang sebelumnya. Klien ini menerima halaman tantangan JS dan melanjutkan untuk menghitung tantangan JS. Setelah komputasi berhasil, klien diberikan cookie validitas.
  • JS Challenge dan JSChallengePass: Diteruskan karena jawaban tantangan yang valid.

    Log ini dibuat ketika klien memecahkan tantangan JS dan mengirimkan ulang permintaan dengan jawaban yang benar. Dalam hal ini, Azure WAF memvalidasi cookie dan melanjutkan untuk memproses aturan yang tersisa tanpa menghasilkan tantangan JS lain.
  • JS Challenge dan JSChallengeValid: Logged/passthrough karena tantangan yang valid.

    Log ini dibuat ketika klien sebelumnya telah menyelesaikan tantangan. Dalam hal ini, Azure WAF mencatat permintaan dan melanjutkan untuk memproses aturan yang tersisa.
  • JS Challenge dan JSChallengeBlock: Diblokir

    Log ini dibuat ketika komputasi tantangan JS gagal.
ClientIp Alamat IP klien yang membuat permintaan. Jika terdapat header X-Forwarded-For dalam permintaan, alamat IP klien diambil dari bidang header tersebut sebagai gantinya.
ClientPort Alamat IP klien yang membuat permintaan.
Detail Detail selengkapnya tentang permintaan, termasuk ancaman apa pun yang terdeteksi.
matchVariableName: Nama parameter HTTP dari permintaan yang cocok, misalnya, nama header (maksimum hingga 100 karakter).
matchVariableValue: Nilai yang memicu kecocokan (maksimum hingga 100 karakter).
Host Header Host permintaan.
Kebijakan Nama kebijakan WAF yang memproses permintaan.
PolicyMode Mode operasi kebijakan WAF. Nilai yang mungkin adalah Prevention dan Detection.
RequestUri URI penuh dari permintaan.
RuleName Nama aturan WAF yang cocok dengan permintaan.
SocketIP Alamat IP sumber yang dilihat oleh WAF. Alamat IP ini didasarkan pada sesi TCP dan tidak mempertimbangkan header permintaan apa pun.
TrackingReference String referensi unik yang mengidentifikasi permintaan yang dilayani oleh Azure Front Door. Nilai ini dikirim ke klien di header respons X-Azure-Ref. Gunakan bidang ini saat Anda mencari permintaan tertentu di log.

Contoh kueri berikut menunjukkan permintaan yang diblokir Azure Front Door WAF:

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorWebApplicationFirewallLog" 
| where action_s == "Block" 
AzureDiagnostics
| where ResourceType == "FRONTDOORS" and Category == "FrontdoorWebApplicationFirewallLog"
| where action_s == "Block"

Cuplikan berikut menunjukkan contoh entri log, termasuk alasan permintaan diblokir:

{
  "time": "2020-06-09T22:32:17.8376810Z",
  "category": "FrontdoorWebApplicationFirewallLog",
  "operationName": "Microsoft.Cdn/Profiles/Write",
  "properties": {
    "clientIP": "xxx.xxx.xxx.xxx",
    "clientPort": "52097",
    "socketIP": "xxx.xxx.xxx.xxx",
    "requestUri": "https://wafdemofrontdoorwebapp.azurefd.net:443/?q=%27%20or%201=1",
    "ruleName": "Microsoft_DefaultRuleSet-1.1-SQLI-942100",
    "policy": "WafDemoCustomPolicy",
    "action": "Block",
    "host": "wafdemofrontdoorwebapp.azurefd.net",
    "trackingReference": "08Q3gXgAAAAAe0s71BET/QYwmqtpHO7uAU0pDRURHRTA1MDgANjMxNTAwZDAtOTRiNS00YzIwLTljY2YtNjFhNzMyOWQyYTgy",
    "policyMode": "prevention",
    "details": {
      "matches": [
        {
          "matchVariableName": "QueryParamValue:q",
          "matchVariableValue": "' or 1=1"
        }
      ]
    }
  }
}
{
  "time": "2020-06-09T22:32:17.8376810Z",
  "category": "FrontdoorWebApplicationFirewallLog",
  "operationName": "Microsoft.Network/FrontDoorWebApplicationFirewallLog/Write",
  "properties": {
    "clientIP": "xxx.xxx.xxx.xxx",
    "clientPort": "52097",
    "socketIP": "xxx.xxx.xxx.xxx",
    "requestUri": "https://wafdemofrontdoorwebapp.azurefd.net:443/?q=%27%20or%201=1",
    "ruleName": "Microsoft_DefaultRuleSet-1.1-SQLI-942100",
    "policy": "WafDemoCustomPolicy",
    "action": "Block",
    "host": "wafdemofrontdoorwebapp.azurefd.net",
    "trackingReference": "08Q3gXgAAAAAe0s71BET/QYwmqtpHO7uAU0pDRURHRTA1MDgANjMxNTAwZDAtOTRiNS00YzIwLTljY2YtNjFhNzMyOWQyYTgy",
    "policyMode": "prevention",
    "details": {
      "matches": [
        {
          "matchVariableName": "QueryParamValue:q",
          "matchVariableValue": "' or 1=1"
        }
      ]
    }
  }
}

Untuk informasi selengkapnya tentang log Azure Front Door lainnya, lihat Memantau metrik dan log di Azure Front Door.

Langkah berikutnya

Pelajari selengkapnya tentang Azure Front Door.