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 (падносілася як модулі да легітымнай бібліятэкі , pygrata і pygrata-utils (выносіліся як дапаўненні да легітымнай бібліятэкі pyg) і hkg-sol-utils.

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


Крыніца: opennet.ru

Дадаць каментар