Telepítés
ModSecurity használata
Szabálykészlet módosítása/Szabályazonosító letiltása
A ModSecurity egy webalkalmazási rétegű tűzfal, amelyet az IIS, Apache2 és Nginx rendszerekkel való együttműködésre terveztek. Ez egy ingyenes, nyílt forráskódú szoftver, amelyet az Apache 2.0 licenc alatt adtak ki. A ModSecurity segít megvédeni webszerverét a webhely forgalmának figyelésével és elemzésével. Ezt valós időben teszi, hogy reguláris kifejezések segítségével észlelje és blokkolja a legtöbb ismert kihasználásból származó támadásokat. Önmagában a ModSecurity korlátozott védelmet nyújt, és szabálykészletekre támaszkodik a védelem maximalizálása érdekében.
Az Open Web Application Security Project (OWASP) Core Rule Set (CRS) olyan általános támadásészlelési szabályok összessége, amelyek alapszintű védelmet biztosítanak bármely webalkalmazás számára. A szabálykészlet ingyenes, nyílt forráskódú, és jelenleg a Spider Labs támogatja.
Az OWASP CRS a következőket kínálja:
- HTTP védelem – a HTTP protokoll és a helyileg meghatározott használati szabályzat megsértésének észlelése.
- Valós idejű feketelistás keresések – harmadik fél IP hírnevét használja fel.
- HTTP szolgáltatásmegtagadás elleni védelem – védelem a HTTP elárasztása és a lassú HTTP DoS támadások ellen.
- Common Web Attacks Protection – általános webalkalmazás-biztonsági támadások észlelése.
- Automatizálási észlelés – Botok, bejárók, szkennerek és egyéb felszíni rosszindulatú tevékenységek észlelése.
- Integráció az AV-kereséssel a fájlfeltöltésekhez – észleli a webalkalmazáson keresztül feltöltött rosszindulatú fájlokat.
- Érzékeny adatok nyomon követése – Nyomon követi a hitelkártyahasználatot és blokkolja a szivárgásokat.
- Trójai védelem – Érzékeli a trójai falakat.
- Alkalmazáshibák azonosítása – riasztások az alkalmazás hibás konfigurációiról.
- Hibaészlelés és elrejtés – A szerver által küldött hibaüzenetek álcázása.
Telepítés
Ez az útmutató bemutatja, hogyan telepítheti a ModSecurity és az OWASP szabálykészletet Apache 2-t futtató CentOS 6 rendszeren.
Először is meg kell győződnie arról, hogy rendszere naprakész.
yum -y update
Ha még nem telepítette az Apache 2-t, telepítse most.
yum -y install httpd
Most telepítenie kell néhány függőséget a ModSecurity működéséhez. A szerver konfigurációjától függően előfordulhat, hogy ezeknek a csomagoknak egy része vagy mindegyike már telepítve van. A Yum telepíti azokat a csomagokat, amelyekkel nem rendelkezik, és tájékoztatja Önt, ha valamelyik csomag már telepítve van.
yum -y install httpd-devel git gcc make libxml2 pcre-devel libxml2-devel curl-devel
Változtassa meg a könyvtárat, és töltse le a forráskódot a ModSecuity webhelyről. A jelenlegi stabil verzió a 2.8.
cd /opt/
wget https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz
Csomagolja ki a csomagot, és lépjen be a könyvtárába.
tar xzfv modsecurity-2.8.0.tar.gz
cd modsecurity-2.8.0
Konfigurálja és fordítsa le a forráskódot.
./configure
make
make install
Másolja az alapértelmezett ModSecurity konfigurációt és a unicode leképezési fájlt az Apache könyvtárba.
cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf
cp unicode.mapping /etc/httpd/conf.d/
Konfigurálja az Apache-t a ModSecurity használatára. Ezt kétféleképpen teheti meg.
echo LoadModule security2_module modules/mod_security2.so >> /etc/httpd/conf/httpd.conf
... vagy használjon szövegszerkesztőt, például nano:
nano /etc/httpd/conf/httpd.conf
A fájl alján egy külön sorba írja be ezt:
LoadModule security2_module modules/mod_security2.so
Most elindíthatja az Apache-t, és beállíthatja, hogy rendszerindításkor induljon.
service httpd start
chkconfig httpd on
Ha az Apache-t az útmutató használata előtt telepítette, akkor csak újra kell indítania.
service httpd restart
Most már letöltheti az OWASP alapszabálykészletét.
cd /etc/httpd
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
Most állítsa be az OWASP szabálykészletet.
cd modsecurity-crs
cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf
Ezután hozzá kell adnia a szabálykészletet az Apache konfigurációjához. Ezt ismét kétféleképpen tehetjük meg.
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
... vagy szövegszerkesztővel:
nano /etc/httpd/conf/httpd.conf
A fájl alján, külön sorokban adja hozzá ezt:
Include modsecurity-crs/modsecurity_crs_10_config.conf
Include modsecurity-crs/base_rules/*.conf
Most indítsa újra az Apache-ot.
service httpd restart
Végül törölje a telepítő fájlokat.
yum erase /opt/modsecurity-2.8.0
yum erase /opt/modsecurity-2.8.0.tar.gz
ModSecurity használata
Alapértelmezés szerint a ModSecurity csak észlelési módban fut, ami azt jelenti, hogy naplózza az összes szabálytörést, de nem tesz semmit. Ez az új telepítéseknél ajánlott, hogy megtekinthesse az Apache hibanaplójában generált eseményeket. A napló áttekintése után eldöntheti, hogy módosítani kell-e a szabálykészletet vagy letiltani a szabályt (lásd alább), mielőtt védelmi módba lépne.
Az Apache hibanapló megtekintése:
cat /var/log/httpd/error_log
Az Apache hibanapló ModSecurity sora kilenc elemre oszlik. Minden elem információt ad arról, hogy miért váltotta ki az eseményt.
- Az első rész megmondja, hogy melyik szabályfájl váltotta ki ezt az eseményt.
- A második rész megmondja, hogy a szabályfájl melyik sorával kezdődik a szabály.
- A harmadik elem megmondja, hogy melyik szabályt váltották ki.
- A negyedik elem a szabály felülvizsgálatát mutatja be.
- Az ötödik elem speciális adatokat tartalmaz hibakeresési célokra.
- A hatodik elem határozza meg az esemény súlyosságának naplózási súlyosságát.
- A hetedik rész leírja, hogy milyen cselekvés és milyen fázisban történt.
Vegye figyelembe, hogy egyes elemek hiányozhatnak a szerver konfigurációjától függően.
A ModSecurity védelmi módba állításához nyissa meg a conf fájlt egy szövegszerkesztőben:
nano /etc/httpd/conf.d/modsecurity.conf
... és változtass:
SecRuleEngine DetectionOnly
nak nek:
SecRuleEngine On
Ha a ModSecurity futása közben bármilyen blokkolással találkozik, akkor azonosítania kell a szabályt a HTTP hibanaplóban. A "tail" parancs lehetővé teszi a naplók valós idejű megtekintését:
tail -f /var/log/httpd/error_log
Ismételje meg a blokkot okozó műveletet, miközben nézi a naplót.
Szabálykészlet módosítása/Szabályazonosító letiltása
A szabálykészlet módosítása túlmutat ennek az oktatóanyagnak a keretein.
Egy adott szabály letiltásához azonosítsa a szabályazonosítót, amely a harmadik elemben található (például [id=200000]), majd tiltsa le az Apache konfigurációs fájljában:
nano /etc/httpd/conf/httpd.conf
... hozzáadva a következőt a fájl aljához a szabályazonosítóval:
<IfModule mod_security2.c>
SecRuleRemoveById 200000
</IfModule>
Ha úgy találja, hogy a ModSecurity blokkol minden műveletet a webhelye(i)en, akkor az „Alapszabálykészlet” valószínűleg „Önálló” módban van. Módosítsa ezt az „Együttműködő észlelés”-re, amely csak az anomáliákat észleli és blokkolja. Ugyanakkor megtekintheti az „Önálló” opciókat, és módosíthatja azokat, ha szeretné.
nano /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf
Módosítsa az „észlelést” „Önálló”-ra.
A ModSecurity-t úgy is beállíthatja, hogy naplózás nélkül engedélyezze IP-címét a webalkalmazás tűzfalán (WAF):
SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=Off
... vagy naplózással:
SecRule REMOTE_ADDR "@ipMatch xxx.xxx.xxx.xxx" phase:1,nolog,allow,ctl:ruleEngine=DetectionOnly