D(caps)alam dunia keamanan aplikasi web, ancaman terhadap aplikasi berbasis web terus berkembang. Salah satu contoh aplikasi web yang sering digunakan sebagai media pembelajaran keamanan adalah OWASP Juice Shop, aplikasi e-commerce dengan banyak kerentanan yang dirancang untuk menguji kemampuan keamanan web. Dalam artikel ini, kita akan membahas bagaimana Web Application Firewall (WAF) seperti SafeLine dapat melindungi aplikasi seperti OWASP Juice Shop dari serangan yang umum terjadi.
Langkah Instalasi :
1. Install VMware Workstation Pro 17
Bisa lihat pada post :
💻 Install VMware Workstation Pro 17 untuk Personal Use tanpa beli License Key (getButton) #text=(Visit Link) #icon=(link)
2. Install VM Ubuntu Server 22.04.5
Bisa lihat pada post :
🖥️ Install Ubuntu 22.04.5 pada VMware Workstation Pro 17 (getButton) #text=(Visit Link) #icon=(link)
beri nama VM tersebut :
juiceshop(code-box)
3. Install OWASP Juice Shop dengan Docker
Bisa lihat pada post :
🥤 Install OWASP Juice Shop menggunakan Docker pada Ubuntu 22.04.05 di VMware Workstation Pro 17 (getButton) #text=(Visit Link) #icon=(link)
coba cek, apakah sudah bisa akses OWASP Juice Shop di browser dengan alamat http://<ip address VM>:3000
4. Install SafeLine WAF
Ulangi langkah nomor 2, beri nama VM tersebut :
safeline(code-box)
kemudian lihat Install SafeLine, bisa lihat pada post :
SafeLine: Host-based WAF Open-Source dengan Keamanan Kuat dan Penerapan Mudah dengan Docker (getButton) #text=(Visit Link) #icon=(link)
coba cek, apakah sudah bisa akses Dashboard SafeLine di browser dengan alamat https://<ip address VM>:9443
5. Daftarkan nama domain juiceshop.com di Host Windows 11
Berikut adalah langkah-langkah untuk mendaftarkan nama domain juiceshop.com pada file hosts di Windows dan Ubuntu (VM). Langkah ini akan membantu Anda mengakses OWASP Juice Shop menggunakan domain juiceshop.com di browser.
Di Windows, file hosts terletak di direktori :
C:\Windows\System32\drivers\etc\hosts(code-box)
Anda perlu membuka file ini dengan editor teks yang dijalankan sebagai administrator. Berikut caranya:
1. Klik tombol Start.
2. Cari Notepad.
3. Klik kanan pada Notepad dan pilih Run as Administrator.
4. Di Notepad, buka file hosts dengan menavigasi ke:
C:\Windows\System32\drivers\etc\hosts(code-box)
Tambahkan Entry Baru
Di bagian bawah file hosts, tambahkan baris baru seperti ini:
Pastikan IP address VM SafeLine bukan VM Juiceshop(alert-warning)
Contoh jika IP address VM SafeLine adalah 192.168.1.100 :
192.168.1.100 juiceshop.com(code-box)
5. Simpan File hosts dengan Ctrl + S atau pada menu klik save
6. Daftarkan Juiceshop.com pada Dashboard SafeLine
Ikuti sesuai gambar berikut :
1. Pilih Tab "Web Services" disisi kanan, klik tombol "ADD WEB SERVICES"
2. Masukkan OWASP Juiceshop seperti gambar di bawah, jangan lupa mengubah IP Address sesuai VM OWASP Juiceshop
7. Akses Juiceshop.com pada Browser
Jika masih belum berhasil, coba cek kembali langkah sebelumnya, apakah ada yang salah
8. Coba Serang Juiceshop yang sudah dilindungi SafeLine WAF
- SQL Injection: http://juiceshop.com/?id=1+and+1=2+union+select+1
- XSS: http://juiceshop.com/?id=<img+src=x+onerror=alert()>
- Path Traversal: http://juiceshop.com/?id=../../../../etc/passwd
- Code Injection: http://juiceshop.com/?id=phpinfo();system('id')
- XXE: http://juiceshop.com/?id=<?xml+version="1.0"?><!DOCTYPE+foo+SYSTEM+"">
Jika SafeLine berhasil Block, maka akan muncul Landing Page SafeLine seperti berikut :
Periksa Dashboard web SafeLine untuk melihat daftar serangan :
Untuk melihat detail serangan secara spesifik, klik "detail" :
Voilaa, Sekarang SafeLine WAF sudah melindungi OWASP Juice Shop 😄👍
9. Coba aktifkan Advanced Protection pada SafeLine
Deteksi Berbasis Sintaksis
SafeLine menggunakan algoritma deteksi non-rule berbasis analisis sintaksis, dan menggunakan tata bahasa bebas konteks yang umum digunakan dalam bahasa pemrograman untuk menggantikan tata bahasa reguler yang digunakan oleh WAF tradisional, yang secara signifikan meningkatkan akurasi dan tingkat penarikan algoritma deteksi.
Mari kita lihat sebuah contoh:
"Union select members from each department to form a committee."(alert-warning)
Untuk WAF tradisional, kalimat ini mengandung kata kunci "select" dan "from", yang biasa digunakan dalam serangan injeksi SQL, sehingga akan mengakibatkan positif palsu.
Namun, SafeLine tetap fokus pada apakah kalimat ini sesuai dengan sintaks formal bahasa SQL.
Rate Limiting
Melindungi aplikasi dan API Anda dari penyalahgunaan dengan membatasi lalu lintas yang melebihi batas yang telah ditetapkan.
Rate Limiting melindungi dari serangan denial-of-service, upaya login brute force, lonjakan lalu lintas, dan bentuk penyalahgunaan lainnya yang menargetkan API dan aplikasi.
Pilih Rate Limiting berbasis IP untuk melindungi endpoint yang tidak terautentikasi, membatasi jumlah permintaan dari alamat IP tertentu, dan menangani penyalahgunaan dari pelanggar berulang.
Captcha Challenge
Tantangan CAPTCHA diimplementasikan berdasarkan intelijen ancaman dan pemeriksaan keamanan sisi klien untuk melindungi situs web Anda dari serangan bot.
Saat tantangan diaktifkan, SafeLine akan memeriksa legalitas lingkungan browser terlebih dahulu, pengguna manusia akan diizinkan, sedangkan akses dari perayap dan program otomatis akan diblokir.
Authentication Challenge
Saat tantangan autentikasi diaktifkan, pengunjung perlu memasukkan informasi nama pengguna dan kata sandi yang telah Anda konfigurasikan di bawah ini. Pengguna yang tidak memiliki kata sandi akan diblokir.
Perlindungan Dinamis
Saat perlindungan dinamis diaktifkan, kode HTML dan JavaScript di situs web Anda akan dienkripsi secara dinamis ke dalam hasil acak yang berbeda setiap kali diakses, ini dapat secara efektif memblokir perayap dan program eksploitasi otomatis.
JavaScript
Setelah kode JavaScript melewati perlindungan dinamis SafeLine, kode tersebut akan secara acak diacak (obfuscate). Lihat contoh di bawah ini.
Bagian kiri adalah sebelum diacak, dan bagian kanan adalah setelah diacak.
HTML
Setelah kode HTML melewati perlindungan dinamis SafeLine, kode tersebut akan dienkripsi secara acak dan didekripsi secara otomatis saat digunakan di browser. Lihat contoh di bawah ini.
Bagian kiri adalah sebelum dienkripsi, dan bagian kanan adalah setelah dienkripsi.
Threat Intelligence Feeds
Blokir koneksi dari IP yang diketahui sebagai proxy SOCKS terbuka, VPN, botnet, server command and control, sumber malware, dan anonymizers.