A görög FORTH (Foundation for Research and Technology Hellas) intézet kutatói egy kísérlet során azt vizsgálták, hogy milyen hatásfokkal lehet egy közösségi hálózatot támadásra alkalmas, DDoS puppetneteket létrehozni. A puppetnetek lényege, hogy velük a web lehetőségeivel élve, egy weboldal népszerűségét kihasználva lehet túlterheléses támadást intézni különböző célpontok ellen. Az elv lényegében hasonló a Slashdot-hatáséhoz, aminek lényege, hogy a Slashdoton linkelt oldalak sokszor akkora forgalmat kénytelenek hirtelen elszenvedni, amit már nem képesek kiszolgálni.
A FORTH kutatói egy kísérleti Facebook alkalmazást (Picture of the Day, vagy más néven a FaceBot) kreáltak, amely amellett, hogy képeket töltött le a National Geographic weboldaláról, észrevétlenül kéréseket intézett egy direkt erre a célra felállított géphez is, ami az áldozat szerepét töltötte be. A kutatók mindevégig tartották magukat a "legkisebb erőfeszítés" elvéhez, azaz a lehető legegyszerűbben igyekeztek megoldani a feladatot. Ennek alapján alkalmazásuk mindössze megjelenítésenként 4 kérést intézett a célponthoz, összesen 600kb forgalmat generálva (képletöltések), valamint a terjesztést is a lehető legegyszerűbb módon odlaották meg: szóltak a kollégáknak, hogy installálják az alkalmazást, és alánlják azt ismerőseiknek is.
Ilyen módszerrel összesen 400-500 felhasználóhoz jutott el a FaceBot, a puppetnet maximális teljesítménye pedig 300 kérés/óra illetve 6 Mbit/s volt. Ez persze nem túlzottan sok, főleg ha egy rendes botnet lehetőségeihez viszonyítunk, azonban a kísérlet célja nem a kimeneti sávszélesség maximalizálása volt. Számos módszer rendelkezésre állhat egy ilyen jellegű rendszer felhízlalására:
A Facebook pl. lehetőséget kínál az alkalmazásfejlesztőknek, hogy kiegészítéseiket csak úgy lehessen telepíteni, ha előtte néhány ismerősünknek ajánljuk azt. Némi JavaScripttel könnyen megoldható, hogy a konstans 4 helyett annyi kérdést intézzünk a célponthoz, amennyi belefér abba az időbe, ameddig a felhasználó nyitva tartja a FaceBot-ot.
A legnépszerűbb Facebook alkalmazások jelenleg több (tíz)milliós felhasználói táborral büszkélkedhetnek, ami napi 1-2 millió aktív felhasználót jelent. Amennyiben egy ilyen kiegészítést vérteznénk fel DoS képességgel, az akár 248 Gbyte* napi adatfogalmat is eredményezhetne a célpont hálókártyáján, ami főleg akkor fájdalmas, ha az áldozat forgalomarányosan fizet a vonalért.
A védekezés alapvetően a közösségi oldalakon kellene hogy megtörténjen: a feltöltött kiegészítőket folyamatosan ellenőrizni kell, a fejlesztőknek pedig olyan API-t kell biztosítani, ami nem ad lehetőséget az ilyen jellegű visszaélésekre (ennek persze vannak megvalósítási problémái).
Az áldozat oldalán a beérkező kéréseket a legegyszerűbben a referer alapján szűrhetjük, de ez is egyrészt egy viszonylag számításigényes feladat (az alkalmazási rétegben kell elemezni a csomagokat), másrészt egy támadó szerver beiktatásával a bábok rávehetők, hogy ne küldjenek referer információt.
* A forgalom börsztössége miatt nem számolhatunk álladndó csúcsérték környéki tűzerővel, mindazonáltal én még így is kissé keveslem ezt a számot, de a papírban ez szerepel.