Проверьте связанные устройства WhatsApp – API для веб-версии мог тайно "привязать" к вам хакера

Проверьте связанные устройства WhatsApp – API для веб-версии мог тайно "привязать" к вам хакера

В npm полгода жил пакет, который притворялся библиотекой для WhatsApp Web, а на деле тихо уносил переписки, контакты и токены.

image

В репозитории npm обнаружили вредоносный пакет lotusbail, который выдаёт себя за библиотеку для работы с WhatsApp Web и при этом незаметно крадёт переписки и даёт злоумышленникам устойчивый доступ к аккаунту. По данным Koi Security, пакет скачали более 56 тысяч раз, он был опубликован около полугода назад и на данный момент всё ещё остаётся доступен для установки.

Снаружи всё выглядит почти идеально: lotusbail действительно работает как обещанный API. Он сделан как форк популярной и легитимной библиотеки Baileys (@whiskeysockets/baileys), которую используют для интеграции WhatsApp в собственные сервисы через протокол WhatsApp Web. Именно эта «нормальная» функциональность и усыпляет бдительность: разработчик ставит зависимость, проверяет — сообщения отправляются и принимаются, значит, можно «выкатить в прод».

Дальше начинается то, чего в такой библиотеке быть не должно. По описанию Koi Security, вредоносный код оборачивает WebSocket-клиент, через который приложение общается с WhatsApp, и получает возможность видеть весь трафик. В момент авторизации он перехватывает токены и ключи сессии, затем копирует входящие и исходящие сообщения, выгружает список контактов, а также медиафайлы и документы — и готовит всё это к отправке на сервер атакующих.

Чтобы кража не бросалась в глаза на сетевом уровне, данные уходят не «как есть»: исследователи указывают на встроенную кастомную реализацию RSA и многоуровневую обфускацию, из-за которых адрес сервера и сама передача выглядят максимально непрозрачно для поверхностной проверки. Отдельно упоминаются и приёмы против анализа — вплоть до ловушек, которые мешают отладке и изучению поведения пакета в динамике.

Но самый неприятный момент — «хвост», который может остаться даже после удаления зависимости из проекта. WhatsApp позволяет привязывать новые устройства через коды сопряжения, и, как описывает Koi Security, lotusbail вмешивается в этот процесс так, чтобы вместе с вашим приложением привязать ещё и устройство злоумышленника. В результате атакующий получает постоянный доступ к переписке и контактам, а простое удаление npm-пакета не решает проблему: привязанное устройство продолжит числиться в аккаунте, пока его вручную не отключат в настройках WhatsApp.

Если вы уже использовали lotusbail или подозрительный форк Baileys в продакшене, разумно исходить из того, что сессия могла быть скомпрометирована: стоит проверить список связанных устройств в WhatsApp и отвязать всё лишнее, а также пересмотреть цепочку зависимостей и источники пакетов в сборке. История с lotusbail хорошо показывает, как меняются атаки на цепочку поставок: вредоносные пакеты всё чаще не ломают функциональность, а наоборот — аккуратно «дописывают» к ней второй, скрытый сценарий.