Xakep #305. Многошаговые SQL-инъекции
Ведущий производитель криптовалютных банкоматов General Bytes сообщил, что хакеры похитили криптовалюту у самой компании и ее клиентов, используя 0-day уязвимость в платформе BATM.
Чешская компания General Bytes владеет и управляет 15 000 криптовалютных банкоматов, которые доступны более чем в 120 странах мира. Эти устройства позволяют покупать и продавать более 40 различных криптовалют, и контролируются удаленным CAS-сервером (Crypto Application Server), который управляет работой банкомата, проводит операции с поддерживаемыми криптовалютами, а также выполняет покупку и продажу на биржах. Клиенты компании могут развернуть собственные банкоматы, используя автономные серверы или облачный сервис General Bytes.
В минувшие выходные компания сообщила, что хакеры воспользовались уязвимостью нулевого дня, которая теперь получила идентификатор BATM-4780, для удаленной загрузки Java-приложения через главный служебный интерфейс банкомата и последующего запуска приложения с привилегиями пользователя batm.
«Злоумышленники просканировали пространство IP-адресов облачного хостинга Digital Ocean и выявили запущенные сервисы CAS на портах 7741, включая сервис General Bytes Cloud и других операторов банкоматов General Bytes, держащих свои серверы в Digital Ocean (рекомендованный нами провайдер облачного хостинга)», — рассказывают представители компании.
В Twitter компания обратилась к своим клиентам с призывом «немедленно принять меры» и установить последние обновления для защиты своих серверов и средств от злоумышленников.
Администраторам CAS настоятельно рекомендуется проверить логи master.log и admin.log на любые признаки подозрительных пробелов, которые могут указывать на удаление записей журнала хакерами, которые стремились скрыть свои действия на устройстве.
В отчете General Byte также содержится предупреждение о том, что загруженные вредоносные приложения отображаются в папке /batm/app/admin/standalone/deployments/ в виде файлов .war и .war.deployed со случайными именами.
Также компания призывает пользователей заново сгенерировать ключи API и аннулировать старые.
Сообщается, что после загрузки Java-приложения атакующие получили возможность выполнять следующие действия на скомпрометированных машинах:
- получение доступа к базе данных;
- чтение и расшифровка ключей API, используемых для доступа к средствам в горячих кошельках и биржах;
- отправка средства с горячих кошельков;
- скачивание имен пользователей, хэшей их паролей и отключение 2ФА;
- получение доступа к журналам событий и поиск случаев, когда клиенты сканировали приватные ключи в банкомате (эта информация регистрировалась в старых версиях ПО банкоматов).
Также в General Bytes подчеркивают, что во время атак были взломаны как клиенты, так и ее собственный облачный сервис.
Хотя компания не раскрыла, сколько именно денег удалось похитить хакерам, General Bytes предоставила список кошельков, использованных злоумышленниками во время атаки. Судя по этим данным, атакующие начали похищать криптовалюту с серверов криптобанкоматов 17 марта, при этом на биткоин-адрес было переведено 56,28570959 BTC на сумму около 1 589 000 долларов и 21,79436191 Ethereum на сумму около 39 000 долларов отправилось на другой адрес.
Хотя BTC все еще находятся в кошельке взломщиков, похоже, злоумышленники уже использовали Uniswap для конвертации украденного Ethereum в USDT.
Представители General Bytes заявили, что после случившегося компания закрывает свой облачный сервис, так как защитить его от злоумышленников невозможно ни теоретически, ни практически, особенно с учетом того, что он должен одновременно предоставлять доступ нескольким операторам.
Компания поможет в переносе данных всем тем, кто захочет установить собственный CAS, который теперь должен размещаться строго за брандмауэром и VPN.
Инженеры General Byte уже выпустили исправления для CAS, которые устраняют 0-day уязвимость: 20221118.48 и 20230120.44.
Компания уверяет, что в ближайшее время планирует провести многочисленные аудиты безопасности своих продуктов с привлечением ряда сторонних экспертов, чтобы выявить и исправить другие потенциальные проблемы до того, как их обнаружат хакеры.