Глоссарий / Приватность и безопасность
Отравление адресов
Другие названия: Подмена адресов.
- Что такое отравление адресов?
- Отравление адресов представляет собой прием кражи, при котором мошенник отправляет вам ничего не стоящую транзакцию с адреса, имитирующего тот, который вы уже используете, в надежде, что вы скопируете его адрес из своей истории.
Цель здесь в привычке: заходить в список транзакций кошелька, чтобы повторно использовать адрес, вместо того чтобы запросить у получателя новый. Злоумышленники перебором подбирают похожие адреса, совпадающие по первым и последним нескольким символам, а это все, что показывают большинство экранов кошельков и обозревателей блоков. В мае 2024 года один трейдер потерял 1155 обернутых биткоинов стоимостью около 68 млн $ из-за одной отравленной вставки.
Как это работает
У отравления адресов три этапа, и только последний касается вас.
Подбор похожего адреса. Адреса биткоина длинные по замыслу, а интерфейсы скрывают середину. Адрес bech32 использует алфавит из 32 символов, поэтому чтобы получить адрес, совпадающий по четырем первым и четырем последним символам цели, нужно перебрать примерно 32 в восьмой степени, около 1,1 трлн кандидатов. Одна обычная видеокарта за ночь справляется с этим, а поиск легко распараллеливается, так что арендованная ферма может отравить тысячи целей одновременно. Злоумышленнику не нужен ваш ключ, нужен лишь собственный адрес, похожий на тот, которому вы доверяете.
Подбрасывание. В биткоине злоумышленник тратит пылевую сумму, обычно 330 или 546 сатоши, с похожего адреса на ваш. Ваш кошелек фиксирует входящий платеж, и в поле отправителя теперь отображается адрес, который на глаз не отличить от того, который вы действительно используете. Некоторые кампании вместо этого отравляют в обратную сторону, отправляя с адреса, похожего на адрес биржи для пополнения, который вы продолжаете вставлять при своих выводах.
Ожидание. Недели спустя вы собираетесь отправить средства. Вы прокручиваете историю, находите «адрес, который я использовал в прошлый раз», копируете, вставляете, подтверждаете. Транзакция действительна, подписана правильно и необратима с момента подтверждения примерно через десять минут. Отдела по борьбе с мошенничеством нет, потому что на уровне протокола мошенничества не было: вы заплатили ровно тому, кому велели сети заплатить.
Экономика различается по цепочкам. В Ethereum злоумышленник может отправить перевод нулевой стоимости, заплатив только за газ, поэтому отравление там почти бесплатно и ведется в промышленных масштабах. Пылевое правило биткоина требует небольшого платежа на каждую попытку, и это одно из немногих мест, где такая политика тихо работает как защита от спама.
Почему это важно при покупке биткоина
Самая рискованная минута в жизни нового покупателя приходится на первый вывод с биржи в кошелек, который он только что настроил.
Именно тогда вы копируете незнакомую строку между двумя приложениями, у вас еще нет адресной книги, и вы меньше всего склонны заметить, что средние 20 символов изменились. Еще и сумма часто составляет всю вашу позицию. Три меры устраняют почти весь риск, и ни одна из них не зависит от внимательности.
Задайте белый список для вывода. Kraken, Coinbase и Binance позволяют зарегистрировать адреса, на которые счету разрешено отправлять средства, и большинство вводит задержку, прежде чем новый адрес станет доступен. Вы настраиваете это один раз, спокойно, пока ничего не похищают. Отравленный адрес, вставленный в счет с белым списком, просто отклоняется.
Берите адрес с принимающего устройства, а не из истории. Аппаратный кошелек создает и показывает ваш адрес для получения на собственном экране. Trezor и Ledger оба требуют подтвердить его там, и вредоносная программа или подделанная история на компьютере не могут изменить то, что показывает устройство. Поступайте так же в обратном порядке при отправке: считывайте адрес назначения с экрана устройства, прежде чем одобрить операцию.
Проверяйте середину. Сравнение первых четырех и последних четырех символов представляет собой ровно ту проверку, которую атака рассчитана пройти. Сравните последовательность символов из середины строки или, что лучше, сравните всю строку целиком, отсканировав QR-код, а не читая ее.
Вставка на 68 млн $
3 мая 2024 года трейдер собрался перевести 1155 обернутых биткоинов стоимостью тогда около 68 млн $ и сначала поступил ответственно: сделал небольшой тестовый перевод.
Злоумышленник наблюдал за пулом памяти именно в поисках такого образца. За считаные минуты он создал адрес, совпадающий по первым и последним символам законного адреса назначения, и отправил с него перевод токена, чтобы отравленная запись попала в историю отправителя сразу над настоящей. Перевод на 1155 биткоинов ушел злоумышленнику.
Развязка необычна. Ончейн-исследователи проследили инфраструктуру злоумышленника и обнародовали ее, и примерно через неделю средства были возвращены полностью. В этом исходе нет ничего воспроизводимого. Возврат произошел потому, что сумма была достаточно велика, чтобы привлечь публичное криминалистическое внимание, и злоумышленник решил, что шумиха того не стоит, а не потому, что какой-либо протокол или компания имели способ отменить платеж.
Отравление адресов vs пылевая атака
Отравление адресов и пылевые атаки приходят одинаково: как крошечное неожиданное пополнение, и нацелены они на разные ошибки. Пылевая атака хочет, чтобы сами биткоины вернулись в оборот и были потрачены вместе с вашими другими выходами, чтобы аналитик цепочки мог объединить их в один кластер. Отравлению адресов совершенно неважно, что происходит с пылью; полезной нагрузкой является адрес отправителя, осевший в вашей истории. Заморозка выхода защищает вас от первой атаки и ничего не дает против второй, поэтому настоящая мера здесь в том, чтобы никогда не брать адрес из списка транзакций.
Отравление адресов vs вредоносная программа для буфера обмена
Обе атаки заканчиваются тем, что биткоины уходят на строку, которую вы не выбирали, и они поражают разные звенья цепочки хранения. Вредоносная программа для буфера обмена требует работающего кода на вашей машине и подменяет адрес между копированием и вставкой, так что адрес, на который вы смотрели, был верным, а тот, на который вы отправили, нет. Отравлению адресов доступ к вашему устройству не нужен вовсе: неверный адрес уже был в истории самого вашего кошелька, помещенный туда платежом, который может сделать кто угодно. Поэтому отравление невосприимчиво к антивирусному программному обеспечению и доступно любому, кто знает один из ваших адресов.