
Демистификация эксплуатируемых уязвимостей в смарт-контрактах

Этот проект направлен на предоставление ценного ресурса для Web3-разработчиков и аналитиков безопасности, помогая им понять эксплуатируемые ошибки в смарт-контрактах. Мы проводим тщательный анализ эксплуатируемых ошибок, извлечённых из code4rena, и классифицируем каждую ошибку по её природе.
Наши первоначальные исследования показывают, что значительная доля эксплуатируемых ошибок в смарт-контрактах относится к функциональным ошибкам, которые невозможно обнаружить с помощью простых и общих оракулов, таких как повторный вход (reentrancy). Мы стремимся повысить осведомлённость о значимости таких ошибок и призываем практиков разрабатывать более сложные и тонкие автоматические семантические оракулы для их обнаружения.
Значительная часть эксплуатируемых ошибок в смарт-контрактах относится к категории функциональных ошибок, которые невозможно обнаружить с помощью простых и общих оракулов.
Обратите внимание, что этот репозиторий находится в активной разработке, и данные могут меняться со временем из-за текущих конкурсов code4rena.
Набор данных организован в четыре папки:
Мы классифицируем исследованные ошибки по трём основным категориям в зависимости от их природы:
Поскольку классификация функциональных ошибок может быть неоднозначной, мы приветствуем предложения по улучшению наших стандартов классификации. Более подробную информацию о метках вы можете найти в нашей документации, и мы рекомендуем обратиться к нашим текущим рекомендациям по классификации.
Наша цель — создать исчерпывающий список методов обнаружения уязвимостей, который станет ценным ресурсом для Web3-разработчиков и аналитиков безопасности. Мы сосредоточимся на двух основных категориях:
Мы искренне приветствуем любые дополнительные предложения и вклад сообщества, чтобы помочь расширить и улучшить этот список.
Мы считаем, что будущие усилия в области безопасности web3 будут сосредоточены на выявлении функциональных ошибок и разработке соответствующих оракулов. Для этого мы намерены составить список методов, которые помогут в создании автоматических семантических оракулов. Эти методы будут взяты из различных источников, таких как рецензируемые исследовательские статьи, препринты, отраслевые инструменты и онлайн-ресурсы.
| Technique | Bug Category |
|---|---|
| Finding Permission Bugs in Smart Contracts with Role Mining | Контроль доступа |
| AChecker: Statically Detecting Smart Contract Access Control Vulnerabilities | Контроль доступа |
| Towards Automated Verification of Smart Contract Fairness | Свойство справедливости |
| Clockwork Finance: Automated Analysis of Economic Security in Smart Contracts | TBD |
| Confusum Contractum: Confused Deputy Vulnerabilities in Ethereum Smart Contracts | Confused Deputy |
| Not your Type! Detecting Storage Collision Vulnerabilities in Ethereum Smart Contracts | Коллизия хранилища |
В этом разделе будут представлены открытые методы, которые находятся в открытом доступе и активно развиваются. Эти методы могут использоваться напрямую Web3-разработчиками и аналитиками безопасности или как составные части для других инструментов. Мы отдаём приоритет методам, работающим на уровне исходного кода, которые лучше подходят для Web3-разработки и аудита.