В каждом проекте ICO есть по 5 «дыр». Чтобы их обокрасть, достаточно одной
Каждое ICO имеет уязвимости пяти различных типов, которыми хакеры могут воспользоваться для кражи собранных инвестиций. В список входят атаки на организаторов и инвесторов, а также использование уязвимостей в смарт-контрактах, веб-приложениях и мобильных приложениях.
Уязвимости ICO
Каждый проект первичного предложения токенов (ICO) хакеры могут атаковать в среднем пятью различными способами, воспользовавшись соответствующими уязвимостями. При этом для того, чтобы похитить собранные в ходе проекта средства, злоумышленникам достаточно использовать лишь одну уязвимость. К таким выводам пришли эксперты российской компании Positive Technologies, специализирующейся на информационной безопасности.
Как отмечает в своем отчете Positive Technologies, в течение 2017 г. посредством ICO в мире было привлечено более $5 млрд инвестиций, причем 7% от этой суммы, то есть $300 млн, было похищено хакерами.
Атаки на организаторов
По данным Positive Technologies, треть организаторов ICO уязвимы для атаки. В частности, злоумышленник может получить доступ к электронному почтовому ящику, который используется организаторами для восстановления паролей от различных сервисов, в том числе домена и хостинга. Завладев доступом к этой почте, хакер сможет указать свой собственный кошелек в качестве места хранения собранных средств. Как пример этого метода эксперты Positive Technologies приводят атаку на Coindash.io, ущерб от которой составил $7 млн — в данном случае был изменен адрес Ethereum-кошелька.
Проблема усугубляется тем, что на сайтах ICO можно найти адреса электронной почты сотрудников, а также имена, фамилии и фото руководителей, которых затем легко вычислить в соцсетях. Информация из соцсетей позволяет определить логин почтового аккаунта и угадать ответы на контрольные вопросы для изменения пароля. Если для изменения пароля потребуется подтверждение с помощью SMS, хакер может просто купить детализацию входящих SMS абонента на черном рынке. В зависимости от оператора, детализация на месяц обойдется ему от 3 до 8 тыс. руб.
Атаки на инвесторов
Сопоставимый уровень уязвимости был зафиксирован среди инвесторов — их оказалось возможным атаковать в 23% случаев. В частности, инвестора можно обмануть, используя в социальных сетях страницу, название которой совпадает или очень похоже на название проекта ICO. На такой фальшивой странице злоумышленники могут разместить описание проекта, похожее на настоящее, но содержащее ссылки на фишинговые сайты.
Эта уязвимость возникает потому, что многие организаторы ICO не регистрируют на себя всю совокупность возможных доменных имен и аккаунтов в соцсетях, которые можно проассоциировать с их проектом. В частности, во время атаки на американскую криптовалютную биржу Bittrex хакеры добились того, что ее клиенты вводили данные для авторизации не на официальном сайте bittrex.com, а на фишингом blttrex.com, не заметит подмены буквы i на l.
«Дыры» в смарт-контрактах
Исследование Positive Technologies выявило в 71% всех проанализированных ICO баги в смарт-контрактах. На них приходится в общей сложности 32% найденных уязвимостей. Такие «дыры» появляются из-за недостаточной квалификации программистов и недостаточно тщательного тестирования исходного кода. Характерными ошибками являются несоответствие стандарту интерфейса токена ERC20, некорректная генерация случайных чисел, неверное определение области видимости, некорректная верификация отправителя транзакции, целочисленное переполнение, «состояние гонки» и ошибки в бизнес-логике.
Атака на смарт-контракты использовалась при краже средств у проекта The DAO в июне 2016 г. Уязвимость возникла в результате того, что разработчики ошиблись при описании одной из функций. Также от атаки на смарт-контракты пострадал проект Parity, у которого хакеры украли летом 2017 г. $30 млн, а в ноябре того же года заморозили на его счетах $285 млн. Оба проекта использовали технологии Ethereum.
Уязвимости приложений
Около 28% всех уязвимостей, возникающих при проведении ICO, приходится на веб-приложения. С мобильными версиями дела обстоят еще хуже — здесь уязвимыми оказались 100% проанализированных приложений, причем общее количество уязвимостей в 2,5 раза превышает их количество в веб-приложениях.
По словам Дениса Баранова, директора по безопасности приложений в Positive Technologies, уязвимости зачастую содержатся в механизме интеграции блокчейна с другими компонентами приложения. В частности, распространена некорректная настройка механизма безопасности CORS, с помощью которого веб-приложение контактирует с блокчейном. Опасность также представляет некорректное внедрение блокчейна в серверную часть веб-приложения, в частности, с помощью web3.js.
Баранов также отмечает, что приложения для ICO не застрахованы от уязвимостей, характерных для приложений вообще, таких как инъекции, раскрытие конфиденциальной информации веб-сервером, небезопасная передача данных, чтение произвольных файлов и прочие. Например, зарегистрировавшись у того же хостинг-провайдера, что и веб-приложение для ICO, хакеры могут воспользоваться уязвимостью чтения произвольных файлов на сервере и взять приложение под контроль.
Для мобильных приложений самыми распространенными недостатками являются небезопасная передача данных, хранение пользовательских данных в резервных копиях, наличие в коде приложения служебной информации и раскрытие идентификатора сессии.