Na-publish ang isang analyzer na natukoy ang 200 malisyosong pakete sa NPM at PyPI

Ang OpenSSF (Open Source Security Foundation), na binuo ng Linux Foundation at naglalayong pahusayin ang seguridad ng open source software, ay nagpasimula ng open project Package Analysis, na bumubuo ng isang sistema para sa pagsusuri ng pagkakaroon ng malisyosong code sa mga pakete. Ang code ng proyekto ay nakasulat sa Go at ipinamahagi sa ilalim ng lisensya ng Apache 2.0. Ang isang paunang pag-scan ng mga repositoryo ng NPM at PyPI gamit ang mga iminungkahing tool ay nagbigay-daan sa amin na matukoy ang higit sa 200 dati nang hindi natukoy na mga nakakahamak na pakete.

Ang karamihan sa mga natukoy na may problemang pakete ay nagmamanipula sa intersection ng mga pangalan na may panloob na hindi pampublikong dependency ng mga proyekto (dependency confusion attack) o gumagamit ng mga typosquatting na pamamaraan (nagtatalaga ng mga pangalan na katulad ng mga pangalan ng mga sikat na aklatan), at tumatawag din sa mga script na nag-a-access sa mga external na host habang ang proseso ng pag-install. Ayon sa mga developer ng Package Analysis, karamihan sa mga natukoy na may problemang package ay malamang na nilikha ng mga security researcher na lumalahok sa mga bug bounty program, dahil ang data na ipinadala ay limitado sa user at pangalan ng system, at ang mga aksyon ay tahasang isinasagawa, nang walang pagtatangka na itago ang kanilang pag-uugali.

Kasama sa mga package na may nakakahamak na aktibidad ang:

  • PyPI package discordcmd, na nagtatala ng pagpapadala ng mga hindi tipikal na kahilingan sa raw.githubusercontent.com, Discord API at ipinfo.io. Na-download ng tinukoy na package ang backdoor code mula sa GitHub at na-install ito sa direktoryo ng kliyente ng Discord Windows, pagkatapos nito sinimulan ang proseso ng paghahanap ng mga token ng Discord sa file system at ipinadala ang mga ito sa isang panlabas na server ng Discord na kinokontrol ng mga umaatake.
  • Ang mga colorss NPM package ay sinubukan ding magpadala ng mga token mula sa isang Discord account patungo sa isang panlabas na server.
  • NPM package @roku-web-core/ajax - sa panahon ng proseso ng pag-install nagpadala ito ng data tungkol sa system at naglunsad ng handler (reverse shell) na tumatanggap ng mga panlabas na koneksyon at naglunsad ng mga command.
  • PyPI package secrevthree - naglunsad ng reverse shell kapag nag-import ng isang partikular na module.
  • NPM package random-vouchercode-generator - pagkatapos i-import ang library, nagpadala ito ng kahilingan sa isang panlabas na server, na nagbalik ng command at ang oras kung kailan ito dapat patakbuhin.

Ang gawain ng Pagsusuri ng Package ay bumaba sa pagsusuri ng mga pakete ng code sa source code para sa pagtatatag ng mga koneksyon sa network, pag-access ng mga file, at pagpapatakbo ng mga command. Bilang karagdagan, ang mga pagbabago sa estado ng mga pakete ay sinusubaybayan upang matukoy ang pagdaragdag ng mga nakakahamak na pagsingit sa isa sa mga paglabas ng software na una nang hindi nakakapinsala. Upang subaybayan ang hitsura ng mga bagong pakete sa mga repositoryo at gumawa ng mga pagbabago sa naunang nai-post na mga pakete, ginagamit ang Package Feeds toolkit, na pinagsasama ang trabaho sa mga repositoryo ng NPM, PyPI, Go, RubyGems, Packagist, NuGet at Crate.

Ang Pagsusuri ng Package ay may kasamang tatlong pangunahing bahagi na maaaring gamitin nang magkasabay at magkahiwalay:

  • Scheduler para sa paglulunsad ng gawaing pagsusuri ng package batay sa data mula sa Package Feeds.
  • Isang analyzer na direktang sumusuri sa isang package at sinusuri ang gawi nito gamit ang static analysis at dynamic na mga diskarte sa pagsubaybay. Ang pagsubok ay isinasagawa sa isang nakahiwalay na kapaligiran.
  • Isang loader na naglalagay ng mga resulta ng pagsubok sa storage ng BigQuery.

Pinagmulan: opennet.ru

Magdagdag ng komento