Демистификация эксплуатируемых ошибок в смарт-контрактах
Этот проект направлен на предоставление ценного ресурса для Web3-разработчиков и аналитиков безопасности, помогая им понять эксплуатируемые ошибки в смарт-контрактах. Мы проводим тщательный анализ эксплуатируемых ошибок, извлечённых из code4rena, и классифицируем каждую ошибку по её природе.
Наши первоначальные исследования показывают, что значительная доля эксплуатируемых ошибок в смарт-контрактах относится к функциональным ошибкам, которые невозможно обнаружить с помощью простых и общих оракулов, таких как повторный вход (reentrancy). Мы стремимся повысить осведомлённость о значимости таких ошибок и призываем практиков разрабатывать более сложные и тонкие автоматические семантические оракулы для их обнаружения.
Значительная часть эксплуатируемых ошибок в смарт-контрактах относится к категории функциональных ошибок, которые невозможно обнаружить с помощью простых и общих оракулов.
Обратите внимание, что этот репозиторий находится в активной разработке, и данные могут меняться со временем из-за текущих конкурсов code4rena.
Описание набора данных
Структура каталогов
Набор данных организован в четыре папки:
papers/: содержит нашу статью ICSE23, обобщающую предварительные результаты, а также дополнительные материалы к статье.
Поскольку классификация функциональных ошибок может быть неоднозначной, мы приветствуем предложения по улучшению наших стандартов классификации. Более подробную информацию о метках вы можете найти в нашей документации, и мы рекомендуем обратиться к нашим текущим рекомендациям по классификации.
Рекомендуемые инструменты анализа безопасности
Наша цель — создать исчерпывающий список методов обнаружения уязвимостей, который станет ценным ресурсом для Web3-разработчиков и аналитиков безопасности. Мы сосредоточимся на двух основных категориях:
Методы обнаружения уязвимостей, в которых приоритет отдаётся разработке семантических оракулов для смарт-контрактов.
Общедоступные инструменты анализа безопасности, которые можно использовать для аудита
Мы искренне приветствуем любые дополнительные предложения и вклад сообщества, чтобы помочь расширить и улучшить этот список.
Обнаружение уязвимостей с помощью автоматических семантических оракулов
Мы считаем, что будущие усилия в области безопасности web3 будут сосредоточены на выявлении функциональных ошибок и разработке соответствующих оракулов. Для этого мы намерены составить список методов, которые помогут в создании автоматических семантических оракулов. Эти методы будут взяты из различных источников, таких как рецензируемые исследовательские статьи, препринты, отраслевые инструменты и онлайн-ресурсы.
В этом разделе будут представлены открытые методы, которые находятся в открытом доступе и активно развиваются. Эти методы могут использоваться напрямую Web3-разработчиками и аналитиками безопасности или как составные части для других инструментов. Мы отдаём приоритет методам, работающим на уровне исходного кода, которые лучше подходят для Web3-разработки и аудита.
Если вы используете наш набор данных в академической публикации, мы будем очень признательны за цитирование следующей работы:```
@inproceedings{DBLP:conf/icse/ZhangZXL23,
author = {Zhuo Zhang and
Brian Zhang and
Wen Xu and
Zhiqiang Lin},
title = {Demystifying Exploitable Bugs in Smart Contracts},
booktitle = {{ICSE}},
pages = {615--627},
publisher = {{IEEE}},
year = {2023}
}
root@kitploit:~
## Уточнение
Пожалуйста, обратитесь к нашей [документации](https://github.com/zhangzhuosjtu/web3bugs/blob/main/docs/classification.md) по классификации.
## Благодарности
Мы хотели бы выразить искреннюю благодарность [code4rena](https://code4rena.com/) за предоставление этой ценной информации в открытый доступ.
<details>
<summary>Мы также выражаем признательность следующим участникам за их ценный вклад.</summary></br>
+ [__ItsNio__](https://github.com/niothefirst)
+ [__Wen Xu__](https://github.com/tarafans)
+ [__Patrick Collins__](https://github.com/PatrickAlphaC)
+ [__Meng Xu__](https://twitter.com/meng_xu_cs)
+ [__y3s0n__](https://github.com/CharesFang)
+ [__William Aaron Cheung__](https://github.com/Troublor)
+ [__soaphorn__](https://github.com/soaphorn)
+ [__Fabio Gritti__](https://github.com/degrigis)
+ [__Yannick__](https://twitter.com/MillusPontius)
</details>