Почему криптобиржи так часто взламывают

Гендиректор компании Wallarm Иван Новиков написал статью для журнала Forbes о том, почему криптобиржи так часто становятся объектами хакерских атак. Мы собрали главное из этого материала.

В прошлом году как минимум пять крупнейших криптовалютных бирж были взломаны, что привело к потере сотен миллионов долларов. Среди них NiceHash, Coincheck, BitGrail, Coinrail и Bithumb.

Наиболее критические уязвимости, из-за которых происходят хакерские атаки на криптобиржи, можно разделить на две группы — на стороне клиента и на стороне сервера.

На стороне клиента:

  • Межсайтовый скриптинг (cross-Site Scripting, XSS). В этом случае злоумышленники пользуются чужим браузером как собственным. Затем вредоносный JavaScript меняет адрес криптокошелька прямо перед выводом средств.
  • Редирект. Например, пользователя могут перенаправить на сайт, откуда происходит распространение вредоносного или мошеннического ПО под видом обновления для браузера. Его установка приводит к тому, что злоумышленники получают доступ к криптокошельку пользователя. Кроме того, мошенники делают так, чтобы реальная криптовалютная биржа отображалась в выдаче того же Google как вредоносный сайт.
  • Проблемы с SSL-сертификатом. Обычно они связаны с мобильными приложениями и не рассматриваются как серьезная уязвимость. Чаще всего с ними можно столкнуться в Китае, России и Иране, где правительства могут перехватывать трафик и перешифровывать своим сертификатом.

На стороне сервера:

  • NoSQL/key-value-инъекции. С их помощью злоумышленники атакуют базу данных в базе данных (in-memory database) или NoSQL, и даже разработчики не всегда могут это обнаружить.
  • Логические проблемы (в основном состояние гонки). Они носят критический характер и их очень трудно обнаружить с помощью тех же анализаторов исходного кода. Из-за них может произойти одновременная обработка нескольких транзакций вывода, что приведет к отрицательному балансу криптокошелька.
  • Проблемы с аутентификацией. Мошенники уже научились обходить двухфакторную аутентификацию. При наличии проблем с логикой или валидацией вводимых данных на сервере они получают доступ к сессии пользователя.