Apibrėžimas
Patvirtinimo išnaudojimas – tai saugumo rizikos rūšis, kai užpuolikas pasinaudoja žetonų patvirtinimo arba leidimų (allowance) mechanizmais ir perkelia aukos turtą be papildomo sutikimo. Paprastai taip nutinka, kai smart contract arba sąsaja paskatina naudotoją suteikti per didelius ar nesaugius leidimus, kuriuos užpuolikas vėliau iškviečia per kenkėjiškus ar kompromituotus kontraktus. Toks išnaudojimas dažniausiai nepažeidžia paties žetono standarto, o veikiau piktnaudžiauja teisėtu autorizavimo modeliu, užkoduotu žetono patvirtinimo logikoje. Dėl to lėšų pervedimas techniškai yra galiojantis grandinėje (on-chain), nors ir pažeidžia naudotojo saugumo bei apimties lūkesčius.
Ši rizika glaudžiai susijusi su tuo, kaip smart contract saugo ir naudoja žetonų leidimų būsenas. Kai užpuolikas gauna prieigą prie didelio arba neriboto leidimo, jis gali pakartotinai kviesti pervedimo (transfer) funkcijas naudotojo adreso vardu tol, kol patvirtinta suma bus visiškai ištuštinta. Patvirtinimo išnaudojimai dažnai remiasi apgaulingais transakcijų pranešimais, klaidinančiais kontraktų pavadinimais arba anksčiau suteiktų leidimų panaudojimu netikėtais būdais. Esminė savybė – neatitikimas tarp to, ką naudotojas mano patvirtinęs, ir to, ką leidimas realiai leidžia atlikti praktikoje.
Kontekstas ir vartojimas
Saugumo diskusijose patvirtinimo išnaudojimas minimas kaip leidimų piktnaudžiavimo rizika, o ne tiesioginis protokolo gedimas. Jis dažnai siejamas su ERC-20 tipo žetonų dizainu, kuriame atskiras patvirtinimo žingsnis nustato leidimą (allowance), kurį gali išleisti kiti kontraktai. Kai šie leidimai yra neteisingai sukonfigūruoti, niekada neatšaukiami arba suteikiami nepatikimiems kontraktams, jie sukuria nuolatinį atakos paviršių, kurį priešininkai gali vėliau suaktyvinti. Todėl toks išnaudojimas atsiranda ten, kur susikerta smart contract dizainas, wallet naudotojo patirtis (UX) ir naudotojo supratimas apie autorizavimo grandinėje (on-chain) semantiką.
Šis terminas dažnai vartojamas kartu su leidimo (allowance) sąvoka, apibūdinant, kokio detalumo ir kaip lengvai atšaukiami turėtų būti žetonų leidimai. Saugumo auditoriai ir protokolų kūrėjai patvirtinimo išnaudojimus laiko atskira grėsmių kategorija, kurią būtina įvertinti kuriant kontraktų sąsajas ir leidimų srautus. Incidentų ataskaitose atakos įvardijimas kaip patvirtinimo išnaudojimo pabrėžia, kad užpuolikas veikė formaliai suteiktų leidimų ribose, net jei tie leidimai buvo gauti ar sukonstruoti apgaulingu ar nesaugiu būdu. Toks klasifikavimas padeda atskirti šią riziką nuo klaidų, kylančių dėl aritmetinių netikslumų, reentrancy ar kitų žemo lygio kontraktų trūkumų.