CEX.IO
CEX.IO Блог компании CEX.IO
08 октября 2021, 13:18

Как защитить свои средства на DeFi-площадках: часть 2

Продолжение интервью с Дмитрием Волковым, техническим директором международной криптобиржи CEX.IO, для ресурса Blockchain24.

Как вообще обеспечивается сохранность средств в DeFi-проектах? Насколько хороша и продумана система безопасности?

Сохранность средств в DeFi-проектах обеспечивается благодаря тщательной проработке возможных угроз и прописывания соответствующей защиты от них на уровне кода смарт-контрактов проектов.

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

Также необходимой мерой безопасности является проведение технического аудита смарт-контракта: он позволяет выявить все возможные уязвимости благодаря тщательной проверке смарт-контракта профессионалами в области информационной безопасности. Без этого смарт-контракт нельзя считать защищенным от взлома.

Обычно взломы DeFi-проектов происходят посредством использования уязвимостей, допущенных в смарт-контрактах разработчиками. Как это происходит,и о каких ошибках идет речь? 

Речь идет об определенном функционале смарт-контракта, который злоумышленник может использовать в своих корыстных интересах. Его задача состоит в том, чтобы обнаружить это функционал. Есть несколько наиболее часто встречающихся вариантов уязвимостей смарт-контракта:

— позволяющие единолично подписывать транзакции;

— позволяющие влиять на стоимость токена посредством возможности вывода средств в токене, отличном от того, который был заведен в смарт-контракт;

— позволяющие завышать резерв своего баланса при обменных операциях. 

Нередко уязвимости возникают при использовании нескольких протоколов в одной транзакции, в частности, при использовании мгновенных займов. Цепочка из нескольких смарт-контрактов может создать условия для хакерской атаки, даже если каждый смарт-контракт по отдельности такой возможности не даёт.

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

Не могли бы вы подробнее рассказать о методах взлома, которые используют злоумышленники?

Самый прямолинейный способ “взлома” — это исследовать код смарт-контракта, и найти там ошибку, которую не заметили разработчики и аудиторы безопасности. Это может быть ошибка, например, позволяющая кому угодно выполнить какое-то служебное действие в смарт-контракте, например, которое дает хакеру права владельца всего смарт-контракта. Может быть, разработчики забыли поставить проверку прав вызова определенной команды, либо же передача определенных нетипичных параметров (например, передача слишком большого числа) вызывает неадекватное поведение кода контракта, и на это не обратили внимания разработчики.

Более сложные способы “взлома” — это нахождение логических ошибок в алгоритме и принципе работы сервиса. Такие ошибки обычно не обнаруживаются на этапе аудита безопасности, потому что это ошибка не написания кода алгоритма, а ошибка самого алгоритма. Например, сервис позволяет пользователю заводить деньги в одной валюте, а выводить в другой. При этом курс определяется исходя из текущего курса какой-то распределенной биржи.

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

Создатели сервиса обычно предполагают, что манипуляция ценой на рынке будет требовать от хакера очень большого капитала и будет дорого ему стоить, поэтому таких атак никогда не произойдет. Это предположение обычно не проверяется, и просто в это никто не верит. А на практике оказывается, что манипулирование ценой не так уж и сложно сделать с использованием функции мгновенных займов. Хакер может брать в долг огромные суммы всего на мгновение, и за это мгновение такой большой суммой хакер может манипулировать ценой на бирже, и это не будет ему стоить практически ничего.

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

Сейчас многие пользователи столкнулись с проблемой — как выбрать надежную DeFi-площадку, чтобы не переживать о сохранности своих средств. Некоторые эксперты для проверки надежности DeFi-проекта советуют использовать результаты технического аудита. По вашему мнению, насколько это эффективно?

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

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

О каких методах предотвращения взломов и атак вы могли бы еще рассказать нашим читателям?

Перед тем как вкладывать деньги в какой-то проект, стоит проверить его команду. Команда играет очень важную роль в успешности проекта. Нужно проверить, какой опыт имеют ее члены: это можно сделать через соцсети, например, LinkedIn. Если у ведущих членов команды имеется достаточная экспертиза, это хорошо. Если же для них это первый DeFi-проект, и у них нет значительного релевантного опыта, это повод отнестись ко всему проекту с осторожностью.

Проверка команды может на начальном этапе знакомства с проектом дать общее представление о том, насколько серьезны намерения его команды и насколько ей можно доверять свои денежные средства.

Индустрию децентрализованных финансов и так считают слишком рискованной, а тут еще и новости о хакерских атаках и взломах. В связи с этим интересно ваше мнение относительно того, стоит ли вообще инвестировать в DeFi-проекты, и насколько оправдан риск? 

Прежде всего, при инвестировании стоит помнить о диверсификации капитала, поэтому риски, связанные с хакерской атакой, тоже стоит учитывать при управлении рисками инвестиционного портфеля. Вкладывать деньги в DeFi можно — в конце концов, большинство площадок и сервисов доказывают свою состоятельность в области безопасности. Взломанных смарт-контрактов гораздо меньше, чем не взломанных – просто новости о взломах гораздо чаще попадают в заголовки газет. 

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

Инвестиции в DeFi обещают высокую прибыль, но также связаны с высокими рисками в разных областях, включая риск хакерской атаки. Будущие инвесторы должны трезво оценивать риски, связанные с DeFi, а не акцентировать свое внимание только на возможной высокой прибыли.

Полное интервью читайте по ссылке.

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн