Monday, December 22, 2014

mod_security solusi murah WAF

Melanjutkan dari topik sebelumnya yang berjudul WAF vs IPS. Ada banyak perangkat dan apliance yang bisa dipilih dan dipakai. Semuanya itu kembali ke kebutuhan dan keperluan, yang pasti harus ada dananya. Tapi gak semuanya harus berbayar, ada yang murah meriah yaitu mod_security. Aplikasi ini digunakan sebagai modul dalam aplikasi web server apache.
Proses instalasinya sangat mudah. Kali ini dipraktekan untuk distro linux debian. Untuk menginstallnya dengan perintah apt-get install libapache-mod-security. Dari sini harus diaktifkan modul tersebut dengan cara a2enmod mod-security.
Ada beberapa fitur-fitur dalam mod_security ini, seperti :
  • merubah nama apache server menjadi sesuai kemauan kita
  • menahan mysql injection
  • dll (setaunya cuma dua diatas, kalo ada tambahan silahkan tinggalkan comment ya)


Untuk merubah nama apache server dapat dilakukan dengan cara :
  1. Edit configurasi file di bagian /etc/apache2/conf.d/security
  2. Pada baris ServerTokens di rubah menjadi ServerTokens Full
  3. Pada baris ServerSignature dirubah menjadi SecServerSignature My_HTTP_server ( pada bagian dicetak miring bisa dirubah sesuai keinginan )
  4. Jangan lupa untuk merestart apache ( /etc/init.d/apache2 restart )
Untuk menahan mysql injection dapat dilakukan dengan cara :
  1. Buat directory mod_security2 di /etc/apache2
  2. Copy file ke mod_security2
  3. Masuk ke directory /etc/apache2/mods-enabled/
  4. Edit file mod-security.load isi dengan :
    <IfModule security2_module>
            Include mod_security2/*.conf
            Include mod_security2/asl_rules/*.conf
            Include mod_security2/base_rules/modsecurity_crs_41_sql_injection_attac$
    </IfModule>
  5. Jika sudah selesai semua, jangan lupa untuk merestart apache ( /etc/init.d/apache2 restart )
Dari semuanya diatas hardening apache dengan mod_security sudah selesai. Tapi sekalian ditambahkan fitur memperkuat php-nya. Cara paling mudah adalah dengan suhosin.ini. Pertama-tama dibuka file suhosin.ini (lupa sih letaknya dmn tinggal di find or locate yah). Tambahkan di bagian suhosin.executor.eval.blacklist dan suhosin.executor.func.blacklist sintak php yang ingin diblok.

Misalnya pada bagian suhosin.executor.eval.blacklist= "exec, shell_exec, system, passthru, popen, posix_getpwuid, proc_open, ini_restore(), posix_uname, include, include_once, require, require_once, curl_init, fpassthru, file, base64_encode, base64_decode, mail, leak, syslog, pfsockopen, symlink, stream_socket_server, proc_nice, proc_get_status, dl, pcntl_exec, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, socket_accept, socket_bind, socket_connect, socket_create, socket_create_listen, socket_create_pair, link, register_shutdown_function, register_tick_function"

Pada bagian  suhosin.executor.func.blacklist = "dl, exec, shell_exec, system, passthru, popen, posix_getpwuid, proc_open, ini_restore, posix_uname, symlink, ini_alter, virtual, suexec, proc_get_status, proc_nice, proc_terminate, show_source, escapeshellcmd, escapeshellarg"

Tapi hati2 yah kalo fitur ato fungsi di php gak jalan karena sintak diatas diblok.

Kesimpulan
Solusi murah meriah dari modul apache ini, sangat membantu dalam pekerjaan sehari-hari. Sedikit banyak membantu menghadapi serangan yang ditujukan ke lapisan aplikasi.

Tautan konfigurasi mod_security
Tautan konfigurasi php


Oh ya, makasih juga ke mas Vicky Ezra Imanuel

No comments:

Post a Comment