Depozitul PyPI conține cod potențial nesigur

Cercetători de la Universitatea din Turku (Finlanda) făcut cunoscut recent rezultatele unei analize au făcut pachetele din depozit de P&PI pentru utilizarea construcțiilor potențial periculoase care ar putea genera vulnerabilități. În analiza că au fost efectuate aproximativ 197.000 de pachete și au fost identificate 749.000 de posibile probleme de securitate.

Cu alte cuvinte, 46% din pachete au cel puțin una dintre aceste probleme, dintre care printre cele mai frecvente probleme sunt cele legate de gestionarea excepțiilor și utilizarea capacităților de substituire a codului.

Din cele 749 de mii de probleme identificate, 442 de mii (41%) au fost marcați ca minori, 227 mii (30%) ca fiind moderat periculoase și 80 de mii (11%) ca fiind periculoase.

Setul de date se bazează pe un instantaneu al tuturor pachetelor stocate în Python Package Index (PyPI) ...

În ceea ce privește tipurile de probleme, cum ar fi gestionarea excepțiilor și diferite injecții de cod, au fost cele mai frecvente probleme. În acest sens, modulul fire se remarcă. Reflectând asupra dimensiunilor de pachete în general mici, valorile dimensiunilor software-ului nu prezic bine numărul de probleme relevate prin analiză. 

Unele pachete sunt ieșite din comun și conțin mii de probleme: De exemplu, 2589 de probleme au fost găsite în pachetul PyGGI, legate în principal de utilizarea construcției „try-except-pass” și 2356 de probleme au fost găsite în pachetul appengine-sdk. Există, de asemenea, o mulțime de probleme în pachetele genie.libs.ops, pbcore și genie.libs.parser.

Trebuie remarcat faptul că rezultatele au fost obținute pe baza unei analize statice automatizate, care nu ia în considerare contextul aplicării anumitor structuri.

Dezvoltatorul Bandit, care a fost folosit pentru a scana codul, a sugerat că, datorită numărului mare de falsuri pozitive, lrezultatele scanării nu pot fi considerate vulnerabilități direct fără o revizuire manuală suplimentară a fiecărei probleme.

De exemplu, analizorul consideră utilizarea unor generatoare de numere aleatorii nesigure și a algoritmilor de hash, cum ar fi MD5, ca o problemă de securitate, în timp ce în cod astfel de algoritmi pot fi utilizați în scopuri care nu afectează securitatea.

Analizorul consideră, de asemenea, că orice prelucrare externă a datelor în funcții nesigure precum pickle, yaml.load, subprocess și eval e o problemă, dar această utilizare nu este neapărat asociată cu o vulnerabilitate și, de fapt, utilizarea acestor funcții poate fi o problemă implementată fără o amenințare la adresa securității.

Printre controalele utilizate în studiu:

  • Utilizarea funcțiilor potențial nesigure exec, mktemp, eval, mark_safe etc.
  • Configurarea nesigură a drepturilor de acces la fișiere.
  • Conectați o mufă de rețea la toate interfețele de rețea.
  • Utilizarea parolelor și cheilor criptate.
  • Utilizarea unui director temporar predefinit.
  • Folosind pass și continuă în handlerele de excepție de tip catch-all.
  • Lansați aplicații web bazate pe cadrul web Flask cu modul de depanare activat.
  • Folosirea metodelor nesigure pentru deserializarea datelor.
  • Utilizarea funcțiilor hash MD2, MD4, MD5 și SHA1.
  • Utilizarea cifrelor DES nesigure și a modurilor de criptare.
  • Utilizarea unei implementări HTTPSConnection nesigure în unele versiuni de Python.
  • Specificarea fișierului: // schema în urlopen.
  • Utilizați generatoare de numere pseudo-aleatorii atunci când efectuați sarcini criptografice.
  • Folosind protocolul Telnet.
  • Folosind analizoare XML nesigure.

În plus, este menționată detectarea a 8 pachete malware în directorul PyPI. Pachetele cu probleme au fost descărcate de peste 30 de ori înainte de a fi eliminate. Pentru a ascunde activitatea rău intenționată și pentru a evita avertismentele simple ale analizorilor statici pe pachete, am folosit codarea blocului cu cod folosind formatul Base64 și am realizat executarea acestuia după decodare apelând eval.

Codul găsit în pachetele noblesse, genesisbot, sunt pachete, suff, noblesse2 și noblessev2 pentru a intercepta numerele cardurilor de credit și parolele stocate în browserele Chrome și Edge, precum și pentru a transfera jetoane de cont din aplicația Discord și a trimite date din sistem, inclusiv capturi de ecran a conținutului ecranului. … Pachetele pytagora și pytagora2 includeau posibilitatea de a descărca și rula cod executabil de la terți.

În cele din urmă dacă sunteți interesat să aflați mai multe despre asta, puteți verifica detaliile În următorul link.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.