Белый хакер спас $117 000 в криптовалюте после фишинг-атаки на MetaMask
12 июля обезумевший криптовладелец написал на Reddit, что он не только хранил особенно большую сумму в своем кошельке MetaMask - около 240 000 долларов, но и что они подверглись фишингу и к ним получил доступ к мошенник, который разоряет его кошелек. Он пригласил других пользователей популярного форума присоединиться к нему и посмотреть, как его учетная запись очищается.
Сообщение получило, возможно, оправданную критику в отношении хранения такой суммы денег в кошельке в браузере (обычно более рискованном, чем аппаратный кошелек, отключенный от сети), наряду с тем, что пользователи качали головами из-за идеи предоставить доступ к этим средствам кому-то, кто представился помощником техподдержки.
Но среди критиков были некоторые пользователи, предлагающие решение, способ, который мог бы остановить кровопотери.
Оказалось, что этот метод сэкономил около половины средств, или около 117000 долларов, и сделал их недоступными для мошенников. Вот как это случилось.
Обращение за помощью
Держатель криптовалюты, известный на Reddit как «007happyguy», был направлен на горячую линию Whitehat со своими данными.
На другом конце формы - несколько белых хакеров, которые говорят, что «рады помочь нуждающимся людям». Это специальный сервис, в котором разработчики могут отвечать на запросы, если они доступны.
На запрос ответил Алекс Манускин. Он бывший исследователь блокчейнов в ZenGo, а сейчас занимается разработкой блокчейнов на фрилансе. Был вечер, когда он прочитал сообщение и понял, что оно было срочным, потому что кошелек все еще находился в процессе опустошения - плюс суммы были весьма значительными.
Первое, что сделал Манускин, - убедился, что 007happyguy владеет данным кошельком и не пытается получить доступ к чужим средствам.
На этом этапе он должен получить доступ к кошельку, запросив закрытые ключи. Это иронично, потому что именно то, чего нельзя делать, скажет вам любой эксперт по безопасности, но в данном случае это была скорее крайняя мера.
Затем хакер убедился, что мошенник больше не сможет отправлять деньги из кошелька. Чтобы совершать транзакции Ethereum - даже для токенов - вам необходимо иметь некоторое количество ETH, которое можно потратить на комиссию за транзакции. Поэтому он позаботился о том, чтобы любой ETH, отправленный в кошелек, автоматически отправлялся из него.
Использование флеш-ботов для спасения средств
Поскольку угроза дальнейшего изъятия средств уменьшилась, следующей целью было спасти оставшиеся средства.
Для этого Манускин использовал Flashbots - сервис, позволяющий напрямую общаться между разработчиками и майнерами. Короче говоря, разработчик может использовать Flashbots для отправки «пакета» транзакций майнеру для непосредственного включения в блок, вместо того, чтобы транслировать транзакции в сеть в надежде, что они будут приняты.
Это эффективно по двум причинам. Основная причина в этом случае заключается в том, что без ETH в кошельке любые транзакции, совершенные с нулевой комиссией за транзакцию, не будут приняты никакими майнерами. Что происходит с Flashbots, так это то, что выполняется сложная транзакция, которая перемещает средства в альтернативный кошелек и платит майнеру, используя другие средства одновременно.
Вторая причина в том, что он более скрытный. Если какие-либо транзакции транслируются в общедоступную сеть, это дает мошеннику возможность опередить их. (Хотя в этом случае все равно потребуется немного ETH для оплаты комиссии за транзакцию).
Манускин объяснил, что на написание пользовательских скриптов и выполнение транзакций ушло около 5-6 часов. Он сказал, что сроки варьируются в зависимости от сложности транзакций - скажем, заблокированы ли они сложными протоколами - и от того, сталкивался ли он с подобным случаем раньше.
Согласно сообщению Reddit, Манускину удалось спасти около 117 000 долларов из 120 000 долларов в токенах, которые остались в кошельке после того, как мошенник начал его истощать.
Обычно хакеры в белой шляпе берут около 5-10% от возвращенных средств в качестве платы за их сохранение, в зависимости от сложности требуемой работы.
Манускин сказал, что этот конкретный случай был интересным, потому что это была живая битва между ним и мошенником. Часто средства могут быть возвращены только потому, что они будут разблокированы в определенный день в будущем, но в этом случае они все еще рисковали быть украденными.
Он сказал, что это было немного сложнее, поскольку мошенник все еще пытался отправить ETH в кошелек, чтобы попытаться вывести токены, добавив: «Это был не прохладный день».