Apache2 mod_log_forensic

Er du også træt af at hackere roder rundt på dit webhotel? Nåh ikke … nå men jeg har altså et par kunder der koder cirka ligeså godt som smeden laver konfekture … og det har været lidt en udfordring at finde ud af hvordan hackerne kommer ind når man ikke kender koden. I den situation er det rart at kunne genskabe de requests en angriber laver … og der kommer mod_log_forensic ind i billedet, det er et modul til Apache der logger hele requesten.

apt-get update
apt-get upgrade
apt-get install apache2-utils apache2 libapache2-mod-php5 vim

Rediger /etc/apache2/sites-enabled/000-default og sæt flg. ind i VirtualHost blokken:

LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" \"%{forensic-id}n\"" combined-fid
ForensicLog /tmp/forensic.log

og ret:

CustomLog ${APACHE_LOG_DIR}/access.log combined

til:

CustomLog ${APACHE_LOG_DIR}/access.log combined-fid

Afslut med:

a2enmod log_forensic 
/etc/init.d/apache2 restart

Tast nu serverens ip i din browser og refresh et par gange, og tjek så din accesslog:

root@mcsweb:~# tail -n1 /var/log/apache2/access.log 
10.0.0.2 - - [24/Feb/2016:22:48:03 +0000] "GET / HTTP/1.1" 200 485 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4" "11709:56ce3323:0"

Her ser du din almindelige log-linie, med med et forensics id tilføjet. Første del af forensics id’et (11709) er process-id på den apache process der har serviceret klienten. Forensics id kan bruges til at slå op i forensics loggen med:

root@mcsweb:~# cat /tmp/forensic.log | grep 11709:56ce3323:0
+11709:56ce3323:0|GET / HTTP/1.1|Host:mcsweb.mikjaer.com|Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8|Connection:keep-alive|Cookie:PHPSESSID=rdurmvuiulrefbud44aviun0c7; user=John+Doe|User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4|Accept-Language:da-dk|Cache-Control:max-age=0|Accept-Encoding:gzip, deflate
-11709:56ce3323:0

Har har du både post og get variabler, http headers, coockies, url … ja generelt alt hvad du skal bruge for at kunne genskabe requesten.

Lige pt. anvender jeg det bare som beskrevet her, men jeg har overvejet at koble noget automatik på der automatisk detekterer og logger hackerangreb.

Dette indlæg blev udgivet i Apache, Knowledge Base, Linux, Old Base. Bogmærk permalinket.

Skriv et svar