Përkufizim
Një approval exploit është një klasë rreziku sigurie ku një sulmues shfrytëzon mekanizmat e miratimit (approval) ose allowance të një token-i për të lëvizur asetet e viktimës pa pëlqim të mëtejshëm. Zakonisht shfaqet kur një smart contract ose ndërfaqe e shtyn përdoruesin të japë allowance të tepërt ose të pasigurt, të cilat më pas sulmuesi i thërret përmes kontratave keqdashëse ose të komprometuara. Exploit-i zakonisht nuk e thyen standardin bazë të token-it, por përkundrazi abuzon modelin legjitim të autorizimit të koduar në logjikën e miratimit të token-it. Si rezultat, transferimi i fondeve është teknikisht i vlefshëm on-chain, edhe pse shkel pritshmëritë e përdoruesit për siguri dhe kufizim të fushës së veprimit.
Ky rrezik lidhet ngushtë me mënyrën se si gjendjet e allowance të token-it ruhen dhe referencohen nga smart contracts. Pasi një sulmues të ketë akses në një allowance të lartë ose të pakufizuar, ai mund të thërrasë në mënyrë të përsëritur funksionet e transferimit në emër të adresës së përdoruesit derisa bilanci i miratuar të shterohet. Approval exploits shpesh mbështeten te kërkesa transaksionesh mashtruese, emra kontratash që të çojnë në konfuzion, ose ripërdorim i lejeve të dhëna më parë në mënyra të papritura. Karakteristika kryesore është mospërputhja midis asaj që përdoruesi beson se ka autorizuar dhe asaj që allowance në praktikë lejon.
Kontekst dhe Përdorim
Në diskutimet e sigurisë, një approval exploit përmendet si një rrezik abuzimi me lejet, dhe jo si një dështim i drejtpërdrejtë i protokollit. Ai lidhet shpesh me dizajnet e token-ëve në stilin ERC-20, ku një hap i veçantë miratimi vendos një allowance që kontrata të tjera mund ta shpenzojnë. Kur këto allowance konfigurohen gabim, nuk revokohen kurrë, ose u jepen kontratave të pabesueshme, ato krijojnë një sipërfaqe të qëndrueshme sulmi që kundërshtarët mund ta aktivizojnë më vonë. Për pasojë, exploit-i qëndron në kryqëzimin midis dizajnit të smart contract, UX të wallet-it dhe kuptimit që ka përdoruesi për semantikën e autorizimit on-chain.
Termi përdoret shpesh së bashku me konceptin e allowance për të përshkruar sa të detajuara ose të revokueshme duhet të jenë lejet e token-it. Auditorët e sigurisë dhe dizajnerët e protokolleve i trajtojnë approval exploits si një kategori të veçantë kërcënimi që duhet marrë parasysh kur dizajnohen ndërfaqet e kontratave dhe rrjedhat e lejeve. Në raportet e incidenteve, etiketimi i një sulmi si approval exploit thekson që sulmuesi ka vepruar brenda lejeve të dhëna formalisht, edhe pse ato leje janë marrë ose strukturuar në një mënyrë mashtruese ose të pasigurt. Ky klasifikim ndihmon ta dallojë atë nga bug-et që burojnë nga gabime aritmetike, reentrancy, ose defekte të tjera të nivelit të ulët në kontrata.