Определение
Approval exploit е вид риск за сигурността, при който атакуващ използва механизми за token approval или allowance, за да премества активите на жертвата без допълнително съгласие. Обикновено възниква, когато smart contract или интерфейс подтикне потребителя да даде прекомерни или небезопасни allowances, които атакуващият след това извиква чрез злонамерени или компрометирани договори. Експлойтът обикновено не нарушава основния token стандарт, а по-скоро злоупотребява с легитимния модел на оторизация, заложен в логиката за approval на токена. В резултат на това прехвърлянето на средства е технически валидно on-chain, въпреки че нарушава очакванията на потребителя за сигурност и обхват.
Този риск е тясно свързан с начина, по който състоянията на token allowance се съхраняват и използват от smart contracts. След като атакуващият получи достъп до висок или неограничен allowance, той може многократно да извиква функции за прехвърляне от името на адреса на потребителя, докато одобреният баланс не бъде изчерпан. Approval exploits често разчитат на подвеждащи подсказки за транзакции, заблуждаващи имена на договори или повторно използване на вече дадени разрешения по неочаквани начини. Основната характеристика е разминаването между това, което потребителят вярва, че е оторизирал, и това, което allowance реално позволява на практика.
Контекст и употреба
В дискусиите за сигурност approval exploit се разглежда като риск от злоупотреба с разрешения, а не като директен провал на протокола. Често се свързва с ERC-20 тип дизайни на токени, при които отделна стъпка за approval задава allowance, който други договори могат да изразходват. Когато тези allowances са неправилно конфигурирани, никога не се отнемат (revoke) или се дават на недоверени договори, те създават постоянна повърхност за атака, която противниците могат да активират по-късно. Така експлойтът се намира на пресечната точка между дизайна на smart contracts, UX на wallet и разбирането на потребителите за on-chain механиката на оторизация.
Терминът често се използва заедно с понятието allowance, за да се опише колко детайлни или лесно отменяеми трябва да бъдат разрешенията за токени. Одиторите по сигурността и дизайнерите на протоколи разглеждат approval exploits като отделна категория заплаха, която трябва да се вземе предвид при проектиране на интерфейси на договори и потоци на разрешения. В докладите за инциденти обозначаването на атака като approval exploit подчертава, че атакуващият е действал в рамките на формално дадени разрешения, въпреки че тези разрешения са били получени или структурирани по подвеждащ или небезопасен начин. Тази класификация помага да се разграничи от бъгове, произтичащи от аритметични грешки, reentrancy или други нискониво дефекти в договорите.