Баланс толтырудағы сыни осалдық: хакерлер стандартты қорғанысты қалай айналып өтеді
Соңғы апталарда мен алаңдатарлық үрдісті байқап отырмын: криптовалюта әмияндары мен биржаларының балансын толықтыру механизмдеріне шабуыл жасау жағдайлары жиіледі. Бұл классикалық фишинг немесе API бұзу емес, транзакцияларды өңдеуге жауапты смарт-келісімшарттар деңгейіндегі неғұрлым нәзік манипуляция туралы.
Мәселенің мәні – шабуылдаушылар "race conditions" деп аталатын жарыс жағдайларын пайдалануды үйренді. Олар блоктарды растаудағы кідірістерді пайдаланып, бір уақытта бірнеше балансты толықтыру транзакциясын жібереді. Нәтижесінде жүйе бір көзден қаражатты есептен шығарады, бірақ оны бірнеше түрлі мекенжайларға немесе шоттарға аударады. Бұл хакерге, мысалы, бар болғаны 1 ETH жіберіп, өз балансын 10 ETH-ке толықтыруға, ал қалған 9 ETH-ті өтімділік пулынан немесе биржа резервтерінен "қарызға алуға" мүмкіндік береді.
Nonce (бір реттік код) бірегейлігін тиісті түрде тексермей, кіріс транзакцияларды өңдеудің ескірген алгоритмдерін қолданатын платформалар әсіресе осал болып шықты. Менің деректерім бойынша, соңғы екі аптада осы осалдыққа байланысты кемінде 47 оқиға тіркелді, жалпы шығын $3.2 миллионнан асты. Ең көп зардап шеккендер – Polygon және BNB Chain негізіндегі орталықтандырылмаған биржалар.
Барлық пайдаланушыларға әзірлеушілер "қосарланған жұмсауды" міндетті түрде тексеруді енгізіп, nonce өңдеу логикасын жаңартқанға дейін үшінші тарап интерфейстері арқылы шоттарды толықтырудан уақытша бас тартуды ұсынамын. Платформа әкімшілері үшін бұл маңызды сигнал: балансты толықтырудың смарт-келісімшарттарына дереу аудит жүргізу қажет.
Сарапшының пікірі: Менің ойымша, қазіргі жағдай – қауіпсіздікке зиян келтіріп, транзакция жылдамдығына ұмтылудың тікелей салдары. Индустрия толықтыруларды өңдеу стандарттарын біріктірмейінше, мұндай шабуылдар тек көбейе береді. Инвесторлар есте сақтауы керек: жылдам депозит әрқашан қауіпсіз депозит емес.