Melindungi API Anda di Dunia Nyata: Menyelami Integrasi WAF dan API Gateway

January 30, 2024

Ecosystem

Di era digital saat ini, API telah menjadi bagian integral dari kehidupan sehari-hari kita. Mereka memungkinkan kita untuk mengakses dan bertukar data antara berbagai aplikasi dan layanan. Namun, dengan semakin banyaknya endpoint API yang terbuka untuk publik, risiko serangan siber dan pelanggaran data semakin meningkat. Inilah mengapa sangat penting untuk menerapkan langkah-langkah keamanan yang kuat untuk melindungi API Anda dari serangan berbahaya.

Manfaat Mengintegrasikan WAF dan API Gateway untuk Perlindungan API

Web Application Firewall (WAF) dan teknologi API Gateway adalah dua cara paling efektif untuk mengamankan API dari serangan. WAF adalah solusi keamanan yang berada di antara internet dan server API Anda, menganalisis permintaan masuk dan memblokir lalu lintas berbahaya. Di sisi lain, API Gateway adalah lapisan middleware yang berada di antara server API dan klien, mengelola kontrol akses, perutean lalu lintas, dan pembatasan laju.

Apache APISIX, sebuah API gateway open-source populer, menawarkan serangkaian plugin keamanan bawaan yang kuat. Namun, di hadapan serangan yang semakin canggih seperti CVEs (Common Vulnerabilities and Exposures) dan eksploit zero-day, mengandalkan plugin ini saja dapat membuat API Anda rentan. Mengintegrasikan Web Application Firewall (WAF) profesional dengan APISIX memberikan strategi pertahanan berlapis, memastikan perlindungan komprehensif terhadap ancaman modern.

Memahami Kemampuan Keamanan APISIX

  1. Autentikasi dan Otorisasi: APISIX mendukung plugin untuk JWT, basic auth, key auth, dan integrasi dengan penyedia OpenID Connect, yang menegakkan kontrol akses.

  2. Pembatasan Laju: Mencegah lonjakan lalu lintas berbahaya dan serangan DoS melalui plugin seperti limit-conn, limit-req, dan limit-count.

  3. Pembatasan IP dan Penyaringan User-Agent: Memungkinkan kontrol granular atas permintaan masuk berdasarkan alamat IP dan user agent.

  4. Perlindungan CSRF: Mencegah serangan Cross-Site Request Forgery.

Keterbatasan API Gateway

  1. Deteksi Berbasis Tanda Tangan: Plugin APISIX terutama mengandalkan tanda tangan serangan yang diketahui, membuatnya tidak efektif terhadap eksploit zero-day yang tidak memiliki pola yang terdefinisi.

  2. Kurangnya Pembaruan Aturan: Aturan keamanan terus berubah, yang memerlukan ahli keamanan profesional dan perusahaan untuk memeliharanya.

  3. Cakupan Terbatas: Meskipun APISIX melindungi lapisan gateway, WAF memberikan perlindungan yang lebih luas di seluruh lapisan aplikasi.

Manfaat Integrasi WAF dan API Gateway

  1. Deteksi Ancaman Proaktif: WAF canggih memanfaatkan pembelajaran mesin dan analisis perilaku untuk mendeteksi lalu lintas yang tidak normal, bahkan tanpa pengetahuan sebelumnya tentang kerentanan.

  2. Pembaruan Aturan Real-Time: WAF berbasis cloud dapat dengan cepat memperbarui aturan untuk mengatasi ancaman yang muncul, meminimalkan jendela paparan.

  3. Perlindungan Aplikasi yang Lebih Mendalam: WAF dapat menyaring dan memblokir lalu lintas berbahaya di lapisan aplikasi, melindungi dari serangan yang melewati API gateway.

  4. Kepatuhan dan Regulasi: Industri tertentu mewajibkan penggunaan WAF untuk mematuhi peraturan keamanan data.

Menyelami Proses Integrasi

Untuk mengintegrasikan WAF dan API Gateway, Anda perlu memilih alat yang tepat untuk pekerjaan tersebut. Apache APISIX adalah solusi API Gateway populer yang menyediakan platform yang skalabel dan fleksibel untuk mengelola API Anda. Chaitin SafeLine dan Coraza adalah solusi WAF yang menawarkan fitur keamanan canggih dan set aturan yang dapat disesuaikan.

APISIX dan Chaitin SafeLine

WAF Chaitin SafeLine adalah plugin bawaan dari APISIX 3.5. Setelah plugin chaitin-waf diaktifkan, lalu lintas akan diteruskan ke layanan WAF Chaitin untuk mendeteksi dan mencegah berbagai serangan aplikasi web guna melindungi keamanan aplikasi dan data pengguna.

WAF_APISIX_1

Asumsikan Anda telah menginstal Apache APISIX dan SafeLine, baris perintah berikut dapat mengintegrasikan keduanya:

curl http://127.0.0.1:9180/apisix/admin/plugin_metadata/chaitin-waf -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "nodes":[ { "host": "192.168.99.11", "port": 8000 } ] }'

192.168.99.11 adalah IP layanan SafeLine. Kemudian kita dapat membuat rute di APISIX:

curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri": "/*", "plugins": { "chaitin-waf": {} }, "upstream": { "type": "roundrobin", "nodes": { "192.168.99.12:80": 1 } } }'

192.168.99.12 adalah IP layanan upstream. Integrasi selesai.

Sekarang mari kita simulasi SQL injection untuk melihat efeknya:

curl http://127.0.0.1:9080 -d 'a=1 and 1=1'

HTTP 403 error dikembalikan, dan seperti yang dapat dilihat dari pesan kesalahan, Chaitin SafeLine berhasil mempertahankan serangan.

{"code":403,"success":false,"message":"blocked by Chaitin SafeLine Web Application Firewall","event_id":"18e0f220f7a94127acb21ad3c1b4ac47"}

APISIX dan Coraza-proxy-wasm

APISIX mendukung pengembangan plugin dengan WebAssembly (Wasm), dan Coraza juga menyediakan plugin Wasm sebagai opsi. Oleh karena itu, mengintegrasikan Coraza dengan APISIX memerlukan biaya yang relatif rendah.

Wasm dapat digunakan lintas platform, memungkinkan APISIX dan Coraza bekerja tanpa modifikasi atau adaptasi ekstensif tambahan. Ini menghilangkan modifikasi dan adaptasi kode yang ekstensif.

Coraza juga merupakan plugin bawaan Apache APISIX, yang dapat diaktifkan dengan memodifikasi file konfigurasi conf/config-default.yaml:

wasm: plugins: - name: coraza-filter priority: 7999 file: /home/ubuntu/coraza-proxy-wasm/build/main.wasm

Kemudian buat rute di APISIX dengan aturan Coraza:

curl -i http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{ "uri": "/anything", "plugins": { "coraza-filter": { "conf": { "directives_map": { "default": [ "SecDebugLogLevel 9", "SecRuleEngine On", "SecRule REQUEST_URI \"@beginsWith /anything\" \"id:101,phase:1,t:lowercase,deny\"" ] }, "default_directives": "default" } } }, "upstream": { "type": "roundrobin", "nodes": { "httpbin.org:80": 1 } } }'

Sekarang mari kita kirim permintaan untuk melihat efeknya:

curl http://localhost:9080/anything -v

Periksa log di logs/error.log:

2023/08/31 09:20:39 [info] 126240#126240: *23933 Transaction interrupted tx_id="JVhHVfDuGjVbfgvDjik" context_id=2 action="deny" phase="http_request_headers", client: 127.0.0.1, server: _, request: "GET /anything HTTP/1.1", host: "localhost:9080" 2023/08/31 09:20:39 [debug] 126240#126240: *23933 Interruption already handled, sending downstream the local response tx_id="JVhHVfDuGjVbfgvDjik" context_id=2 interruption_handled_phase="http_request_headers"

Praktik Terbaik untuk Mengamankan API Menggunakan Integrasi WAF dan API Gateway

Untuk memastikan keamanan API Anda, Anda harus mengikuti praktik terbaik berikut:

  1. Terapkan strategi pertahanan berlapis yang mencakup beberapa lapisan kontrol keamanan;

  2. Gunakan enkripsi SSL/TLS untuk mengamankan data dalam perjalanan;

  3. Perbarui set aturan WAF Anda secara teratur untuk memastikan mereka selalu diperbarui dengan ancaman terbaru;

  4. Pantau lalu lintas dan log API Anda untuk dengan cepat mendeteksi dan merespons insiden keamanan.

Tren dan Kemajuan Masa Depan dalam Keamanan dan Perlindungan API

Seiring dengan pertumbuhan jumlah API yang digunakan, akan ada kebutuhan yang lebih besar untuk langkah-langkah keamanan canggih untuk melindunginya. Beberapa tren dan kemajuan masa depan dalam keamanan dan perlindungan API meliputi:

  1. Solusi keamanan berbasis AI yang dapat mendeteksi dan merespons ancaman secara otomatis;

  2. Mekanisme autentikasi dan kontrol akses berbasis blockchain;

  3. Arsitektur API berbasis microservices yang menawarkan fleksibilitas dan skalabilitas yang lebih besar.

Ringkasan

Kesimpulannya, integrasi WAF dan API Gateway adalah komponen kritis dari keamanan API. Dengan mengikuti praktik terbaik dan menerapkan alat yang tepat, Anda dapat membuat lapisan keamanan yang kuat yang melindungi API Anda dari berbagai serangan. Dengan pendekatan yang tepat, Anda dapat memastikan ketersediaan, integritas, dan kerahasiaan API Anda serta data yang mereka pertukarkan.

Tags: