Автор статьи — Джеймсон Лопп, технический директор биткоин-стартапа Casa и один из разработчиков Bitcoin core. Оригинал опубликован в блоге Casa.
Когда мы говорим о безопасности биткоин-кошельков, основное внимание уделяется тому, чтобы закрытые ключи не попадали в чужие руки. Считается, что если злоумышленник получит доступ к закрытым ключам, — игра окончена.
Однако безопасность кошелька заключается не только в ограничении доступа к закрытым ключам. Мы также должны следить за получением и выводом средств с кошелька, так как эти операции могут быть перехвачены злоумышленником с целью перенаправления btc на свой адрес.
Хотя никакое программное обеспечение кошелька не может защитить вас от всех возможных проблем, мы в Casa мы пришли к выводу о том, что браузерные кошельки являются наиболее уязвимыми по ряду причин.
Фишинг и вредоносные программы
Фишинг — это практика обмана пользователя через перенаправление на сайт, который имитирует настоящий, с целью получения учетных данных пользователя или загрузки измененной версии кошелька.
Например, войдя на условный сайт C0inbase, злоумышленник может получить имя пользователя, пароль и даже 2FA для доступа к аккаунту Coinbase. Мошенники уже годами манипулируют рекламой в поисковых системах, чтобы обманом заставить пользователей зайти на вредоносный сайт.
Хотя фишинговые атаки на веб-кошельки являются обычной практикой, они также имели место в отношении десктопных кошельков, которые подключаются к удаленным серверам. Так, пользователи популярного биткоин-кошелька electrum были атакованы ложным уведомлением об обновлении с вредоносной версией кошелька.
Даже пользователи trezor, чьи закрытые ключи хранятся в защищенном виде на отдельном устройстве, оказались уязвимы через веб-кошелек Trezor — внимательные пользователи могли заметить, что SSL-сертификат не соответствует домену. Также часто всплывают сайты-самозванцы Trezor — пользователи, которые случайно наберут неверный URL-адрес, могут быть перенаправлены на вредоносный сайт, который выглядит точно так же, как веб-кошелек Trezor.
Злоумышленникам хорошо известно, что они не могут удаленно извлечь закрытые ключи из отдельных аппаратных устройств, поэтому они используют слабые места в программном обеспечении, которое используется для взаимодействия с устройством. На сегодняшний день эти атаки довольно просты и просят пользователя ввести сид-фразу, что само по себе должно вызвать подозрения, но многие пользователи всё ещё на это попадаются.
Программное обеспечение десктопных кошельков также уязвимо для вредоносных программ, которые могут угрожать операциям ввода/вывода. Это связано с тем, что десктопные операционные системы имеют много векторов атаки, поскольку используются для самых разных задач.
Мы знаем, что злоумышленники даже получали контроль над популярными библиотеками JavaScript, которые, как известно, используются в ПО многих биткоин-кошельков. Это особенно сложная проблема для многих браузерных кошельков, поскольку многие из них разработаны на JavaScript.
Существует причина, по которой золотым стандартом безопасности биткоин-кошелька считается использование специального аппаратного устройства, такого как ledger/ Trezor/Coldcard/ и т.д. Такое устройство защищает закрытые ключи от злоумышленников и запускает программное обеспечение, которое обладает высокой устойчивостью к взлому и обеспечивает целостность сгенерированных адресов, отображаемых на экране устройства.
Любое программное обеспечение, работающее на машине общего назначения, будет более легко атакуемым, хотя мобильные операционные системы, как правило, более устойчивы к взлому и лучше блокируют приложения через песочницу.
Расширения браузера
В то время как десктопные или мобильные кошельки могут использоваться при обеспечении надлежащего уровня безопасности операционной системы, любые веб-кошельки обладают очень слабой защитой.
И провайдеры этих кошельков могут сделать не так уж много, потому что проблемы безопасности не ограничиваются уязвимостью их собственной инфраструктуры и во многих случаях являются проблемами конечного пользователя. Для защиты от вредоносных программ браузерный кошелек следует использовать только на отдельном компьютере, но большинство пользователей будут пренебрегать этим, подвергая себя риску взлома.
Одна из особенно тревожных проблем с браузерными кошельками заключается в том, что расширения браузера могут легко получить полный контроль над всеми данными, доступ к которым осуществляется через браузер. В конце 2018 года экспертами «Лаборатории Касперского» был обнаружен троян, который специально предназначался для браузерных кошельков и устанавливал вредоносные расширения.
Функция findAndReplaceWalletAddresses выполняет поиск кошельков для биткоина и эфира и заменяет их адресами кошельков злоумышленника. В частности, эта функция работает практически на всех страницах, кроме тех, которые расположены в доменах google и Yandex, а также на популярных доменах, таких как instagram.com. и ok.ru. Изображения QR-кодов с адресами кошельков также заменяются.
Мы подозреваем, что проблемы безопасности браузера являются одной из причин, по которой компания Ledger прекратила поддержку своих расширений для Chrome и вместо этого требует от пользователей установки своего десктопного приложения Ledger Live.
Программное обеспечение с открытым исходным кодом, как правило, обеспечивает большую надежность, но в мобильных приложениях возникают свои сложности. В настоящее время мы не знаем, как доказать, что программное обеспечение, установленное через iOS App Store или Google Play, является тем же программным обеспечением, которое доступно в репозитории с открытым кодом.
Платежный протокол, который включает в себя криптографически заверенный адрес получателя адрес получателя, также может улучшить целостность платежей, устраняя атаку «посредника». Предложение по улучшению биткоина (BIP) 75 делает это — оно было предложен еще в 2016 году, но так и не получило широкого распространения из-за возможных проблем с конфиденциальностью пользователей. Сегодня рекомендуется при отправке крупных биктоин-транзакций подтверждать адрес по другим каналам (посредством видео/аудио), чтобы убедиться в его правильности.
Не доверяйте своему браузеру!