Недавно написал человек, что задрейнили его кошелёк хранилку в Trust Wallet. iPhone, сид фраза только на бумажке, кошелёк никогда никуда не подключался. Что произошло конкретно, без форензики уже не установить. Пострадавший подозревает уязвимость "DarkSword".
Такие истории мне присылают регулярно. Дрейнят простых работяг, ломают биржи, проекты, у производителей холодных кошельков утекают БД, а Ledger просто по кд ломается.
Меня давно удивляет сама модель безопасности крипты. Чтобы получить полный доступ к деньгам, зачастую достаточно ОДНОГО секрета. Приватник или 12-24 слов. Всё.
Да, я понимаю математику. Дело вообще не в бруте. Зачем перебирать 2¹²⁸ комбинаций, если достаточно один раз украсть эту единственную строку? Уязвимость iOS, троян, фишинг, компрометация приложения, облачного бэкапа, генератора случайных чисел, взлом чего угодно. Неважно как. Одна утечка и деньги твои уже не твои.
В web2 всегда есть минимум пара логин+пароль, плюс 2FA, подтверждение нового устройства, локальный ключ, лимиты, антифрод и возможность заблокировать аккаунт.
И вот это мне как раз не нравится. Одну строку как единственную точку отказа защитить сложнее, чем несколько независимых ключей. Квантовые компьютеры тоже оптимизма не добавляют. До них, хочется верить, еще далеко. Ведь тогда можно будет получать приватник из публичного ключа.
⁉️ Что делать?
Для простого хранения больших сумм в данный момент наиболее адекватным кажется смарт-контракт с несколькими сигнерами на разных несвязанных устройствах. Однако это все ещё неудобно и остаётся зависимость от сервиса, который обеспечивает взаимодействие с таким хранилищем.
Для более частого использования я рекомендую использовать сигнеры. Это когда вы работаете на компьютере, а транзакции подписываете с изолированного от него устройства, которое используется только под кошелек. Особенно сейчас, когда WalletConnect поддерживает большинство web3 сайтов, это достаточно удобная история. Правда, каждую транзакцию перед подписью все равно нужно проверять.
✍️ Итоги.
В итоге все грустно - нигде не безопасно, даже если сохранишь капитал на кошельке. Вариантов потерять все дальше только больше. При выводе в фиат, окажется, что деньги "грязные" и всем нужно доказывать, откуда ты их взял. Купишь акции, начнется война, они обнулятся или заблокируются. Купишь недвижимость и надейся, что она достроится, затем не сгорит, её не затопят или не прилетит ракета.
Забавно, что у меня даже не было приватников от внутренних кошельков Farcaster, которые задрейнили. На момент их создания Farcaster просто не давал ни приватник, ни сид фразу. А кошельки на бэке создавались через Privy. Настоящий self-custody, всё как положено 🤡
Сейчас экспорт есть. Причём реализовано всё максимально надёжно: нажимаешь «показать сид фразу» и просто копируешь. Никаких дополнительных подписей / паролей. При этом сам аккаунт Farcaster можно восстановить через почту.
В каком именно месте здесь self-custody, я так и не понял. Видимо, примерно в том же месте, где проект с рейзом под $200 млн превратился в ончейн кладбище для гиков. Как обычно идёт плотный билдинг распилдинг.
Отчасти, конечно, сам виноват. Давно надо было вывести деньги из этой конторы.
🚨 НЕ БАЙТ, Farcaster внутренний кошелек дрейнят!!!
Недавно вспомнил о существовании Farcaster и том, что у меня там завалялось на ферме пара тысяч зеленых. Решил зайти чекнуть, а мои коши задрейнили, месяц, неделю и пару дней назад. Кошельки по фаркастеру у меня в отдельной табличке, а некоторые кошельки из этой таблички вовсе не задрейнены, значит дело не во мне.
Некоторые кошельки миксуются между собой. Какие-то дрейнятся не в ноль! Оставляется несколько баксов на газ, деньги небольшими суммами выводятся в Solana на фреш кошельки, собираются на один и с него депаются на биржи Binance, Kucoin, Bybit. Судя по всему длится это не первый месяц. Транз очень много.
Примеры дрейна (на всех кошельках подписка Farcaster Pro):
1) 27 дней назад: с кошелька ушло 169 USDC через Relay в Solana с конвертацией в SOL, далее SOL ушли на прослойку, затем на основной кошелек хакера и потом на биржи
https://basescan.org/tx/0x03c0dd9a027dea490c4cc5e6f7e32969974edf29517ed8ba76054d5701909510
https://solscan.io/tx/4334bEmXUQ9NoaiML2CWZaTKtUb8ko78um8nRCvF3e9NAQjwBuhsVqgMfwFREC1Nb8pvZZqkQZVcjketCe8zfd2d
https://solscan.io/account/7qFh2aiJu2aoXtMSyfWyG5fW6Euk6wzSY2Krr2bqGpbT
https://solscan.io/account/HT9viuZXPBr15foE2bEmDBHthLzM5VUMfeuAxHyBA9BV
2) 25 дней назад: на кошельке было 76 USDC, на него пришло ещё 100 USDC с других кошельков, они свапнулись в SOL через Relay в Solana, с нового кошелька ушли на прослойку, с прослоки на кошелек хакера и далее на биржи
https://basescan.org/address/0x3eF240C8b844C4e2879aD6505161e00C7F4Ecdf3#tokentxns
https://basescan.org/tx/0x98c1c4f7c55987dd2cacbee93c4c65a953d27a76c3ecf628c1c5e0ba8b4015e0
https://relay.link/transaction/0x1788254546b058504c2166e608eb88aadf11c8a6b639d80e3451d80f0dd6aa1a
https://solscan.io/tx/4vUaHzCJErXV7eYnScRv9bkp8Ax2FtWZuxxFFywxhJXY4tjvu2z8RxkTqY5QSGnNhaCjxZoKrPn1nMenM3K2mafU
https://solscan.io/tx/5MSJ5JEDqvSiw7aRK1ez499CWtNwR4seRQ3mcqMPoeX4Mnp81eQoUXqAKFehsoeznorYFZjRXaLMins3NmRwcgYk
3) 17 дней назад: с кошелька ушло 71 USDC через Relay в Solana с конвертацией в SOL, далее SOL ушли на прослойку, затем на основной кошелек и потом на биржи
https://basescan.org/tx/0xf1fb82b18c9232360faa7f5300247b881350cef834815b49d1bde72e54723a37
https://relay.link/transaction/0x178896214630d0d4ea9e4233800506975a666509b4adee27a3a063b95f8be318
https://solscan.io/tx/4aYExmsGTm6P5FDo2uPtWTm4nUvGx8eDQtRK364RwFUWxct2Ct2SbhH6pDwqDXnHs6e3jN3dREMMbS67W8ZQmnPZ
https://solscan.io/tx/NUnzf2pfRqjEYy1RiBFrwkzKA3oyLPnXYZpgdTGMMHJX9NgxNRkXyWW7FT776f7uoNqnMnN5jtHLScy15W9Hpda
4) 31 час назад: на кошельке лежало 13 USDC, они свапнулись в ETH и ушли на левый кошелек, затем свап в SOL через Relay в Solana, на прокладку и ушли на кошелек хацкера
https://basescan.org/address/0x533c37F1371b37a87Cb1D1bC61d777140399433e
https://basescan.org/address/0xF4e6E63C40a13e960752D142E747653DcCc1061B
https://basescan.org/tx/0x9d50c18f695068fffbe574a814f374c1902521ff16a99daa74b79793243cffcc
https://relay.link/transaction/0x179034295768c0d2d29bbc2eac0449facf114fee85492546e212b77f3901992a
https://solscan.io/account/3hACoQiLfc6cCHUittuvsqZm3uvnWhaRdDjiYzcUFHfh
https://solscan.io/tx/29kg3HdpZ2K24Pq2zZuMz6bkDJrCTQjD3WLApv6uEqHXMvTtRNRaQQVmFYkznct1p38PkGmV66h8YWC2EniNdKrK
https://solscan.io/account/ZkP1Q9em3mss6BN6W3qnmEMoiU7bq6d9bcLX1P6d2Yi
https://solscan.io/tx/cAe5RiJ7Nc8xduDxE3VLRPG9aJGev8p69KnWHZt8AzanmKMje1qAttxTCLBmuUKvo9zEaCYyQF1G3m3ZJbWJz5Z
В конечном итоге все приходит на этот кошелек, каждую минуту по 2-3 новых транзакции: https://solscan.io/account/HT9viuZXPBr15foE2bEmDBHthLzM5VUMfeuAxHyBA9BV
Если кто-то силен в ончейн расследованиях, то можете попытаться распутать этот клубок и оценить масштабы. Вероятно дыра не в самом Farcaster, а в инфраструктуре, которую они используют.