API Security memungkinkan Anda mengonfigurasi kebijakan bawaan dan kustom di sembilan area: deteksi risiko, event keamanan, data sensitif, kredensial autentikasi, tujuan bisnis, daftar izin (allowlist), manajemen siklus hidup, langganan log, dan objek efektif. Kebijakan ini meningkatkan akurasi deteksi, mengurangi false positive, serta membantu Anda merespons ancaman terhadap aset API Anda.
Konsep utama
| Konsep | Deskripsi |
|---|---|
| Risk | Kerentanan pada API yang disebabkan oleh cacat dalam pengembangan, manajemen, atau konfigurasi. Risiko tidak berarti serangan telah terjadi. |
| Security event | Pemanggilan abnormal atau serangan terhadap API, seperti serangan brute-force pada API login atau serangan pembanjiran pesan pada API SMS. |
1. Konfigurasi deteksi risiko
Kebijakan deteksi risiko bawaan mencakup kategori kerentanan umum. Untuk setiap kebijakan bawaan, Anda dapat mengaktifkan atau menonaktifkannya serta mengatur tingkat risikonya menjadi Low, Medium, atau High.
Selain kebijakan bawaan, Anda dapat membuat hingga 20 kebijakan deteksi risiko kustom.
Referensi kondisi deteksi
Tabel berikut mencantumkan semua bidang pencocokan yang didukung beserta operator logikanya.
| Match field | Sub-condition | Logical operators | Match content |
|---|---|---|---|
| Domain Name | Tidak didukung | Is one of / Contains no value / Is one of (exact match) / Is not one of (exact match) | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| API | Tidak didukung | Is one of / Is not one of / Is one of (exact match) / Is not one of (exact match) | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Request Method | Tidak didukung | Is one of (exact match) / Is not one of (exact match) | Pilih satu atau beberapa metode: GET, POST, DELETE, PUT. |
| User-Agent | Tidak didukung | Can be one of / Contains no value / Is one of (exact match) / Is not one of (exact match) | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Referer | Tidak didukung | Contains one or more values / Contains no value / Is one of (exact match) / Is not one of (exact match) | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Communication Protocol | Tidak didukung | Equals | Pilih HTTP atau HTTPS. |
| Request Content-Type | Tidak didukung | Is one of / Contains no value | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Request Length | Tidak didukung | Equals / Is less than / Is greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
| Response Content-Type | Tidak didukung | Is one of / No value | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Response Length | Tidak didukung | Equals / Is less than / Is greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
| HTTP Status Code | Tidak didukung | Is one of (exact match) / Is not one of (exact match) | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Request Header | Custom Header | Exists / Does not exist / Length is / Length is less than / Length is greater than / Is one of / Contains no value | — |
| Cookie Parameter | Custom Cookie-Exact | Exists / Does not exist / Length is / Length is less than / Length is greater than / Is one of / Contains no value | — |
| GET Parameter | Custom Parameter | Exists / Does not exist / Length is / Length is less than / Length is greater than / Is one of / Is not one of | — |
| POST Parameter | Custom Post-Arg | Exists / Does not exist / Length is / Length is less than / Length is greater than / Contains one or more values / Is not one of | — |
| Response Header | Response Header | Exists / Does not exist / Length is / Length is less than / Length is greater than / Is one of / Contains no value | — |
| Response Parameter | Response Parameter | Exists / Does not exist / Length is / Length is less than / Length is greater than / Is one of / Contains no value | — |
| Purpose | Tidak didukung | Is one of / Contains no value | Pilih satu atau beberapa tujuan bisnis. Untuk jenis yang tersedia, lihat Cara API Security mengklasifikasikan tujuan bisnis API. |
| Service Object | Tidak didukung | Contains any of / Contains no value | Pilih satu atau beberapa objek layanan. Untuk jenis yang tersedia, lihat Cara API Security mengklasifikasikan objek layanan API. |
| Authentication | Tidak didukung | Is | YES atau NO |
| Request Sensitive Data Type | Tidak didukung | Contains any of / Contains no value / Number of types is greater than | Pilih satu atau beberapa jenis data sensitif. Untuk kondisi "number of types is greater than", masukkan bilangan bulat dari 0 hingga 8192. |
| Sensitivity Level of Request Sensitive Data | Tidak didukung | Contains any of / Contains no value | Pilih satu atau beberapa level dari S1 hingga S4. |
| Response Sensitive Data Type | Tidak didukung | Contains any of / Is not one of / Number of types is greater than | Pilih satu atau beberapa jenis data sensitif. Untuk kondisi "number of types is greater than", masukkan bilangan bulat dari 0 hingga 8192. |
| Sensitivity Level of Response Sensitive Data | Tidak didukung | Contains any of / Is not one of | Pilih satu atau beberapa level dari S1 hingga S4. |
| Response Sensitive Data | Pilih satu atau beberapa jenis data sensitif respons. | Count is greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
| Source Location | Tidak didukung | Equals | CN / NOT-CN |
| IP | Tidak didukung | Belongs to / Does not belong to | Masukkan alamat IP atau Blok CIDR (misalnya, 1.1.X.X/24). Ekspresi reguler tidak didukung. Masukkan hingga 50 nilai, dipisahkan dengan koma atau Enter. |
| Account (security events only) | Tidak didukung | Is one of (exact match) / Is not one of (exact match) | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
2. Konfigurasi event keamanan
Kebijakan event keamanan bawaan mendeteksi serangan berdasarkan dimensi alamat IP dan akun. Ketika kebijakan bawaan memicu peringatan, serangan berikutnya dengan jenis yang sama akan memperbarui waktu serangan pada peringatan awal alih-alih membuat peringatan baru. Tingkat peringatan dapat berubah berdasarkan faktor seperti volume serangan.
Kebijakan bawaan bersifat read-only. Anda tidak dapat mengedit atau menghapusnya.
Selain kebijakan bawaan, Anda dapat membuat hingga 10 kebijakan event keamanan kustom.
Referensi kondisi statistik data
| Match field | Sub-condition | Logical operators | Match content |
|---|---|---|---|
| Status Code Statistics | Kode status (bilangan bulat dari 100 hingga 600) | Value greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
| Request Header | Custom Header | Distinct less than / Distinct equals / Distinct greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
| Cookie Parameter | Custom Cookie-Exact | Distinct less than / Distinct equals / Distinct greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
| GET Parameter | Custom Parameter | Distinct less than / Distinct equals / Distinct greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
| POST Parameter | Custom Post-Arg | Distinct less than / Distinct equals / Distinct greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
| Response Sensitive Data Type | Pilih satu atau beberapa jenis data sensitif respons. | Distinct less than / Distinct equals / Distinct greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
| Sensitivity Level of Response Sensitive Data | Pilih satu atau beberapa level data sensitif respons. | Distinct greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
| Source IP Count | Atur nilai untuk statistik jumlah IP sumber. | Value greater than | Masukkan bilangan bulat dari 0 hingga 8192. |
3. Konfigurasi data sensitif
Pada tab Sensitive Data-related Configurations halaman Policy Configurations, Anda dapat mencari, memfilter, dan melihat kebijakan data sensitif.
Penyembunyian data
Sakelar De-identification Display mengontrol apakah data sensitif disembunyikan di Konsol. Secara default, sakelar ini dinonaktifkan.
Jika diaktifkan, data berikut akan disembunyikan:
Di Risk Details dan API Details: data sensitif di semua bidang sampel request dan response diganti dengan placeholder seperti
{{Phone}}.Di Event Details: sampel data request dan response yang berisi data sensitif disembunyikan sebagai
{}.Di informasi sampel: Request Cookie disembunyikan sebagai
{{Cookie}}, Request Header yang berisi token disembunyikan sebagai{{XXXToken}}, dan Response Set-Cookie disembunyikan sebagai{{SetCookie}}.
Penyembunyian diterapkan sebagai berikut:
Risk Details dan API Details: hanya berlaku untuk sampel data request dan response baru.
Event Details: berlaku untuk sampel data request dan response baru maupun yang sudah ada.
Kebijakan bawaan
Kebijakan data sensitif bawaan bersifat read-only. Anda dapat mengaktifkan atau menonaktifkannya, tetapi tidak dapat mengedit atau menghapusnya.
Buat kebijakan data sensitif kustom
Jika bisnis Anda menggunakan jenis data sensitif kustom, buat aturan deteksi kustom. Anda dapat membuat hingga 20 kebijakan kustom.
Pada halaman API Security, buka Policy Configuration > Sensitive Data-related Configurations.
Klik Create Policy.
Pada panel yang muncul, konfigurasikan parameter berikut. Anda dapat menggunakan mode Basic atau Expert.
Parameter Deskripsi Name Tentukan nama untuk aturan. Nama dapat berisi karakter Tionghoa, huruf besar dan kecil, angka, titik (.), garis bawah (_), dan tanda hubung (-). Mode Basic: Menyediakan antarmuka sederhana. Atur Characters (satu atau beberapa jenis karakter: angka, huruf besar, huruf kecil) dan Length (rentang: 6–64, nilai awal dan akhir bilangan bulat). Expert: Mendukung ekspresi reguler. Masukkan ekspresi reguler untuk deteksi. Untuk menghindari false positive, pastikan ekspresi tersebut mencocokkan minimal 6 karakter. Sensitivity level Atur tingkat sensitivitas. Nilai yang valid: S1, S2, S3, dan S4. Untuk detailnya, lihat Jenis data sensitif apa saja yang dapat dideteksi API Security. Klik OK.
4. Konfigurasi kredensial autentikasi
Jika API Anda menggunakan bidang non-standar atau bidang dengan pola penamaan lemah (seperti nama yang seluruhnya numerik) untuk autentikasi, deteksi kredensial bawaan mungkin melewatkannya. Buat kebijakan kredensial autentikasi kustom untuk menentukan nama parameter yang membawa kredensial. Hal ini meningkatkan akurasi deteksi risiko tanpa autentikasi.
Buat kebijakan kredensial autentikasi kustom
Pada halaman API Security, buka Policy Configuration > Authentication Credential Configurations.
Klik Create Policy.
Konfigurasikan parameter berikut, lalu klik OK.
Parameter Deskripsi Name Tentukan nama untuk kebijakan. Nama dapat berisi karakter Tionghoa, huruf besar dan kecil, angka, titik (.), garis bawah (_), dan tanda hubung (-). Match condition Setiap kondisi terdiri dari Match Field, Logical Operator, dan Match Content. Tambahkan hingga 10 kondisi, termasuk minimal satu untuk Request Header, Request Cookie, Request Query, atau Request Body. Jika Anda menentukan beberapa kondisi, aturan hanya dipicu ketika semua kondisi terpenuhi.
Konten pencocokan untuk Authentication Credential Configurations bersifat case-sensitive. Anda dapat memasukkan hingga 50 nilai per bidang. Tekan Enter setelah setiap nilai.
Referensi kondisi pencocokan
| Match field | Sub-condition | Logical operators |
|---|---|---|
| Domain Name | Tidak didukung | Contains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value |
| API | Tidak didukung | Contains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value |
| Request Header | Custom Header | Exists / Length equal to / Length less than / Length greater than |
| Request Cookie | Custom Cookie-Exact | Exists / Length equal to / Length less than / Length greater than |
| Request Query | Custom Parameter | Exists / Length equal to / Length less than / Length greater than |
| Request Body | Custom Post-Arg | Exists / Length equal to / Length less than / Length greater than |
5. Konfigurasi tujuan bisnis
Kebijakan tujuan bisnis mengklasifikasikan API berdasarkan fungsinya—misalnya, login, registrasi, pengiriman SMS, atau unduh file. Klasifikasi yang akurat meningkatkan deteksi dalam skenario spesifik bisnis.
API Security menyediakan dua jenis kebijakan tujuan bisnis:
Kebijakan bawaan: Mencakup skenario umum seperti pembaruan data, berbagi data, pengiriman pesan teks, dan pengiriman informasi. Anda dapat mengaktifkan atau menonaktifkan kebijakan bawaan, tetapi tidak dapat memodifikasi atau menghapusnya.
Kebijakan kustom: Memungkinkan Anda menentukan pola URL dan nama parameter kustom untuk skenario yang tidak dicakup kebijakan bawaan.
Buat kebijakan tujuan bisnis kustom
Pada halaman API Security, buka Policy Configuration > Business Purpose.
Klik tab Custom Policy, lalu klik Create Policy.
Konfigurasikan kondisi pencocokan, lalu klik OK.
Konten pencocokan untuk Business Purpose bersifat case-sensitive. Anda dapat memasukkan hingga 50 nilai per bidang. Tekan Enter setelah setiap nilai.
Referensi kondisi pencocokan
| Match field | Logical operators | Match content |
|---|---|---|
| Domain Name | Contains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| API | Contains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Request Header Parameter Name | Contains one of multiple values / Equals one of multiple values | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Request Cookie Parameter Name | Contains one of multiple values / Equals one of multiple values | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Request Query Parameter Name | Contains one of multiple values / Equals one of multiple values | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Request Body Parameter Name | Contains one of multiple values / Equals one of multiple values | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| Request Sensitive Data Type | Equals one of multiple values / Does not equal any value | Pilih satu atau beberapa jenis data sensitif request. |
| Response Sensitive Data Type | Equals one of multiple values / Does not equal any value | Pilih satu atau beberapa jenis data sensitif response. |
| Response Parameter Name | Contains one of multiple values / Equals one of multiple values | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
6. Konfigurasi daftar izin (allowlist)
Daftar izin memungkinkan Anda menekan peringatan dari sumber yang diketahui aman—misalnya, traffic dari alamat IP egress jaringan kantor Anda. Anda dapat membuat daftar izin secara terpisah untuk deteksi risiko dan event keamanan.
Buat kebijakan daftar izin
Pada halaman API Security, buka Policy Configuration > Configure Whitelist.
Klik Create Policy, masukkan nama, dan pilih jenis fitur: Risk Detection atau Security Events.
Atur kondisi pencocokan berdasarkan jenis fitur, lalu pilih jenis risiko atau event yang akan diabaikan, dan klik OK.
Anda dapat menambahkan hingga 10 kondisi pencocokan. Kondisi pencocokan untuk Configure Whitelist bersifat case-sensitive. Anda dapat memilih beberapa jenis bawaan dan kustom untuk diabaikan.
Kondisi pencocokan daftar izin deteksi risiko
| Match field | Logical operators | Match content |
|---|---|---|
| Domain Name | Contains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| API | Contains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
Kondisi pencocokan daftar izin event keamanan
| Match field | Logical operators | Match content |
|---|---|---|
| Domain Name | Contains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| API | Contains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
| IP | Belongs to / Does not belong to | Masukkan alamat IP atau Blok CIDR (misalnya, 1.1.X.X/24). Ekspresi reguler tidak didukung. Masukkan hingga 50 nilai, dipisahkan dengan koma atau Enter. |
| Account | Contains one of multiple values / Does not contain any value / Equals one of multiple values / Does not equal any value | Masukkan hingga 50 nilai. Tekan Enter setelah setiap nilai. |
7. Manajemen siklus hidup
Manajemen siklus hidup API memungkinkan Anda menentukan apa yang dianggap sebagai API tidak aktif, sehingga Anda dapat mengidentifikasi dan bertindak terhadap API yang tidak lagi digunakan secara aktif. API yang tidak aktif dapat dieksploitasi jika dibiarkan tanpa penanganan.
Konfigurasi kriteria API tidak aktif
Pada halaman API Security, buka Policy Configuration > Lifecycle Management.
Atur kriteria untuk API tidak aktif, lalu klik OK.
Built-in model: API dianggap tidak aktif jika belum diakses atau volumenya turun signifikan selama 8 hari terakhir.
Custom: Atur ambang batas volume akses harian dan durasi (maksimal 31 hari). API dianggap tidak aktif jika jumlah akses harian tetap di bawah nilai yang ditentukan selama seluruh durasi tersebut.
Jika Last Active Time suatu aset melebihi 30 hari, sistem secara otomatis menghapus aset tersebut beserta data risiko dan catatan event keamanan terkaitnya.
8. Langganan log
Langganan log mengirimkan log API Security ke penyimpanan log di Simple Log Service (SLS), tempat Anda dapat mengelola, mengkueri, dan menganalisisnya secara terpusat.
Tersedia tiga jenis log: informasi aset, informasi risiko, dan informasi event serangan.
Instans WAF di Tiongkok daratan hanya dapat mengirimkan log ke Logstore SLS di Tiongkok daratan. Instans WAF di luar Tiongkok daratan hanya dapat mengirimkan log ke Logstore SLS di luar Tiongkok daratan. Pengiriman log lintas wilayah antara Tiongkok daratan dan wilayah lain tidak didukung.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Mengaktifkan peran terkait layanan untuk WAF (lewati langkah ini jika Anda sudah memberikan otorisasi ini saat mengaktifkan Simple Log Service untuk WAF). Untuk detailnya, lihat Peran Terkait Layanan.
Membuat Project dan Logstore di Konsol Simple Log Service untuk menerima log.
Fitur langganan log tidak mendukung Logstore yang dibuat secara otomatis oleh SLS atau Logstore dengan namawaf-logstore,wafng-logstore, atauwafnew-logstore.
Konfigurasi tugas langganan log
Pada halaman API Security, buka Policy Configuration > Log Subscription.
Pilih jenis log, lalu klik Configure.
Pilih Region, Project name, dan Logstore name, lalu klik OK. Setelah dikonfigurasi, log dikirimkan ke Logstore ketika kondisi pemicu terpenuhi. Untuk mengkueri dan menganalisis log di SLS, aktifkan pengindeksan seperti yang diminta. Untuk detailnya, lihat Buat indeks.
Untuk menonaktifkan tugas langganan log dan menghindari biaya Logstore berkelanjutan, nonaktifkan tugas tersebut pada tab Log Subscription dan hapus Logstore terkait. Untuk detailnya, lihat Bagaimana cara menonaktifkan Simple Log Service atau menghentikan penagihan?.
Membuat sumber daya cloud dan mengaktifkan pengindeksan di Simple Log Service dapat menimbulkan biaya tambahan yang ditagihkan oleh Simple Log Service. Untuk detail harga, lihat Ikhtisar penagihan Simple Log Service.
Biaya masih dapat dikenakan setelah Anda membuat Project atau Logstore meskipun tidak ada tugas langganan log yang diaktifkan. Segera hapus Logstore yang tidak digunakan untuk menghindari biaya tambahan. Untuk detailnya, lihat Mengapa saya dikenai biaya hanya karena membuat Project dan Logstore?.
Kondisi pemicu log dan bidangnya
Referensi nilai bidang log
Gunakan referensi ini saat menganalisis log atau menghubungkan nilai bidang dengan tampilan di Konsol WAF.
9. Konfigurasi objek efektif
Konfigurasi objek efektif mengontrol kebijakan deteksi mana yang berlaku untuk objek yang dilindungi mana.
Subscription WAF
API Security menyediakan tiga sakelar di tingkat objek yang dilindungi atau grup objek yang dilindungi:
Basic Detection: Diaktifkan secara default. Mengontrol apakah semua kebijakan deteksi bawaan dan kustom aktif.
Compliance Check: Dinonaktifkan secara default. Hanya dapat diaktifkan setelah Basic Detection aktif. Mengontrol apakah fitur Compliance Check aktif.
Tracing and Auditing: Dinonaktifkan secara default. Hanya dapat diaktifkan setelah Basic Detection aktif. Mengontrol apakah fitur Tracing and Auditing aktif.
Pay-as-you-go WAF
API Security menyediakan satu sakelar di tingkat objek yang dilindungi atau grup objek yang dilindungi:
Basic Detection: Mengontrol apakah semua kebijakan deteksi bawaan dan kustom aktif. Untuk menonaktifkan API Security sepenuhnya, matikan Basic Detection untuk semua objek yang dilindungi dan grup objek yang dilindungi.