2009. szeptember 8., kedd

Problémák a másodikon

A TCP/IP-s világ második rétegében csupa olyan protokoll található, amiről a legtöbb felhasználónak nem sok ismerete van - IP-címekről meg TCP-s portokról talán még hallanak, azonban ennél mélyebb rétegbeli dolgokkal nem nagyon kerülnek kapcsolatba. Hovatovább, sok szakmabelinek sincs meg sokkal több az L2-es világ lakóiról annál, hogy "ezek azok az csomagok, amiket a Wireshark mindenféle színekkel jelöl".

Biztonsági szempontból a layer2-es protokollok meglehetősen fekete báránynak számítanak, ugyanis mint látni fogjuk, igen nagy problémákat lehet okozni céltudatos használatukkal, viszont a klasszikus hálózatbiztonsági eszközpark alatt szó szerint átcsúsznak - lévén a tűzfalak, IPS/IDS-ek többnyire IP rétegben és afölött elemzik a hálózati forgalmat.

ARP
A nagy öreg. Address Resolution Protocolt jelent - ennek használatával kapcsolják össze a hálózati végpontok és a switchek a logikai IP-címeket a hálókártyák fizikai MAC-címeivel. Az ARP klasszikus példája az internet hőskorában megalkotott, feltétlen és teljes bizalmon alapuló protokolloknak: működése során egyrészt meg lehet kérdezni broadcastban egy IP-címhez tartozó MAC-címet. Lehet gratuitous, azaz kéretlen ARP válaszokat is küldeni: broadcastban megy, és mindenki, aki hallótávolságon (azaz ugyanazon a broadcast domainen) belül lakik, az eltárolja a válaszban kapott információkat.

Ezzel pedig remek játékokat lehet játszani, lévén a switchek annyit figyelnek, hogy melyik lábukon melyik MAC-cím lakik, és a hozzájuk érkező frame-ek destination MAC mezőjének figyelése alapján eldöntik, melyik lábukra kell továbbküldeni őket. A támadás ARP poisoning néven vált híressé: a gonosz támadó (M) keres két, egymással kommunikáló hosztot (A-t és B-t), majd elhiteti A-val, hogy B IP-címe megegyezik M MAC-címével, illetve B-vel, hogy A IP-címéhez is M MAC-címe tartozik. Bingo, a switch az A és B közötti adatforgalmat M felé irányítja.

Az ARP poisoningről túl sokat nem is mondanánk többet. Jelezni elég egyszerű: A és B ott foghat gyanút, hogy ugyanahoz a MAC-címhez a lokális ARP cache-ben két IP is tartozik, az arpwatch okos kis eszköze pont ezt figyeli. Ami a hálózati védekezést illeti, a napokban találkoztunk egy nagyon cseles megoldással: a legtöbb eszköz, amivel véghez lehet vinni ARP poisoninget, előzetesen végigtapogatja a lokális subnetet MAC/IP párok után: ez a művelet meglehetősen pontosan érzékelhető. A kérdéses hálózat erre azzal reagált, hogy öt percre kikapcsolta a feszültséget a hálókábelben.

CDP
Cisco Discovery Protocol. Nyilvánvalóan nem közösségi eredetű protokoll, arra szolgál, hogy a Hidas Gyártó eszközei feltérképezzék egymást. A CDP üzenetek alapból broadcastban mennek a hálózaton: az auditor csatlakozik a hálózathoz és hallgatózik, mire egyszer csak ilyenek hullanak az ölébe, mint például:

Source MAC 00:21:AF:4C:DE:6C
Destination MAC 01:00:0C:CC:CC:CC
Version 02
TTL B4
Checksum D023
DevID nagyswitch.nagyceg.hu
Software version Cisco IOS Software
Platform cisco WS-C6509-E
Addresses 172.021.160.254
Port ID GigabitEthernet4/46
Capabilities 00000029
IP Prefix/Gateway
VTP Domain GIGAOFFISZ
Native VLAN 01AB
Duplex01
Trust Bitmap 00
Untrusted CoS 00
Management Addr 172.021.160.254
Kezdőknek eláruljuk, hogy a fenti üzenetből megtudjuk a kérdéses eszköz MAC-címét, gyártóját (Cisco), a menedzsment interfész IP-címét és a VTP domaint.

Támadási fronton CDP-vel egészen pofás virtuális eszközparkot varázsolhatunk az üzemeltetők elé, akik szinte biztosan meglepett arcot vágnak, amikor a CiscoWorksben egyszer csak manifesztálódik a hajnali ködből nyolc-tíz gigabites hálózati szekrény.

DTP
Dynamic Trunking Protocol. Aki kihagyta volna, most fussa át az előző leckét, amelyben a VLAN hívószóra leírtuk, mi a különbség az access portok és a trunköltek között.

Mindenki visszajött? Akkor eláruljuk ismét, hogy a DTP arra jó, hogy a switchek egymás között le tudják rendezni, hogy hogy akarják kezelni a trönkölt forgalmat. Ha a switchen engedélyezett a portunkban a DTP (illetve nincs explicite letiltva), akkor rá lehet beszélni a switchünket arra, hogy kapcsolja trönkké. Ezután pedig taggeléssel bármelyikbe belebeszélhetünk.

HSRP és VRRP
Hot Stand-by Redundancy Protocol és Virtual Router Redundancy Protocol: arra jók, hogy transzparens módon teszik lehetővé több router összekapcsolását a default gw feladataira. Ha az egyik router kiesik, jön helyette egy másik, a felhasználó pedig ebből semmit sem vesz észre.

Közös vonása a két protokollnak az, hogy nem használnak alapkiépítésben sem hitelesítést, sem titkosítást, valamint mindkettő "bizalmi" alapokra helyezi a prioritás megválasztását a backup routerek között. A támadó ezáltal könnyen fel tud kerülni a legmagasabb prioritású backup router szerepére.

Közös megakasztási lehetőség az, hogy a támadó erővel megválasztatja magát a legmagasabb prioritású backup routernek, a kettes pályán pedig valahogyan (ízlés szerint) DoS-olja az igazi gw-t. Innét már csak egy lépés az, amikor egyszer csak ő lesz az átjáró - ez pedig klasszikus MiTM, illetve DoS.

Auditálási szempontból roppant hálás dolog VRRP/HSRP után vadászni, ugyanis többnyire pár másodpercenként jön egy ilyen keret a hálózaton, a Wireshark élénkpiros színnel jelöli a VRRP kereteket, ezáltal a reggeli kávé előtt is könnyen szembe ötlik a használata.

RSTP
Az RSTP az ARP mellett a hálózati protokollok másik nagy öregje: aki csak kicsit is foglalkozik hálózati biztonsággal, legalább egyszer találkozott vele. Az RSTP nagyon fontos a hálózat túlélésének és megbízható működésének szempontjából: ez biztosítja, hogy a többnyire meglehetős fizikai redundanciával felépített hálózatokban minimális súlyú (költségű) feszítőfa tudjon kialakulni.

Az RSTP alapú támadások meglehetősen egy sémára épülnek: a támadó úgy küld a hálózatra RSTP kereteket, hogy átalakítsa a jelenlegi fát. A dolog csúcsa az, amikor a támadó a fa gyökere lesz: ekkor minden forgalom rajta megy át - laptoppal nagy hálózatban eléggé nyögős a történet, ugyanis a legtöbb laptop viszonylag nehezen viseli, amikor egyszer csak rázúdul négy-öt gigabitnyi adatforgalom. Ízlés szerint nem feltétlenül szükséges beszállni a fába: nagyon egyszerűen meg lehet akasztani egy nagy hálózatot azzal is, ha a támadó összezavarja a fát.

Irodalom a témában:
http://www.amazon.com/LAN-Switch-Security-Hackers-Switches/dp/1587052563
www.yersinia.net

2 megjegyzés:

  1. "Az ARP (...) működése során egyrészt meg lehet kérdezni broadcastban egy IP-címhez tartozó MAC-címet, másrészt a válasz is broadcastban megy, és mindenki, aki hallótávolságon (azaz ugyanazon a broadcast domainen) belül lakik, az eltárolja a válaszban kapott információkat."

    Ööö... az ARP válasz unicast címzéssel megy.

    VálaszTörlés
  2. Igaz, igaz: nem fogalmaztam kellőképpen pedánsan. Van ilyen állat, hogy "kéretlen ARP üzenet" (gratuitous ARP), és ezzel lehet update-elni a klienseket.

    Javítottam.

    VálaszTörlés

Kommentek