Сектор децентрализованного финансирования растет головокружительными темпами. Три года назад общая стоимость DeFi составляла всего 800 миллионов долларов. К февралю 2021 года эта цифра выросла до 40 миллиардов долларов; в апреле 2021 года он достиг рубежа в 80 миллиардов долларов; а сейчас он превышает 140 миллиардов долларов. Столь стремительный рост на новом рынке не мог не привлекать внимание всевозможных хакеров и мошенников.

Согласно отчету крипто-исследовательской компании, с 2019 года сектор DeFi потерял около 284,9 миллиона долларов из-за взломов и других атак с использованием эксплойтов. Взломы экосистемы блокчейнов - идеальное средство обогащения с точки зрения хакеров. Поскольку такие системы анонимны, им есть что терять, и любой взлом может быть протестирован и настроен без ведома жертвы. За первые четыре месяца 2021 года убытки составили 240 миллионов долларов. И это всего лишь общеизвестные случаи. По нашим оценкам, реальные убытки исчисляются миллиардами долларов.

Как украсть деньги из протоколов DeFi? Мы проанализировали несколько десятков хакерских атак и выявили наиболее частые проблемы, которые приводят к хакерским атакам.

Неправильное использование сторонних протоколов и ошибки бизнес-логики

Любая атака начинается в первую очередь с анализа жертвы. Технология блокчейн предоставляет множество возможностей для автоматической настройки и моделирования сценариев взлома. Чтобы атака была быстрой и невидимой, злоумышленник должен обладать необходимыми навыками программирования и знанием того, как работают смарт-контракты. Типичный инструментарий хакера позволяет им загружать собственную полную копию блокчейна из основной версии сети, а затем полностью настраивать процесс атаки, как если бы транзакция происходила в реальной сети.

Далее злоумышленнику необходимо изучить бизнес-модель проекта и используемые внешние сервисы. Ошибки в математических моделях бизнес-логики и сторонних сервисов - две проблемы, которые чаще всего используются хакерами.

Разработчикам смарт-контрактов часто требуется больше данных, актуальных во время транзакции, чем они могут иметь в любой данный момент. Поэтому они вынуждены использовать внешние сервисы, например оракулы. Эти службы не предназначены для работы в среде без доверия, поэтому их использование влечет за собой дополнительные риски. По статистике за календарный год (с лета 2020 года) на данный вид риска приходился наименьший процент убытков - всего 10 взломов, в результате чего убытки составили около 50 миллионов долларов.

Ошибки кодирования

Смарт-контракты - относительно новая концепция в мире ИТ. Несмотря на свою простоту, языки программирования для смарт-контрактов требуют совершенно иной парадигмы разработки. Разработчики часто просто не обладают необходимыми навыками кодирования и допускают грубые ошибки, которые приводят к огромным потерям для пользователей.

Аудит безопасности устраняет лишь часть этого вида риска, поскольку большинство аудиторских компаний на рынке не несут никакой ответственности за качество выполняемой ими работы, а заинтересованы только в финансовом аспекте. Более 100 проектов были взломаны из-за ошибок в коде, что привело к общим убыткам в размере около 500 миллионов долларов. Ярким примером является взлом dForce, произошедший 19 апреля 2020 года. Хакеры использовали уязвимость в стандарте токенов ERC-777 в сочетании с атакой повторного входа и получили 25 миллионов долларов.

Флэш-кредиты, манипулирование ценами и атаки майнеров

Информация, предоставленная смарт-контракту, актуальна только во время выполнения транзакции. По умолчанию контракт не защищен от возможных внешних манипуляций с содержащейся в нем информацией. Это делает возможным целый спектр атак.

Быстрые ссуды - это ссуды без обеспечения, но влекущие за собой обязательство вернуть заимствованную криптовалюту в рамках той же транзакции. Если заемщик не возвращает средства, транзакция отменяется (отменяется). Такие кредиты позволяют заемщику получать большие суммы криптовалют и использовать их в своих целях. Как правило, атаки на быстрые ссуды связаны с манипулированием ценами. Злоумышленник может сначала продать большое количество заимствованных токенов в рамках транзакции, тем самым снизив их цену, а затем выполнить ряд действий при очень низкой стоимости токена, прежде чем выкупить их обратно.

Атака майнера - это аналог атаки flash-ссуды на блокчейны, работающие на основе алгоритма консенсуса Proof-of-Work. Этот тип атаки является более сложным и дорогостоящим, но он может обойти некоторые уровни защиты флэш-кредитов. Вот как это работает: злоумышленник арендует мощности для майнинга и формирует блок, содержащий только необходимые им транзакции. В рамках данного блока они могут сначала занимать токены, манипулировать ценами, а затем возвращать заимствованные токены. Поскольку злоумышленник независимо формирует транзакции, которые вводятся в блок, а также их последовательность, атака фактически является атомарной (никакая другая транзакция не может быть «вклинена» в атаку), как в случае с flash-кредитами. Этот тип атаки был использован для взлома более 100 проектов с общим убытком около 1 миллиарда долларов.

Среднее количество взломов со временем увеличивается. В начале 2020 года одна кража составляла сотни тысяч долларов. К концу года суммы выросли до десятков миллионов долларов.

Некомпетентность разработчика

Самый опасный вид риска связан с человеческим фактором ошибки. Люди прибегают к DeFi в поисках быстрых денег. Многие разработчики имеют низкую квалификацию, но все же пытаются запускать проекты в спешке. Смарт-контракты имеют открытый исходный код, поэтому хакеры легко копируют и изменяют их. Если исходный проект содержит первые три типа уязвимостей, они распространяются на сотни клонированных проектов. RFI SafeMoon является хорошим примером, поскольку он содержит критическую уязвимость, на которую было наложено более сотни проектов, что привело к потенциальным убыткам в размере более 2 миллиардов долларов.

Соавторами этой статьи являются Владислав Комиссаров и Дмитрий Мишунин.

Владислав Комиссаров - технический директор BondAppetit, кредитного протокола DeFi со стейблкоином, поддерживаемым реальными активами с фиксированным периодическим доходом. У него более 17 лет опыта в веб-разработке.

Дмитрий Мишунин - основатель и технический директор HashEx. Более 30 глобальных проектов работают на интеграции блокчейнов, разработанной HashEx. В 2017–2021 годах аудит было проведено более 200 смарт-контрактов.

Источник