Shadow Daemon merupakan sekumpulan tools yang digunakan untuk mendeteksi, merekam dan mencegah berbagai serangan pada aplikasi web. Singkatnya, Shadow Daemon merupakan Web Application Firewall (WAF) yang dapat menangkap request dan melakukan penyaringan berbagai parameter yang mencurigakan. Bentuk Shadow Daemon adalah modular system sehingga terpasang terpisah dengan aplikasi web yang akan dianalisis.
Tujuan Shadow Daemon adalah untuk menambah keamanan, fleksibilitas dan bisa dimutakhirkan dengan cara yang lebih mudah. Shadow Daemon termasuk free software dan dirilis dengan lisensi GPLv2.
Apa saja sih keuntungan menggunakan Shadow Daemon? Ini dia sekilas ulasannya.
Mudah Digunakan
Shadow Daemon mudah dipasang dan diatur dengan antarmuka web yang bersih dan struktur. Adanya antarmuka web memudahkan penggunanya untuk memeriksa serangan dengan rinci dan jelas. Jika pengguna hanya ingin mengamankan web saja tanpa perlu antarmuka web, Shadow Daemon cukup dipasang dan dikonfigurasi saja tanpa mengaktifkan script antarmuka web.
High Coverage
Shadow Daemon menggunakan connector pada level aplikasi untuk menangkap request. Adanya connector menjamin data bisa dianalisis sesuai dengan masukan data pada aplikasi web. Untuk instalasi connector cukup mudah, dan tidak membutuhkan kemampuan koding.
Aplikasi web apa saja yang bisa dilindungi Shadow Daemon? Ini dia.
- PHP
- Perl
- CGI
- Mojolicious
- Mojolicious::Lite
- Python
- CGI
- Django
- Werkzeug
- Flask
Akurasi Deteksi
Shadow Daemon mengkombinasikan blacklist, whitelist dan pemeriksaan integritas untuk mendeteksi request yang mencurigakan. Blacklist menggunakan Regular Expression untuk mencari pattern serangan yang berasal dari masukkan pengguna. Whitelist digunakan untuk mencari masukkan pengguna yang tidak beraturan berdasarkan rules yang sudah didefinisikan. Sedangkan untuk pemeriksan integritas digunakan untuk membandingkan checksum dari script yang dieksekusi berdasarkan rules yang telah ditetapkan.
Apa saja jenis serangan web yang bisa dideteksi oleh Shadow Daemon? Ini dia.
- SQL injection
- XML injection
- Code injection
- Command injections
- Cross-site scripting
- Local/remote file inclusions
- Backdoor access
- Dan masih banyak lagi
Perlindungan Discret
Tidak seperti WAF lainnya, Shadow Daemon tidak memblokir request yang mencurigakan. Sebaliknya, Shadow Daemon hanya menyaring bagian-bagian yang mencurigakan dan membersihkan request tersebut untuk diteruskan seperti biasanya.
Itulah sekilas ulasan Shadow Daemon, Web Application Firewall untuk aplikasi web berbasis PHP, Python dan Perl. Keamanan dan kerentanan aplikasi web juga harus diperhitungkan, agar aplikasi web tetap aman dan terhindar dari hal-hal yang tidak diinginkan.
Cara Installasi di Debian (wheezy)
Paket ini masih menunggu sponsorship dari Debian package, sehingga belum mungkinkan untuk menginstal dengan apt-get dari repositoring resmi. Silahkan download dan menginstal paket deb secara manual. Download package terbaru debian di https://shadowd.zecure.org/files/debian/
Instalasi dengan Apache2 Web server sbb:
Step 1:
root@webserver:~# dpkg -i shadowd_2.0.1-1_amd64.deb Selecting previously unselected package shadowd. (Reading database ... 56730 files and directories currently installed.) Unpacking shadowd (from shadowd_2.0.1-1_amd64.deb) ... dpkg: dependency problems prevent configuration of shadowd: shadowd depends on libdbd-pgsql; however: Package libdbd-pgsql installed. shadowd depends on libdbd-mysql; however: Package libdbd-mysql installed. shadowd depends on libboost-program-options1.49.0 (>= 1.49.0-1); however: Package libboost-program-options1.49.0 is not installed. shadowd depends on libboost-regex1.49.0 (>= 1.49.0-1); however: Package libboost-regex1.49.0 is not installed. shadowd depends on libboost-system1.49.0 (>= 1.49.0-1); however: Package libboost-system1.49.0 is not installed. shadowd depends on libboost-test1.49.0 (>= 1.49.0-1); however: Package libboost-test1.49.0 is not installed. shadowd depends on libboost-thread1.49.0 (>= 1.49.0-1); however: Package libboost-thread1.49.0 is not installed. shadowd depends on libcrypto++9; however: Package libcrypto++9 is not installed. shadowd depends on libdbi1 (>= 0.8.4); however: Package libdbi1 is not installed. dpkg: error processing shadowd (--install): dependency problems - leaving unconfigured Processing triggers for man-db ... Errors were encountered while processing: shadowd
Step 2 (install dependensi yg belum terintal):
root@webserver:~# apt-get -f install Reading package lists... Done Building dependency tree Reading state information... Done Correcting dependencies... Done The following extra packages will be installed: libboost-program-options1.49.0 libboost-regex1.49.0 libboost-system1.49.0 libboost-test1.49.0 libboost-thread1.49.0 libcrypto++9 libdbd-mysql libdbd-pgsql libdbi1 libicu48 libpq5 The following NEW packages will be installed: libboost-program-options1.49.0 libboost-regex1.49.0 libboost-system1.49.0 libboost-test1.49.0 libboost-thread1.49.0 libcrypto++9 libdbd-mysql libdbd-pgsql libdbi1 libicu48 libpq5 0 upgraded, 11 newly installed, 0 to remove and 1 not upgraded. 1 not fully installed or removed. Need to get 7581 kB of archives. After this operation, 31.7 MB of additional disk space will be used. Do you want to continue [Y/n]? y Get:1 http://ftp.debian.org/debian/ wheezy/main libdbi1 amd64 0.8.4-6 [31.7 kB] Get:2 http://security.debian.org/ wheezy/updates/main libpq5 amd64 9.1.20-0+deb7u1+b1 [140 kB] Get:3 http://ftp.debian.org/debian/ wheezy/main libdbd-pgsql amd64 0.8.3-1+s-5+b1 [157 kB] Get:4 http://ftp.debian.org/debian/ wheezy/main libdbd-mysql amd64 0.8.3-1+s-5+b1 [158 kB] Get:5 http://ftp.debian.org/debian/ wheezy/main libboost-program-options1.49.0 amd64 1.49.0-3.2 [162 kB] Get:6 http://ftp.debian.org/debian/ wheezy/main libicu48 amd64 4.8.1.1-12+deb7u3 [4761 kB] Get:7 http://ftp.debian.org/debian/ wheezy/main libboost-regex1.49.0 amd64 1.49.0-3.2 [459 kB] Get:8 http://ftp.debian.org/debian/ wheezy/main libboost-system1.49.0 amd64 1.49.0-3.2 [33.4 kB] Get:9 http://ftp.debian.org/debian/ wheezy/main libboost-test1.49.0 amd64 1.49.0-3.2 [305 kB] Get:10 http://ftp.debian.org/debian/ wheezy/main libboost-thread1.49.0 amd64 1.49.0-3.2 [64.0 kB] Get:11 http://ftp.debian.org/debian/ wheezy/main libcrypto++9 amd64 5.6.1-6+deb7u1 [1310 kB] Fetched 7581 kB in 2s (3605 kB/s) Selecting previously unselected package libdbi1. (Reading database ... 56746 files and directories currently installed.) Unpacking libdbi1 (from .../libdbi1_0.8.4-6_amd64.deb) ... Selecting previously unselected package libpq5. Unpacking libpq5 (from .../libpq5_9.1.20-0+deb7u1+b1_amd64.deb) ... Selecting previously unselected package libdbd-pgsql. Unpacking libdbd-pgsql (from .../libdbd-pgsql_0.8.3-1+s-5+b1_amd64.deb) ... Selecting previously unselected package libdbd-mysql. Unpacking libdbd-mysql (from .../libdbd-mysql_0.8.3-1+s-5+b1_amd64.deb) ... Selecting previously unselected package libboost-program-options1.49.0. Unpacking libboost-program-options1.49.0 (from .../libboost-program-options1.49.0_1.49.0-3.2_amd64.deb) ... Selecting previously unselected package libicu48:amd64. Unpacking libicu48:amd64 (from .../libicu48_4.8.1.1-12+deb7u3_amd64.deb) ... Selecting previously unselected package libboost-regex1.49.0. Unpacking libboost-regex1.49.0 (from .../libboost-regex1.49.0_1.49.0-3.2_amd64.deb) ... Selecting previously unselected package libboost-system1.49.0. Unpacking libboost-system1.49.0 (from .../libboost-system1.49.0_1.49.0-3.2_amd64.deb) ... Selecting previously unselected package libboost-test1.49.0. Unpacking libboost-test1.49.0 (from .../libboost-test1.49.0_1.49.0-3.2_amd64.deb) ... Selecting previously unselected package libboost-thread1.49.0. Unpacking libboost-thread1.49.0 (from .../libboost-thread1.49.0_1.49.0-3.2_amd64.deb) ... Selecting previously unselected package libcrypto++9. Unpacking libcrypto++9 (from .../libcrypto++9_5.6.1-6+deb7u1_amd64.deb) ... Setting up libdbi1 (0.8.4-6) ... Setting up libpq5 (9.1.20-0+deb7u1+b1) ... Setting up libdbd-pgsql (0.8.3-1+s-5+b1) ... Setting up libdbd-mysql (0.8.3-1+s-5+b1) ... Setting up libboost-program-options1.49.0 (1.49.0-3.2) ... Setting up libicu48:amd64 (4.8.1.1-12+deb7u3) ... Setting up libboost-regex1.49.0 (1.49.0-3.2) ... Setting up libboost-system1.49.0 (1.49.0-3.2) ... Setting up libboost-test1.49.0 (1.49.0-3.2) ... Setting up libboost-thread1.49.0 (1.49.0-3.2) ... Setting up libcrypto++9 (5.6.1-6+deb7u1) ... Setting up shadowd (2.0.1-1) ... [ ok ] Starting web application firewall: shadowd.
Step 3 (restart Webserver anda):
root@webserver:~# /etc/init.d/apache2 restart [ ok ] Restarting web server: apache2 ... waiting .
Demikian semoga bermanfaat, untuk lebih jelasnya silahkan kunjungi web resminya di https://shadowd.zecure.org.