В последнее время часто стали обращаться за помощью люди, у которых ушла крипта с горячего кошелька. Пальму первенства тут держит Trust Wallet, но бывает что и из Metamask крадут. Проанализировав пару десятков таких кейсов, я решил написать пост по тому, как снизить риски кражи крипты из этих кошельков.
У мультимонетных кошельков оформленных как красивое и в целом удобное приложение очень большая аудитория пользователей. Это вообще-то неудивительно, ведь ими так удобно пользоваться. Тут тебе и возможность пользоваться разными блокчейнами, и возможность платить по QR-кодам, и работа со смарт-контрактами, NFT, DeFi и т.п. И вот последнее как раз часто и становится источником проблем.
Но надо понимать вот что: в плане безопасности Trust Wallet и Metamask "из коробки" просто отвратительны. Они оба:
❌ не поддерживают парольную фразу для seed
❌ позволяют легко и удобно делать allowance трат для смарт-контрактов и адресов, не предупреждая об опасности такого действия
Последний пункт приводит к реализации такой схемы атаки:
Если же говорить об отсутствии парольной фразы для seed, то вместо первого шага в этой же схеме будет "злоумышленник крадет seed и получает доступ к приватному ключу", в остальном реализуется такой же алгоритм.
Про хранение seed-фраз уже было написано и сказано очень много, и все сводится к тому чтобы хранить их безопасным способом. Но повторить будет не лишним.
Если записываете на физическом носителе, прячьте надежно и в идеале так, чтобы вы смогли проверить что seed был скомпрометирован. Например, запечатывайте в конверт, на котором напишите от руки что-то, чтобы нельзя было незаметно заменить его на такой же.
Если храните seed в цифровом виде, применяйте многослойную защиту: seed в базе KeePassXC, сама база, то есть .kdbx файл в криптоконтейнере VeraCrypt, криптоконтейнер бэкапится в облако, пароли уникальные длиннее 20 символов на контейнере и на базе кипасса.
Если вы технически грамотны, то для хранения можно использовать Shamir's Secret Sharing: криптографический алгоритм, который зашифрует seed и разобьет на X "ключей", каждый из которых сам по себе бесполезен. Секрет будет открыт только если вы одновременно расшифруете N ключей из X. Эти числа вы задаете сами при шифровании "секрета". Ключи можно раздать доверенным лицам, распихать по облачным хранилищам и флешкам содержащие их криптоконтейнеры и т.п.
Можно обфусцировать seed, поменяв местами несколько слов, и запомнив схему замены. Например, первое с предпоследним поменять местами. Но у этого способа есть минус - при добавлении seed с неправильным порядком кошелек выдаст ошибку, что прошаренному злоумышленнику может подсказать что seed была умышленно испорчена, и он может с помощью скрипта проверить все-со-всеми комбинации слов seed-фразы.
Никогда не фотографируйте seed-фразу. Во-первых, многие современные устройства анализируют фото, превращая в текст надписи на фото, и что-то с этим текстом делая. Во-вторых, если у вас так или иначе включена облачная синхронизация фото, даже после удаления его с телефона, если его затянуло в облако оно может там лежать годами без вашего ведома.
Все меры, которые мы применяем к защите seed-фразы не решают проблемы вредоносных смарт-контрактов или доступов которые мы дали сайтам. Такие доступы могут спать годами, и проверить их наличии хоть и можно тут https://app.unrekt.net/, но не очень удобно и не гарантирует нам полную защищенность.
Поэтому, я предлагаю использовать радикальный шаг. Если вы решили, что по той или иной причине вам нужно принять крипту именно на Trust Wallet или Metamask, создайте под это дело новый кошелек. Так вы будете точно уверены в том, что вы с этого кошелька не дали сайтам или СК разрешения на операции по кошельку в обмен на раздачу NFT или какой-нибудь Airdrop пару лет назад.
Остается только коснуться последней темы и возможного пути кражи крипты с приложения в телефоне - вредоносного ПО для мобильных устройств.
💡 Регулярно обновляйте операционную систему вашего телефона
В обновлениях ОС обычно в первую очередь содержатся фиксы найденных дыр в безопасности.
💡 При покупке нового телефона не используйте клонирование устройства
Этот пункт требует вызова пояснительной бригады. Есть довольно много приложений в официальных магазинах, которые либо изначально содержат вредонос, либо они заражаются/ломаются, потому что разработчики давно забили на их развитие или продали приложение хакерам, сами того не зная. Если вы пользуетесь Android уже много лет и каждый раз клонируете устройство, у вас могут в наследство на новый телефон попасть приложения 5-7 летней давности, которые содержат уязвимости или которые получают вредоносное обновление после взлома или продажи.
💡Не ставьте криптокошельки на устройства с разблокированным root или jailbreak
Взлом и повышение привилегий в ОС снижает ее защищенность. В таких системах не должно быть ценных активов. Если вы туда их поместили - не удивляйтесь.
Если вы будете следовать этим рекомендациям, вероятность того что у вас утащат крипту из горячего кошелька вы сильно снизите. А вообще не забывайте о том, что горячие кошельки вообще не предназначены для хранения значимых активов. Поэтому, чтобы спать спокойнее, лучше купить себе аппаратный кошелек.
Больше материалов про анонимность в сети, кибербезопасность, расследования и OSINT в Telegram-канале zerodaily