Denial of Service Attacks On Smart Contracts: How to Fix and Avoid (An Expert Guide) PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Az intelligens szerződésekkel kapcsolatos szolgáltatásmegtagadási támadások: Hogyan javítsuk ki és kerüljük el (szakértői útmutató)

Olvasási idő: 6 jegyzőkönyv

Látott már olyan webhelyet, amely hosszú betöltési időt vett igénybe, de azt tapasztalta, hogy pillanatnyilag nem lehet megnyitni? Ez egyszerűen csak a szolgáltatásmegtagadási támadások hatásáról szól. 

A szolgáltatásmegtagadási (DoS) támadások egyike azon számos sebezhetőségnek, amelyekre az intelligens szerződések auditálása során nagy figyelmet fordítanak. Ennek a blognak az a célja, hogy feloldja a DoS támadás csínját-bínját – mi az, hatása, típusai és még sok minden, amivel kiegészíthető.

Gyorsan szálljunk be, és fedezzük fel mindegyiket. 

Mi az a DoS támadás?

A DoS támadás célja, hogy megzavarja egy hálózat, szerver vagy alkalmazás feldolgozási képességeit, megakadályozva a jogos felhasználók kérésének fogadását. Ebben a támadó túlterheli a hálózatot azzal, hogy több forgalmat küld, ami kimeríti a szerverek memóriáját és sávszélességét. 

A blokkláncban rejlő hatalmas potenciál miatt ezek jelentik a gazdagság ellopását célzó DoS-támadások elsődleges célpontját. A leghíresebb kriptovaluták, mint például a Bitcoin, Ethereumstb. is tapasztaltak DoS támadásokat. 

Elosztott szolgáltatáscsökkenés (DDoS)

Az elosztott szolgáltatásmegtagadás (DDoS) egy olyan DoS-támadás, amelyben a támadó több eszközt vezérel, hogy támadást indítson a célcsomópont ellen.

A támadó megfigyeli a célcsomópontot, és az irányítása alatt álló több eszközt csatornába irányítja, hogy nagy mennyiségű információt küldjön el a célcsomópontra. Emiatt a cél összeomlik, és nem tudja teljesíteni a megadott feladatot.  

DoS támadások célpontjai a blokklánc ökoszisztémában

A DoS támadások múltbeli eseményeiről készült felvételek alapján a blokklánc ökoszisztéma minden része ki van téve a DoS támadásoknak. És hogy néhányat említsünk, 

Kriptovaluta pénztárcák: Mint minden pénztárcánál, a kriptovaluta pénztárcát is kriptovaluták tárolására, küldésére vagy fogadására használják. És ezek az online pénztárcák intelligens szerződéseket használnak, amelyek hajlamosak a DoS támadásokra, amelyek akadályozzák szolgáltatásaikat és a Dapps-szal való interakciót. 

Kriptovaluta csereszolgáltatások: Az online platform, ahol kriptovalutákkal kereskednek, és a csere a felhasználók között történik. Ezek a hackerek elsődleges célpontjai olyan DoS támadások végrehajtásában, amelyek a platform és szolgáltatásai elérhetetlenségét okozzák. 

Pl.: Bitcoin csereplatform, a Bifinex többször szenvedett DDoS támadást. 

Memória(tranzakciós) készletek: A blokkláncon lévő tranzakciókat ellenőrizni kell, mielőtt hozzáadnák őket a blokkhoz. Addig a tranzakciókéréseket a mempool tárolja, amely olyan, mint a meg nem erősített tranzakciók tárháza, amelyek arra várnak, hogy egy bányász kiválasztja őket. 

A magas díjú tranzakciót nagy valószínűséggel a bányász választja ki. Így a mempool elárasztása sok tranzakcióval, kis díjakkal azt eredményezi, hogy a felhasználó magas díjat fizet a tranzakció feldolgozásáért. Így a DoS támadás megnövelte a feldolgozási díjat. 

A konszenzus résztvevői: Ők azok a játékosok, akik megoldják a logikát, és eldöntik, hogy milyen blokkokat kell hozzáadni a blokklánchoz. Ha DoS-támadásokat indítanak a konszenzusvezető ellen, az az egész rendszert leállítja. 

Keverési szolgáltatások: Protokollt alkalmaz a felhasználók számára a tranzakciók anonim végrehajtásához. Különféle módon szenvednek el DoS támadásokat, például túlzott részvételi kérelmeket a keverőkészlethez, inkonzisztens bevitelt a keveréshez stb. 

Intelligens szerződések: Az intelligens szerződés a blokklánc minden tranzakciójának mögöttes protokollja. Az intelligens szerződések elleni DoS-támadások összeomolhatják azt a csomópontot, amely leállítja az általa üzemeltetett Dapps működését.

A DoS támadásokat számos lehetséges módon hajtják végre rajtuk, amelyeket a következő részben részletezünk.

Intelligens szerződéses DoS-támadások típusainak elemzése 

Az intelligens szerződésekben található DoS sebezhetőség korlátlan erőforrás-felhasználást vagy a szerződés manipulációját eredményezi. Ez a szokásos tevékenységek végrehajtásának felfüggesztéséhez vagy a szerződés logikájának megszakításához és összeomlásához vezet. 

Az alábbiakban található az intelligens szerződésekben előforduló különféle DoS támadások osztályozása

Váratlan Revert DoS

Az intelligens szerződések elleni DoS-támadás tanulmányozásához vegyünk egy aukciós szerződést példaként. Az aukciós szerződés minden beérkezett legmagasabb ajánlattal frissül, és visszaadja az előző licitáló ajánlati összegét, mivel az alacsonyabb az aktuális ajánlatnál.

contract Auction {
    address frontRunner;
    uint256 highestBid;

    function bid() public payable {
        require(msg.value > highestBid, "Need to be higher than highest bid");
        // Refund the old leader, if it fails then revert   
        require(payable(frontRunner).send(highestBid), "Failed to send Ether");
 
        frontRunner = msg.sender;
        highestBid = msg.value;
    }
}

A támadó szerződés az aukciós szerződéssel inicializálódik a kivitelezőben, amely hozzáférést kap az aukciós szerződéshez. Ebben az "attack()" függvény meghívásával a támadó zárolja az összeget, és ezáltal nem tudja visszaadni a licit összegét a támadónak, még akkor sem, ha ennél magasabb ajánlatot kap. 

import "./Auction.sol";   
contract Attacker{
    Auction auction;

    constructor(Auction _auctionaddr){
        auction = Auction(_auctionaddr);
    }

    function attack (){
        auction.bid{value: msg.value}();
    }

}

Ennek az az oka, hogy a "támadó" szerződés nem tartalmaz semmilyen "receive()" vagy tartalék függvényt az Ether visszatérítésére, ami a váratlan visszaállást eredményezi. Ez arra készteti a támadót, hogy mindig a legmagasabb ajánlatot tevő legyen. 

Blokk gázkorlát DoS 

A blokknak van egy maximális elkölthető gázhatára, amely arányos az elvégzendő számítási munka mennyiségével. A gázkorlát túllépése kétféle DoS támadáshoz vezet.

Gas Limit DoS – Korlátlan szerződéses működés

Van egy meghatározott gázkorlát, és ha a tranzakciók elérik a beállított limitnél magasabb gázkorlátot, az tranzakció meghiúsul. 

Még rosszabbá válik, ha a támadó manipulálja a szükséges gázt. Ez az, amikor a támadó hozzáad néhány címet egy nagyon csekély visszatérítésért. Minden visszatérítés gázdíjba kerül; így a gázköltség meghaladja azt a határt, amely megakadályozza a visszatérítési tranzakciókat. 

struct Payee {
    address addr;
    uint256 value;
}

Payee[] payees;
uint256 nextPayeeIndex;

function payOut() {
    uint256 i = nextPayeeIndex;
    while (i < payees.length && msg.gas > 200000) {
      payees[i].addr.send(payees[i].value);
      i++;
    }
    nextPayeeIndex = i;
}

Ezért a szükséges lépéseket figyelembe kell venni egy tömbön keresztüli hurok megvalósítása során. 

Blokk töltelék

A támadó azért kezdeményezi ezt a támadást, hogy megakadályozza a tranzakciók blokkokhoz való hozzáadását azáltal, hogy számításigényes tranzakciókat küld magas gázárakkal. Több tranzakció is hasonló módon történik a teljes gázlimit fogyasztására. 

A magas gázdíj megfizetésével a támadó biztosítja, hogy csak a tervezett tranzakciók kerüljenek a blokkokhoz, a többit elhagyva. 

Tulajdonosi intézkedés

Minden szerződés rendelkezik tulajdonosi címmel, aki jogosult tranzakciókat nyitni vagy felfüggeszteni. A teljes művelet a tulajdonos címétől függ, így ha elveszik, akkor a felhasználó egyáltalán nem tud tokeneket küldeni, és a szerződés működése összeomlik.

A DoS támadás hatása

A blokktömés egyike azon számos hatásnak, amelyek megakadályozzák, hogy jogos tranzakciók kerüljenek a blokkokhoz. A DoS-támadásoknak azonban számos egyéb hatása is van. 

Duzzadt főkönyv: A blokklánc főkönyv az a hely, ahol a tranzakciókat folyamatosan rögzítik. A blokklánc csomópontok tárolják a tranzakciók másolatát, hogy ellenőrizzék a dupla ráfordítást. A DoS támadás felduzzaszthatja a főkönyvet spam tranzakciókkal.

Hálózati forgalom: Ismerjük a peer-to-peer módon alapuló blokklánc-funkciókat. A blokklánc minden csomópontja megkapja a tranzakció másolatát. A DoS elárasztás nagy tranzakciós mennyiséget eredményezhet, ami felemészti a hálózati sávszélességet. 

Csomóponti hibák: Blockchain funkciók azokon a csomópontokon, amelyek nagy mennyiségű adat kezeléséhez a szoftver támogatását igénylik. A tranzakció elárasztása során előfordulhat, hogy a csomópontok memóriája elfogy, ami leállítja a műveleteket.

Szoftver összeomlás: Amint megbeszéltük, a mempool vagy blokkok bizonyos korlátokkal rendelkeznek a hozzájuk rendelt memória tekintetében. A szoftver a beállított limiten belül fogadja, feldolgozza és tárolja a tranzakciókat. Amikor a bejövő tranzakciók túllépik a beépített korlátokat, a szoftver összeomlik.  

Tartsa vissza az intelligens szerződéseket a DoS támadásoktól 

A DoS támadások elemzéséből a következő módszerek alkalmazhatók a támadások mérséklésére. 

rejtvények: A szerverek rejtvényeket generálhatnak, mint például memóriarejtvények, időzár-rejtvények, CPU-hoz kötött rejtvények stb. Ahhoz, hogy a felhasználó hozzáférjen egy szolgáltatáshoz, meg kell oldani a rejtvényeket, ami felveszi a harcot a spam támadásokkal.

Díjalapú megközelítés: A blokkláncra extra díjat számíthatnak fel, például bányászati ​​medencék bányászati ​​díjait, tranzakciós díjakat stb. Ez költségessé teszi a DoS-hacket a támadók számára, ezáltal visszaszorítja az ilyen támadásokat. 

Záró megjegyzés

Intelligens szerződés auditálás elvégzése a címen QuillAudits keresi a kódolásban rejlő lehetséges sebezhetőségeket. Ezek közé tartozik az újbóli belépési sebezhetőség, a tárolási ütközések, a véletlenszerű támadás, a szolgáltatásmegtagadás és így tovább. 

Ez egyértelműen azt jelenti intelligens szerződések alaposan tesztelték, hogy mentesek legyenek a szolgáltatásmegtagadási támadásoktól. Ez biztosítja, hogy projektje védve legyen a Web3-terület lehetséges sebezhetőségei ellen.

Figyelje Telegram csatornánkat, hogy összegyűjtse szolgáltatásainkkal kapcsolatos legfrissebb információkat: https://t.me/quillhash

13 Nézetek

Időbélyeg:

Még több Quillhash