Контакты
Подписка 2024

Protestware: как защитить код?

Владимир Исабеков, 11/03/24

Согласно исследованию [1], недавно обнаруженные пакеты программного обеспечения с открытым исходным кодом на платформе npm (пакетный менеджер для JavaScript, работающий на Node.js) содержат сценарии, которые передают сообщения политического характера. Эти пакеты являются свежими примерами так называемого Protestware (от англ. “протестное программное обеспечение").

Автор: Владимир Исабеков, ведущий инженер по информационной безопасности Swordfish Security

ris1-Mar-11-2024-08-05-23-0951-AM

Что такое Protestware?

Protestware – это программное обеспечение, которое используется для выражения политических или социальных протестов. Обычно такое ПО содержит функции, которые могут нарушить работу компьютерной системы или причинить другой вред. Протестное программное обеспечение может быть создано отдельными лицами или группами, которые хотят выразить свое несогласие с политикой, действиями или решениями организаций или правительств.

Точно определить, когда появилось это явление, достаточно сложно. Однако можно сказать, что само протестное ПО существует с того момента, как появилась возможность создавать программы. Термин Protestware появился в начале 2000-х гг., когда протестное ПО стало более распространенным. Тогда это было связано с появлением таких программ, как NetSurf, которые позволяли пользователям обходить цензуру в Интернете.

В России Protestware получило широкую известность в начале 2022 г. Тогда в пакетах с открытым исходным кодом начали появляться закладки, в которых можно было встретить лозунги политического характера. Но, к сожалению, одними лозунгами не ограничилось. Так, в 2022 г. создатели прошивки Tasmota для довольно популярных контроллеров ESP8266 и ESP32 внедрили в код скрипт, который способен блокировать работу устройства.

Еще один пример – es5-ext, достаточно популярный пакет с GitHub, имеющий порядка 6 млн скачиваний. В прошлом году в одном из коммитов была найдена проверка тайм-зоны, в которой он работает. Как только пакет понимал, что попал в российский часовой пояс, то начинал выводить слоганы политического характера.

Опасность явления сегодня

В последние недели 2023 г. специалисты по кибербезопасности вновь начали фиксировать инциденты с Protestware. Так, был обнаружен пакет npm e2eakarev (версия 7.1.0), опубликованный в октябре 2023 г., который описывает себя как "бесплатный пакет протеста в Палестине". Исследователи ReversingLabs выяснили, что в Израиле установка пакета запускается с политическим сообщением на английском языке.

С июля этого года эксперты обнаружили 179 пакетов npm с использованием пакета es5-ext. Сценарии es5-ext пока не наносят существенного ущерба, но наглядно демонстрируют, что разработчики готовы использовать свой код в качестве платформы для различного рода действий, никак не связанных с заявленной функциональностью.

Очевидно, что явление закрепилось в нашей реальности и практически любые геополитические события будут провоцировать появление новых Protestware. Они могут влиять на организации по-разному, но основной риск – это атака на цепочку поставок, поскольку в этом случае затрагивается более широкая группа пользователей и приложений. Риски, с которыми сталкиваются разработчики и потребители программного обеспечения, сегодня как никогда высоки.

Как обнаружить Protestware?

Первым и важным шагом к снижению риска от вредоносного Protestware является стандартный инструментарий безопасной разработки.

  1. SCA (Software Composition Analysis) – композиционный анализ определяет состав программного обеспечения, сканирует каждый элемент на наличие проблем безопасности и уведомляет о них разработчиков. SCA помогает провести инвентаризацию вашего ПО, которая включает в себя разбор манифеста разработки, разрешение транзитивных зависимостей и определение OpenSourse-включений в код продукта. Для поиска уязвимостей инструментами SCA генерируется SBOM (Software Bill Of Materials) – это список, который содержит названия, версии и другие части ПО, помогающие определить все зависимости с версиями пакетов. Далее каждый элемент списка проверяется на наличие общеизвестных уязвимостей. Для этого используются публичные базы данных, например National Vulnerability Database, Snyk Vulnerability Database, GitHub Advisory Database, Exploit Database, OSVDB.
  2. SAST (Static Application Security Testing) – это инструмент обнаружения уязвимостей в программном обеспечении путем анализа исходного кода без его запуска. Этот метод позволяет находить ошибки в логике программы, уязвимости к атакам на систему и проблемы с безопасностью данных.
  3. Создайте процесс для обнаружения протестного ПО. Важно проводить регулярные проверки безопасности и иметь готовый план действий в случае обнаружения уязвимостей. Использование открытого исходного кода без предварительного тестирования и анализа его возможного поведения является риском. Тестируйте весь код перед тем, как использовать его в производстве, чтобы убедиться в его работоспособности.

Заключение

Protestware является угрозой для безопасности данных и конфиденциальности пользователей. В качестве контрмеры существуют инструменты безопасной разработки, логику которых необходимо адаптировать для анализа используемых пакетов на наличие Protestware.


  1. https://www.reversinglabs.com/blog/protestware-taps-npm-to-call-out-wars-in-ukraine-gaza 
Темы:Безопасная разработкаProtestwareЖурнал "Информационная безопасность" №6, 2023

Обеспечение кибербезопасности.
Защита АСУ ТП. Безопасность КИИ
Конференция | 28 июня 2024

Жми для участия
Обзоры. Спец.проекты. Исследования
Участвуйте в обзорах / исследованиях проекта "Информационная безопасность"!
Станьте автором журнала!
Статьи по той же темеСтатьи по той же теме

Хотите участвовать?

Выберите вариант!

КАЛЕНДАРЬ МЕРОПРИЯТИЙ 2024
ПОСЕТИТЬ МЕРОПРИЯТИЯ
ВЫСТУПИТЬ НА КОНФЕРЕНЦИЯХ
СТАТЬ АВТОРОМ
Linux
23 мая. Инструменты миграции на защищенный Linux
Участвуйте!

More...
Обзоры. Исследования. Спец.проекты
Обзоры и исследования проекта "Информационная безопасность"
Жми, чтобы участвовать