2009. február 12., csütörtök

Betörés a Facebook segítségével

Az IT-biztonság üzlet, mégpedig nem is kicsi. Rengeteg pénzt és erőforrást költenek mindenféle tűzfalrendszerekre, többutas authentikációs eljárásokra, IDS és IPS rendszerekre – viszont gyakran elkövetik azt a hibát, hogy a számításokból kihagyják az emberi tényezőt. Ennek illusztrálására álljon itt egy friss, nagyon tanulságos történet egy biztonsági levelezőlistáról. A történet eredetije itt olvasható.

Tesztelési csapatunk néhány éve kezdett el internet alapú social networking eszközöket használni a megbízó IT rendszereibe történő betöréshez. Az ilyen oldalakat a [social networking] koncepció megszületése óta használják támadási vektorként, azonban a média csak mostanában kezd foglalkozni a témával: emiatt döntöttünk úgy, hogy bemutatjuk a Facebook használatát hackerszemszögből.

(…)

Emberként hajlunk arra, hogy bízzunk egymásban. Ha kapunk „valamit” a másikról, a bizalmi viszony többnyire kialakul. Ez a „valami” többnyire adott, ha szemtől szembe találkozunk az illetővel, de sokszor ez sem szükséges. A munkáink során célba vett személyek 90%-a megbízott bennünk, mivel úgy gondolták, hogy ugyanannak a cégnek dolgozunk, munkatársak vagyunk, holott egyszer sem találkoztunk személyesen.

A Facebook (az iwiw is – a ford.) lehetőséget biztosít arra, hogy kulcsszavak alapján keressünk személyeket. Sok felhasználó kiírja a profiljában a munkahelyét, sőt több cég munkatársai külön csoportot, klubot alapítottak maguknak – emiatt az első lépés az, hogy felderítést hajtunk végre a Facebookot használó alkalmazottak keresésére. Ez a legegyszerűbben magával a Facebook felülettel hajtható végre, de remek külső eszközök is használhatóak (Maltego, pipl.com). A felderítés katonai eredetű kifejezés, olyan tevékenységet értünk alatta, amely támadás előtti információszerzésre irányul. Jelen esetben a felderítés emberi (alkalmazottak) és technológiai (tűzfalak, szerverek, routerek stb.) célpontok ellen is irányul: rendszerint mindkét tevékenységet elvégezzük.

Az ideális támadás véghezviteléhez két dolog hasznos, azonban ezek közül csak egy szükséges. A hasznos fél egy Cross-site script sebezhetőség a célpont valamely webszerverén, a szükséges pedig egy Facebook profil.

Egy munkánk során 1402 alkalmazottat találtunk, ezek közül 906 használta a facebookot. Nem néztük végig mind a 906-ot, csak 200 körüli mennyiségűt, de ezek alapján fel tudtuk építeni hamis alkalmazotti profilunkat.

A technikai felderítés több XSS sebezhetőséget is felszínre hozott, ezek egyike a megbízó központi webszerverén volt megtalálható. (…) Az XSS támadás kihasználásával lehetőségünk nyílt arra, hogy felépítsünk egy, a céges portál bejelentkező felületével megegyező kinézetű weboldalt. Amikor az áldozat rákattint a speciálisan kialakított linkre, a hamis weboldal jelenik meg: az oldalon figyelmeztető üzenetet jelenítettünk meg, hogy a felhasználónevek és jelszavak kompromittálódtak, emiatt újbóli megadásuk szükséges a mellékelt űrlapon. Amikor a felhasználók beütötték az azonosítási adatikat, egy, a (…) webszerveren felállított, automatizált eszköz kapta meg és mentette el az elküldött adatokat.

Klasszikus client based phishing technikát alkalmaztak a kollégák. Az említett sebezhetőség abból adódik, hogy az érintett weboldal nem validálja kellőképp a felhasználó felől érkező inputokat. Tankönyvi példája az XSS-sel sebezhető kódnak az alábbi php függvény:

test.php:
< ?php
echo"Kapott parameter:";
$foo=$_GET["bar"];
echo $foo;
? >

Ha ugyanis az alábbi módon hívja meg a test.php-t: test.php?bar=< script> alert ("XSS")< /script>, akkor a linkre kattintó felhasználó egy felugró ablakot kap. Ilyen módon tetszőleges javascriptes kódot le lehet futtatni: az idézett példában a document.body.innerhtml függvény hívásával "dobták ki" az eredeti weboldalt és építették fel a hamis bejelentkező képernyőt, amely hű másolata volt az eredetinek, viszont illegitim helyre küldte el a beírt adatokat.


Az eszközök elkészítése és üzembe állítása után felépítettünk egy megbízhatónak és szimpatikusnak tűnő facebook profilt. Mivel a célpont alkalmazottainak nagy része 20 és 40 év közötti férfi, úgy döntöttünk, hogy a legcélravezetőbb egy nagyon csinos, 28 éves nő profilját felépíteni. Google segítségével kerestünk megfelelő fényképeket, és a személyes adatok megadásánál felturbóztuk a profilunkat a valódi alkalmazottak profiljaiban talált céges információk alapján.

A profil elkészültével csatlakoztunk a megbízó facebook csoportjához: nem volt nehéz feladat, ugyanis a csatlakozási igényünket néhány órán belül visszaigazolták. Húsz perccel a csatlakozás után kaptunk jónéhány „bejelölést” valódi alkalmazottaktól és a megbízó valódi ügyfelei részéről, másrészről mi is küldtünk több százat. Ismerőseink listája gyorsan nőtt, és rövidesen beletartozott több igazgató, felsővezető és még néhány beszállító is.

Több száz ismerős begyűjtése után chatelni kezdtünk a megbízó alkalmazottaival. Beszélgetéseink elsősorban munkához kapcsolódó témákról szóltak, amelyhez az információt a valódi alkalmazotti profilokból merítettük. Három nap beszélgetés és ismerkedés után elküldtük facebook profilunkra a speciálisan kialakított linket azzal a szöveggel, hogy „Feltörték a weboldalunkat és ellopták a jelszavamat! Nézd meg a linket!” Nyilvánvalóan sokan rákattintottak a linkre, és megadták személyes azonosítóikat.

Vicces, hogy az első beérkező adat pont attól a személytől jött, akitől a megbízást kaptuk. A begyűjtött adatokat webes és vpn-es szolgáltatások elérésére használtuk fel, amelyek hozzáférést adtak a megbízó belső hálózatához, az Active Directory szerverhez, a checkpoint tűzfalkonzolhoz stb. A játék itt véget ért, a jó öreg Facebook-hack megint bejött.

A tesztelés során bejártuk a megbízó teljes informatikai infrastruktúráját. (…)

A munka zárásaként bevezettünk egy olyan megoldást a megbízónál, amellyel meg tudják előzni az ilyen jellegű fenyegetéseket – implementálás után (2008 eleje) 4 ilyen támadást regisztráltak.

1 megjegyzés:

Kommentek