AMLConsensus · курс
Программа · Урок 7.5
Раздел 7 · Урок 7.5

Отравление адреса (address poisoning)

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

Механика двойника

Криптоадреса длинные и нечитаемые (0xd9A1...853a91), поэтому кошельки и обозреватели почти всегда показывают их сокращённо: первые несколько символов, многоточие, последние несколько символов. Человек не сверяет все 40 hex-символов — он смотрит на «начало и конец». Именно эту привычку и эксплуатирует атака.

Злоумышленник с помощью генератора «тщеславных» адресов (vanity generator) подбирает адрес, у которого совпадают первые и последние символы с настоящим адресом получателя жертвы. Полное совпадение всех символов криптографически невозможно, но совпадение «头-хвост» — вопрос вычислительного перебора, и его достаточно, чтобы обмануть глаз при сокращённом показе.

Механизм отравления адреса: адрес-двойник с совпадающими началом и концом подсовывается в историю транзакций

Адрес-двойник совпадает с оригиналом по началу и концу — при сокращённом показе (0xAbCd…1234) они выглядят идентично.

Атакующий
генерит адрес-двойник
Отравляющая tx
микроперевод/фейк-токен
в историю жертвы
Жертва копирует
из истории
Деньги атакующему

Как двойник попадает в историю жертвы

  1. Разведка. Атакующий мониторит крупные кошельки и их частых контрагентов: кому и на какие адреса жертва регулярно шлёт средства.Всё это публично в блокчейне.
  2. Генерация двойника. Под нужный адрес получателя подбирается vanity-адрес с тем же началом и концом.Чем длиннее совпадающий префикс/суффикс, тем убедительнее и дороже подбор.
  3. «Отравление» истории. С двойника жертве отправляют что-то, что осядет в её ленте транзакций рядом с настоящими: (а) микроперевод нативной монеты или стейбла на копейки; (б) перевод фейкового токена с тем же тикером; (в) особо коварно — zero-value transfer через уязвимость transferFrom на 0 токенов, который не требует согласия жертвы, но появляется в её истории как «исходящая на двойника».Последний вариант имитирует, будто жертва сама уже слала на этот адрес.
  4. Ожидание ошибки. В следующий раз жертва, спеша, копирует «знакомый» адрес из истории — и переводит атакующему.Атака пассивная: жертва сама совершает роковое действие.

Реальный кейс: $68 млн одним переводом

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

Важный урок кейса: пострадал опытный держатель с крупным балансом. Отравление адреса не про «неопытность» — оно про универсальную человеческую привычку доверять сокращённому виду адреса.

Почему это вообще срабатывает

Корень проблемы — сокращённый показ адреса. Интерфейсы кошельков и обозреватели ради читаемости прячут середину адреса. Мозг сверяет 4–6 символов в начале и 4–6 в конце и делает вывод «это тот самый». Атакующему не нужно ломать криптографию — достаточно совпасть по видимой части. Добавьте сюда спешку, мышечную память «скопировать из истории», доверие к собственной ленте транзакций (её ведь «нельзя подделать») и вредную привычку переиспользовать адреса — и вы получаете почти идеальную ловушку социальной инженерии, встроенную прямо в UX.

Дополнительный коварный слой — zero-value transfer poisoning: атакующий формирует запись в истории так, будто это сама жертва ранее отправляла на адрес-двойник. Психологически исходящая транзакция вызывает больше доверия, чем входящая («раз я туда уже слал — значит, адрес мой правильный»), и вероятность копирования растёт.

Как распознать и защититься

Признак на графе для аналитика. Отравление опознаётся так: незадолго до крупного «ошибочного» перевода в истории жертвы появляется входящий микроперевод или zero-value transfer с адреса, чьи начало и конец совпадают с настоящим получателем. Два адреса-«близнеца» рядом в ленте — почти диагноз. Если ведёте расследование инцидента, ищите этот адрес-двойник и его «отравляющую» транзакцию непосредственно перед потерей средств.

Итог: отравление адреса — атака на привычку доверять сокращённому виду адреса. Механика — vanity-двойник с совпадающими началом и концом, подложенный в историю жертвы микропереводом, фейк-токеном или zero-value transfer, в расчёте на копирование «из истории». Реальный кейс на ~$68 млн (tx 0x87c6e5…bf73, poison-адрес 0xd9A1…853a91) показал, что уязвимы даже крупные опытные держатели. Защита — не копировать из истории, вести whitelist, сверять адрес целиком и делать тестовые переводы. В финальном уроке раздела соберём смежные приёмы «мусорного» слоя: вложенные обменники, dusting и спам-токены.

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