5 октября 2022

Безопасность в крипто: как уберечь свой проект от взлома и эксплойта

За первый квартал 2022 года хакеры увели $1,2 млрд из протоколов DeFi через уязвимости в смарт контрактах. Вызывает опасение тот факт, что несмотря на то, что существуют методы защиты смарт контрактов dApps от взломов и эксплойтов – сумма потерянных и выведенных средств продолжает расти. Это подрывает доверие у пользователей к криптосфере в целом и DeFi в частности — на них приходится львиная доля всех атак. Как обезопасить свой проект от эксплойта и взлома — рассказываем в статье. 

Чем отличается эксплойт от взлома 

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

Есть несколько распространенных причин взломов и эксплойтов смарт контрактов. 

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

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

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

Как защитить свое приложение от атак

Большинство проблем с безопасностью достаточно просто решаются. Ниже приведем несколько шагов, которые необходимо учитывать руководителям проекта при развертывании своего приложения или проекта в DeFi и Web 3.0

  1. Нанять опытную команду разработчиков. Безопасность проекта начинается с разработки надежного смарт контракта. Как бы не казалось, что уже существует достаточно готовых решений для развертки приложений в сетях блокчейна — шаблонные решения подходят не всем проектам. Кроме того, создание смарт-контракта не единственный сложный этап в дорожной карте – необходимо, чтобы команда умела провести тестирование проекта и работать с данными аудита смарт-контракта. 
  2. Пройти модульные тестирования. Суть блокчейна в том, что его данные неизменны — если ошибки обнаружатся после запуска приложения их нельзя будет исправить. Поэтому необходимо заранее проверить функциональность смарт-контракта в условиях тестовой сети
  3. Пройти независимый аудит смарт контракта. Обычно он помогает выявить ошибки в коде, найти и оценить потенциальные уязвимости и проверить логику интерфейса. Если проект сложный и связан с большими суммами заблокированных средств пользователей – желательно пройти аудит сразу в нескольких аккредитованных фирмах. Самые известные аудиторы – Certik, Blaize, Hacken, SlowMist, Chainsulting. 
  4. Обеспечить безопасность ключей администратора. Необходимо внимательно отнестись к хранению закрытых ключей и не доверять их третьим лицам. Лучше ввести многофакторную аутентификацию – доступ к смарт-контракту можно было получить с помощью не одного, а нескольких ключей. В этом случае, даже если какой-то из них будет скомпрометирован, злоумышленники не смогут получить доступ к функциям смарт контракта. 
  5. Обратиться за помощью к сообществу или белым хакерам. Это необязательный шаг, но в некоторых случаях простого аудита может быть недостаточно. Например, для новых сетей второго уровня или многомиллиардных протоколов DeFi. Введение награды за найденные ошибки и уязвимости решит сразу несколько проблем – улучшит пользовательский опыт в приложении и поможет предотвратить потенциальный взлом протокола. 

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

Обсудить в Discord!