Hiter Razcvet Web3 Odpira Nova Vrata za Kibernetske Napade na Finančni Sektor
Hitro rastoči Web3 je ustvaril nove priložnosti za kibernetske kriminalce, zlasti na področju decentraliziranih financ (DeFi). Severna Koreja je bila pomemben akter na tem področju, organizirajoč velike tatvine, kot je bil napad na Ronin Bridge leta 2022.
Niso sami; od leta 2020 je bilo prijavljenih na stotine tatvin, povezanih z Web3, kar je povzročilo krajo več milijard dolarjev, ki pogosto vključuje družbeni inženiring, odtekanje kriptovalut, “rug pulls” in prevare. Najpomembnejši incidenti pa se običajno nanašajo na izkoriščanje ranljivosti v ključih kripto denarnic, pametnih pogodbah ali spletnih vmesnikih.
Kako Potekajo Napadi
DPRK kibernetski kriminalci ciljajo na kripto menjalnice prek družbenega inženiringa in napadov na dobavno verigo tako, da pošiljajo lažne ponudbe za delo z zlonamerno programsko opremo za kompromitacijo računalnikov razvijalcev ali finančnega osebja.
Ko dosežejo oporo, ukradejo poverilnice, izvajajo izvidništvo in se premikajo na shranjevanje v oblaku, da ukradejo ključe vročih denarnic in izpraznijo sredstva. Raziskovalci so opazili primer, kjer so napadalci uporabili AWS SSM parametre za krajo poverilnic in gesel za denarnice, kar je povzročilo izgubo v višini 100 milijonov dolarjev.
Pametne pogodbe, čeprav pregledne in decentralizirane, so ranljive za izkoriščanje, saj odprtokodna narava napadalcem omogoča podrobno preučevanje kode zaradi ranljivosti.
Pogoste Ranljivosti in Napadi
Med najpogostejšimi ranljivostmi so napake v logiki programiranja, kot so prelivanje ali premaloštevilčenje aritmetike, napadi ponovnega vstopa in nepravilne nadzorne točke, kar lahko povzroči velike finančne izgube za uporabnike in razvijalce.
Napadi Ponavljajočega Vstopa (Reentrancy)
Napad ponovnega vstopa izkorišča ranljivost v pametnih pogodbah, ki omogoča napadalcu, da izvede funkcijo večkrat, preden se prvotni klic zaključi. To se zgodi, ko pogodba pošlje sredstva zunanji pogodbi, ne da bi najprej posodobila svojo notranjo stanje.
Napadalec lahko nato ustvari rekurzivno zanko, ki večkrat kliče prvotno funkcijo in izprazni sredstva iz ranljive pogodbe, kar se je uporabilo za krajo milijonov dolarjev vrednih digitalnih sredstev iz različnih pametnih pogodb.
Primer Curv Finance
Napad ponovnega vstopa na Curve Finance je izkoristil ranljivost v funkciji remove_liquidity, kjer je napadalec manipuliral z zunanjim klicem na self.coins[1] za rekurzivno klicanje funkcije, preden so bile posodobljene spremenljivke stanja, kar je zaobšlo preverjanje ravnotežja in omogočilo napadalcu večkratno dvigovanje sredstev iz bazena.
Modifier @nonreentrant, namenjen preprečevanju ponovnega vstopa, zaradi napačne postavitve pogodbe ni uspel zaščititi funkcije, kar je povzročilo izgubo 70 milijonov dolarjev iz protokola Curve Finance.
Napadalec je izkoristil ranljivost v pametni pogodbi Euler Finance za izvajanje napada z bliskovnim posojilom, tako da je preko Aave izposodil DAI, ga položil v Euler in ga uporabil za izposojo desetkratne vrednosti.
S manipulacijo funkcije donateToReserves so sprožili samo-likvidacijo s popustom, kar je napadalcu omogočilo krajo velike vsote. V ločenem incidentu je napadalec pridobil nadzor nad DAO Tornado Cash z predlaganjem na videz neškodljivega spremembe v upravljanju, ki je vključevala skrito funkcijo emergencyStop().
Po navedbah Googla, ko je bil predlog sprejet, je napadalec uporabil to funkcijo za uničenje obstoječih pogodb in si dodelil nadzor, s čimer je lahko izpraznil sredstva zakladnice.