PyPI -depot inneholder potensielt usikker kode

Forskere fra University of Turku (Finland) gjort kjent nylig resultatene av en analyse de gjorde med pakkene i depotet av PyPI for bruk av potensielt farlige konstruksjoner som kan generere sårbarheter. I analysen det om lag 197.000 749.000 pakker ble utført og XNUMX XNUMX mulige sikkerhetsproblemer ble identifisert.

Med andre ord, 46% av pakkene har minst ett av disse problemene, hvorav blant de vanligste problemene er de som er knyttet til håndtering av unntak og bruk av kodeerstatningsfunksjoner.

Av de 749 tusen identifiserte problemene, 442 tusen (41%) ble markert som mindreårige, 227 tusen (30%) som moderat farlig og 80 tusen (11%) som farlige.

Datasettet er basert på et øyeblikksbilde av alle pakker som er lagret i Python Package Index (PyPI) ...

Når det gjelder typer problemer, for eksempel håndtering av unntak og forskjellige kodeinjeksjoner, har det vært de vanligste problemene. På denne måten skiller trådmodulen seg ut. Med tanke på de generelt små pakkestørrelsene, forutser programvarestørrelsesberegninger ikke godt antall problemer som avsløres gjennom analyse. 

Noen pakker er utenom det vanlige og inneholder tusenvis av problemer: For eksempel ble det funnet 2589 problemer i PyGGI-pakken, hovedsakelig knyttet til bruk av "prøv-unntatt-pass" -konstruksjonen, og 2356 problemer ble funnet i appengine-sdk-pakken. Det er også mange problemer i genie.libs.ops, pbcore og genie.libs.parser -pakkene.

Det skal bemerkes at resultatene ble oppnådd på grunnlag av en automatisert statisk analyse, som ikke tar hensyn til konteksten for anvendelse av visse strukturer.

Bandit -utvikleren, som ble brukt til å skanne koden, foreslo at på grunn av det store antallet falske positiver, lskanneresultater kan ikke betraktes som sårbarheter direkte uten en ekstra manuell gjennomgang av hvert problem.

For eksempel anser parseren bruk av upålitelige generatorer for tilfeldige tall og hasjalgoritmer som MD5 som et sikkerhetsproblem, mens slike koder i kode kan brukes til formål som ikke påvirker sikkerheten.

Analysatoren anser også at enhver ekstern databehandling i usikre funksjoner som pickle, yaml.load, delprosess og eval det er et problem, men denne bruken er ikke nødvendigvis forbundet med en sårbarhet, og faktisk kan bruken av disse funksjonene være et problem som er implementert uten en trussel mot sikkerheten.

Blant kontrollene som ble brukt i studien:

  • Bruk av potensielt usikre funksjoner exec, mktemp, eval, mark_safe, etc.
  • Usikker konfigurasjon av filtilgangsrettigheter.
  • Koble en nettverkskontakt til alle nettverksgrensesnitt.
  • Bruk av passord og krypterte nøkler.
  • Bruke en forhåndsdefinert midlertidig katalog.
  • Bruk pass og fortsett i catch-all-style unntaksbehandlere.
  • Start webapplikasjoner basert på Flask -nettrammen med feilsøkingsmodus aktivert.
  • Bruker usikre metoder for å deserialisere data.
  • Bruke MD2, MD4, MD5 og SHA1 hashfunksjoner.
  • Bruk av usikre DES -chiffer og krypteringsmoduser.
  • Bruke en usikker HTTPSConnection -implementering i noen versjoner av Python.
  • Spesifiserer filen: // schema i urlopen.
  • Bruk pseudo-tilfeldige tallgeneratorer når du utfører kryptografiske oppgaver.
  • Bruke Telnet -protokollen.
  • Bruker usikre XML -parsere.

I tillegg nevnes deteksjon av 8 ondsinnede pakker i PyPI -katalogen. Problempakker ble lastet ned mer enn 30 64 ganger før de ble fjernet. For å skjule ondsinnet aktivitet og unngå enkle statiske parservarsler på pakker, bruker vi blokkoding med kode ved hjelp av BaseXNUMX -formatet og organiserer utførelsen etter dekoding ved å ringe eval.

Koden som finnes i noblesse, genesisbot, er, suff, noblesse2 og noblessev2 pakker for å fange opp kredittkortnumre og passord lagret i Chrome og Edge nettlesere, samt overføre kontotokener fra Discord -applikasjonen og sende data fra systemet, inkludert skjermbilder av skjerminnhold. … Pytagora- og pytagora2-pakkene inkluderte muligheten til å laste ned og kjøre tredjeparts kjørbar kode.

Endelig hvis du er interessert i å vite mer om det, kan du sjekke detaljene I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.