AMLConsensus · курс
Программа · Урок 11.9
Раздел 11 · Урок 11.9 · разбор дела

Отравление адреса на $68 млн: анатомия одной транзакции

Иногда для кражи не нужно взламывать биржу или подменять фронтенд. Достаточно человеческой привычки копировать адрес не глядя. В мае 2024 года одна-единственная транзакция унесла около $68 млн — и всё, что для этого потребовалось, это адрес-двойник, похожий на настоящий началом и концом. Разберём эту атаку буквально по символам.

Что такое «отравление адреса»

Криптоадрес — это длинная строка из десятков символов. Никто не помнит её наизусть, и почти никто не сверяет целиком. На практике люди делают одно из двух: либо копируют адрес из истории собственных транзакций, либо бегло сверяют «начало и конец», а середину пропускают. Именно на этой привычке и построена атака address poisoning — «отравление адреса».

Идея проста и коварна. Злоумышленник заранее генерирует адрес-двойник, у которого совпадают первые и последние символы с адресом, которым жертва реально пользуется. Затем он «подбрасывает» этот двойник в историю транзакций жертвы — например, крошечным или нулевым переводом, чтобы адрес-обманка засветилась в списке операций. Расчёт на то, что в следующий раз жертва скопирует адрес получателя не из надёжного источника, а из своей же «отравленной» истории — и отправит деньги двойнику.

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

Анатомия удара: одна транзакция, $68 млн

В мае 2024 года эта схема сработала в особо крупном размере. В транзакции 0x87c6e5…bf73 жертва отправила средства на сумму около $68 млн — но не тому адресу, которому собиралась, а адресу-двойнику, подготовленному атакующим. Двойник был подобран так, что начинался на 0xd9A1 и заканчивался на 853a91: беглый взгляд «первые символы верные, последние верные» давал ложное ощущение, что всё в порядке.

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

Почему это сработало: разбор по шагам

Разложим атаку на составляющие, чтобы понять, где именно рвётся защита обычного пользователя.

  1. Генерация двойника. Атакующий перебором подбирает адрес, у которого совпадают нужные символы в начале и в конце с адресом жертвы. Это вычислительно затратно, но при ставке в десятки миллионов — оправданно.
  2. Отравление истории. Двойник «засвечивается» в транзакциях жертвы через микроперевод или технический трансфер, чтобы попасть в её список операций и выглядеть «знакомым».
  3. Ожидание. Атакующий ждёт, когда жертва в следующий раз захочет отправить средства «туда же».
  4. Ошибка копирования. Жертва берёт адрес не из доверенного источника, а из отравленной истории — и по совпадающим краям принимает двойник за настоящий адрес.
  5. Необратимость. Транзакция подтверждается в блокчейне. Отменить её нельзя: перевод ушёл легитимно подписанным, просто не туда.

Ключевой психологический трюк — эксплуатация эвристики «начало-конец». Наш мозг ищет короткие пути: если первые четыре символа совпали и последние шесть совпали, он достраивает вывод «это тот самый адрес». Атака поисоннинга — это, по сути, атака не на код, а на этот когнитивный shortcut.

«Not your keys, not your coins» («Не твои ключи — не твои монеты»).

— Андреас Антонопулос; в контексте поисоннинга: даже полностью контролируя ключи, вы теряете монеты, если сами подписываете перевод не тому адресу

Здесь эта максима звучит особенно горько. Жертва полностью владела своими ключами и добровольно подписала транзакцию. Кража произошла не потому, что кто-то получил доступ к кошельку, а потому, что владелец сам направил средства двойнику. Против такой ошибки не спасает ни аппаратный кошелёк, ни надёжный пароль — только сверка адреса.

Как защититься: практические правила

Что это значит для AML-проверки

Отравление адреса важно и для проверяющего, а не только для владельца средств. Во-первых, «пылящие» микропереводы от адресов-двойников — это узнаваемый паттерн, который стоит замечать при разборе истории кошелька: их наличие говорит о том, что адрес пытались атаковать (а значит, у него могут быть и ошибочные исходящие). Во-вторых, адрес-двойник, получивший украденные $68 млн, сам становится «грязным» узлом: средства на нём — это средства кражи, и любая экспозиция на такой адрес несёт максимальный риск.

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

Почему поисоннинг опаснее «обычного» взлома

Есть соблазн отнести отравление адреса к «мелким» уловкам на фоне многомиллиардных взломов бирж и мостов. Это ошибка. У поисоннинга есть три свойства, которые делают его по-своему коварнее технических атак. Во-первых, он не требует никакой уязвимости в коде — а значит, от него не защищают ни аудиты смарт-контрактов, ни обновления кошельков, ни аппаратные устройства. Уязвимость находится в голове пользователя, и её нельзя «пропатчить» релизом.

Во-вторых, атака масштабируется дёшево. Сгенерировать двойник и подбросить «пыль» стоит копейки, а сделать это можно сразу для тысяч потенциальных жертв, терпеливо ожидая, кто из них ошибётся. Один сорванный куш в десятки миллионов окупает миллионы неудачных попыток. В-третьих, атака маскируется под норму: в отравленной истории двойник выглядит как обычная прошлая операция, а не как что-то подозрительное. Жертва не чувствует, что её атакуют, — она уверена, что действует привычно и безопасно.

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

Важно. Транзакция в блокчейне необратима. Если средства ушли на адрес-двойник, «отменить» перевод невозможно — остаётся только прослеживать движение украденного и пытаться заблокировать его на точках вывода. Поэтому единственная реальная защита — не ошибиться до подтверждения.
Чему учит этот случай. Самая дорогая уязвимость — не в коде, а в привычке. Отравление адреса эксплуатирует эвристику «сверил начало и конец» и превращает невнимательное копирование в потерю десятков миллионов, как в транзакции 0x87c6e5…bf73 на ~$68 млн. Защита проста и дисциплинарна: сверять адрес целиком, брать его только из доверенного источника, вести адресную книгу и делать тестовый перевод. А для AML-специалиста «пыль» от адресов-двойников — сигнал, а сам адрес-обманка с украденными средствами — грязный узел с максимальным риском.

Факты изложены по открытым источникам. Материалы носят образовательный характер.