🇨🇿 Jak Je Cardano Chráněné Proti DDoS Útokům?

DDoS útoky jsou významnou hrozbou pro online služby. Hlavním cílem útoků je znepřístupnit službu. Cardano lze vnímat jako online službu. Poskytuje platformu pro provádění chytrých smluv, převod finančních prostředků a další funkce přes internet. Jako každá online služba může být teoreticky cílem DDoS útoku. Vzhledem ke své decentralizované povaze a zavedeným bezpečnostním opatřením je však vůči takovým útokům mnohem odolnější než tradiční centralizované online služby. Přečtěte si, jak je Cardano odolné vůči DDoS útokům.

Co je to DDoS útok?

Útok DDoS (Distributed Denial of Service) je škodlivý pokus narušit normální fungování sítě, služby nebo serveru tím, že je zahltí záplavou internetového provozu. Tomu se také říká spamování sítě. Útočníci se snaží vytvořit podobný provoz (např. transakce), který vypadá podobně jako běžný provoz od uživatelů. To znamená, že transakce se spamem se mísí s transakcemi uživatelů.

V kontextu článku je termín spam použitý pro útočníkova transakce. Nejedná se o nevyžádanou email.

Tyto útoky fungují tak, že jako zdroje útočného provozu využívají více kompromitovaných počítačových systémů (botnetů). Využívané stroje mohou zahrnovat počítače a další síťové zdroje, jako jsou zařízení IoT. Když se botnety zaměří na server oběti, každý bot odešle obrovské množství požadavků na cílovou IP adresu, což může způsobit zahlcení serveru, což má za následek odmítnutí služby běžnému provozu.

Servery jsou obvykle dimenzovány pro určitý objem provozu. Spamový provoz dramaticky a náhle zvýší provoz.

Hlavním cílem DDoS útoků je tedy učinit službu (dočasně) nedostupnou. Toho se obvykle dosáhne vyčerpáním zdrojů cíleného serveru, vynucení jeho restartu nebo přetížením komunikačního kanálu, aby byl server izolován.

Spamový provoz spotřebovává zdroje stejně jako běžný provoz. Server však nemusí mít k dispozici prostředky.

Útoky DDoS mohou způsobit vážné narušení online služeb. Během probíhajícího útoku uživatelé nemohou službu používat běžným způsobem. Nejzřetelnějším příznakem útoku DDoS je, že se stránka nebo služba náhle zpomalí nebo se stane nedostupnou. To může mít za následek značné finanční škody a poškození pověsti podniků.

Potřeba ochrany před DDoS útoky je v dnešní digitální době prvořadá.

Mezi hlavní mechanismy ochrany před útoky DDoS patří:

  • Omezení rychlosti: Jedná se o omezení počtu požadavků, které server přijme v určitém časovém rámci z jedné IP adresy.
  • Detekce anomálií: Monitorováním síťového provozu a analýzou vzorců, které se odchylují od normy, je možné identifikovat potenciální útoky DDoS.
  • Firewally a směrovače: Lze je nakonfigurovat tak, aby odmítaly provoz, který pochází z podezřelých IP adres nebo obsahuje škodlivý obsah.
  • DDoS Mitigation Services: Tyto služby mohou pomoci absorbovat záplavu požadavků během DDoS útoku, chránit cíl a udržovat jej online.
  • Intrusion Prevention Systems (IPS): Tyto systémy dokážou detekovat DDoS útoky a další bezpečnostní hrozby a poté přijmout opatření ke zmírnění hrozby.

Pokud dojde k úspěšnému DDoS útoku, lze jej obvykle za pár hodin (dní) odvrátit a služba začne znovu fungovat.

Jak je Cardano chráněno proti DDoS útokům?

Při DDoS útoku útočník obvykle zaplaví jeden cíl záplavou internetového provozu.

Cardano je distribuovaná síť složená z velkého počtu uzlů. Cardano nemá jediný bod selhání. Útočník by musel přemoci významnou část těchto uzlů, aby narušil síť.

Nejlepší prevencí proti DDoS útokům je decentralizace. Cardano má zhruba 3K poolů a každý z nich má 2-3 reléové uzly. Pools jsou blokové produkční uzly, které jsou skryté za reléovými uzly. Útok na Cardano je výzvou, protože je nutné zaútočit na přibližně 10 000 uzlů.

Operátoři staking poolu (SPO) mohou nakonfigurovat své uzly pro přímou vzájemnou interakci. To znamená, že uzly produkující bloky se mohou připojit jak k důvěryhodným přenosovým uzlům, tak k jiným přenosovým uzlům jež jsou provozované ostatními SPOs.

Útok na jeden uzel produkující bloky v podstatě znamená útok na několik reléových uzlů.

Cardano zavedlo několik opatření ke zmírnění rizik DDoS útoků. Patří mezi ně transakční poplatky, které zabraňují spamování sítě velkým počtem transakcí, protokoly řízené poptávkou pro řízení rychlosti dat přicházejících do každého uzlu a ověřené předávání pro kontrolu transakcí před jejich přenosem.

V Cardano jsou bloky a transakce rozptýleny způsobem P2P. Nové transakce se vkládají do mem-poolu, což je jakási čekárna, kde čekají na vložení do jednoho z dalších bloků.

Každý uzel spravuje svůj vlastní mem-pool. Obsah mem-poolů v síti se mění podle toho, jak se transakce šíří z jednoho uzlu na určitém místě do dalších uzlů v síti.

Vedoucí slotů jsou voleni náhodně podle velikosti sázky. Vedoucí slotů odebírají transakce ze svého mem-poolu a razí nový blok. Pro útočníka je nepříjemné že neví, na jakém místě v síti vznikne další nový blok.

Transakce nelze odeslat do uzlů. Uzly vytahují transakce ze svých peer uzlů. Operátoři mohou ručně nastavit, se kterými peery chtějí komunikovat.

Když uživatel odešle transakci ze své peněženky, je tato transakce vždy zpracována uzlem. Nejedná se nutně o uzel producenta bloků (pool). Platné transakce jsou vkládány do mem-poolu uzlem. Neplatné transakce jsou uzlem okamžitě zahozeny a již nejsou dále rozšiřovány.

Pokud uzel odesílá neplatné transakce nebo opakovaně odesílá stejnou transakci, připojení k tomuto uzlu bude ukončeno. Než uzel předá transakce, hlavička/obsah je zkontrolován podle pravidel. Tento mechanismus pomáhá zabránit tomu, aby uzel zahltil síť velkým počtem transakcí.

Pokud chce útočník spamovat síť, musí nejprve naplnit mem-pool na svém vlastním uzlu. Případně může naplnit mem-pool uzlu, ke kterému je peněženka připojena. Z tohoto uzlu mohou být transakce potenciálně rozptýleny do jiných uzlů. Pokud jsou platné, uzly je vloží do mem-poolů.

Uzly používají strategii podobnou serverům, tj. rychlostní limit. Uzly jsou zodpovědné za rychlost transakcí.

Protokoly Cardano jsou navrženy ve stylu řízeném poptávkou. Parametry protokolu omezují množství síťových prostředků, které může uzel spotřebovat. Pro každý uzel a každého peer připojeného k tomuto uzlu řídí uzel rychlost přicházejících dat, maximální souběžnost a množství zbývajících dat.

Pokud operátor uzlu změní parametr protokolu tak, aby umožňoval vyšší transakční rychlost, než jaká je definována parametry protokolu, bude jej síť považovat za spamera. To zabrání nepřátelskému peeru zahájit útok na spotřebu zdrojů. Pokud se peer podřídí protokolům, jeho schopnost spotřebovávat zdroje v uzlu je omezená. Pokud je poruší, bude odpojen. Jinými slovy, peer uzly přeruší spojení s tímto podvodným uzlem.

Pokud by tedy útočník chtěl spamovat síť z jednoho místa, kolegové by z ní přestali stahovat transakce. Je zřejmé, že decentralizovanou síť nelze napadnout z jednoho místa.

Je nutné útočit na více uzlů současně. Pokud chce útočník dramaticky zpomalit síť nebo způsobit vážnější problémy, je nutné zaútočit na téměř všechny uzly současně.

Uzly vytahují transakce ze všech připojených peerů, takže začnou vkládat běžné uživatelské transakce i (platné) transakce se spamem do mem-poolů. Uživatelské transakce a transakce se spamem začnou mezi sebou bojovat o místo v mem-poolu (který je 2x větší než velikost bloku).

Pokud útočník nezaútočil na všechny uzly současně, nemá šanci zabránit uživatelským transakcím, aby se dostaly do některého z mnoha mem-poolů v síti.

Paměť (mem-pooly), kterou musí útočník spamovat transakcemi, není velikost jednoho mem-poolu, ale v podstatě velikost paměti všech mem-poolů v síti dohromady.

Mem-pool lze naplnit přibližně 11 transakcemi, každou o velikosti 16 kB. Odeslání jedné takové transakce by stálo minimálně 0,86 ADA. Naplnění mem-poolu by stálo nejméně 10 ADA.

Cardano se skládá z 10 000 uzlů a každý má mem-pool o velikosti 2 bloků. Naplnění všech mem-poolů jedinečnými transakcemi najednou by vyžadovalo vytvoření 110 tisíc transakcí. Útočník by zaplatil 95 tisíc ADA.

Pokud by se útočníkovi podařilo mít neautorizované uzly připojené ke všem (čestným) uzlům v síti a naplnit mem-pools transakcemi se spamem, uživatelské transakce by se do mem-poolu dostaly jen obtížně. Troufám si tvrdit, že v praxi je to nereálné.

Opakuji, že 110 tisíc transakcí je maximální počet. V praxi by uživatelé mohli pozorovat zpomalení sítě, pokud by útočník zaplnil některé mem-pooly spamovými transakcemi. Čím více mem-poolů pod útokem, tím pomalejší bude síť.

Pro útočníka může být jednodušší spamovat pouze část uzlů a doufat, že transakce se spamem budou rozptýleny do několika mem-poolů. Postupně může posílat další várku spamových transakcí znovu a znovu.

Transakce, které jsou zahrnuty do nového bloku, jsou uzlem odstraněny z mem-poolu. Pokud by transakce nebyly jedinečné, nový blok by v podstatě spustil vyčištění všech mem-poolů na mnoha uzlech (uvolní se pouze polovina velikosti mem-poolů jedním plným blokem). Tím je útok méně účinný. Je nutné doplnit mem-pooly dalšími transakcemi.

Aby útočník zvýšil dopad útoku, musel by nějak zařídit, aby jeho transakce byly zahrnuty do mem-poolu před uživatelskými transakcemi (tedy aby byly upřednostňovány). To není vůbec snadný úkol.

Operátoři poolu mohou útok snadno odhalit a je pro ně snadné jednoduše vyprázdnit mem-pooly. V takovém případě by zvýšili šanci, že se uživatelské transakce dostanou do mem-poolu. Útočník by musel znovu odeslat spamové transakce. To by však způsobilo pouze přerušení spojení se spam uzly. Pool operátoři se mohou autonomně rozhodnout, že se odpojí od spam uzlu.

Pro síť je poměrně jednoduché zbavit se spamových uzlů a skládat se pouze z důvěryhodných uzlů.

Závěr

Aby byl spamový útok úspěšný, musel by mít útočník stejný a okamžitý přístup ke všem mem-poolům sítě. Toho je v praxi obtížné dosáhnout. Umím si představit, že by útočník mohl být schopen zpomalit síť. Případně se může pokusit odstavit ze služby konkrétní uzly, které uživatelé často používají.

Zpomalení sítě může být nepříjemné, pokud uživatelé potřebují rychle dokončit své transakce, protože jim hrozí například likvidace pozic.

Síť Cardano byla v minulosti několikrát pod velkým tlakem, ať už kvůli ražbě NFT, nebo testování její odolnosti vůči DDoS útokům. Největší zatížení, o kterém jsem slyšel, bylo 44krát vyšší než kapacita sítě (zatížení bylo asi 250 tisíc nových transakcí za hodinu). Většina uživatelů si zpomalení ani nevšimla.

Pokud by bylo snadné spáchat DDoS útok na Cardano nebo jiný blockchain, viděli bychom tyto útoky denně. To se neděje. Věřte, že připravit a provést takový útok není vůbec jednoduché.

Článek připravili Cardanians s podporou od Cexplorer.

Přečtěte si celý článek: https://cexplorer.io/article/how-is-cardano-protected-from-ddos-attacks