2013. december 18., szerda

IDS/IPS detektálás és megkerülés

A mostani bejegyzésben írok pár gondolatot az IDS/IPS rendszerekről. Egy áthatolás tesztelésnél hogy lehet detektálni a rendszerek létezését illetve, milyen alapvető megkerülési lehetőségeink vannak.

Elég sok cikket elolvastam a témáról ami a neten elérhető és a jelen állás szerint a leghasználhatóbb ingyenes toolnak a w3af tűnik. A grafikus felületen van egy előre definiált web_infrastructure profil, ebbe csak azok a pluginok kerültek bele ami a web oldal különböző védelméről és a felépítéséről tudnak minket informálni.

A következő ellenőrzéseket hajtja végre a profil:
  • afd (Active Filtering Detection)
  • Reverse Proxy Detection
  • Transparent Proxy Detection
  • find virtual hosts
  • WAF (Web Application Firewall) fingerprinting
  • OS fingerprinting
  • Load Balance Detection
  • web server fingerprint
Ezek közül az OS detektálásra - szerintem - alkalmasabb a SinFP, a Web szolgáltatás detektálására pedig a HTTPrint. Load Balance detektálásra ki lehet még próbálni az lbd-t (load balance detector) illetve WAF detektálásra a wafw00f-ot. (A fenti alkalmazások közül csak a SinFP-t és a HTTPrintet kell külön telepíteni, a többi a Kali Linux része.)

Mivel egy átlagos céges/nagyvállalati környezet úgy néz ki, hogy a web szerverek előtt tűzfal, ids/ips, proxy-k és terhelés elosztók is lehetnek ezért a pontos infrastruktúra meghatározása kívülről nem egyszerű feladat. Ha több publikus elérhetőség van vélhetőleg egyazon infrastruktúra mögött, akkor több információból több következtetést lehet levonni. Ha csak kevés számú publikus szolgáltatás van, akkor az infrastruktúra felderítése kívülről sokkal nehezebb.

A mezei detektálást az afd plugin végzi. Ez a plugin a purehacker által fejlesztett osstmm-afd programon alapul (sajnos ezt a programot már nem tudtam letölteni a netről, így pontosan nem tudom, hogy ez hogy működött) Ez csak annyit árul el a hostról, hogy vélhetően van-e előtte Active Filtering vagy nincs.  A reverse proxy detektálás elvileg meg tudná mondani, hogy az adott szerver előtt van-e beépített reverse-proxy védelem. Ha van, akkor ezt a vizsgálat során jelzi.

A leggyorsabban úgy tudunk ilyen vizsgálatokat futtatni, hogy első lépésben csak az adf vizsgálatát engedélyezzük - ez viszonylag gyorsan lefut - és ebből lehet következtetni rá, hogy a szerver előtt van-e még valamilyen egyéb szűrő ami blokkolhatja a vizsgálatainkat. Ezt azért fontos tudni, mert az ilyen szűrők már egy sima nikto-t is el tudnak kaszálni így nem tudjuk felmérni a szerver állapotát amennyiben alapbeállításokkal indítjuk a vizsgálatot.

Arra, hogy az ids/ips típusát hogy lehet meghatározni egyelőre még nem jöttem rá. A w3af-be beépített eszközök egyelőre még nem tudtak ezzel kapcsolatban értékelhető információval szolgálni.

Az OS detektálásra a SinFP szerintem elég megbízható szoftver, de az nmap-ot és a p0f-ot is rá lehet engedni a publikus szolgáltatásra, hogy azok mit tudnak róla megállapítani. Az így összeállt információkból lehet esetleg következtetni a határvédelmi eszközök típusára.

Amennyiben a típust sikerült valahogy körülhatárolni, akkor utána az IDS megkerülési technikák közül ki tudjuk választani azokat amelyek az adott rendszernél hatékonyak lehetnek.

Az nmap-ban és a nikto-ban vannak beépített IDS bypass (vagy evasion) módszerek, de a w3af-ben is találunk pár lehetőséget. Ezeket tudjuk egyesével próbálgatni majd az eredményeket elemezni, hogy rájöjjünk, hogy az adott ids-t melyik módszerrel lehet megkerülni.

Az IDS megkerülés azért is fontos, mert általában ezek blokkolóként is funkciónálnak: nem csak meggátolják, hogy a vizsgálatok a webszerverre eljussanak de sok esetben az ip címet is kitiltják egy időre - így a további vizsgálatok eredménye megbízhatatlan lesz.  Ezért amíg nem jöttünk rá, hogy az ids-t milyen módszerrel tudjuk megkerülni érdemes kisebb számú kérésekkel bombázni csak a szervert, nehogy kitiltsa az ip címünket.

Azt érdemes tudni, hogy az IDS/IPS rendszerek egyrész szignatúra alapon vizsgálják a kéréseket (tehát, ha tudunk valamilyen eltérő mintát generálni, akkor a vizsgálaton nem akad fenn a kérésünk) másrészt egyéb anomáliákat is figyelnek (túl sok kérés érkezik egyszerre egy helyről), így valószínűleg a különböző megkerülési technikák kombinációja kell a sikeres vizsgálathoz.

Közben még a wiresharkot is érdemes nézegetni, hogy milyen kérésekre milyen válaszok érkeznek.

A lényeg, hogy elég összetett feladat és szép kihívás egy ids/ips-el védett rendszer mögé kártékony kéréseket bejuttatni, de ez egy rendes penteszternek kötelessége :-) Sok időt el lehet vacakolni a kérések próbálgatásával...

Erről a témáról remélem lesz még időm írni, mert elég fontos. Legalább olyan fontos tudni, hogy az ids/ips-ünket hogy lehet kicselezni, mint azt felismerni, hogy az antivírus szoftvereink is átverhetőek...

2 megjegyzés:

  1. I've been using AVG security for a couple of years, and I'd recommend this product to all you.

    VálaszTörlés
  2. BlueHost is ultimately the best hosting company for any hosting services you might need.

    VálaszTörlés