Packj — інструментарій для виявлення шкідливих бібліотек мовами Python та JavaScript

Розробники платформи Packj, яка аналізує безпеку бібліотек, опублікували відкритий інструментарій командного рядка, що дозволяє виявляти ризиковані конструкції в пакетах, які можуть бути пов'язані з реалізацією шкідливої ​​активності або наявністю вразливостей, що застосовуються для здійснення атак на проекти, що використовують пакети, що розглядаються («supply chain»). Підтримується перевірка пакетів мовами Python та JavaScript, розміщених у каталогах PyPi та NPM (у цьому місяці також планують додати підтримку Ruby та RubyGems). Код інструментарію написаний мовою Python та поширюється під ліцензією AGPLv3.

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

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

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

Packj - інструментарій для виявлення шкідливих бібліотек мовами Python та JavaScript


Джерело: opennet.ru

Додати коментар або відгук