Bitcoin.com News
Poganja

Kasplex KRC-20 Indexer Signature izčrpa dva sklopa žetonov

Ta vikend je napadalec iz denarnice Kaspa KRC-20 bridge ukradel 186,4 milijona ZEAL in 54,4 milijarde NACHO, ne da bi imel njen zasebni ključ, nato pa je žetone preusmeril prek omrežij druge plasti (L2) in jih prodal v likvidnostne bazene. Čudno je, da sama denarnica Kaspa ni bila hekana. Pet veljavnih transakcij je zavedlo indeksator zunaj verige, da je priznal prenose, ki jih v resnici nihče ni podpisal, zaradi česar so žetoni na mostu ostali brez kritja, nekateri skladi pa so izgubili kar 99,6 % svoje vrednosti na strani KAS.

DELI
Kasplex KRC-20 Indexer Signature izčrpa dva sklopa žetonov

Ključne ugotovitve

  • Napadalec je prenesel 54,4 milijarde NACHO, ne da bi imel zasebni ključ mostne denarnice.
  • Skladi Zealous Swap so po ponarejenih prenosih izgubili od 94 % do 99,6 % svoje vrednosti na strani KAS.
  • Igra je začasno ustavila ključne izhode, medtem ko se operaterji KRC-20 pripravljajo na popravek in ponovno indeksiranje sistema.

Pet transakcij, brez zasebnega ključa

Zasebni ključ naj bi bil tista meja med lastništvom kriptovalute in zgolj vednostjo, kje se ta nahaja. 20. septembra je nekdo našel način, kako to predpostavko obiti za žetone KRC-20, ne da bi sploh prekinil osnovno verigo Kaspe.

Napadalec je prenesel 186.425.259 ZEAL in 54.397.983.246 NACHO z naslova za hrambo mostu, čeprav ni imel nadzora nad njegovim zasebnim ključem. Ti žetoni so bili nato poslani nazaj na isti naslov za hrambo kot običajni depoziti mostu, izdani na EVM-plasti podjetja Igra Labs in Kasplex L2 ter izpuščeni v likvidnostne bazene Zealous Swap.

Ko se je prah polegel, so bila stanja napadalca na L2 za ZEAL in NACHO prazna, medtem ko so prizadeti bazeni izgubili med 94 % in 99,6 % svoje vrednosti na strani KAS. Tu je zadržek: Kaspa-jev sloj ena (L1) je deloval točno tako, kot je moral.

Prazna podpisna datoteka, ki je kljub temu bila sprejeta

Lastništvo tokenov KRC-20 se ne uveljavlja neposredno prek konsenza Kaspa. Navodila za tokene so vključena v transakcije Kaspa, medtem ko indekser Kasplex zunaj verige prebere ta navodila in določi, kdo je lastnik česa. Običajno prenos KRC-20 vsebuje javni ključ, navodila za žetone in veljaven podpis. Napadalec je ohranil to znano strukturo, vendar je vnesel prazen podpis in dodal OP_NOT za OP_ENDIF.

X screenshot
Vir slike: X

Prazni podpis povzroči, da OP_CHECKSIG vrne vrednost false, namesto da bi transakcijo takoj prekinil. Dodatni OP_NOT je ta rezultat spremenil nazaj v true, zaradi česar je Kaspa transakcijo obravnavala kot veljavno. Na ravni konsenza ni prišlo do nobenih odstopanj. Indeksator pa je bil druga zgodba. Prepoznal je ovojnico KRC-20, vendar ni zahteval, da se skript natančno ujema s kanoničnim formatom. Posledično je ponarejeni prenos priznal kot legitimen. Kasplexov lastni API je pri prvi ponarejeni transakciji ZEAL celo vrnil opAccept: 1.

Ponaredek je lahko ustvaril kdorkoli

Najhujši preobrat je bil, da napadalcu ni bilo treba odkriti kakšnih skritih poverilnic. Standardni naslov Kaspa razkriva javni ključ, potreben za sestavo ponarejene operacije KRC-20. To pomeni, da premik žetonov na drug naslov ne reši osnovnega problema. Dokler indeksator ne bo popravljen in njegova zgodovina ponovno indeksirana, se ista pomanjkljivost teoretično lahko izkoristi proti stanjem KRC-20 drugje.

Pet transakcij je ponaredilo prenose ZEAL in NACHO. Nasprotno pa je bilo devet majhnih izplačil po eni enoti resnično podpisanih s strani skrbniškega denarnika in se zdi, da so bila to preizkusi, s katerimi so preverjali, ali izhodna pot deluje. Zanimivo je, da so bile legitimne transakcije prav tiste majhne. Skrbniški denarnik je vseboval približno 50 drugih žetonov KRC-20. Napadalec je izbral dva.

Žetoni so še vedno tam, vendar ni več kritja

V nedeljo zjutraj je Igra povedal, da so bili odvzeti vsi ZEAL in NACHO iz skrbniške denarnice, pri čemer je na omrežjih Layer 2 ostalo 97.651.212 ZEAL in 42.570.879.908 NACHO brez polnega kritja na L1. Nadaljnjih 4,5 milijarde NACHO je ostalo pri napadalcu na L1.

Igra je začasno ustavila izhodne transakcije iz iKAS v Kaspa L1 in prenose prek Hyperlane, uporabnike pa je opozorila, naj ne izvajajo premostitve žetonov KRC-20, ne kupujejo ZEAL ali NACHO na decentraliziranih borzah (DEX) na L2 ter ne dodajajo likvidnosti v prizadete bazene. Nativni KAS, konsenz Kaspa in sredstva Igra, ki niso bila mostovana KRC-20 žetona, so bila opisana kot neprizadeta.

Samo popravljanje programske opreme ne bo odpravilo težav. Zealous Swap pravi, da morajo operaterji popraviti indeksator in ponovno indeksirati njegovo zgodovino, pri čemer morajo zavrniti prazne podpise, nepravilno oblikovane oznake in skripte, ki se nadaljujejo preko OP_ENDIF. Nacho the Kat medtem pravi, da namerava skupnost preiti na KCC-20, standard, zasnovan za vključitev pravil žetonov v skripte, ki jih izvršuje samo omrežje.

Ta težava sledi vrsti zlorab, hroščev, hekov in kršitev varnosti podatkov v zadnjih nekaj tednih. V soboto je ponudnik infrastrukturne rešitve za Lightning Network, tako skrbniške kot neskrbniške, Blink Wallet razkril, da je bilo izpraznjenih »nekaj ducatov« skrbniških računov. Podjetje za kibernetsko varnost DCENT je ta teden prav tako zabeležilo izčrpavanje denarja iz denarnic DCENT App Wallets. To se dogaja v času, ko so se kibernetski napadi okrepili, nekateri pa sumijo, da pri tej vali izkoriščevalcev pomaga umetna inteligenca.

Ta članek je bil iz angleščine preveden z umetno inteligenco. Izvirna angleška različica je verodostojni vir; samodejni prevodi lahko vsebujejo netočnosti, zlasti pri pravni in regulativni terminologiji.