Installasjon
Bruker ModSecurity
Endre et regelsett/deaktivere en regel-ID
ModSecurity er en brannmur for nettapplikasjonslag designet for å fungere med IIS, Apache2 og Nginx. Det er gratis åpen kildekode-programvare utgitt under Apache-lisensen 2.0. ModSecurity hjelper deg med å sikre webserveren din ved å overvåke og analysere trafikken på nettstedet ditt. Den gjør dette i sanntid for å oppdage og blokkere angrep fra de fleste kjente utnyttelser ved å bruke regulære uttrykk. I seg selv gir ModSecurity begrenset beskyttelse og er avhengig av regelsett for å maksimere beskyttelsen.
Open Web Application Security Project (OWASP) Core Rule Set (CRS) er et sett med generiske angrepsdeteksjonsregler som gir et grunnleggende beskyttelsesnivå for enhver nettapplikasjon. Regelsettet er gratis, åpen kildekode og for tiden sponset av Spider Labs.
OWASP CRS gir:
- HTTP-beskyttelse - oppdager brudd på HTTP-protokollen og en lokalt definert brukspolicy.
- Svartelisteoppslag i sanntid – bruker tredjeparts IP-omdømme.
- HTTP Denial of Service Protection - forsvar mot HTTP-flom og langsomme HTTP DoS-angrep.
- Common Web Attacks Protection - oppdager vanlige nettapplikasjonssikkerhetsangrep.
- Automatiseringsdeteksjon - Oppdager roboter, robotsøkeprogrammer, skannere og annen ondsinnet aktivitet.
- Integrasjon med AV-skanning for filopplasting - oppdager skadelige filer lastet opp via nettapplikasjonen.
- Spore sensitive data - Sporer kredittkortbruk og blokkerer lekkasjer.
- Trojan Protection - Oppdager trojanske hester.
- Identifikasjon av applikasjonsfeil - varsler om applikasjonsfeilkonfigurasjoner.
- Feilgjenkjenning og skjul - Tilsløre feilmeldinger sendt av serveren.
Installasjon
Denne guiden viser deg hvordan du installerer ModSecurity og OWASP regelsett på CentOS 6 som kjører Apache 2.
Først må du sørge for at systemet ditt er oppdatert.
yum -y update
Hvis du ikke har installert Apache 2, installer den nå.
yum -y install httpd
Du må nå installere noen avhengigheter for at ModSecurity skal fungere. Avhengig av serverkonfigurasjonen kan noen eller alle disse pakkene allerede være installert. Yum vil installere pakkene du ikke har og informere deg om noen av pakkene allerede er installert.
yum -y install httpd-devel git gcc make libxml2 pcre-devel libxml2-devel curl-devel
Endre katalog og last ned kildekoden fra ModSecuity-nettstedet. Den nåværende stabile versjonen er 2.8.
cd /opt/
wget https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz
Pakk ut pakken og bytt til katalogen.
tar xzfv modsecurity-2.8.0.tar.gz
cd modsecurity-2.8.0
Konfigurer og kompiler kildekoden.
./configure
make
make install
Kopier standard ModSecurity-konfigurasjon og unicode-tilordningsfilen til Apache-katalogen.
cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
cp unicode.mapping /etc/httpd/conf.d/
Konfigurer Apache til å bruke ModSecurity. Det er 2 måter du kan gjøre dette på.
echo LoadModule security2_module modules/mod_security2.so >> /etc/httpd/conf/httpd.conf
... eller bruk et tekstredigeringsprogram som nano:
nano /etc/httpd/conf/httpd.conf
På bunnen av den filen, på en egen linje, legg til dette:
LoadModule security2_module modules/mod_security2.so
Du kan nå starte Apache og konfigurere den til å starte ved oppstart.
service httpd start
chkconfig httpd on
Hvis du hadde Apache installert før du brukte denne veiledningen, trenger du bare å starte den på nytt.
service httpd restart
Du kan nå laste ned OWASP kjerneregelsettet.
cd /etc/httpd
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
Konfigurer nå OWASP-regelsettet.
cd modsecurity-crs
cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf
Deretter må du legge til regelsettet til Apache-konfigurasjonen. Igjen kan vi gjøre dette på to måter.
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
... eller med et tekstredigeringsprogram:
nano /etc/httpd/conf/httpd.conf
Legg til dette nederst i filen på separate linjer:
Include modsecurity-crs/modsecurity_crs_10_config.conf
Include modsecurity-crs/base_rules/*.conf
Start Apache på nytt.
service httpd restart
Til slutt sletter du installasjonsfilene.
yum erase /opt/modsecurity-2.8.0
yum erase /opt/modsecurity-2.8.0.tar.gz
Bruker ModSecurity
Som standard kjører ModSecurity i bare deteksjonsmodus, noe som betyr at den vil logge alle regelbrudd, men ikke gjøre noe. Dette anbefales for nye installasjoner, slik at du kan se hendelsene generert i Apache-feilloggen. Etter å ha gjennomgått loggen, kan du bestemme om det skal gjøres endringer i regelsettet eller deaktivering av regelen (se nedenfor) før du går over til beskyttelsesmodus.
Slik viser du Apache-feilloggen:
cat /var/log/httpd/error_log
ModSecurity-linjen i Apache-feilloggen er delt inn i ni elementer. Hvert element gir informasjon om hvorfor hendelsen ble utløst.
- Den første delen forteller hvilken regelfil som utløste denne hendelsen.
- Den andre delen forteller hvilken linje i regelfilen regelen starter på.
- Det tredje elementet forteller deg hvilken regel som ble utløst.
- Det fjerde elementet forteller deg revisjonen av regelen.
- Det femte elementet inneholder spesielle data for feilsøkingsformål.
- Det sjette elementet definerer loggingsgraden for denne hendelsens alvorlighetsgrad.
- Den syvende delen beskriver hvilken handling som skjedde og i hvilken fase den skjedde.
Merk at noen elementer kan være fraværende avhengig av konfigurasjonen til serveren din.
For å endre ModSecurity til beskyttelsesmodus, åpne conf-filen i et tekstredigeringsprogram:
nano /etc/httpd/conf.d/modsecurity.conf
... og endre:
SecRuleEngine DetectionOnly
til:
SecRuleEngine On
Hvis du støter på blokkeringer når ModSecurity kjører, må du identifisere regelen i HTTP-feilloggen. "hale"-kommandoen lar deg se loggene i sanntid:
tail -f /var/log/httpd/error_log
Gjenta handlingen som forårsaket blokkeringen mens du ser på loggen.
Endre et regelsett/deaktivere en regel-ID
Å endre et regelsett er utenfor omfanget av denne opplæringen.
For å deaktivere en spesifikk regel, identifiserer du regel-ID-en som er i det tredje elementet (for eksempel [id=200000]) og deaktiverer den deretter i Apache-konfigurasjonsfilen:
nano /etc/httpd/conf/httpd.conf
... ved å legge til følgende nederst i filen med regel-IDen:
<IfModule mod_security2.c>
SecRuleRemoveById 200000
</IfModule>
Hvis du oppdager at ModSecurity blokkerer alle handlinger på nettsiden(e), er "Core Rule Set" sannsynligvis i "Selvstendig"-modus. Du må endre dette til "Collaborative Detection", som kun oppdager og blokkerer uregelmessigheter. Samtidig kan du se på "Self-Contained"-alternativene og endre dem hvis du ønsker å gjøre det.
nano /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf
Endre "deteksjon" til "Selvstendig".
Du kan også konfigurere ModSecurity til å tillate IP-en din gjennom nettapplikasjonens brannmur (WAF) uten å logge:
SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=Off
... eller med logging:
SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=DetectionOnly