2009. július 14., kedd

VLAN-ok biztonsága

A VLAN-ok biztonságát érintő kérdések olyan területek, amivel az end-userek a gyakorlatban sohasem találkoznak - a VLAN számukra olyan valami, ami a csomagokat A-ból B-be eljuttató felhő lelkivilágához tartozik. Betörési tesztelői szemmel tekintve viszont épp ennek ellenkezője igaz - tesztelőként abból élünk, hogy nem hiszünk el dolgokat, például azt, hogy a VLAN-ok nyújtotta korlátokat nem lehet kikerülni.

Induljunk az elején. A VLAN-okat a 802.1Q RFC-ben definiálták, legleegyszerűsítőbb megfogalmazásban gyakorlatilag broadcast domaineket jelentenek a második rétegben: minden VLAN-nak van egy száma, amely számokat rá lehet aggatni a hálózati eszközök portjaira (Ne tessék keverni a TCP-s porttal! A port itt egy UTP-s aljzatot jelent.) A VLAN-ba sorolás történhet bárhogy: szokás fizikai alapon végezni a dolgot (például az X épület tárgyalói), feladat alapján (pl. VoIP vs. adathálózat), vagy okosan kiépített 802.1x használatakor a felhasználó bejelentkezéskor megadott azonosítója alapján - ezáltal biztosítható, hogy a marketing osztály munkatársai a gépüket bármilyen módon csatlakoztatva a hálózathoz, ugyanabba a subnetbe kerüljenek.

Nagyon elnagyolt módon összefoglalva az azonos számot kapott portok beszélhetnek egymással, míg a különböző számúak közötti forgalmazást a hálózat csak bizonyos szabályok esetén engedélyezi. Azt, hogy a forgalom melyik VLAN-ba tartozó portról érkezik, az eszközök úgy jelölik, hogy az ethernet header megfelelő mezőjébe teszik a vonatkozó VLAN értéket. Két különböző VLAN-ba tartozó hoszt csak router közbeiktatásával tud egymással beszélni.

Szokás access és trunk portokról beszélni a VLAN-ok kapcsán: a szakirodalom nem egységes abban a tekintetben, hogy mit értenek a két típus között. A Cisco-s irodalom nagy része a következőképp különíti el a kettőt.
  • Access port: a kliens, aki csatlakozik a portra (azaz laptop, nyomtató, telefon, IP-kamera, akármi), nem végez ethernet rétegbeli VLAN-jelölést, a legtöbb esetben fogalma sincs arról, hogy ő valamilyen VLAN-ba lett sorolva. "Buta" eszközök esetén szokás használni leginkább.
  • Trunk port: a forgalmat kezdeményező végzi a saját forgalmának jelölését, azaz taggelését. Ugyanabban a trunk portban elvileg akármennyi VLAN is mehet, a kereteket hálózati eszköz szortírozza szét a különféle VLAN-ok és célMAC szerint. Szokás például Cisco hardveres IP-telefonok és Cisco switchek között használni: ekkor a telefonon lévő aljzatba toljuk a laptopunkat, a switch üzemmódban működő telefon pedig elvégzi a taggelést: a gép által forgalmazott adatok a "A" VLAN-ban mennek tovább, míg a telefon a VoIP forgalomhoz a "B" azonosítót taggeli - a túloldalon ülő switch pedig ez alapján elkülönítve kezeli a kettőt.
Fontos megemlíteni még a natív VLAN fogalmát. Az IEEE back-kompatibilitási okokból előírja, hogy a trunk portok tudjanak nem taggelt forgalmat is kezelni (tehát itt nincs VLAN érték a frame-eken), ekkor a nem taggelt frame-ek az ún. natív VLAN-ba kerülnek be.

Nézzük a biztonsági vonatkozásokat. A VLAN-ba sorolás meglehetősen erős védelmi korlátot jelent, ha megfelelően történt a megvalósítás: nagyon kell küzdeni ahhoz, hogy át tudjunk tenni kereteket másik VLAN-ba, és nagy valószínűséggel nem fogunk akkor sem választ kapni a kérdésünkre.

VLAN-ok "kikerülését" vlan hoppingnak szokás nevezni: ha sikerül véghezvinni a dolgot, beleforgalmazhatunk olyan VLAN-okba is, amelyekhez nem tartozunk. Mik a gyenge pontok?
  • Natív VLAN-ok nem megfelelő egyeztetése. Előfordul néha, hogy nem foglalkoznak a natív VLAN-okkal megfelelően, nem egyeztetik a natív VLAN-ok számát a switcheken. Emiatt előfordulhat az a jelenség (ha nagyon akarjuk, vlan hopping): 1. Az A switchre csatlakozó hoszt taggeletlenül küld kereteket a B switchre csatlakozó hosztnak. Az A switch beleteszi a natív VLAN-jába (mondjuk a 10-es számúba) a kereteket, és továbbküldi - szintén taggeletlenül - a B switch felé. A B switch taggeletlenül megkapja a kereteket és beleteszi a saját natív VLAN-jába (mondjuk hanyagul a 20-as), ami alapján dönt a továbbításáról. A probléma akkor jelentkezik, ha a B switch natív VLAN-ja nem egyezik meg az A switchével - ekkor gyakorlatilag VLAN-t ugrunk (jelen esetben 10-esből 20-asba).
  • DTP engedélyezése felhasználó felé néző portokon. A DTP a Dynamic Trunking Protocol rövidítése, és arra szolgál, hogy switchek egymás között tudjanak trunkölést szabályozni. Mint a legtöbb L2 protokollnál, itt sincs sem hitelesítés, sem azonosítás, ezért a megfelelő eszközzel trunk porttá kapcsolható a portunk - ehhez persze az kell, hogy a DTP elővigyázatlanul bekapcsolva maradjon. Ha sikerült trunkké kapcsolni, a végpontra csatlakozó eszköz saját maga tudja taggelni a kereteit, ezáltal a sajátjától különböző VLAN-ba is forgalmazni tud. A yersinia tud ilyet.
  • A kliensre bízzák az eszközök a keretek taggelését. IP-telefónia kiépítésénél használatos megoldás az, hogy a telefonok végpontjai egyből trunköltek, a telefon maga végzi a taggelést. Ha pl. laptopot csatlakoztatunk a hálózathoz, ilyekor nemcsak a VoIP eszközök forgalmához lehet hozzáférni, hanem elővigyázatlan kiépítésnél az összes VLAN-hoz.
  • Kőbalta-fatengely. Az egyik legrégebbi, switchek ellen irányuló támadás során a támadó random MAC-címeket hamisít bele a kiküldött keretek fejlécébe, a switch pedig megyjegyzi, hogy melyik lábán milyen MAC címeket lát - mivel az eszköz memóriája véges, előbb-utóbb eljön a pillanat, amikor megtelik a tábla. Ilyenkor a sokezer dolláros, intelligens switchünk egy ötcentes hubbá változik - minden lábán kiküld minden forgalmat. A VLAN-okhoz annyiban kapcsolódik a dolog, hogy ilyenkor a switch egészen egyszerűen figyelmen kívül hagyja a VLAN-okat, minden forgalmat kitesz minden lábára. Nagyon aljas támadás: egyrészt iszonyat zajos, másrészt a switchet is leállíthatja.
  • Double tagging. A szakirodalomban írnak erről a támadásról is - én még nem találkoztam olyan esettel, amikor működött volna a gyakorlatban. Annyi történik itt, hogy a 802.1Q lehetővé teszi a keretek dupla taggelését - ekkor, ha a csillagok együttállása megfelelő (a csillagok itt speciális funkciók beállítását és két-három speciális félrekonfigurációt jelentenek...), lehetséges felduplataggelni a kereteket, amik végül is másik VLAN-ban kötnek ki.

Nincsenek megjegyzések:

Megjegyzés küldése

Kommentek