Packj – инструментарий для выявления вредоносных библиотек на языках Python и JavaScript

Разработчики платформы Packj, анализирующей безопасность библиотек, опубликовали открытый инструментарий командной строки, позволяющий выявлять рискованные конструкции в пакетах, которые могут быть связаны с реализацией вредоносной активности или наличием уязвимостей, применяемых для совершения атак на проекты, использующие рассматриваемые пакеты (“supply chain”). Поддерживается проверка пакетов на языках Python и JavaScript, размещённых в каталогах PyPi и NPM (в этом месяце также планируют добавить поддержку Ruby и RubyGems). Код инструментария написан на языке Python и распространяется под лицензией AGPLv3.

В ходе анализа 330 тысяч пакетов при помощи предложенного инструментария в репозитории PyPi было выявлено 42 вредоносных пакета c бэкдорами и 2.4 тысячи рискованных пакетов. В процессе обследования пакета выполняется статический анализ кода для выявления особенностей API и оценивается наличие известных уязвимостей, отмеченных в БД OSV. Для анализа API применяется пакет MalOSS.
Код пакетов анализируется на предмет наличия типовых шаблонов, обычно применяемых во вредоносном ПО. Шаблоны подготовлены на основе изучения 651 экземпляра кода с вредоносной активностью.

Также выявляются атрибуты и метаданные, приводящие к повышению риска нецелевого использования, такие как выполнение блоков через “eval” или “exec”, формирование нового кода во время работы, использование техник запутывания и скрытия кода (obfuscated), манипуляции с переменными окружения, нецелевой доступ к файлам, обращение к сетевым ресурсам в сценариях установки (setup.py), использование тайпсквотинга (назначение имён, похожих на названия популярных библиотек), выявление устаревших и заброшенных проектов, указание несуществующих email и сайтов, отсутствие публичного репозитория с кодом.

Дополнительно можно отметить выявление другими исследователями безопасности пяти вредоносных пакетов в репозитории PyPi, которые отправляли на внешний сервер содержимое переменных окружения с расчётом на кражу токенов к AWS и системам непрерывной интеграции: loglib-modules (преподносилась как модули к легитимной библиотеке loglib),
pyg-modules, pygrata и pygrata-utils (преподносились как дополнения к легитимной библиотеке pyg) и hkg-sol-utils.


Release. Ссылка here.