Апублікаваны аналізатар, які выявіў 200 шкоднасных пакетаў у NPM і PyPI.

Фонд OpenSSF (Open Source Security Foundation), сфарміраваны арганізацыяй Linux Foundation і нацэлены на павышэнне бяспекі адкрытага ПЗ, прадставіў адкрыты праект Package Analysis, які развівае сістэму аналізу наяўнасці шкоднаснага кода ў пакетах. Код праекту напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй Apache 2.0. Папярэдняе сканаванне пазатораў NPM і PyPI пры дапамозе прапанаванага інструментара дазволіла выявіць больш за 200 раней не заўважаных шкоднасных пакетаў.

Асноўная частка выяўленых праблемных пакетаў маніпулюе скрыжаваннем імёнаў з унутранымі непублічнымі залежнасцямі праектаў (атака dependency confusion) або выкарыстоўваюць метады тайпсквотинга (прызначэнне імёнаў, падобных на назовы папулярных бібліятэк), а таксама выклікаюць падчас усталёўкі скрыпты, якія звяртаюцца да вонкавых хаста. Па меркаванні распрацоўнікаў Package Analysis, вялікая частка выяўленых праблемных пакетаў хутчэй за ўсё створана даследнікамі бяспекі, якія ўдзельнічаюць у праграмах атрымання ўзнагарод за выяўленне ўразлівасцяў (bug bountie), бо якія адпраўляюцца дадзеныя абмяжоўваюцца імем карыстача і сістэмы, і дзеянні выконваюцца відавочна, без спроб схаваць свае паводзіны .

З пакетаў са шкоднаснай актыўнасцю адзначаюцца:

  • PyPI-пакет discordcmd, у якім зафіксавана адпраўка нетыповых запытаў да raw.githubusercontent.com, Discord API і ipinfo.io. Указаны пакет загружаў код бэкдора з GitHub і ўсталёўваў яго ў каталог Windows-кліента Discord, пасля чаго запускаў працэс пошуку токенаў Discord у файлавай сістэме і адпраўкі іх на вонкавы Discord-сервер, падкантрольны атакавалым.
  • NPM-пакет colorsss, які таксама спрабаваў перасылаць на вонкавы сервер токены ад уліковага запісу ў Discord.
  • NPM-пакет @roku-web-core/ajax - падчас усталёўкі адпраўляў дадзеныя аб сістэме і запускаў апрацоўшчык (reverse shell), які прымае вонкавыя злучэнні і што запускае каманды.
  • PyPI-пакет secrevthree - запускаў reverse shell пры імпартаванні вызначанага модуля.
  • NPM-пакет random-vouchercode-generator - пасля імпартавання бібліятэкі адпраўляў запыт на знешні сервер, які вяртаў каманду і час у які яе неабходна запусціць.

Праца Package Analysis зводзіцца да аналізу ў зыходных тэкстах пакетаў кода для ўсталёўкі сеткавых злучэнняў, доступу да файлаў і запуску каманд. Дадаткова адсочваецца змена стану пакетаў для вызначэння дадання шкоднасных уставак у адным з выпускаў першапачаткова бяскрыўднага ПА. Для маніторынгу з'яўлення новых пакетаў у рэпазітарах і занясенні змен у раней размешчаныя пакеты ўжываецца інструментар Package Feeds, якія ўніфікуюць працу з рэпазітарамі NPM, PyPI, Go, RubyGems, Packagist, NuGet і Crate.

Package Analysis уключае тры базавыя кампаненты, якія могуць выкарыстоўвацца як у звязку, так і па асобнасці:

  • Планавальнік запуску прац па аналізе пакетаў на аснове дадзеных з Package Feeds.
  • Аналізатар, які непасрэдна правярае пакет і ацэньвае яго паводзіны з выкарыстаннем метадаў статычнага аналізу і дынамічнай трасіроўкі. Праверка ажыццяўляецца ў ізаляваным асяроддзі.
  • Загрузнік, які змяшчае вынікі праверкі ў сховішчы BigQuery.

Крыніца: opennet.ru

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