Thursday, June 4, 2015

ModSecurity


Apa itu ModSecurity ?, ModSecurity adalah Web Application Firewall (WAF) yang bekerja untuk Apache, Nginx dan IIS. Dengan manambahkan WAF pada web server kita, tentu akan meningkatkan keamanan web server dari serangan cracker yang tidak bertanggung jawab. Di sini saya menggunakan sitem operasi ubuntu server 14.04 LTS 64 bit dan menggunakan apache2 untuk web server nya.

Install apache webserver dan paket pendukung :

sudo apt-get install apache2 php5 php5-xmlrpc php5-mysql php5-gd php5-cli \
php5-curl mysql-client mysql-server

Install dependensi yang dibutuhkan ModSecurity :

sudo apt-get install libxml2 libxml2-dev libxml2-utils \
libaprutil1 libaprutil1-dev

Untuk mengguna 64bit, perlu menambahkan link berikut :

ln -s /usr/lib/x86_64-linux-gnu/libxml2.so /usr/lib/libxml2.so
ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2 /usr/lib/libxml2.so.2
ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1 /usr/lib/libxml2.so.2.9.1

Tes webserver dengan php script yang sudah saya buat (tugas kampus gan hehe), teman" bisa mendownload nya di :


Taruh di /var/www/html/ :

cp rizal.zip /var/www/html

ektrack file zip :

cd /var/www/html/
unzip rizal.zip --> lakukan apt-get install unzip, jika unzip belum terinstall
mv rizal chat --> rename file

Rubah kepemilikan folder :

chown www-data.www-data chat/*

Siapkan database :

mysql -u root -proot mysql < chat/DATABASE/SQL_SCRIPT.sql

Tampilan webserver apache2 :

 Tampilan Login form :


Tampilan login menggunakan user 'rizal' :


Login dengan sql-injection : ' or true --


Install ModSecurity :

apt-get install libapache2-modsecurity

Periksa modul ModSecurity :

apachectl -M | grep --color security

Rename modsecurity.conf :

mv /etc/modsecurity/modsecurity.conf{-recommended,}

restart apache2 :

/etc/init.d/apache2 restart

cek direktorik log apache :

ls -l /var/log/apache2/modsec_audit.log

konfigurasi modsecurity.conf :

vim /etc/modsecurity/modsecurity.conf
temukan SecRuleEngine DetectionOnly menjadi SecRuleEngine On.

Pada SecRuleEngine DetectionOnly ModSecurity hanya mencatat permintaan yang sesuai dengan aturan yang cocok tapi tidak memblokir apa-apa.

Hapus folder /usr/share/modsecurity-crs/ : rm -rf /usr/share/modesecurity-src/

Install OWASP Rule terbaru :

cd /tmp
tar zxvf modsecurity-crs_2.2.5.tar.gz -C /usr/share/modsecurity-crs/
cd /usr/share/modsecurity-crs/
mv modsecurity-crs_2.2.5 modsecurity-crs

Membuat symlinks di dalam directory activated_rules untuk mengaktifkan aturan :

cd /usr/share/modsecurity-crs/activated_rules/
ln -s /usr/share/modsecurity-crs/base_rules/* . --> mengaktifkan semua aturan di base_rules

Load aturan yang berada di activated_rules :

vim /etc/apache2/mods-enabled/security2.conf

Tambahkan aturan berikut di dalam <IfModule security2_module> </IfModule> :

Include "/usr/share/modsecurity-crs/*.conf"
Include "/usr/share/modsecurity-crs/activated_rules/*.conf"

Restart apache2 :

/etc/init.d/apache2 restart

Tes web server : http://192.168.56.1/chat :

Tampilan di atas terjadi karena ada rules/aturan ModSecurity yang aktif, lihat di log :

more /var/log/apache2/modsec_audit.log

hasil :

--c71a265e-H--
Message: Access denied with code 403 (phase 2). Pattern match "^[\\d.:]+$" at REQUEST_HEADERS:Host. [file "/usr/share/modsecurity-crs/activated_rules/m
odsecurity_crs_21_protocol_anomalies.conf"] [line "98"] [id "960017"] [rev "2.2.5"] [msg "Host header is a numeric IP address"] [severity "CRITICAL"] [
tag "PROTOCOL_VIOLATION/IP_HOST"] [tag "WASCTC/WASC-21"] [tag "OWASP_TOP_10/A7"] [tag "PCI/6.5.10"] [tag "http://technet.microsoft.com/en-us/magazine/2
005.01.hackerbasher.aspx"]
Action: Intercepted (phase 2)
Apache-Handler: application/x-httpd-php
Stopwatch: 1433394271606134 4710 (- - -)
Stopwatch2: 1433394271606134 4710; combined=1353, p1=812, p2=389, p3=0, p4=0, p5=151, sr=120, sw=1, l=0, gc=0
Response-Body-Transformed: Dechunked
Producer: ModSecurity for Apache/2.7.7 (http://www.modsecurity.org/); OWASP_CRS/2.2.5.
Server: Apache/2.4.7 (Ubuntu)
Engine-Mode: "ENABLED"

usr/share/modsecurity-crs/activated_rules/modsecurity_crs_21_protocol_anomalies.conf --> adalah rules yang sedang aktif karena kita langsung mengakses host header dengan IP address

Hapus rules :

rm usr/share/modsecurity-crs/activated_rules/modsecurity_crs_21_protocol_anomalies.conf

Restart apache :

/etc/init.d/apache2 restart

Tes webserver :


ModSecurity log : vim /var/log/apache2/modsec_audit.log 


Selesai, mohon maaf jika ada kekurangan pada tutorial kali ini ...
referensi :
http://www.root25.com/2012/11/how-to-install-modsecurity-on-apache-ubuntu12-stepbystep-tutorial.html

http://cyberlearning.web.id/wiki/index.php/ModSecurity:_Instalasi

No comments:

Post a Comment

dilarang berkomentar menggunakan kata-kata yang tidak pantas... !!!