Utviklerne av Packj-plattformen, som analyserer sikkerheten til biblioteker, har publisert et åpent kommandolinjeverktøy som gjør det mulig å identifisere risikable konstruksjoner i pakker som kan være knyttet til gjennomføring av ondsinnet aktivitet eller tilstedeværelse av sårbarheter som brukes til å angripe prosjekter som bruker de aktuelle pakkene ("supply chain"). Verktøyet støtter sjekk av pakker på språkene Python og JavaScript, som er plassert i katalogene PyPi og NPM (i løpet av denne måneden planlegges også støtte for Ruby og RubyGems). Koden til verktøyet er skrevet i Python og distribueres under AGPLv3-lisensen.
I løpet av analysen av 330 000 pakker ved hjelp av det foreslåtte verktøyet i PyPi-repoet, ble 42 ondsinnede pakker med bakdører og 2 400 risikable pakker identifisert. Under inspeksjonen utføres en statisk kodeanalyse for å identifisere API-funksjoner og vurdere tilstedeværelsen av kjente sårbarheter, merket i OSV-databasen. For API-analyse brukes pakken MalOSS. Koden til pakkene analyseres for typiske mønstre som ofte brukes i ondsinnet programvare. Mønstrene er utarbeidet basert på studier av 651 pakker med bekreftet ondsinnet aktivitet.
Det identifiseres også attributter og metadata som fører til økt risiko for feilaktig bruk, som utføre blokker gjennom "eval" eller "exec", generering av ny kode under kjøring, bruk av teknikker for forvirring og skjuling av kode (obfuscated), manipulering med miljøvariabler, feilaktig tilgang til filer, tilgang til nettressurser i installasjons-scenarier (setup.py), bruk av type-squatting (tilordning av navn som ligner populære biblioteker), identifisering av utdaterte og bortgjemte prosjekter, indikasjon av ikke-eksisterende e-poster og nettsteder, samt fravær av offentlig kode-repo.
I tillegg kan det nevnes at andre sikkerhetsforskere har identifisert fem ondsinnede pakker i PyPi-repoet som sendte ut server innholdet i miljøvariablene med det formål å stjele tokens til AWS og systemer for kontinuerlig integrasjon: loglib-modules (presentert som moduler til det legitime biblioteket loglib), pyg-modules, pygrata og pygrata-utils (presentert som tillegg til det legitime biblioteket pyg) og hkg-sol-utils.

Kilde: opennet.ru
