Ловушка для хакеров: как разработчики борются с кибермошенниками

Пока инвесторы и трейдеры зарабатывают на криптовалютах, в цифровых сетях идет настоящая война. На одной линии фронта — агрессивные хакеры, которые неустанно ищут слабые места в смарт-контрактах. На другой — хитрые разработчики, создающие на первый взгляд уязвимые протоколы. На самом деле эти контракты становятся ловушками для хакеров.
Что такое Honeypot
Трюк состоит в том, чтобы заманить кибермошенников в капкан, предложив им приманку — вкусную криптовалютную награду. Для этого разработчики создают смарт-контракт с явным недостатком. На самом деле никакой ошибки нет. Ловушка работает так:
- Злоумышленники находят «баг» в коде.
- Чтобы вывести криптовалюту, нужно отправить в смарт-контракт немного монет.
- В этот момент капкан захлопывается. Баланс смарт-контракта пополняется новыми монетами. Хакеры остаются ни с чем.

Метод получил название Honeypot — «горшочек с медом». Разработчики делают ставку на жадность киберпреступников, которая затмевает здравый смысл. Время играет против взломщиков.
Где используют методику
В 2022 году в арсенале разработчиков есть 8 типов смарт-контрактов с ловушками, которые применяются в 3 различных областях. Принципы работы некоторых из них представлены в таблице.
Уровень | Техника | Как работает |
---|---|---|
Виртуальная машина Ethereum (EVM) | Нарушение баланса | Хакер активирует функцию Multiplicate, чтобы перевести средства из смарт-контракта на произвольный адрес. Для этого он отправляет монеты в протокол. Однако функция не активируется, поскольку баланс увеличивается на сумму комиссии до того, как сработает смарт-контракт. |
Компилятор кода Solidity | Нарушение наследственности | Если смарт-контракт состоит из нескольких договоров, он объединяет их коды. Данные о владельце можно изменить вызовом резервной функции. Если хакер попытается это сделать, операция будет успешной. Однако вывести криптовалюту не получится. Компилятор будет рассматривать 2 строки кода о владельцах как разные переменные. |
Пропуск пустого строчного литерала | Контракт позволяет пользователю инвестировать средства через функцию Invest. Опция Divest предусматривает возврат вложений. На первый взгляд, ничто не мешает указать сумму реверса больше вложенной. Однако в качестве аргумента трансфера задается пустой строчный литерал, который сдвигает код влево на 32 байта. В результате пользователь фактически переводит инвестиции владельцу контракта. | |
Сетевой обозреватель Etherscan | Обновление скрытого состояния | Наряду с обычными транзакциями, обозреватель отображает внутренние сообщения, исходящие от других смарт-контрактов. Для удобства пустые строки в них не видны. Разработчики создают контракт, в котором баланс передается тому, кто найдет правильное значение, использованное для поиска сохраненного хеша. Хакеры могут попытаться переписать хеш, используя незащищенную функцию SetPass. Однако разработчики уже запустили автоматическое обновление строки состояния passHasBeenSet. Функция не сработает. Комиссия, внесенная злоумышленниками, останется в смарт-контракте. |
Хакеры тоже запускают приманки
Можно долго спорить о нравственности метода Honeypot. С одной стороны, кибермошенники платят за попытку совершить кражу. Но те, кто ворует у хакеров, тоже совершают преступление. Более того, кибермошенники уже взяли на вооружение методику «горшочков с медом». В 2019 году специалисты по кибербезопасности Usenix провели масштабное исследование, проверив более 2 млн смарт-контрактов. Из них 690 оказались приманками с накопленной прибылью около $90 тыс. Цифры небольшие, но технологии развиваются, а хакеры оттачивают свое «мастерство».
Как и другие виды мошенничества, приманки работают потому, что людей нередко можно легко обмануть. Например, злоумышленники, занимающиеся фишингом, могут создать сайт, который маскируется под легитимный. Пользователям предлагают поддельную форму для входа, которая передает хакерам учетные или другие личные данные. Также стоит насторожиться, если доверенный ресурс начинает запрашивать персональную/финансовую информацию, чего раньше за ним не было замечено.
Иногда приманкой может быть отдельная криптовалюта. Один из способов распознать фейковый проект — изучить его торговую историю. Если в статистике много покупок и почти нет продаж, лучше отказаться от сделки. Также стоит проверить монету через сетевой обозреватель. «Красные флажки» — отсутствие аудита, активы размещены на одном или нескольких крупных кошельках, сайт сделан на скорую руку и плохо развивается, аккаунты в соцсетях неактивны.
