Раздел 7 · Урок 7.5
Отравление адреса (address poisoning)
Отравление адреса — это атака не на протокол, а на человека и его привычки. Злоумышленник создаёт адрес-«двойник», внешне похожий на тот, с которым жертва уже взаимодействовала, и подсовывает его в историю транзакций так, чтобы жертва при следующем переводе скопировала не тот адрес. Один клик «скопировать из истории» — и крупная сумма уходит атакующему. Разберём механику двойника, вспомним реальный кейс на $68 млн, поймём, почему это вообще срабатывает, и как защититься.
Механика двойника
Криптоадреса длинные и нечитаемые (0xd9A1...853a91), поэтому кошельки и обозреватели почти всегда показывают их сокращённо: первые несколько символов, многоточие, последние несколько символов. Человек не сверяет все 40 hex-символов — он смотрит на «начало и конец». Именно эту привычку и эксплуатирует атака.
Злоумышленник с помощью генератора «тщеславных» адресов (vanity generator) подбирает адрес, у которого совпадают первые и последние символы с настоящим адресом получателя жертвы. Полное совпадение всех символов криптографически невозможно, но совпадение «头-хвост» — вопрос вычислительного перебора, и его достаточно, чтобы обмануть глаз при сокращённом показе.
Адрес-двойник совпадает с оригиналом по началу и концу — при сокращённом показе (0xAbCd…1234) они выглядят идентично.
Атакующий
генерит адрес-двойник
→
Отравляющая tx
микроперевод/фейк-токен
в историю жертвы
→
Жертва копирует
из истории
→
Деньги атакующему
Как двойник попадает в историю жертвы
- Разведка. Атакующий мониторит крупные кошельки и их частых контрагентов: кому и на какие адреса жертва регулярно шлёт средства.Всё это публично в блокчейне.
- Генерация двойника. Под нужный адрес получателя подбирается vanity-адрес с тем же началом и концом.Чем длиннее совпадающий префикс/суффикс, тем убедительнее и дороже подбор.
- «Отравление» истории. С двойника жертве отправляют что-то, что осядет в её ленте транзакций рядом с настоящими: (а) микроперевод нативной монеты или стейбла на копейки; (б) перевод фейкового токена с тем же тикером; (в) особо коварно — zero-value transfer через уязвимость
transferFrom на 0 токенов, который не требует согласия жертвы, но появляется в её истории как «исходящая на двойника».Последний вариант имитирует, будто жертва сама уже слала на этот адрес.
- Ожидание ошибки. В следующий раз жертва, спеша, копирует «знакомый» адрес из истории — и переводит атакующему.Атака пассивная: жертва сама совершает роковое действие.
Реальный кейс: $68 млн одним переводом
Один из самых громких случаев: жертва собиралась отправить крупную сумму в WBTC на свой привычный адрес, но скопировала из истории адрес-двойник и перевела около $68 млн прямо атакующему. Ончейн-детали кейса (для тренировки — так выглядит разбор в обозревателе):
- Транзакция переводаХэш начинается
0x87c6e5…bf73 — по нему в обозревателе видно уход средств на неверный адрес.
- Poison-адресНачинается на
0xd9A1 и заканчивается на 853a91 — те же начало и конец, что у настоящего получателя, отсюда и обман при сокращённом показе.
- РазвязкаПод общественным и аналитическим давлением значительная часть средств в этом кейсе позже была возвращена — редкий, но показательный исход.
Важный урок кейса: пострадал опытный держатель с крупным балансом. Отравление адреса не про «неопытность» — оно про универсальную человеческую привычку доверять сокращённому виду адреса.
Почему это вообще срабатывает
Корень проблемы — сокращённый показ адреса. Интерфейсы кошельков и обозреватели ради читаемости прячут середину адреса. Мозг сверяет 4–6 символов в начале и 4–6 в конце и делает вывод «это тот самый». Атакующему не нужно ломать криптографию — достаточно совпасть по видимой части. Добавьте сюда спешку, мышечную память «скопировать из истории», доверие к собственной ленте транзакций (её ведь «нельзя подделать») и вредную привычку переиспользовать адреса — и вы получаете почти идеальную ловушку социальной инженерии, встроенную прямо в UX.
Дополнительный коварный слой — zero-value transfer poisoning: атакующий формирует запись в истории так, будто это сама жертва ранее отправляла на адрес-двойник. Психологически исходящая транзакция вызывает больше доверия, чем входящая («раз я туда уже слал — значит, адрес мой правильный»), и вероятность копирования растёт.
Как распознать и защититься
- Никогда не копируйте адрес из истории транзакцийГлавное правило. История — именно то место, куда атакующий подкладывает двойника. Источник адреса — только доверенный: сохранённый контакт, QR от получателя, ваша адресная книга.
- Используйте whitelist/адресную книгуЗанесите проверенные адреса один раз и отправляйте только по меткам, а не по «свежим» строкам из ленты.
- Сверяйте адрес целиком, а не «начало-конец»Проверяйте средние символы тоже. Ещё лучше — сверять первые/последние 8–10 знаков, а не 4.
- Тестовый микроперевод для крупных суммПеред отправкой миллионов отправьте символическую сумму и подтвердите получение у контрагента по независимому каналу.
- Игнорируйте «пыль» и незнакомые токены в историиМикропереводы и фейк-токены с знакомым тикером — вероятная приманка. Не взаимодействуйте, не копируйте (подробнее — в уроке 7.6).
- Доверяйте предупреждениям кошелькаМногие кошельки и обозреватели уже помечают «poisoning»-адреса и zero-value transfers. Не отключайте эти проверки.
Признак на графе для аналитика. Отравление опознаётся так: незадолго до крупного «ошибочного» перевода в истории жертвы появляется входящий микроперевод или zero-value transfer с адреса, чьи начало и конец совпадают с настоящим получателем. Два адреса-«близнеца» рядом в ленте — почти диагноз. Если ведёте расследование инцидента, ищите этот адрес-двойник и его «отравляющую» транзакцию непосредственно перед потерей средств.
Итог: отравление адреса — атака на привычку доверять сокращённому виду адреса. Механика — vanity-двойник с совпадающими началом и концом, подложенный в историю жертвы микропереводом, фейк-токеном или zero-value transfer, в расчёте на копирование «из истории». Реальный кейс на ~$68 млн (tx 0x87c6e5…bf73, poison-адрес 0xd9A1…853a91) показал, что уязвимы даже крупные опытные держатели. Защита — не копировать из истории, вести whitelist, сверять адрес целиком и делать тестовые переводы. В финальном уроке раздела соберём смежные приёмы «мусорного» слоя: вложенные обменники, dusting и спам-токены.
Материалы носят образовательный характер.