Disini kita akan belajar apa itu WAF, cara kerja WAF di AWS.
Apa itu WAF
WAF (Web Application Firewall) adalah sebuah firewall untuk aplikasi web. Tujuan dari WAF adalah memfilter dan memblok request berupa serangan ataupun bot yang akan masuk ke aplikasi web. Serangan bisa berupa SQL Inj*cti*n, XS*, D*OS dan semacamnya. WAF berjalan diatas layer aplikasi (HTTP/HTTPS).
Beberapa software WAF yang bisa digunakan adalah:
- WAF CloudFlare
- Akamai
- WAF Citrix
- WAF AWS
- dan lain-lain
Apa itu WAF AWS
WAF AWS, adalah salah satu service dari AWS untuk firewall aplikasi web.
Untuk menggunakan WAF AWS, kita harus menggunakan salah satu service AWS berikut:
- Application Load Balancer
- Amazon CloudFront
- Amazon API Gateway
- AWS AppSync
Misal, kita sudah punya server di EC2 dan ingin tambahkan WAF didepannya, kita bisa gunakan service Application Load Balancer:
Jadi didepan server EC2 ada Application Load Balancer, baru kemudian kita bisa attach WAFnya ke Application Load Balancer.
Cara Kerja WAF AWS
Seperti yang sudah dijelaskan diatas, WAF AWS berjalan diatas layer aplikasi (HTTP/S). Artinya kita bisa memfilter / memblock segala bentuk request HTTP/S.
Yang bisa difilter / diblock adalah:
- Host
- IP
- Cookies
- URL
- Body
- HTTP method
- Dan lainnya
Untuk memfilter / memblock request yang masuk, kita harus membuat rule. WAF AWS menyediakan 2 tipe rule, yaitu:
- Managed rules -> Rules yang sudah disediakan oleh AWS, kita tinggal pakai saja. Contoh managed rules AWS (yang free):
- Core rule set -> rule berdasarkan OWASP
- PHP Application -> rule mengamankan dari unsafe function PHP
- Linux Operating System -> rule mengamankan dari kerentanan OS Linux, seperti LFI atta*k
- SQL Database -> rule untuk mencegah dari eksp*oitasi SQL
- Dan lain-lain
- Custom (own) rules -> Rules yang bisa kita buat sendiri
Pada gambar diatas, User mencoba mengakses aplikasi web yang ada di server EC2 melalui WAF AWS terlebih dahulu. Kemudian WAF AWS mengecek requestnya apakah sudah sesuai dengan rule 1 dan rule 2. Jika tidak sesuai (rule not passed) maka request direject dan diberikan response ke user (misal 403 forbidden, atau 429 too many request. Note: kita bisa set responsenya sendiri). Jika rule passed, maka request diteruskan ke application load balancer dan kemudian diteruskan lagi ke aplikasi web di server EC2.
Kesimpulan
- WAF merupakan firewall untuk aplikasi web
- WAF berjalan pada application layer (HTTP/HTTPS)
- WAF AWS merupakan salah satu service AWS untuk firewall app web
- WAF AWS bisa digunakan asal kita menggunakan service AWS: application load balancer, aws api gateway, aws cloudfront, aws appsync
- Kita harus membuat/mengeset rule di WAF AWS untuk memfilter / memblock traffic yang masuk