Back to Blog

Как Coin98 скрытно устраняет уязвимости

Code Auditing
January 16, 2022
3 min read

В прошлую пятницу наша система мониторинга обнаружила атаку на смарт-контракт coin98 (0x8aaf408e06feed6a6a6182ea3c464035748b9b31 — контракт-жертва) в сети BSC. Мы немедленно связались с владельцем проекта через личные сообщения в Twitter, но не получили ответа. Поскольку на тот момент уязвимость все еще существовала, мы не стали предавать ее огласке. Спустя пару часов мы обнаружили, что владелец проекта создал новый контракт, в котором эта уязвимость была исправлена. Таким образом, теперь можно безопасно описать суть уязвимости и способ ее устранения.

Атакующая транзакция и первопричина

Транзакция, выявленная нашей внутренней системой мониторинга, привлекла наше внимание. После тщательного расследования мы подтвердили, что проблема заключается в отсутствии контроля доступа к параметру route (фактически, роутеру) в функции swapExactTokensForTokens:

Этот контракт слепо доверял параметру route, после чего вызывал функцию swapExactTokensForTokens роутера. Перед этим он одобрял (approve) использование всех токенов, принадлежащих контракту-жертве, для данного route. Однако параметр route мог быть передан злоумышленником. В этом случае атакующий мог перевести все токены жертвы на свой адрес, а затем обменять их на WBNB для получения прибыли.

Ниже представлена одна из атакующих транзакций.

Скрытое исправление уязвимости

Мы отправили владельцу проекта личное сообщение в Twitter в прошлую пятницу, но ответа не получили. Сегодня мы повторно проверили контракт и обнаружили, что был развернут новый смарт-контракт (0x83f25d16bdf91f51120032f264dad0e1ab1c8227). В этом новом контракте предусмотрен «белый список» (whitelist) для параметра route:

Заключение

Мы часто сталкиваемся со случаями, когда смарт-контракты слепо доверяют входящим параметрам. Это ДЕЙСТВИТЕЛЬНО создает критическую дыру в безопасности.

НЕ ДОВЕРЯЙТЕ НИКАКИМ ПАРАМЕТРАМ, КОТОРЫЕ НАХОДЯТСЯ ВНЕ ВАШЕГО КОНТРОЛЯ!

О компании BlockSec

BlockSec — передовая компания в сфере безопасности блокчейна, основанная в 2021 году группой всемирно признанных экспертов по безопасности. Компания стремится повысить уровень безопасности и удобства использования развивающегося мира Web3, чтобы способствовать его массовому внедрению. Для этого BlockSec предоставляет услуги аудита безопасности смарт-контрактов и EVM-совместимых сетей, платформу Phalcon для безопасной разработки и проактивного блокирования угроз, платформу MetaSleuth для отслеживания и расследования транзакций, а также расширение MetaSuites для эффективной работы в сфере Web3.

На сегодняшний день компания обслужила более 300 уважаемых клиентов, таких как MetaMask, Uniswap Foundation, Compound, Forta и PancakeSwap, а также привлекла десятки миллионов долларов США в ходе двух раундов финансирования от ведущих инвесторов, включая Matrix Partners, Vitalbridge Capital и Fenbushi Capital.

Официальный сайт: https://blocksec.com/

Официальный аккаунт в Twitter: https://twitter.com/BlockSecTeam

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit