Spremište PyPI sadrži potencijalno nesiguran kod

Istraživači sa Univerziteta u Turku (Finska) obznanio nedavno rezultate analize uradili su sa paketima u spremištu by PyPI za upotrebu potencijalno opasnih konstrukcija koje bi mogle generirati ranjivosti. U analizi da izvedeno je oko 197.000 paketa i identifikovano 749.000 mogućih sigurnosnih problema.

Drugim riječima, 46% paketa ima barem jedan od ovih problema, od kojih su među najčešćim problemima oni koji se odnose na rukovanje iznimkama i korištenje mogućnosti zamjene koda.

Od 749 hiljada identifikovanih problema, 442 hiljade (41%) je označeno kao maloljetno, 227 hiljada (30%) kao umjereno opasnih i 80 tisuća (11%) opasnih.

Skup podataka se temelji na snimci svih paketa pohranjenih u Python Indeksu paketa (PyPI) ...

U pogledu vrsta problema, poput obrade izuzetaka i različitih injekcija koda, bili su najčešći problemi. U tom smislu modul niti se ističe. Razmišljajući o generalno malim veličinama paketa, metrike veličine softvera ne predviđaju dobro broj problema otkrivenih analizom. 

Neki paketi nisu uobičajeni i sadrže tisuće problema: Na primjer, 2589 problema je pronađeno u PyGGI paketu, uglavnom vezano za upotrebu konstrukcije "try-except-pass", a 2356 problema je pronađeno u appengine-sdk paketu. Postoji i mnogo problema u paketima genie.libs.ops, pbcore i genie.libs.parser.

Valja napomenuti da su rezultati dobiveni na temelju automatizirane statičke analize, koja ne uzima u obzir kontekst primjene određenih struktura.

Predložio je Bandit programer, koji je korišten za skeniranje koda da je zbog velikog broja lažno pozitivnih rezultata, lrezultati skeniranja ne mogu se smatrati ranjivostima direktno bez dodatnog ručnog pregleda svakog problema.

Na primjer, raščlanjivač smatra korištenje sigurnosnih generatora slučajnih brojeva i algoritama heširanja kao što je MD5 sigurnosnim problemom, dok se u kodu takvi algoritmi mogu koristiti u svrhe koje ne utječu na sigurnost.

Analizator takođe smatra da se vrši spoljna obrada podataka u nesigurnim funkcijama poput pickle, yaml.load, subprocess i eval to je problem, ali ova upotreba nije nužno povezana s ranjivošću i, u stvari, upotreba ovih funkcija može biti problem implementiran bez prijetnje sigurnosti.

Među kontrolama koje su korištene u istraživanju:

  • Korištenje potencijalno nesigurnih funkcija exec, mktemp, eval, mark_safe itd.
  • Nesigurna konfiguracija prava pristupa datotekama.
  • Priključite mrežni utikač na sva mrežna sučelja.
  • Upotreba lozinki i šifriranih ključeva.
  • Korištenje unaprijed definiranog privremenog direktorija.
  • Korištenje pass i continue u rukovateljima izuzetaka u sveobuhvatnom stilu.
  • Pokrenite web aplikacije zasnovane na Flask web okviru s omogućenim načinom otklanjanja grešaka.
  • Korištenje nesigurnih metoda za deserijalizaciju podataka.
  • Korištenje hash funkcija MD2, MD4, MD5 i SHA1.
  • Korištenje nesigurnih DES šifri i načina šifriranja.
  • Korištenje nesigurne implementacije HTTPSConnection u nekim verzijama Pythona.
  • Određivanje datoteke: // sheme u urlopen -u.
  • Prilikom izvođenja kriptografskih zadataka koristite generatore pseudo-slučajnih brojeva.
  • Korištenje Telnet protokola.
  • Korištenje nesigurnih XML raščlanjivača.

Osim toga, spominje se otkrivanje 8 zlonamjernih paketa u direktoriju PyPI. Problemski paketi preuzeti su više od 30 puta prije nego što su uklonjeni. Da bismo sakrili zlonamjerne aktivnosti i izbjegli jednostavna upozorenja statičkog rastavljača na paketima, koristili smo blok kodiranje sa kodom u formatu Base64 i postupno izvršili njegovo dekodiranje pozivanjem eval.

Kôd koji se nalazi u paketima noblesse, genesisbot, su, suff, noblesse2 i noblessev2 za presretanje brojeva kreditnih kartica i lozinki pohranjenih u preglednicima Chrome i Edge, kao i za prijenos tokena računa iz aplikacije Discord i slanje podataka iz sistema, uključujući i snimke zaslona ekranskog sadržaja. ... Paketi pytagora i pytagora2 uključivali su mogućnost preuzimanja i pokretanja izvršnog koda treće strane.

Konačno ako ste zainteresirani da saznate više o tome, možete provjeriti detalje Na sledećem linku.


Budite prvi koji komentarišete

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.