🇸🇰 Ako je Cardano chránené pred útokmi DDoS?

Ako je Cardano chránené pred útokmi DDoS?

Útoky DDoS predstavujú pre online služby významnú hrozbu. Hlavným cieľom týchto útokov je zneprístupniť službu. Cardano možno považovať za online službu. Poskytuje platformu na vykonávanie inteligentných kontraktov, prevody finančných prostriedkov a ďalšie funkcie cez internet. Ako každá online služba by sa teoreticky mohla stať terčom útoku DDoS. Vďaka svojej decentralizovanej povahe a zavedeným bezpečnostným opatreniam je však voči takýmto útokom oveľa odolnejšia ako tradičné centralizované online služby. Prečítajte si, ako je Cardano odolné voči útokom DDoS.

Čo je to útok DDoS?

Útok DDoS (Distributed Denial of Service) je zlomyseľný pokus o narušenie normálneho fungovania siete, služby alebo servera tým, že sa zahltí záplavou internetovej prevádzky. Tento útok sa nazýva aj spamovanie siete. Útočníci (alebo tiež spameri) sa snažia vytvoriť podobnú prevádzku (napr. transakcie), ktorá vyzerá podobne ako bežná prevádzka od používateľov. To znamená, že spamové transakcie sa miešajú s transakciami používateľov.

V kontexte tohto článku sa pre transakcie útočníka používa termín spam. Nejedná sa o spamovú elektronickú poštu.

Tieto útoky fungujú tak, že ako zdroje útočnej prevádzky využívajú viaceré kompromitované počítačové systémy (botnety). Medzi zneužité počítače môžu patriť počítače a iné sieťové zdroje, napríklad zariadenia internetu vecí. Keď je server obete cieľom botnetov, každý bot posiela obrovské množstvo požiadaviek na cieľovú IP adresu, čo môže spôsobiť zahltenie servera a viesť k odmietnutiu poskytovania bežnej prevádzky.

Servery sú zvyčajne dimenzované na určité množstvo prevádzky. Spamová prevádzka dramaticky a náhle zvýši prevádzku.

Hlavným cieľom útokov DDoS je teda (dočasné) zneprístupnenie služby. To sa zvyčajne dosiahne vyčerpaním zdrojov cieľového servera, jeho prinútením k reštartovaniu alebo preťažením komunikačného kanála s cieľom izolovať server.

Nevyžiadaná prevádzka spotrebúva zdroje rovnako ako bežná prevádzka. Server však nemusí mať k dispozícii zdroje.

Útoky DDoS môžu spôsobiť vážne narušenie online služieb. Počas prebiehajúceho útoku používatelia nemôžu používať služby bežným spôsobom. Najzjavnejším príznakom útoku DDoS je, že stránka alebo služba sa náhle stane pomalou alebo nedostupnou. To môže mať za následok značné finančné škody a poškodenie dobrého mena podnikov.

Potreba chrániť sa pred útokmi DDoS je v dnešnej digitálnej dobe prvoradá.

Medzi hlavné mechanizmy ochrany pred útokmi DDoS patria:

  • Obmedzenie rýchlosti: Ide o obmedzenie počtu požiadaviek, ktoré server prijme v určitom časovom rámci z jednej IP adresy.
  • Detekcia anomálií: Monitorovaním sieťovej prevádzky a jej analýzou na vzory, ktoré sa odchyľujú od normy, je možné identifikovať potenciálne útoky DDoS.
  • Firewally a smerovače: Tie je možné nakonfigurovať tak, aby odmietali prevádzku, ktorá prichádza z podozrivých IP adries alebo obsahuje škodlivý obsah.
  • Služby na zmierňovanie DDoS: Tieto služby môžu pomôcť absorbovať záplavu požiadaviek počas útoku DDoS, ochrániť cieľ a udržať ho online.
  • Systémy prevencie narušenia (IPS): Tieto systémy dokážu odhaliť útoky DDoS a iné bezpečnostné hrozby a následne prijať opatrenia na zmiernenie hrozby.

Ak dôjde k úspešnému útoku DDoS, zvyčajne ho možno odvrátiť v priebehu niekoľkých hodín (dní), aby bola služba opäť k dispozícii.

Ako je Cardano chránené proti útokom DDoS?

Cieľom útoku DDoS na blockchain môže byť spomalenie alebo úplné zastavenie spracovania transakcií a vykonávania inteligentných kontraktov. Z pohľadu používateľov by bola sieť (teda služba) preťažená alebo nedostupná.

Podobne ako pri bežnom útoku DDoS zameranom na server, aj v prípade Cardano sa útočník môže pokúsiť zaplavovať sieť transakciami (spamové transakcie). Útočník chce dosiahnuť stav, keď sieť bude primárne spracovávať len spamové transakcie (ktoré budú platné a bude sa za ne platiť poplatok) na úkor transakcií bežných používateľov.

Všimnite si, že útočník je ochotný za transakcie zaplatiť (t. j. investovať peniaze do útoku). Uzol by neplatné transakcie okamžite zahodil a nerozširoval. Pokus o zaplavenie uzla neplatnými transakciami by mal na sieť len malý vplyv. Útočník by však mohol byť schopný uzol zrútiť.

Spoločnosť Cardano zaviedla niekoľko opatrení na zmiernenie rizík útokov DDoS. Patria medzi ne transakčné poplatky, ktoré zabraňujú spamovaniu siete veľkým počtom transakcií, protokoly riadené dopytom, ktoré kontrolujú rýchlosť príchodu dát do každého uzla, a overené preposielanie, ktoré kontroluje transakcie pred ich postúpením. Významným faktorom je aj decentralizácia siete (najmä počet uzlov).

Zjednodušene povedané, Cardano je odolné voči útokom DDoS z nasledujúcich dôvodov:

  • Decentralizácia
  • Poplatky
  • Overovanie transakcií pred ich šírením
  • Každý uzol, ktorý vytvára bloky, má niekoľko relay uzlov (vyšší počet uzlov a ochrana uzla, ktorý vytvára bloky).
  • Schopnosť odhaliť spamový uzol a odpojiť sa od neho

Vysvetlime si niektoré základné obranné mechanizmy.

Pri útoku DDoS útočník zvyčajne zahltí jeden cieľ záplavou internetovej prevádzky.

Cardano je distribuovaná sieť zložená z veľkého počtu uzlov. Cardano nemá jediný bod zlyhania. Útočník by musel zaplaviť značnú časť uzlov spamovými transakciami, aby narušil sieť.

Najlepšou prevenciou proti útokom DDoS je teda decentralizácia. Cardano má zhruba 3K poolov a každý z nich má 2-3 relay uzly. Pooly sú uzly produkujúce bloky, ktoré sú skryté za relay uzlami. Útok na Cardano je náročný, pretože je potrebné napadnúť približne 10K uzlov.

Prevádzkovatelia staking poolov (SPO) môžu nakonfigurovať svoje uzly na priamu vzájomnú interakciu. To znamená, že uzly produkujúce bloky sa môžu pripojiť k vlastným (dôveryhodným) reléovým uzlom aj k iným reléovým uzlom prevádzkovaným inými SPO. Inými slovami, SPO rozhodujú, s ktorými rovnocennými uzlami budú komunikovať. Konfiguráciu siete možno kedykoľvek zmeniť.

Ak bol uzol pripojený k spamovému uzlu s abnormálnym počtom spamových transakcií v mem-poole, prevádzkovateľ môže rozhodnúť o odpojení vlastného uzla od spamového uzla. Môže to vykonať skript s vopred naprogramovanou logikou.

Útok na jeden uzol produkujúci bloky v podstate znamená útok na niekoľko reléových uzlov. Inými slovami, uzol výrobcu blokov nie je verejne (teda ani pre útočníka) viditeľný uzol.

Ak je uzol výrobcu blokov odpojený od jedného reléového uzla, stále zostane pripojený aspoň k jednému ďalšiemu reléovému uzlu. Okrem toho je možné pripojiť sa k inému (čestnému) reléovému uzlu. To sťažuje útočníkovi ochromenie funkcie uzla produkujúceho bloky.

V Cardane sa bloky a transakcie šíria spôsobom P2P. Nové transakcie sa vkladajú do mem-poolu, čo je akási čakáreň, kde čakajú na vloženie do jedného z ďalších blokov.

Každý uzol spravuje svoj vlastný mem-pool. Obsah mem-poolov v sieti sa mení podľa toho, ako sa transakcie šíria z jedného uzla na určitom mieste do ostatných uzlov v sieti.

Teraz si predstavte uzly v distribuovanej sieti, ktoré môžu mať vo svojich mem-pooloch podobné transakcie (poradie, v ktorom sa transakcie dostali do mem-poolov, sa môže líšiť). Ak dôjde k útoku, obsah mem-poolov v niektorých uzloch sa môže začať výrazne líšiť. V niektorých mem-pooloch sa budú nachádzať najmä spamové transakcie.

Vedúci slotov sa volia náhodne podľa veľkosti vkladu. Lídri slotov vyberajú transakcie zo svojho mem-poolu a razia nový blok. Útočník vopred nevie, kde v sieti bude vyrazený ďalší nový blok.

Ďalší nový blok môže obsahovať buď primárne spamové transakcie, alebo transakcie používateľov. Záleží na tom, na ktorom mieste bude zvolený slot leader.

Ak by sa útok uskutočnil len v Európe, európske uzly by razili bloky so spamovými transakciami, ale vo zvyšku sveta by sa razili bloky s väčším počtom používateľských transakcií.

Útok na server a na uzol Cardano má určité špecifiká.

Útočník nemôže jednoducho vysielať veľa transakcií smerom k vybranému uzlu (ako pri bežnom útoku DDoS). Transakcie nemožno posúvať do uzlov. Uzly ťahajú transakcie zo svojich rovnocenných uzlov. Táto skutočnosť spolu s faktom, že prevádzkovatelia poolu rozhodujú o tom, ktoré peer uzly sú pripojené, predstavuje silný obranný mechanizmus.

Pripomeňme, že v sieti sa šíria len platné transakcie.

Keď používateľ pošle transakciu zo svojej peňaženky, túto transakciu vždy spracuje uzol. Nemusí to byť nevyhnutne uzol, ktorý produkuje bloky (pool). S najväčšou pravdepodobnosťou to bude len relay uzol. Uzol vloží platné transakcie do mem-poolu. Neplatné transakcie sú uzlom okamžite vyradené a nie sú ďalej šírené.

Ak uzol posiela neplatné transakcie alebo opakovane posiela tie isté transakcie, spojenie s týmto (relay) uzlom sa uzavrie. Predtým, ako uzol odovzdá transakcie, hlavička/obsah sa skontroluje podľa pravidiel. Tento mechanizmus pomáha zabrániť tomu, aby uzol zaplavil sieť veľkým počtom transakcií.

Ak chce útočník spamovať sieť, musí najprv zaplniť mem-pool vo svojom vlastnom uzle. Prípadne môže zaplniť mem-pool uzla, ku ktorému je peňaženka pripojená. Z tohto uzla sa môžu transakcie potenciálne šíriť do ostatných uzlov. Ak sú platné, uzly ich vložia do mem-poolov.

Uzly môžu odhaliť spamový uzol a odpojiť sa od neho. Dá sa povedať, že uzly používajú podobnú stratégiu ako servery, t. j. obmedzenie rýchlosti. V sieti Cardano sú uzly zodpovedné za rýchlosť transakcií.

Protokoly siete Cardano sú navrhnuté v štýle riadenom dopytom. Parametre protokolu obmedzujú množstvo sieťových zdrojov, ktoré môže uzol spotrebovať. Pre každý uzol a každého peera pripojeného k tomuto uzlu uzol kontroluje rýchlosť prichádzajúcich dát, maximálnu súbežnosť a množstvo nevyrovnaných dát.

Ak prevádzkovateľ uzla zmení parameter protokolu tak, aby umožnil vyššiu rýchlosť transakcií, ako je definovaná parametrami protokolu, sieť ho bude považovať za spamera. Tým sa zabráni nepriateľskému partnerovi v uskutočnení útoku na spotrebu zdrojov. Ak partner dodržiava protokoly, jeho schopnosť spotrebovávať zdroje v uzle je obmedzená. Ak ich poruší, bude odpojený. Inými slovami, peer uzly zrušia spojenie s týmto spamovým uzlom.

Ak by teda útočník chcel spamovať sieť z jedného miesta, peery by z neho prestali čerpať transakcie. Je zrejmé, že decentralizovanú sieť nemožno napadnúť z jedného miesta.

Ďalší bod, ktorý popíšem, je kľúčový.

Je potrebné útočiť na viacero uzlov súčasne. Ak chce útočník výrazne spomaliť sieť alebo spôsobiť vážnejšie problémy, je potrebné zaútočiť takmer na všetky uzly súčasne.

Uzly ťahajú transakcie od všetkých pripojených partnerov, takže do mem-poolov vkladajú bežné užívateľské transakcie, ako aj (platné) spamové transakcie. Užívateľské transakcie a spamové transakcie začnú medzi sebou bojovať o miesto v mem-poole (ktorý je 2x väčší ako veľkosť bloku). Mem-pooly napadnutých uzlov budú obsahovať spamové transakcie, ale nenapadnuté uzly budú obsahovať užívateľské transakcie.

V závislosti od toho, kto sa stane ďalším lídrom slotu, bude v bloku viac spamových alebo užívateľských transakcií.

Ak útočník nezaútočil na všetky uzly súčasne, nemá šancu zabrániť tomu, aby sa užívateľské transakcie dostali do niektorého z mnohých mem-poolov v sieti.

Pamäť (mem-pools), ktorú má útočník na spamovanie transakciami, nie je veľkosť jedného mem-poolu, ale v podstate veľkosť pamäte všetkých mem-poolov v sieti dohromady.

Mem-pool môže byť zaplnený približne 11 transakciami, z ktorých každá má veľkosť 16 K bajtov. Odoslanie jednej takejto transakcie by stálo najmenej 0,86 ADA. Zaplnenie mem-poolu by stálo najmenej 10 ADA.

Cardano pozostáva z 10K uzlov a každý má mem-pool o veľkosti 2 blokov. Naplnenie všetkých mem-poolov jedinečnými transakciami naraz by si vyžadovalo vytvorenie 110K transakcií. Útočník by zaplatil 95K ADA.

Ak by sa útočníkovi podarilo mať spamové uzly pripojené ku všetkým (poctivým) uzlom v sieti a zaplniť mem-pooly spamovými transakciami, užívateľské transakcie by mali problém dostať sa do mem-poolu. Dovolím si tvrdiť, že v praxi je to nereálne.

Opakujem, že 110 tisíc transakcií je maximálny počet. V praxi by používatelia mohli pozorovať spomalenie siete, ak by útočník zaplnil niektoré mem-pooly spamovými transakciami. Čím viac mem-poolov by bolo napadnutých, tým pomalšia by bola sieť.

Pre útočníka môže byť jednoduchšie spamovať len časť uzlov a dúfať, že spamové transakcie sa rozšíria do viacerých mem-poolov. Postupne môže posielať ďalšie dávky spamových transakcií znova a znova.

Sieť (všetky uzly) vyčistí mem-pool vždy, keď sa vytvorí nový blok. Ako už bolo spomenuté, každý mem-pool môže obsahovať rôzne transakcie. Dôležité je, že počet transakcií v mem-poole bude mať tendenciu postupne klesať, ak útočník nebude vytvárať nové spamové transakcie.

Uzly nerozlišujú medzi spamovými transakciami a používateľskými transakciami. Pokiaľ sú platné (vrátane zaplateného poplatku), mali by sa spracovať.

Takže transakcie, ktoré sú zahrnuté do nového bloku, uzly z mem-poolu odstránia. Ak by transakcie neboli jedinečné, nový blok by v podstate vyvolal vyčistenie transakcií v mem-pooloch na mnohých uzloch (jediným plným blokom sa uvoľní len polovica veľkosti mem-poolov).

Neunikátne spamové transakcie teda znižujú účinnosť útoku. Je potrebné častejšie dopĺňať mem-pooly ďalšími spamovými transakciami.

Aby útočník zvýšil účinok útoku, musel by nejakým spôsobom zariadiť, aby boli jeho transakcie zaradené do mem-poolu pred transakciami používateľov (t. j. aby boli uprednostnené). To však nie je vôbec jednoduchá úloha. Útočník by napríklad musel byť geograficky čo najbližšie k uzlom, na ktoré útočí (kvôli oneskoreniu siete).

Prevádzkovatelia majú možnosť na útok reagovať.

Prevádzkovatelia bazénov môžu útok ľahko odhaliť a je pre nich jednoduché jednoducho vyprázdniť mem-pooly. V takom prípade by zvýšili šancu, že sa do mem-poolu dostanú používateľské transakcie. Útočník by musel spamové transakcie posielať znova. To by však spôsobilo len to, že sieť by zrušila spojenie so spamovými uzlami. Prevádzkovatelia poolov môžu autonómne rozhodnúť o odpojení od spamového uzla alebo spamových peňaženiek.

Je pomerne jednoduché, aby sa sieť zbavila spamových uzlov a pozostávala len z dôveryhodných uzlov.

Záver

Aby bol spamový útok úspešný, útočník by musel mať prístup ku všetkým mem-poolom siete rovnako a okamžite. To je v praxi ťažko dosiahnuteľné. Viem si predstaviť, že útočník by mohol byť schopný spomaliť sieť. Prípadne sa môže pokúsiť vypnúť konkrétne uzly, ktoré používatelia často používajú.

Spomalenie siete môže byť nepríjemné, ak používatelia potrebujú, aby sa ich transakcie dokončili rýchlo, pretože im hrozí napríklad likvidácia pozícií.

V minulosti bola sieť Cardano niekoľkokrát pod veľkým tlakom, či už z dôvodu razenia NFT, alebo testovania jej odolnosti voči útokom DDoS. Najväčšia záťaž, o ktorej som počul, bola 44-krát vyššia ako kapacita siete (záťaž bola približne 250 tisíc nových transakcií za hodinu). Väčšina používateľov si spomalenie ani nevšimla.

Ak by bolo ľahké spáchať útok DDoS na Cardano alebo iný blockchain, videli by sme tieto útoky na dennej báze. To sa však nedeje. Verte mi, že pripraviť a uskutočniť takýto útok nie je vôbec jednoduché.


Pôvodný článok: How Is Cardano Protected From DDoS Attacks? | Cardano Explorer (cexplorer.io)