Шесть способов атаки на Metamask

Шесть способов атаки на Metamask

@bullup

MetaMask — это инновационное расширение для Google Chrome (и Mozila Firefox), которое позволяет взаимодействовать с блокчейном Ethereum’a посредством веб-браузера. C помощью Metamask можно использовать несколько кошельков эфириума одновременно. Команда Bloom верит, что криптокомьюнити в значительной степени выигрывает в безопасности, используя MetaMask.

Безопасность — это постоянная эволюция, поэтому команда Bloom хочет рассказать о возможных атаках на Metamask, о которых должен знать каждый.

23 января команда Bloom написала пост, в котором изложены возможные атаки на Metamask. Спустя время, советник и ответственный за безопасность Brandon Arvanaghi создал сайт EthWalletSecurity — независимый проект, который демонстрирует вектор атак на Metamask.

Команда Bloom призывает каждого пользователя изучить этот проект. Эти атаки могут происходить как с незаблокированным кошельком, так и с заблокированными.

Прежде чем делать то, что описано ниже, создайте кошелёк на 1 раз (это для тех, кто боится, что сайт EthWalletSecurity что-либо украдёт).

Часть 1: Разблокированный Metamask

Если ваш Metamask разблокирован, то и каждая открытая вкладка об этом знает. Если вы хоть раз переключались между кошельками в MetaMask, пока он разблокирован, то каждая открытая вкладка будет знать о другом текущем кошельке.

Поскольку блокчейн общедоступен, то знать адрес кошелька достаточно, чтобы сфальсифицировать входящую и исходящую транзакцию. Если зайдёте на EthWalletSecurity с разблокированным Metamask, то вы увидите то, что любой владелец сайта может использовать Etherscan для просмотра ваших транзакций.

1.Пример того, что владелец сайта видит ваш адрес, если кошелёк разблокирован
2. А так же, видны и ваши транзакции

А теперь рассмотрим способы атаки:

Способ 1: Последняя, неудачная и исходящая транзакция

В этом способе на EthWalletSecurityпоказано, как сайт может создать поддельное уведомление Metamask о том, что последняя, исходящая транзакция завершилась неудачно. Поддельное уведомление содержит всю реальную информацию о вашей последней исходящей транзакции.

3. фальшивое уведомление с действительными данными о транзакции

Благодаря EthWalletSecurity вы теперь понимаете, что сайт может представить вам транзакцию на ту же сумму, но только на другой адрес. Поскольку нет стандартного способа представления уведомлений Google Chrome, пользователь MetaMask не может знать о том, что это всплывающее окно является поддельным.

Способ 2: Последняя, входящая транзакция

Так же можно и сфальсифицировать последнюю, входящую транзакцию. В уведомлении попросят вас подписать транзакцию на приём.

Запомните, что входящие транзакции не нуждаются в каких-либо действиях со стороны получателя.

4. Фальшивое уведомление на подпись входящей транзакции

Способ 3: Копия CSS стиля

Создатель сайта, на котором вы находитесь с открытым Metamask’ом, может создать копию главного окна Metamask, в котором отображаются все данные вашего адреса:

5. Пример фальшивого, всплывающего окошка

Фальшивое окно показывает все транзакции, за исключением последней транзакции, которая приобрела статус Failed. Поскольку транзакция прошла неудачно, то псевдометамаск попросит нас повторно отправить транзакцию, но адрес в этой транзакции уже будет не тот, который мы хотим.

Часть 2: Заблокированный Metamask

При просмотре сайтов с заблокированным Metamask’om, сайты не имеют возможности увидеть какую-либо информацию о вашем кошельке. Тем не менее, сайт видит то, что вы пользователь Metamask.

Способ 4: Заставить разблокировать Metamask

Как мы помним, что посещение сайта с разблокированным Metamask’ом означает то, что сайт видит ваш адрес, и зная ваш адрес, пробить инфу об адресе не составит сложности. И тогда злоумышленник постарается сделать так, чтобы вы разблокировали Metamask.

Зайдя на EthWalletSecurity и нажав на Generate notification, вы увидите пример фальшивого уведомления о входящей транзакции. И этого уведомления может вполне хватить, чтобы побудить вас разблокировать кошелёк. Злоумышленник не получит доступ к ваши средствам, но, он узнает адрес вашего текущего адреса.

6. Фальшивое уведомление, которое может побудить пользователь разблокировать кошелёк

Способ 5: Фишинг

Так же можно создать поддельное всплывающее окно Metamask’а, чтобы пользователь ввёл пароль/ключевые слова/приват ключ. Зайдя на EthWalletSecurity, нажмите Generate fake pop-out и вы увидите пример фальшивого окошка.

6. Фальшивое окно Metamask

Способ 6: Ожидание

Вредоносный сайт может ждать разблокировки на другой вкладке. Предположим, вы разблокировали Metamask на другой вкладке. Поскольку Metamask не сообщит вам, с какого сайта произошла транзакция, вредоносный сайт (неактивная вкладка) может сразу же “выставить счёт” тогда, когда обнаружил, что вы разблокировали Metamask на другом сайте.

EthWalletSecurity предоставляет возможность испытать эту атаку. У вас заблокирован кошелёк и имеется 1 вкладка. Теперь продублируйте вкладку или откройте новую, и перейди на любой сайт. При этом, у вас должен быть заблокирован кошелёк. Теперь переходим на новую вкладку и разблокируем наш кошелёк. И ничего себе, мы видим вот такую картину:

7


После разблокировки кошелька у нас появилась транзакция на подтверждение. Нажмите Reject и всё. 


Мне понравилось то, на сколько понятно команда Bloom описала возможные атаки на Metamask. Команда Bloom настоятельно рекомендует потестить сайт EthWalletSecurity, и я вам тоже советую. Если вы переживаетет за свои средства, то просто создайте новый кошелёк и всё, хотя, сайт и не предназначен для того, чтобы что-то украсть. Данный сайт сделан только для того, чтобы обезопасить пользователей Metamask’а.


Report Page