Analizilo estis publikigita, kiu identigis 200 malicajn pakaĵojn en NPM kaj PyPI

La OpenSSF (Open Source Security Foundation), formita de la Linukso-Fondaĵo kaj celanta plibonigi la sekurecon de malfermkoda programaro, prezentis la malferman projekton Package Analysis, kiu evoluigas sistemon por analizi la ĉeeston de malica kodo en pakaĵoj. La projektkodo estas skribita en Go kaj distribuita sub la licenco Apache 2.0. Prepara skanado de la deponejoj de NPM kaj PyPI uzante la proponitajn ilojn permesis al ni identigi pli ol 200 antaŭe nerimarkitajn malicajn pakaĵojn.

La plej granda parto de la identigitaj problemaj pakaĵoj manipulas la intersekciĝon de nomoj kun internaj nepublikaj dependecoj de projektoj (dependeca konfuzo-atako) aŭ uzas tajperajn metodojn (asignante nomojn similajn al la nomoj de popularaj bibliotekoj), kaj ankaŭ vokas skriptojn kiuj aliras eksterajn gastigantojn dum la instala procezo. Laŭ la programistoj de Package Analysis, la plej multaj el la identigitaj problemaj pakaĵoj estis plej verŝajne kreitaj de sekurecaj esploristoj partoprenantaj en cim-premioprogramoj, ĉar la datumoj senditaj estas limigitaj al la uzanto kaj sistemnomo, kaj la agoj estas faritaj eksplicite, sen provoj por kaŝi ilian konduton.

Pakoj kun malica agado inkluzivas:

  • PyPI-pakaĵo discordcmd, kiu registras sendi maltipajn petojn al raw.githubusercontent.com, Discord API kaj ipinfo.io. La specifita pako elŝutis la malantaŭan kodon de GitHub kaj instalis ĝin en la Discord Vindoza klienta dosierujo, post kio ĝi komencis la procezon serĉi Discord-tokojn en la dosiersistemo kaj sendi ilin al ekstera Discord-servilo kontrolita de la atakantoj.
  • La kolorss NPM-pakaĵo ankaŭ provis sendi ĵetonojn de Discord-konto al ekstera servilo.
  • NPM-pakaĵo @roku-web-core/ajax - dum la instalprocezo ĝi sendis datumojn pri la sistemo kaj lanĉis pritraktilon (inversa ŝelo) kiu akceptis eksterajn konektojn kaj lanĉis komandojn.
  • PyPI-pakaĵo secrevthree - lanĉis inversan ŝelon dum importado de specifa modulo.
  • NPM-pakaĵo random-vouchercode-generator - post importo de la biblioteko, ĝi sendis peton al ekstera servilo, kiu resendis la komandon kaj la tempon, kiam ĝi devus esti rulita.

La laboro de Paka Analizo konsistas en analizi kodpakaĵojn en la fontkodo por establi retajn konektojn, aliri dosierojn kaj ruli komandojn. Aldone, ŝanĝoj en la stato de pakaĵoj estas monitoritaj por determini la aldonon de malicaj enmetoj en unu el la eldonoj de komence sendanĝera programaro. Por kontroli la aspekton de novaj pakaĵoj en deponejoj kaj fari ŝanĝojn al antaŭe afiŝitaj pakaĵoj, la ilaro de Package Feeds estas uzata, kiu unuigas laboron kun la deponejoj NPM, PyPI, Go, RubyGems, Packagist, NuGet kaj Crate.

Paka Analizo inkluzivas tri bazajn komponentojn, kiuj povas esti uzataj kaj kune kaj aparte:

  • Planilo por lanĉi pakaĵan analizlaboron bazitan sur datumoj de Pakaj Fluoj.
  • Analizilo kiu rekte ekzamenas pakaĵon kaj taksas ĝian konduton uzante senmovan analizon kaj dinamikajn spurajn teknikojn. La provo estas farita en izolita medio.
  • Ŝargilo kiu metas la testrezultojn en BigQuery-stokadon.

fonto: opennet.ru

Aldoni komenton