Вопрос (возможно, не один) на 1,4+ миллиона долларов

В пятницу 21 февраля 2025 года криптомир потрясла новость о заявлении Бена Чжоу, генерального директора Bybit – криптобиржи из Дубая, занимающей второе место в мире по объему торгов (после Binance), который обнародовал информацию о хакерской атаке на холодный кошелек (кошелек офлайн: да, вы правильно прочли, это кошелек, не подключенный к интернету), способной похитить ETH, размещенные в стекинге, mETH и другие токены ERC20, на общую сумму свыше 1,4 миллиарда долларов, что стало крупнейшим ограблением в истории криптовалют.

История этих атак начинается с MtGox, японской криптобиржи, «пробитой» дважды, первый раз в 2011 году, второй – в 2014 году. Суть в том, что эти атаки (в ходе которых похищались биткойны) произошли из-за уязвимостей в протоколах безопасности биржи, уязвимостей, которые маскировались на протяжении более десяти лет. И все же кражи продолжаются. Если обратиться к отчетам софтверных компаний, занимающихся анализом блокчейнов, таких как Chainalysis, становится очевидно, что кражи в мире цифровых активов происходят постоянно, но эта атака, очевидно, получила широкое освещение из-за ее масштабов, а также отчасти потому, что, по всей видимости, ее совершила известная корейская группа хакеров «Lazarus Group», замешанная в других известных и недавних случаях: Ronin Network, DMM Bitcoin и WazirX, все характеризующиеся использованием одного и того же метода.

В случае MtGox «соучастником» атаки 2014 года стал баг в протоколе валидации транзакций, известный как transaction malleability. Технически атака стала возможна, потому что хеширование, используемое для идентификации блока транзакций, и то, что применяется для цифровой подписи (то есть команда для перевода средств, которую может дать только владелец приватного ключа), выполняются над двумя различными наборами информации. Вероятно, хакер запросил у MtGox возврат биткойнов, которые он депонировал на бирже, после чего биржа выпустила транзакцию возврата с определенным идентификатором хеша. Транзакция была перехвачена хакером, который изменил ее содержимое так, чтобы изменить хеш-код транзакции, но не цифровую подпись, которая оставалась действительной. Затем он повторно отправил модифицированную транзакцию в сеть, чтобы потом с MtGox потребовать незавершенную транзакцию возврата. Биржа, обнаружив, что транзакция возврата (из-за того что хакер изменил идентификатор) не была подтверждена, выпустила новую с другим хеш-кодом, чтобы избежать двойных трат, и атака продолжалась до тех пор, пока не было похищено около 7% всех биткойнов, находившихся в обращении на тот момент.

В случае Bybit атака была сосредоточена на эфире и использовала инновацию, которой не существовало во времена MtGox: смарт-контракты. Давайте попробуем лучше понять, как же хакеры сумели похитить эти цифровые активы. Точное и полное описание атаки было предоставлено компанией SlowMist, фирмой по кибербезопасности, специализирующейся на блокчейнах, которая оказывает услуги самым известным игрокам отрасли. Мы попытаемся объяснить атаку интуитивно. Прежде всего, она состояла из трех фаз:

1) Безобидная транзакция с холодного кошелька на горячий (или теплый, не имеет значения) кошелек;

2) Безобидная транзакция содержала уязвимость (троянский конь), которая запустила выполнение вредоносного контракта;

3) Вредоносный контракт перевел токены на адрес, откуда они были распакованы и перенаправлены на 40 различных адресов, а затем вновь переведены, чтобы скрыть их следы.

Теперь возникает вопрос. Как стало возможным срабатывание вредоносного контракта на фазе 2? По соображениям безопасности (защита приватных ключей в сущности) Bybit, как и многие другие операторы, использует GnosisSafe — кошелек на основе смарт-контракта, который предусматривает процедуру мультиподписания для авторизации транзакции, в данном случае транзакции с офлайн-кошелька на онлайн-кошелек. Грубо говоря, использование приватного ключа для совершения транзакции требует более чем одного подтверждения (в данном случае требовалось три). Когда запускается транзакция в сети Ethereum, параметры, подлежащие утверждению (цифровой подписью), это «to» (получатель) и «data» (содержание транзакции). Однако GnosisSafe предусматривает еще один параметр «operation», который может принимать только два значения: «0», позволяющее вызвать функцию execTransaction, выполняющую контракт по выбору пользователя; либо принимать значение «1», и тогда GnosisSafe больше не вызывает execTransaction, а использует DelegateCall — функцию, которая активирует другой контракт: и именно так хакеры внедрили вредоносный контракт, который взял под контроль холодный кошелек, позволив выполнить две функции: sweepETH и sweepERC20 (не считаем нужным объяснять, что именно делали эти две функции).

В этот момент возникает вопрос: как возможно, что три разных подписанта (которые являются реальными операторами) не заметили изменения параметра «operation» с «0» на «1»? Появляется подозрение, что параметр был «замаскирован» (представлен нулем для оператора, когда на самом деле это единица: не так просто сделать!), но, возможно, существует и более банальное объяснение: подумаем, когда мы заходим в наш интернет-банкинг или веб-почту; сколько из нас обращают внимание на адресную строку, чтобы убедиться, что протокол — https, а не простой (и небезопасный) http, или что адрес введен правильно (одна буква может ускользнуть от любого взгляда)?


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

Тем не менее, на сайте Reddit высказывается гипотеза, что уровни безопасности Bybit не были на высшем уровне (как и у других платформ, таких как Fireblocks или Coinbase) для того, чтобы не жертвовать скоростью транзакций.

Тем временем продолжаются расследования, чтобы проследить путь украденных токенов, и даже предлагаются награды, чтобы привлечь этичных хакеров к сотрудничеству в поиске. Однако нельзя не отметить стандартный разыгранный сценарий: объявление об атаке со стороны руководства атакованной платформы (см. заявление на сайте Bybit), зачастую сначала опубликованное в социальных сетях (например, на X), заверение, что ситуация под контролем и что биржа имеет средства для компенсации пользователям. Именно так поступил Бен Чжоу: атакованный холодный кошелек — только один; остальные в безопасности; у Bybit есть средства для компенсации, и так далее.

Мы продолжаем настаивать на одном и том же: криптобиржи являются централизованными структурами (то есть они не имеют ничего общего с основной философией блокчейнов: децентрализацией), полностью аналогичными традиционным биржам, которые мы знаем, с той разницей, что вместо перевода активов вне биржи через базы данных и централизованные связи они используют блокчейны, что, между прочим, могли бы использовать и традиционные биржи. Поэтому мы задаемся вопросом, почему эти структуры не регулируются и не контролируются так, как все биржи, на которых мы работаем; почему никто не может контролировать капитализацию и фактические суммы, которые эти биржи предоставляют в качестве обеспечения для инвесторов, а нужно полагаться на слово руководства? Почему – если они действительно существуют – никто не навязывает всем этим структурам (без исключения) самые высокие стандарты безопасности?

 

Disclaimer: Настоящая статья выражает личное мнение сотрудников Custodia Wealth Management, которые ее подготовили. Это не является инвестиционным советом или рекомендацией, не представляет собой персональную консультацию и не должно рассматриваться как призыв к совершению сделок с финансовыми инструментами.