PyPI -depot indeholder potentielt usikker kode

Forskere fra University of Turku (Finland) gjort kendt for nylig resultaterne af en analyse de gjorde med pakkerne i depotet af PyPI til brug af potentielt farlige konstruktioner, der kan generere sårbarheder. I analysen, at omkring 197.000 pakker blev udført og 749.000 mulige sikkerhedsproblemer blev identificeret.

Med andre ord har 46% af pakkerne mindst et af disse problemer, hvoraf blandt de mest almindelige problemer er dem, der er relateret til håndtering af undtagelser og brug af kodeudskiftningsmuligheder.

Af de 749 tusinde identificerede problemer, 442 tusinde (41%) blev markeret som mindreårige, 227 tusinde (30%) som moderat farlige og 80 tusinde (11%) som farlige.

Datasættet er baseret på et øjebliksbillede af alle pakker, der er gemt i Python Package Index (PyPI) ...

Med hensyn til typerne af problemer, såsom håndtering af undtagelser og forskellige kodeindsprøjtninger, har været de mest almindelige problemer. I denne forstand skiller trådmodulet sig ud. Når man reflekterer over de generelt små pakkestørrelser, forudsiger softwarestørrelsesmålinger ikke godt antallet af problemer afsløret ved analyse. 

Nogle pakker er ud over det sædvanlige og indeholder tusindvis af problemer: For eksempel blev der fundet 2589 problemer i PyGGI-pakken, hovedsageligt relateret til brugen af ​​"prøv-undtagen-pass" -konstruktionen, og 2356 problemer blev fundet i appengine-sdk-pakken. Der er også mange problemer i genie.libs.ops, pbcore og genie.libs.parser -pakkerne.

Det skal bemærkes, at resultaterne blev opnået på grundlag af en automatiseret statisk analyse, som ikke tager hensyn til konteksten for anvendelsen af ​​visse strukturer.

Bandit -udvikleren, der blev brugt til at scanne koden, foreslog at på grund af det store antal falske positiver, lscanningsresultater kan ikke betragtes som sårbarheder direkte uden en yderligere manuel gennemgang af hvert problem.

For eksempel betragter parseren brugen af ​​upålidelige generatorer for tilfældige tal og hashalgoritmer som MD5 som et sikkerhedsanliggende, hvorimod i kode sådanne algoritmer kan bruges til formål, der ikke påvirker sikkerheden.

Analysatoren mener også, at enhver ekstern databehandling i usikre funktioner som pickle, yaml.load, delproces og eval det er et problem, men denne brug er ikke nødvendigvis forbundet med en sårbarhed, og faktisk kan brugen af ​​disse funktioner være et problem implementeret uden en sikkerhedstrussel.

Blandt de kontroller, der blev brugt i undersøgelsen:

  • Brug af potentielt usikre funktioner exec, mktemp, eval, mark_safe osv.
  • Usikker konfiguration af filadgangsrettigheder.
  • Tilslut et netværksstik til alle netværksgrænseflader.
  • Brug af adgangskoder og krypterede nøgler.
  • Brug af en foruddefineret midlertidig mappe.
  • Brug af pass og fortsæt i catch-all-style undtagelseshåndterere.
  • Start webapplikationer baseret på Flask -webrammen med fejlfindingstilstand aktiveret.
  • Brug af usikre metoder til at deserialisere data.
  • Brug af MD2, MD4, MD5 og SHA1 hashfunktioner.
  • Brug af usikre DES -chiffer og krypteringstilstande.
  • Brug af en usikker HTTPSConnection -implementering i nogle versioner af Python.
  • Angivelse af filen: // skema i urlopen.
  • Brug pseudo-tilfældige talgeneratorer, når du udfører kryptografiske opgaver.
  • Brug af Telnet -protokollen.
  • Brug af usikre XML -parsere.

Derudover nævnes påvisning af 8 ondsindede pakker i PyPI -biblioteket. Problempakker blev downloadet mere end 30 gange, før de blev fjernet. For at skjule ondsindet aktivitet og undgå simple statiske parseradvarsler på pakker brugte vi blokkodning med kode ved hjælp af Base64 -formatet og iscenesatte dens udførelse efter afkodning ved at kalde eval.

Koden, der findes i noblesse, genesisbot, er, suff, noblesse2 og noblessev2 -pakker til at opfange kreditkortnumre og adgangskoder, der er gemt i Chrome og Edge -browsere, samt overføre kontotokener fra Discord -applikationen og sende data fra systemet, herunder skærmbilleder af skærmens indhold. … Pytagora- og pytagora2-pakkerne inkluderede muligheden for at downloade og køre tredjeparts eksekverbar kode.

Endelig hvis du er interesseret i at vide mere om det, kan du kontrollere detaljerne I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.