Фишинг в Web3: как защитить себя и свои активы

Спам и фишинг — две извечные беды интернета на любом этапе его развития. Web3 здесь не исключение. О том, как противостоять фишинговым атакам на ваши криптоактивы, для читателей ForkLog рассказывает Владимир Менаскоп. Если для вас это просто набор слов — самое время задуматься: без этих трех шагов ваш криптомир никогда не станет прекрасным. Начнем с безопасности. Про нее я уже рассказывал здесь и здесь, поэтому сейчас подчеркну лишь те моменты, о которых не писал ранее: Конечно, все три тезиса звучат как страшилка для детей, но следующие примеры доказывают обратное. Однажды поздно вечером мне нужно было обменять небольшую сумму в ETH. Куда в этом случае пойдет большинство из нас? Вот и я пошел на BestChange. Но нарушив собственное правило: «Набирать адрес руками, а не через поиск». Вбил в Google (что было роковой ошибкой, но так уж случается, что ошибки всегда следуют друг за другом) и перешел по первой ссылке. Как нетрудно догадаться, она оказалась фишинговая. «Корпорация добра» отфильтровывала в своем поисковике криптопроекты, но только честные. А вот фишинговые сайты, подражающие самому крупному агрегатору, — нет. Да и сделана была реплика сервиса на отлично: ни багов, ни опечаток, даже SSL-сертификат стоял. И разница — в одной букве. В общем, классика, хорошо отрежисированная и нарисованная. В итоге нашел нужное мне направление и перешел на сайт, который, конечно же, тоже был фейковым. Более того, похож как две капли воды на тот, на котором я когда-то менялся. И тут я совершил третью непростительную ошибку: не вошел в личный кабинет, так как сумма казалось небольшой и время было уже не детское. Все. Эфир мой навсегда осел в карманах мошенников. Как можно было этого избежать? Вот набор простых рецептов: По отдельности эти пункты работают плохо, но вместе — вполне. Фишинговая реклама до сих пор попадается в Facebook, так что мой пример будет актуален еще долго. Этот случай, в отличие от предыдущего, произошел не со мной и совсем недавно. Попробую восстановить хронологию. Изначально у криптоэнтузиаста (назовем его для краткости Е.) был сид от аппаратного кошелька Trezor, на котором хранился BTC под passphrase, что само по себе отличный набор. Но далее началась серия ошибок. Цитирую: «Этот сид импортировал в [мобильный кошелек]. Видимо, чтобы проверить, как работает импорт, и убедиться, что наличия биткоина в мобильном кошельке не видно. Так и было, убедился». Импорт сид-фразы из аппаратного кошелька в мобильный — серьезная ошибка: теряется весь смысл нахождения ключей на устройстве. Но цитирую дальше: «Осенью 2022 года сменил PC на Mac и поставил на него MetaMask как расширение Chrome, потому что без него тоже неудобно жить. [Но долгое время не] использовал его. Решив использовать этот же сид для операций с токенами BEP-20, пополнил [кошелек] 1 декабря 2022 года небольшой порцией BNB от кого-то и, видимо, стал куда-то коннектиться через Wallet Connect (куда и зачем, не помню)». И вот здесь хорошо заметна разница: сама библиотека Wallet Connect не раз подвергалась атакам, в том числе фишинговым, и фактически средства находились уже не офлайн, а онлайн (после импорта сид-фразы). То есть опасность возросла минимум в два раза в сравнении со стандартным хранением на Trezor. Идем далее по рассказу потерпевшего: «В процессе коннекта и [тестов] сделал апрув мошеннику на операции с BUSD (зачем, не помню), а поскольку это был Wallet Connect и интерфейс там не очень, [плюс] — торможение, [то] этого не понял или не придал значения. Важно, что апрув сделан мною на [мобильном кошельке] через Wallet Connect. Уточнил [это] у [разработчиков мобильного кошелька], скрин это показывает точно. То есть MetaMask тут ни при чем». Важно из этой части цитаты вынести следующий факт: все в криптомире постоянно меняется. Поэтому, когда мы что-то делаем неосознанно, потом сложно восстановить полную картину и определить контролируемый уровень безопасности. Дальнейшее изложение — прямое тому свидетельство. Цитирую: «[Позже в мобильном кошельке] не работал Wallet Connect, а мне надо было сделать SBT, и я перешел в MetaMask и [стал] делать операции в сети BSC с него, коннектиться к сайту dapps… Все было ок, а поскольку токен BUSD BEP-20 тут не участвовал, красть скамеру, у которого был доступ, было нечего, апрув ждал своего часа». Так оно и есть. Апрув, выданный на скомпрометированный адрес или смарт-контракт, может висеть почти бесконечно. Поэтому первое, что нужно при восстановлении действий с тем или иным аккаунтом (кошельком), — это проверить выданные апрувы. Где и как? Расскажу ниже. Идем дальше по рассказу: «На прошлой неделе прошла информация о том, что Binance будет делистить оригинальный BUSD от Paxos до 15 декабря [2023 года], и я под это дело решил избавиться от всех централизованных стейблов. Поменял крупную сумму USDT TRC-20 на биткоин (удачно, он пошел в рост), оставался BUSD BEP-20 на другом кошельке ($2640 — вся сумма). Тут коллеге в [городе] потребовалась [фиатная валюта] на карту [банка], в связи с чем я [помаялся c] MetaMask и оставил вопрос на потом, решив, что, пожалуй, обменяю таким образом часть BUSD BEP-20 на рубли в [обменнике] и переправлю человеку. В общем, BUSD в уме я решил израсходовать на текущие дела, так как избавляться от CEX-стейблов фундаментально надо. Мотив — „BUSD в расход полностью…“» То есть, как видим, средства лежали на кошельке какое-то время, и поэтому аккаунтом человек активно не пользовался. А вот чем история закончилась: «Сегодня ночью перед сном думаю, не поменять ли в [мобильном кошельке] BUSD на биткоин, чтобы не гонять его туда-сюда (лучше б поменял). Отказываюсь, решаю таки перекинуть BUSD BEP-20 полностью ($2640) на сид в MetaMask, чтобы потестить [обменник]… ну и вообще избавиться путем расходования. Выполняю операцию в [мобильном кошельке] из одного сида, убеждаюсь, что на второй сид (который в [мобильном кошельке] и MetaMask) токены пришли в полном объеме, и засыпаю. Ну а утром вижу уведомления на почте от BscScan, что токены списаны на левый адрес сразу после поступления вот этой транзакцией… Написал тебе, и ты выяснил, что апрув годичной давности лежал и ждал своего часа. Дождался». История грустная. Итог плачевный. Но давайте попробуем выудить нечто позитивное. 1. Холодный кошелек и горячий на одном MetaMask быть не могут. Также нет смысла куда-то интегрировать аппаратный кошелек через сид (кроме случаев экстренного восстановления). А вот интеграция Trezor и MetaMask вполне уместна. 2. Если долго не пользовались кошельком, обязательно проверьте апрувы. Где? По ссылкам (условно можно выделить работу с аппрувами через сканеры и через специальные сервисы, но здесь будет единый перечень): 3. И, конечно, всегда надо рассчитывать не только на себя, но на выстроенную и верифицируемую (важно: кем угодно, а не единожды и вами) систему безопасности. Примеров обратного хоть отбавляй: вот один из последних, а вот еще один. Ломают всех: и если против вас еще не совершались векторные атаки, то это лишь потому, что вы как Неуловимый Джо — пока в списках не значитесь. Нулевое правило безопасности для меня потому и звучит так: «Взломать можно любую систему». Вопрос всегда в цене и во времени. Если это слишком долго или дорого, то ломать не будут (кроме деструктивных атак, речь о которых надо вести отдельно). Представим, что вы охотник за баунти, аирдропами и подобными вещами. Что именно вы делаете? Тестируете новые сервисы и системы. Сначала немного, потом больше, затем несколько сразу, и вот вы уже наловчились работать с разными стартапами: от нишевых до отраслевых. Но в этот момент ваш базовый кошелек становится буквально переполнен апрувами для смартов и разрешениями для сервисов, а браузер — закладками сайтов и прочими атрибутами интенсивного цифрового погружения. В этот момент на вас непременно начнут нападать: Все это перечислил для того, чтобы вы сделали один вывод: взломать могут каждого. Но от этого есть противоядие: диверсификация. Скажем, получили ретродпроп на кошелек, предварительно проделав все описанные выше процедуры (проверили апрувы и тому подобное). Что потом? Надо все перевести на другой кошелек, который или вообще не взаимодействует с онлайном, или делает это крайне редко. Так вы сможете оставлять на горячем кошельке только то, что готовы потерять — и не более. Здесь стоит привести еще ряд немаловажных советов: Опять же, все по отдельности это работает плохо, а вот в совокупности дает преимущество. К перечисленному добавлю еще три эмпирических правила (читай — закона): Многие считают: все рассказанное выше и подобные случаи — прямое свидетельство того, что абстракция аккаунта и разного рода отзывные (обратимые) транзакции решат проблему. Я же, напротив, уверен в обратном. Если вы гуляете по темной улице в ночное время даже в спокойной Швейцарии, не обладая навыки самообороны, то рискуете нарваться на одного-единственного хулигана, который даст вам по голове «тяжелым тупым предметом» и заберет ваш кошелек, смартфон и обручальное кольцо. Поэтому цифровая гигиена должна стать для каждого из нас такой же необходимостью, как чистить зубы по утрам или мыть руки перед едой. По другому нельзя, и это подтверждают взломы разного масштаба. Приведу еще один пример. Случай произошел недавно. Человек торговал через CEX и решил вывести средства. Скопировал адрес и вставил в строку вывода. Нажал подтверждение и ушел пить чай. Вернувшись, он увидел, что средства ушли не туда. Сработала стандартная система подстановки адреса. И модификаций у нее множество: Но и с этим можно бороться. Вот простые механики: Нельзя забывать, что в технологиях самое слабое звено — человек. Усталость, работа без перерывов и без жесткого финансового графика ведут в итоге к потерям, а не дополнительному заработку. Помните об этом. Ее не существует. Почему? Потому что идеальная в данном случае значит индивидуальная. Конечно, какие-то моменты игнорировать не стоит, но в остальном фантазия — лучший помощник. Попробую собрать базовые механизмы самозащиты в виде чек-листа.

Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!

Источник: https://forklog.com/exclusive/fishing-v-web3-kak-zashhitit-sebya-i-svoi-aktivy

Наверх