Исследователи в области безопасности обнаружили вредоносный пакет npm, маскирующийся под легитимную библиотеку WhatsApp Web API, который незаметно крадет сообщения, учетные данные и контактные данные из сред разработчиков.
Пакет, получивший название «lotusbail», действует как троянизированная обертка вокруг подлинной клиентской библиотеки WhatsApp и к моменту обнаружения компанией Koi Security успел набрать более 50 тысяч загрузок.
«С более чем 56 000 загрузок и функциональным кодом, который действительно работает, как заявлено, это тот тип зависимостей, которые разработчики устанавливают, не задумываясь», — говорится в сообщении исследователей Koi в блоге по ссылке. «Пакет был доступен на npm в течение 6 месяцев и на момент написания статьи всё ещё активен».
Украденные данные шифровались и передавались на инфраструктуру, контролируемую злоумышленниками, что снижало вероятность обнаружения инструментами сетевого мониторинга. Еще более тревожным для предприятий является тот факт, что Lotusbail использует многоустройственное сопряжение WhatsApp для поддержания персистентности в скомпрометированных учетных записях даже после удаления пакета.
Легитимный API использует прокси для угрозы
По словам исследователей, изначально lotusbail не представлял собой ничего, кроме полезного форка легитимной библиотеки «@whiskeysockets/baileys», используемой для взаимодействия с WhatsApp через WebSockets. Разработчики могли установить его, отправлять и получать сообщения, и никогда бы не заметили ничего подозрительного.
Однако дальнейшее исследование выявило проблему.
Пакет обернул легитимный WebSocket-клиент WhatsApp вредоносным уровнем прокси, который прозрачно дублировал каждую операцию, включая те, что связаны с конфиденциальными данными. Во время аутентификации обертка захватывала токены сеанса и ключи. Каждое сообщение, проходящее через приложение, перехватывалось, записывалось и подготавливалось для скрытой передачи на инфраструктуру, контролируемую злоумышленниками.
Кроме того, украденная информация защищалась в пути. Вместо отправки учетных данных и сообщений в открытом виде, вредоносное ПО использовало пользовательский слой шифрования RSA и несколько стратегий обфускации, что затрудняло обнаружение инструментами сетевого мониторинга и позволяло передавать данные незамеченными.
«URL-адрес сервера для передачи данных зарыт в зашифрованных строках конфигурации, скрытых внутри сжатых полезных нагрузок», — отметили исследователи. «Вредоносное ПО использует четыре уровня обфускации: манипуляции с переменными Unicode, сжатие LZString, кодирование Base-91 и шифрование AES. Местоположение сервера нигде не закодировано в явном виде».
Бэкдор остается даже после удаления пакета
Koi заявила, что наиболее значимым компонентом атаки была ее персистентность. WhatsApp позволяет пользователям связывать несколько устройств с одной учетной записью посредством процесса сопряжения, включающего 8-значный код. Вредоносный пакет lotusbail перехватывал этот механизм, встраивая жестко закодированный код сопряжения, который фактически добавлял устройство злоумышленника в качестве доверенной конечной точки в учетной записи WhatsApp пользователя.
Даже если разработчики или организации позже удаляли пакет, связанное устройство злоумышленника оставалось подключенным. Это позволяло атаке сохраняться до тех пор, пока пользователь WhatsApp вручную не отключал все устройства в панели настроек.
Постоянный доступ позволяет злоумышленникам продолжать чтение сообщений, сбор контактов, отправку сообщений от имени жертв и загрузку медиафайлов задолго после первоначального заражения.
Что должны делать разработчики и защитники?
В раскрытии информации Koi отмечалось, что традиционные меры защиты, основанные на метриках репутации, проверке метаданных или статической проверке, терпят неудачу, когда вредоносная логика имитирует легитимное поведение.
«Вредоносное ПО скрывается в промежутке между «этот код работает» и «этот код делает только то, что заявлено»», — заявили исследователи, добавив, что такие угрозы цепочки поставок требуют мониторинга поведения пакетов во время выполнения, а не полагаться только на статические проверки. Они рекомендовали искать (или полагаться на инструменты, которые могут) предупреждающие знаки, такие как пользовательские процедуры шифрования RSA и десятки встроенных механизмов антиотладки во вредоносном коде.
Пакет остается доступным на npm, последнее обновление было опубликовано всего пять дней назад. GitHub, владеющий npm с 2020 года, не ответил немедленно на запрос CSO о комментарии.
(*) Имейте ввиду, редакции некоторых западных изданий придерживаются предвзятых взглядов в освящении некоторых новостей, связанных с Россией. Кроме того, IT издания часто пропагандирует леволиберальные и антриреспубликанские взгляды в освящении некоторых новостей.
Автор – Shweta Sharma




