Tembok api aplikasi web

**Tembok api aplikasi web** () boleh menapis, memantau, dan menghalang trafik HTTP yang melalu aplikasi web ulang-alik. WAF adalah berbeza daripada tembok api yang lain kerana ia dapat menapis kandungan aplikasi web yang tertentu, manakala tembok api yang biasa hanya boleh berfungsi sebagai pintu kawalan sekuriti antara pelayan-pelayan yang berbeza. Selain itu, WAF juga boleh menghalang serangan-serangan yang berpunca daripada kelemahan sekuriti aplikasi web, seperti suntikan SQL, skrip cross-site (XSS), masukan fail (file inclusion) serta konfigurasi sekuriti yang salah melalui pemeriksaan trafik HTTP. 

## Sejarah
Aplikasi tembok api yang mengawal input, output serta akses dalam aplikasi atau perkhidmatan, dibangunkan pada awal tahun 1990-an oleh Gene Spafford, Bill Cheswick dan Marcus Ranum. Pada masa produk yang dicipta itu dilancarkan ke dalam pasaran oleh DEC, ia merupakan tembok api yang lebih berasaskan rangkaian dan hanya boleh mengawal beberapa aplikasi sahaja (seperti FTP atau RSH). Dalam masa beberapa tahun kemudian, produk itu melalui banyak lapisan penyelidikan dan pembangunan sehingga perisisan tembok api yang lebih stabil dibina dan status industri dinaikkan. Aplikasi tembok api yang fungsinya lebih khusus mula memasuki pasaran apabila serangan-serangan penggodam pelayan web menjadi lebih ketara. 

Syarikat pertama yang menawarkan tembok api sedemikian adalah Syarikat Perfecto Technologies melalui produk AppShield-nya, yang bertumpu terhadap pasaran e-dagang bagi melindungi web-web daripada entri yang haram. Perfecto kemudiannya tukar nama kepada Sanctum dan senaraikan 10 teknik penggodaman aplikasi web. Ini kemudiannya menjadi asas untuk pasaran WAF.

* **Hidden field manipulation (Manipulasi Bidang Tersembunyi)**
* **Cookie poisoning (Racun Cookie)**
* **Parameter tampering** 
* **Buffer overflow**
* **Cross Site Scripting [XSS] (Skrip Cross-Site)**
* **Backdoor or Debug options (Pilihan pintu belakang atau debug)**
* **Stealth commanding**
* **Forced browsing** 
* **Third party misconfigurations** **(Kesilapan Konfigurasi Pihak Ketiga)**
* **Known vulnerabilities (Kerentanan yang Diketahui)**

Pada tahun 2002, projek sumber terbuka **ModSecurity** ditubuhkan untuk memudahkan akses teknologi WAF dan menyelesaikan halangan-halangan dalam industri seperti kes perusahaan, kos perlindungan serta set peraturan empunya. ModSecurity memuktamadkan peraturan tera untuk melindungi aplikasi web, iaitu berdasarkan kerentanan yang disenaraikan oleh **OASIS** Web Application Security Technical Committee **(WAS TC)**. Pada tahun seterusnya, kerja ini diperluaskan dan distandardkan melalui senarai lengkap daripada projek sekuriti aplikasi web terbuka (*Open Web Application Security Project – *'OWASP***) yang menyenaraikan 10 kelemahan sekuriti web. Senarai ini kemudian menjadi penanda aras kawalan patuh industri ini.                  

Sejak itu, pasaran WAF terus berkembang sehingga melibatkan industry perdagangan dalam skala yang lebih besar disebabkan peningkatan kes-kes penipuan kad kredit. Pembanguana Piawaian Keselamatan Data Industry Kad (''Payment Card Industry Data Security Standard – '''PCI DSS***), iaitu standard piawaian untuk organisasi bagi mengetatkan kawalan terhadap pemegang data kad, lebih dikawal dan ini memcetuskan minat luas dalam industri. Menurut Forrester, pasaran WAF melebihi  $200 juta pada tahun 2010.  

## Deskripsi
Aplikasi web tembok api adalah sejenis aplikasi khas yang digunakan khusus untuk aplikasi-aplikasi web. Ia dipasangkan di hadapan aplikasi-aplikasi web dan menganalisis trafik berasaskan web dua-arah (HTTP) – mengesan dan menghalang sebarang kod hasad. OWASP memberi definisi teknikal yang luas untuk WAF sebagai “penyelesaian sekuriti pada tahap aplikasi web tanpa bergantung pada aplikasi itu sendiri, dari sudut teknikal.” Menurut maklumat tambahan dari PCI DSS untuk keperluan 6.6, WAF ditakrifkan sebagai “titik penguatkuasaan dasar sekuriti yang diposisikan antara  suatu aplikasi web serta titik hujung pelayan-nya. Ia boleh dilaksanakan di dalam perisian atau perkakasan, berfungsi dalam peranti perkakas atau dalam pelayan biasa yang menjalankan sistem operasi umum. Ia juga boleh berfungsi sebagai peranti yang tersendiri atau pun disambung ke komponen-komponen rangkaian yang lain. Dengan kata lain, bentuk WAF tidak kira sebagai perkakas atau dalam bentuk maya, berfungsi untuk mengukuhkan aplikasi web dan melindungi-nya daripada dieksploitasi oleh ancaman luar. Kerentanan dalam aplikasi web mungkin disebabakan aplikasi itu sendiri diwariskan atau rekaan kod produk tidak lengkap. WAF menangani kekurangan itu dengan mengkonfigurasikan set peraturan yang khas, yang juga dikenali sebagai dasar. 

Kerentanan dulu boleh diuji melalui ujian penembusan (*penetration testing*) atau melalui pengimbasan kerentanan (*vulnerability scanner*). Pengimbasan kerentanan aplikasi web atau pengimbas sekuriti aplikasi web, ditakrifkan dalam SAMATE NIST 500-269 sebagai “program automatik yang meneliti aplikasi web untuk mencari kerentanan sekuriti. Di samping mengenalpasti kerentanan khusus aplikasi web, WAF juga mencamkan kesalahan pengkodan perisian. Apbila kerentanan diselesaikan, ia dirujuk sebagai pemulihan. Pembetulan kod boleh dilaksanakan dalam aplikasi, tetapi jika ditemui, kadar responsi sepatutnya cepat. Dalam situaasi sebegini, pembetulan sementara tetapi segera diperlukan. Penyelesaian sekuriti yang lengkap bukan terletak dalam WAF sahaja, bahalah, ia sepatutnya digunakan bersamaan dengan penyelesaian sekuriti perimeter rangkain yang lain seperti tembok api rangkaian dan sistem pencegahan intrusi. 

WAF biasanya mengikuti model sekuriti positif, sekuriti negatif, atau gabugan kedua-dua seperti yang dinyatakan oleh Institut *SANS*. WAF menggunakan gabungan logik, parsing serta tandatangan untuk mengesan dan mencegah serangan-serangan seperti skrip cross-site atau suntikan SQL. *OWASP* senaraikan 10 kesilapan dalam sekuriti aplikasi dan setiap WAF komersial perlu meliputi 10 kesilapan ini sekurang-kurangnya. Terdapat juga pilihan bukan komersial. Seperti yang dinyatakan terdahulu, enjin WAF sumber terbuka ModSecurity merupakan salah satu daripada pilihan ini. Enjin WAF sahaja tidak cukup untuk menyediaka perlindungan yang lengkap. Oleh sebab itu, OWASP bersamaan dengan Spiderlabs Trustwave membantu menyusun dan menyelenggara Core-Rule Set melalui GitHub untuk digunakan dengan enjin  WAF ModSecurity.  

## Pemasangan
Walaupun pelbagai nama wujud untuk mod operasi yang berlainan, WAF pada asasnya hanya digunakan dalam tiga situasi inline iaitu ‘Jambatan telus’ (transparent bridge), ‘proksi terbalik telus’ (transparent reverse proxy) dan ‘proksi terbalik’ (reverse proxy), mengikut *Labs NSS*. ‘Telus’ di sini merujuk kepada hakikat bahawa trafik HTTP dihantar terus ke aplikasi web dan WAF merupakan telus antara klien dengan pelayan. Bertentangan dengan ‘proksi terbalik’ di mana WAF berfungsi sebagai proksi yang menerima traffik klien kemudiannya menapis dan menghantar traffik itu ke aplikasi-aplikasi web. WAF boleh melindungi IP tetapi adakalanya melambatkan prestasi.   

### Vendor Komersial
Kebanyakan WAF komersial mempunayai ciri-ciri yang serupa. Perbezaan yang utama terletak di interface, cara pemasangan atau keperluan dalam persekitaran yang tertentu.  

### Perkakas
* Radware - AppWall
* Monitorapp AIWAF
* Barracuda Networks WAF
* Citrix Netscaler Application Firewall
* F5 Big-IP Application Security Manager
* Penta Security’s WAPPLES
* Imperva SecureSphere
* Fortinet FortiWeb
* Positive Technologies, PT Application Firewall

### Kloud
* Radware
* AIONCLOUD
* Akamai Technologies Kona
* AWS WAF
* Cloudbric
* Cloudflare
* F5 Silverline
* QingCloud WAF
* Sucuri Firewall
* Imperva Incapsula

### Pilihan untuk Sumber Terbuka
Penyelesaian sumber terbuka adalah umum untuk penggunaan awam.
* ModSecurity
* NAXSI