Bevezetés
Az eclipse támadás egy viszonylag egyszerű támadás, amelyet egy rosszindulatú szereplő alkalmazhat a hálózat csomópontjainak megzavarására. Ahogy a neve is sugallja, a támadás célja, hogy elsötétítse a résztvevők rálátását a peer-to-peer hálózatra, hogy általános zavart okozzon, vagy felkészüljön a kifinomultabb támadásokra.
Az eclipse támadások első ránézésre hasonlónak tűnhetnek a Sybil-támadásokhoz. Bár vannak bizonyos hasonlóságaik - a rosszindulatú szereplő hamis peerekkel árasztja el a hálózatot -, a célja végső soron más. Az eclipse támadás egyetlen csomópontot vesz célba (a későbbiekben kifejtett okok miatt), míg a Sybil támadás az egész hálózatra kiterjedő támadás, amelynek célja a protokoll reputációs rendszerének kijátszása.
A koncepciót hosszasan tárgyalja a 2015-ös Eclipse Attacks on Bitcoin's Peer-to-Peer Network című tanulmány, amelyben a Bostoni Egyetem és a Héber Egyetem kutatói beszámolnak az eclipse támadásokkal kapcsolatos kísérleteik eredményeiről, valamint a lehetséges ellenintézkedésekről.
Hogyan működik az eclipse támadás?
A Bitcoin-bányászoknak speciális felszerelésre van szükségük az új blokkok létrehozásához, de a nem bányász (vagy teljes) csomópontok könnyen működtethetők minimális számítási teljesítménnyel. Ez elősegíti a Bitcoin decentralizációját, mivel bárki létrehozhat egy csomópontot egy kis sebességű eszközön. A szoftver egy adatbázist vezet a tranzakciókról, amelyet szinkronizál a közvetlen társaival, hogy lépést tarthasson a hálózattal.
Sok csomópont számára korlátozó tényező a sávszélesség. Bár a szoftvert futtató eszközök száma nagy, az átlagos eszköz sokukhoz nem tud közvetlenül csatlakozni a Bitcoin szoftverben meghatározott korlátozások miatt (amely csak legfeljebb 125 kapcsolatot engedélyez).
Egy eclipse támadás során a rosszindulatú szereplő gondoskodik arról, hogy a célpont összes kapcsolata a támadó által ellenőrzött csomópontokhoz vezessen. A szervezet először elárasztja a célpontot saját IP-címeivel, amelyekhez az áldozat valószínűleg a szoftver újraindításakor csatlakozik. Az újraindítás vagy kikényszeríthető (pl. a célpont elleni DDoS-támadással), vagy a támadó egyszerűen kivárja, hogy megtörténjen.
Ha ez megtörtént, a gyanútlan áldozat ki van szolgáltatva a rosszindulatú csomópontoknak – mivel nincs rálátása a tágabb hálózatra, a támadó hamis adatokkal táplálhatja azt.
Az eclipse támadás következményei
Ha egy támadó energiát fordít arra, hogy elidegenítsen egy peert a hálózatról, akkor valószínűleg megvan rá indítéka. Bizonyos egymást követő támadások könnyebben indíthatók, ha egy csomópontot elfojtottak.
0-visszaigazolásos dupla költés
Ha valaki megerősítés nélkül fogad el egy tranzakciót, akkor fennáll a dupla költés kockázata. Lehet, hogy a tranzakciót továbbították, de amíg az nem került be egy blokkba (és így nem került be a blokkláncba), a feladó könnyen létrehozhat egy új tranzakciót, amely ugyanazt a pénzt máshol költi el. Ha az új tranzakciónak magasabb a díja, akkor a bányász valószínűleg az eredeti tranzakció elé teszi, érvénytelenítve a korábbi tranzakciót.
Egyes vállalkozások és magánszemélyek elfogadják ezeket a 0 megerősítéses tranzakciókat. Vegyünk egy Robi nevű kereskedőt, aki csúcskategóriás járműveket értékesít. Nem tudja, hogy Alíz elsötétítette a csomópontját, és semmit sem sejt, amikor megrendel egy luxus sportautót. Alíz létrehoz egy tranzakciót, amelyet Robi továbbít a hálózatnak. Megelégedve azzal, hogy a fizetés úton van, átadja a kocsikulcsot, és Alíz elszáguld az autóval.
Természetesen a tranzakciót nem továbbították a hálózatnak - Robi csupán Alíz rosszindulatú csomópontjainak küldte el azt, amelyek nem fogják továbbítani a becsületes csomópontoknak. Amíg ez a tranzakció függőben van, Alíz ugyanazt a pénzt elkölti a (valódi) hálózaton, akár egy másik félnek küldi el, akár a saját címére. Még ha a Robinak küldött első tranzakciót végül meg is látják, az elutasításra kerül, mivel az érméket már elköltötték.
N-megerősítéses dupla költések
Az N-megerősítéses dupla költés hasonló a 0-megerősítéseshez, de több előkészületet igényel. Sok vállalkozás inkább megvár egy bizonyos számú visszaigazolást, mielőtt a fizetést érvényesnek jelölné meg. Ahhoz, hogy ezt megkerülje, a támadónak eclipse támadást kell végrehajtania mind a bányászok, mind a kereskedő ellen. Miután a támadó létrehozta a megbízást a kereskedővel, tranzakciót küld a (megtámadott) bányászoknak. A tranzakciót megerősítik, és bekerül a blokkláncba - de ez a blokklánc nem az a lánc, amelyet a hálózat többsége figyel, mivel a bányász le van választva.
Innen a támadó továbbítja a blokklánc ezen verzióját a kereskedőnek, aki abban a hitben adja ki az árut, hogy a tranzakciót megerősítették. Amint a megtámadott csomópontok újra csatlakoznak a tényleges hálózathoz, az általuk tévesen érvényesnek hitt blokkláncot leváltja a blokklánc, amelyen a hálózat többi része dolgozott (némi hasonlóságot mutat az 51%-os támadással).
Konkurens bányászok gyengítése
Egy elsötétített csomópont továbbra is működik, és nem vesz tudomást arról a tényről, hogy elkülönítették a hálózattól. A bányászok továbbra is a protokoll által meghatározott szabályok szerint bányásszák a blokkokat, de a hozzáadott blokkokat a becsületes csomópontokkal való szinkronizálás során elvetik.
Elméletileg a nagy bányászok elleni nagyszabású eclipse támadást fel lehetne használni egy 51%-os támadás megkönnyítésére. Jelenleg a Bitcoin hash teljesítményének többségét átvenni túlságosan költséges lenne, még a legügyesebb támadók számára is. Például, 80TH/s hashráta esetében egy ilyen manőver megkísérléséhez a támadónak több mint 40TH/s teljesítményre lenne szüksége.
Egy hipotetikus forgatókönyvben, ahol ez a hash teljesítmény 10 fél között oszlik meg (úgy, hogy mindegyikük 8TH/s-ot birtokol), a támadó jelentősen csökkentheti az 51%-os támadás követelményeit azáltal, hogy ezeket a feleket leválasztja a hálózatról. Az ötödik sikeres támadás után 40TH/s kiesik a következő blokk megtalálásáért folytatott versenyből, és a támadónak már csak alig több mint 20TH/s-t kell megszereznie ahhoz, hogy átvegye az irányítást.
Az eclipse támadásokkal megvalósítható egyéb szabotázsok közé tartozik a csomópontok manipulálása öncélú bányászat céljából, vagy a bányászok közötti versenyek manipulálása a következő blokk megtalálásáért.
Enyhítés
Elegendő IP-címmel egy támadó bármelyik csomópontot elsötétítheti. Ennek megakadályozására a legegyszerűbb módszer az, ha az üzemeltető blokkolja a bejövő kapcsolatokat, és csak bizonyos csomópontokkal (például a más peerek által engedélyezési listára tett csomópontokkal) létesít kimenő kapcsolatot. Amint arra a kutatás rámutat, ez a megközelítés azonban nem működik nagyobb léptékben - ha minden résztvevő elfogadja ezeket az intézkedéseket, nem tudnak majd új csomópontok csatlakozni a hálózathoz.
A szerzők javasoltak néhány változtatást a Bitcoin szoftverét illetően, amelyek közül néhányat a kutatás megjelenése óta már bevezettek. Ezek költségesebbé teszik az eclipse támadásokat a kód kisebb módosításai révén, mint például az új kapcsolatok véletlenszerű kiválasztása és a címtárolás nagyobb kapacitása révén.
Záró gondolatok
Az eclipse támadásokat a peer-to-peer hálózati szinten hajtják végre. Önálló támadásként bevetve némi kellemetlenséget okozhatnak. Valódi hatékonyságuk viszont abban rejlik, hogy más támadásokat tesznek lehetővé, amelyek pénzügyileg érintik a célpontokat, vagy előnyt biztosítanak bányászati fronton a támadónak.
Eddig még nem volt komoly következménye az eclipse támadásoknak, de a fenyegetés a hálózatba integrált ellenintézkedések ellenére is fennáll. Ahogyan a Bitcoin és más kriptovaluták esetében fennálló legtöbb támadási lehetőségnél, a legerősebb védelem az lesz, amely anyagilag megfizethetetlenné teszi a rosszindulatú felek számára a kísérletet.