Пользователь под ником warith на криптовалютном форуме Bitcointalk открыл тему, в которой обвинил разработчиков Coinomi в нарушении безопасности и потребовал компенсации. 14 февраля, скачав и установив приложение Coinomi, пользователь ввел в его интерфейс кодовую фразу, которую он использовал для своего основного кошелька Exodus.
«Я понимаю, что сам совершил ошибку, введя кодовую фразу своего основного кошелька. Но я скачал программное обеспечение с официального сайта, установочный файл имел цифровую подпись, а имя кошелька фигурировало на нескольких авторитетных сайтах, таких как bitcoinwiki.org. Я всего лишь хотел перевести часть своих криптоактивов, которые не поддерживались кошельком Exodus», – пишет warith.
22 февраля пользователь заметил, что с его кошелька Exodus было выведено около 90% активов. Согласно журналу транзакций, вывод средств на различные адреса начался 19 февраля – сперва биткоины, затем эфир и токены ERC-20, потом лайткоины и биткэш. Нетронутыми остались только те криптовалюты, которые не поддерживались кошельком Coinomi.
Начав разбираться в ситуации, warith выяснил, что интерфейс кошелька написан на HTML и JavaScript, и визуализируется с использованием встроенного браузера на основе Chromium.
«Отследив трафик, я заметил, что в момент запуска приложение Coinomi скачивает список слов из словаря. После чего я ввел в поле для восстановления кошелька случайную кодовую фразу и обнаружил, что она передается в виде незашифрованного текста на адрес googleapis.com для проверки правописания. Я попробовал ввести слово с орфографической ошибкой, и оно ожидаемо было подчеркнуто красным», – рассказывает warith.
«Очевидно, что поле, в которое вы вводите свою кодовую фразу, является компонентом браузера Chromium. После того, как вы вводите в него данные, они без какого-либо уведомления отправляются на googleapis.com для проверки правописания. Я полагаю, что кто-то из команды Google или имеющий доступ к HTTP-запросам, передаваемым на googleapis.com, обнаружил кодовую фразу и украл у меня почти все мои криптовалютные активы на сумму $60 000-$70 000. Любой, кто связан с технологиями и криптовалютой, знает, что 12 случайных английских слов, разделенные пробелами, вероятно, являются кодовой фразой для криптовалютного кошелька», – пишет warith.
Автор утверждает, что сразу же сообщил в поддержку Coinomi о найденной им уязвимости и потребовал вернуть потерянные по их вине криптовалюты. Однако команда поддержки отказалась пойти ему навстречу, при том, что обновленная версия приложения появилась уже на следующий день после обращения пользователя.
Официальный ответ команды Coinomi не заставил себя долго ждать. Согласно их версии, проблема действительно существовала, но была выявлена только на десктопной версии кошелька. Кроме того, как утверждают представители Coinomi, она не могла привести к потере средств. На данный момент проблема решена в новой версии кошелька.
Согласно отчету Coinomi, проверка орфографии действительно автоматически включена в браузерном движке Chromium. Однако словари хранятся локально, в каталоге профиля пользователя, поэтому кодовая фраза передается на googleapis.com только в том случае, если пользователь отправит запрос на восстановление кошелька. Причем даже в этом случае она передается не в виде обычного текста, а включается в HTTPS-запрос, единственным получателем которого является Google.
Запросы проверки орфографии, которые были отправлены в Google API, не были обработаны, кэшированы или сохранены. Сами запросы вернули ошибку (код: 400), поскольку они были помечены как «плохой запрос» и не обрабатывались Google.
Как заявляют представители Coinomi, они благодарны пользователю warith за обнаруженную ошибку, однако к пропаже его средств это не может иметь никакого отношения, так как:
-
команда Coinomi никогда не имела доступа к кодовым фразам и активам пользователей;
-
никто, кроме Google, не мог прочитать содержимое зашифрованных пакетов, содержащих кодовые фразы;
-
Google отклонил запросы проверки орфографии, инициированные Chromium, так как они были неправильно сформированы, и фактически никогда не обрабатывал их.
Кроме того, команда Coinomi утверждает, что warith неоднократно отказывался передать имеющиеся у него данные касательно обнаруженной им уязвимости и детализацию переводов со взломанного кошелька. Он постоянно угрожал обнародовать эту информацию, если ему не будет выплачена «компенсация» в размере 17 BTC.
В заключение представители Coinomi еще раз обратились ко всем пользователям, отметив, что ни один их кошелек не был взломан и вероятность потерять средства из-за проверки орфографии и возможной отправки кодовой фразы через серверы Google крайне маловероятна.
Однако безопасность все же остается на первом месте, поэтому пользователям кошелька для ПК было рекомендовано обновить приложение до последней исправленной версии. Тем пользователям, которые недавно восстанавливали свои кошельки, порекомендовали создать новый кошелек и перевести на него свои криптовалютные активы со старого кошелька, предварительно обновив его до последней исправленной версии.
Пользователям мобильных версий кошелька ничего делать не нужно, так как эти версии данная ошибка не затронула.