El repositori PyPI contenen codi potencialment insegur

Investigadors de la Universitat de Turku (Finlàndia) van donar a conèixer fa poc els resultats d'una anàlisi que van realitzar als paquets al repositori de PyPI per a l'ús de construccions potencialment perilloses que podrien generar vulnerabilitats. En l'anàlisi que es va realitzar a prop de 197.000 paquets es va identificar a 749.000 possibles problemes de seguretat.

És a dir, el 46% dels paquets té al menys un d'aquests problemes, que d'ells entre els problemes més comuns es troben els relacionats amb el maneig d'excepcions i l'ús de capacitats de substitució de codi.

Dels 749 problemes identificats, 442 (41%) van ser marcats com a menors, 227 mil (30%) com moderadament perillosos i 80 mil (11%) com a perillosos.

El conjunt de dades es basa en una instantània de tots els paquets emmagatzemats en l'índex de paquets de Python (PyPI) ...

En termes dels tipus de problemes, com el maneig d'excepcions i les diferents injeccions de codi han estat els problemes més comuns. En aquest sentit, destaca el mòdul de subprocessos. Reflexionant la mida generalment petit dels paquets, les mètriques de la mida de l'programari no prediu bé la quantitat de problemes revelats a través del anàlisi. 

Alguns paquets estan fora del comú i contenen milers de problemes: Per exemple, es van trobar 2589 problemes en el paquet PyGGI, principalment relacionats amb l'ús de la construcció «try-except-pass» i es van trobar 2356 problemes en appengine- paquet sdk. També hi ha una gran quantitat de problemes en els paquets genie.libs.ops, pbcore i genie.libs.parser.

Cal assenyalar que els resultats es van obtenir sobre la base d'una anàlisi estàtic automatitzat, que no té en compte el context de l'aplicació de determinades estructures.

El desenvolupador d'Bandit, que es va utilitzar per escanejar el codi, va suggerir que a causa de la gran quantitat de falsos positius, lus resultats de l'escaneig no poden considerar vulnerabilitats directament sense una revisió manual addicional de cada problema.

Per exemple, l'analitzador considera l'ús de generadors de nombres aleatoris no fiables i algoritmes hash com MD5 com un problema de seguretat, mentre que en el codi aquests algoritmes poden usar-se per a propòsits que no afecten la seguretat.

L'analitzador també considera que qualsevol processament de dades externes en funcions insegures com pickle, yaml.load, subprocess i eval és un problema, Però aquest ús no està necessàriament associat amb una vulnerabilitat i, de fet, l'ús d'aquestes funcions pot ser un problema implementat sense una amenaça a la seguretat.

Entre els controls utilitzats en l'estudi:

  • Ús de funcions potencialment insegures exec, mktemp, eval, mark_safe, etc.
  • Configuració insegura de drets d'accés a arxius.
  • Connecteu un endoll de xarxa a totes les interfícies de xarxa.
  • Ús de contrasenyes i claus codificades.
  • Usant un directori temporal per omissió.
  • Utilitza passar i continuar en manejadors d'excepcions catch-all-style.
  • Llançament d'aplicacions web basades en el marc web Flask amb la manera de depuració habilitat.
  • Utilitza mètodes insegurs per deserializar dades.
  • Utilitzant funcions hash MD2, MD4, MD5 i SHA1.
  • Ús de xifrats i maneres de xifrat DES insegurs.
  • Utilitza una implementació HTTPSConnection insegura en algunes versions de Python.
  • Especificant l'esquema file: // en urlopen.
  • Utilitza generadors de nombres pseudoaleatoris a l'realitzar tasques criptogràfiques.
  • Usant el protocol Telnet.
  • Utilitzant analitzadors XML insegurs.

Addicionalment, s'esmenta la detecció de 8 paquets maliciosos en el directori PyPI. Els paquets problemàtics es van descarregar més de 30 mil vegades abans de ser eliminats. Per ocultar l'activitat maliciosa i evitar les advertències d'analitzadors estàtics simples en els paquets, fem servir la codificació de blocs amb codi usant el format Base64 i vam organitzar la seva execució després de la descodificació trucant a aval.

El codi que es troba en els paquets noblesse, genesisbot, are, Suff, noblesse2 i noblessev2 per interceptar números de targetes de crèdit i contrasenyes emmagatzemades en els navegadors Chrome i Edge, així com transferir tokens de compte des de l'aplicació Discord i enviar dades de l' sistema, incloses captures de pantalla de l'contingut de la pantalla. ... Els paquets pytagora i pytagora2 incloïen la capacitat de descarregar i executar codi executable de tercers.

Finalment si estàs interessat en conèixer més a l'respecte, Pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.