Montaža
Korištenje ModSecurity
Promjena skupa pravila/onemogućavanje ID-a pravila
ModSecurity je vatrozid sloja web aplikacije dizajniran za rad s IIS-om, Apache2 i Nginxom. To je besplatan softver otvorenog koda objavljen pod licencom Apache 2.0. ModSecurity pomaže u zaštiti vašeg web poslužitelja praćenjem i analizom prometa vaše web stranice. To čini u stvarnom vremenu kako bi otkrio i blokirao napade većine poznatih eksploatacija pomoću regularnih izraza. Sam po sebi, ModSecurity pruža ograničenu zaštitu i oslanja se na skupove pravila kako bi maksimizirao zaštitu.
Osnovni skup pravila (CRS) Open Web Application Security Project (OWASP) skup je generičkih pravila za otkrivanje napada koja pružaju osnovnu razinu zaštite za bilo koju web aplikaciju. Skup pravila je besplatan, otvorenog koda i trenutno ga sponzorira Spider Labs.
OWASP CRS pruža:
- HTTP zaštita - otkrivanje kršenja HTTP protokola i lokalno definirane politike upotrebe.
- Traženje crne liste u stvarnom vremenu - koristi reputaciju IP-a treće strane.
- HTTP Denial of Service Protection - obrana od HTTP poplave i sporih HTTP DoS napada.
- Zaštita od uobičajenih web napada - otkrivanje uobičajenih sigurnosnih napada web aplikacija.
- Detekcija automatizacije - otkrivanje botova, alata za indeksiranje, skenera i drugih površinskih zlonamjernih aktivnosti.
- Integracija s AV skeniranjem za prijenos datoteka - otkriva zlonamjerne datoteke prenesene putem web aplikacije.
- Praćenje osjetljivih podataka - Prati korištenje kreditnih kartica i blokira curenje.
- Trojanska zaštita - otkriva trojanske konje.
- Identifikacija nedostataka aplikacije - upozorenja o pogrešnim konfiguracijama aplikacije.
- Otkrivanje i skrivanje pogrešaka - Prikrivanje poruka o greškama koje šalje poslužitelj.
Montaža
Ovaj vam vodič pokazuje kako instalirati ModSecurity i OWASP skup pravila na CentOS 6 koji pokreće Apache 2.
Prvo morate osigurati da je vaš sustav ažuriran.
yum -y update
Ako niste instalirali Apache 2, instalirajte ga sada.
yum -y install httpd
Sada morate instalirati neke ovisnosti kako bi ModSecurity radio. Ovisno o konfiguraciji vašeg poslužitelja, neki ili svi od ovih paketa možda su već instalirani. Yum će instalirati pakete koje nemate i obavijestiti vas ako je neki od paketa već instaliran.
yum -y install httpd-devel git gcc make libxml2 pcre-devel libxml2-devel curl-devel
Promijenite direktorij i preuzmite izvorni kod s web stranice ModSecuity. Trenutna stabilna verzija je 2.8.
cd /opt/
wget https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz
Raspakirajte paket i promijenite njegov direktorij.
tar xzfv modsecurity-2.8.0.tar.gz
cd modsecurity-2.8.0
Konfigurirajte i kompajlirajte izvorni kod.
./configure
make
make install
Kopirajte zadanu konfiguraciju ModSecurity i datoteku za mapiranje Unicodea u Apache direktorij.
cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
cp unicode.mapping /etc/httpd/conf.d/
Konfigurirajte Apache da koristi ModSecurity. Postoje 2 načina na koje to možete učiniti.
echo LoadModule security2_module modules/mod_security2.so >> /etc/httpd/conf/httpd.conf
... ili koristite uređivač teksta kao što je nano:
nano /etc/httpd/conf/httpd.conf
Na dnu te datoteke, u zasebnom retku dodajte ovo:
LoadModule security2_module modules/mod_security2.so
Sada možete pokrenuti Apache i konfigurirati ga za pokretanje pri pokretanju.
service httpd start
chkconfig httpd on
Ako ste imali instaliran Apache prije korištenja ovog vodiča, samo ga trebate ponovno pokrenuti.
service httpd restart
Sada možete preuzeti osnovni skup pravila OWASP-a.
cd /etc/httpd
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
Sada konfigurirajte OWASP skup pravila.
cd modsecurity-crs
cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf
Zatim morate dodati skup pravila u Apache konfiguraciju. Opet to možemo učiniti na dva načina.
echo Include modsecurity-crs/modsecurity_crs_10_config.conf >> /etc/httpd/conf/httpd.conf
echo Include modsecurity-crs/base_rules/*.conf >> /etc/httpd/conf/httpd.conf
... ili s uređivačem teksta:
nano /etc/httpd/conf/httpd.conf
Na dnu datoteke u zasebne retke dodajte ovo:
Include modsecurity-crs/modsecurity_crs_10_config.conf
Include modsecurity-crs/base_rules/*.conf
Sada ponovno pokrenite Apache.
service httpd restart
Na kraju izbrišite instalacijske datoteke.
yum erase /opt/modsecurity-2.8.0
yum erase /opt/modsecurity-2.8.0.tar.gz
Korištenje ModSecurity
Prema zadanim postavkama, ModSecurity radi u načinu samo za otkrivanje, što znači da će zabilježiti sve prekide pravila, ali neće poduzeti ništa. Ovo se preporučuje za nove instalacije kako biste mogli gledati događaje generirane u zapisniku pogrešaka Apachea. Nakon pregleda zapisnika, možete odlučiti treba li napraviti bilo kakvu izmjenu skupa pravila ili onemogućavanje pravila (vidi dolje) prije prelaska u zaštitni način.
Za pregled zapisnika grešaka Apachea:
cat /var/log/httpd/error_log
Redak ModSecurity u zapisniku pogrešaka Apachea podijeljen je na devet elemenata. Svaki element pruža informacije o tome zašto je događaj pokrenut.
- Prvi dio govori koja je datoteka pravila pokrenula ovaj događaj.
- Drugi dio govori na kojem retku u datoteci pravila pravilo počinje.
- Treći element govori koje je pravilo pokrenuto.
- Četvrti element govori o reviziji pravila.
- Peti element sadrži posebne podatke za potrebe otklanjanja pogrešaka.
- Šesti element definira ozbiljnost zapisivanja ozbiljnosti ovog događaja.
- Sedmi dio opisuje koja se radnja dogodila i u kojoj se fazi dogodila.
Imajte na umu da neki elementi mogu biti odsutni ovisno o konfiguraciji vašeg poslužitelja.
Da biste promijenili ModSecurity u način zaštite, otvorite conf datoteku u uređivaču teksta:
nano /etc/httpd/conf.d/modsecurity.conf
... i promijeniti:
SecRuleEngine DetectionOnly
do:
SecRuleEngine On
Ako naiđete na bilo kakve blokove kada je ModSecurity pokrenut, tada morate identificirati pravilo u HTTP zapisniku pogrešaka. Naredba "rep" omogućuje vam da gledate zapisnike u stvarnom vremenu:
tail -f /var/log/httpd/error_log
Ponovite radnju koja je uzrokovala blokadu dok gledate zapisnik.
Promjena skupa pravila/onemogućavanje ID-a pravila
Promjena skupa pravila izvan je opsega ovog vodiča.
Da biste onemogućili određeno pravilo, identificirate ID pravila koji se nalazi u trećem elementu (na primjer [id=200000]), a zatim ga onemogućite u Apache konfiguracijskoj datoteci:
nano /etc/httpd/conf/httpd.conf
... dodavanjem sljedećeg na dno datoteke s ID-om pravila:
<IfModule mod_security2.c>
SecRuleRemoveById 200000
</IfModule>
Ako ustanovite da ModSecurity blokira sve radnje na vašim web-stranicama, tada je "Set temeljnih pravila" vjerojatno u "samostalnom" načinu rada. Morate to promijeniti u "Collaborative Detection", koja otkriva i blokira samo anomalije. Istodobno, možete pogledati opcije "Samostalno" i promijeniti ih ako to želite.
nano /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf
Promijenite "detekciju" u "Samostalno".
Također možete konfigurirati ModSecurity da dopusti vaš IP putem vatrozida web aplikacije (WAF) bez evidentiranja:
SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=Off
... ili uz prijavu:
SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=DetectionOnly