Spremište PyPI sadrži potencijalno nesiguran kod

Istraživači sa Sveučilišta Turku (Finska) obznanio nedavno rezultate analize učinili su s paketima u spremištu od PyPI za uporabu potencijalno opasnih konstrukcija koje bi mogle generirati ranjivosti. U analizi da provedeno je oko 197.000 paketa i identificirano 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 tisuća identificiranih problema, 442 tisuće (41%) označeno je kao maloljetno, 227 tisuća (30%) kao umjereno opasnih i 80 tisuća (11%) opasnih.

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

U pogledu vrsta problema, kao što su rukovanje iznimkama i različite injekcije koda, bili su najčešći problemi. U tom smislu modul niti se ističe. Razmišljajući o općenito malim veličinama paketa, mjerni podaci o veličini softvera ne predviđaju dobro broj problema otkrivenih analizom. 

Neki su paketi neobični i sadrže tisuće problema: Na primjer, u paketu PyGGI pronađeno je 2589 problema, uglavnom povezanih s upotrebom konstrukcije "pokušaj-osim-prolaza", a 2356 problema pronađeno je u paketu appengine-sdk. Također postoji 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 developer, koji je korišten za skeniranje koda da je zbog velikog broja lažno pozitivnih rezultata, lrezultati skeniranja ne mogu se smatrati ranjivostima izravno bez dodatnog ručnog pregleda svakog problema.

Na primjer, raščlanjivač smatra uporabu nepouzdanih generatora slučajnih brojeva i algoritme raspršivanja kao što je MD5 kao sigurnosni problem, dok se u kodu takvi algoritmi mogu koristiti u svrhe koje ne utječu na sigurnost.

Analizator također smatra da se vrši vanjska obrada podataka u nesigurnim funkcijama poput pickle, yaml.load, subprocess i eval to je problem, ali ova uporaba nije nužno povezana s ranjivošću i, zapravo, korištenje ovih funkcija može biti problem koji se provodi 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.
  • Korištenje lozinki i šifriranih ključeva.
  • Korištenje unaprijed definiranog privremenog direktorija.
  • Korištenje pass and continue u rukovateljima izuzetaka u sveobuhvatnom stilu.
  • Pokretanje web aplikacija temeljenih na Flask web okviru s omogućenim načinom otklanjanja pogreš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 urlopenu.
  • Prilikom izvođenja kriptografskih zadataka koristite generatore pseudo-slučajnih brojeva.
  • Korištenje Telnet protokola.
  • Korištenje nesigurnih XML raščlanjivača.

Dodatno se spominje otkrivanje 8 zlonamjernih paketa u direktoriju PyPI. Paketi s problemima preuzeti su više od 30 puta prije nego što su uklonjeni. Kako bismo sakrili zlonamjerne aktivnosti i izbjegli jednostavna upozorenja statičkog rastavljača na paketima, upotrijebili smo blok kodiranje s kodom u formatu Base64 i stupnjevali njegovo izvršavanje nakon dekodiranja pozivom 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 sustava, 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 vas zanima više o tome, možete provjeriti detalje U sljedećem linku.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.