Úložiště PyPI obsahuje potenciálně nezabezpečený kód

Výzkumníci z University of Turku (Finsko) oznámeno nedávno výsledky analýzy udělali s balíčky v úložišti od PyPI za použití potenciálně nebezpečných konstrukcí, které by mohly generovat zranitelnosti. V analýze, že bylo provedeno asi 197.000 749.000 balíků a bylo identifikováno XNUMX XNUMX možných bezpečnostních problémů.

Jinými slovy, 46% balíků má alespoň jeden z těchto problémů, z nichž mezi nejčastější problémy patří problémy související s vyřizováním výjimek a používáním možností nahrazování kódu.

Ze 749 tisíc identifikovaných problémů 442 tisíc (41%) bylo označeno jako nezletilí, 227 tisíc (30%) jako středně nebezpečný a 80 tisíc (11%) jako nebezpečných.

Datová sada je založena na snímku všech balíčků uložených v Python Package Index (PyPI) ...

Z hlediska typů problémů byly nejčastějšími problémy zpracování výjimek a vkládání různých kódů. V tomto smyslu vyniká modul vláken. Vzhledem k obecně malým velikostem paketů metriky velikosti softwaru nepředpovídají dobře počet problémů odhalených analýzou. 

Některé balíčky jsou neobvyklé a obsahují tisíce problémů: Například v balíčku PyGGI bylo nalezeno 2589 problémů, které se týkaly hlavně použití konstrukce „zkuste-vyjít-projít“, a 2356 problémů bylo nalezeno v balíčku appengine-sdk. V balíčcích genie.libs.ops, pbcore a genie.libs.parser je také mnoho problémů.

Je třeba poznamenat, že výsledky byly získány na základě automatizované statické analýzy, která nebere v úvahu kontext aplikace určitých struktur.

Vývojář Banditu, který byl použit ke skenování kódu, navrhl že vzhledem k velkému počtu falešných poplachů lvýsledky skenování nelze považovat za zranitelnosti přímo bez dodatečné ruční kontroly každého problému.

Analyzátor například považuje použití nespolehlivých generátorů náhodných čísel a algoritmů hash, jako je MD5, za problém zabezpečení, zatímco v kódu lze tyto algoritmy použít pro účely, které nemají vliv na zabezpečení.

Analyzátor také bere v úvahu jakékoli externí zpracování dat v nebezpečných funkcích, jako je okurka, yaml.load, podproces a eval to je problém, ale toto použití není nutně spojeno se zranitelností a ve skutečnosti může být používání těchto funkcí problémem implementovaným bez ohrožení zabezpečení.

Mezi ovládací prvky použité ve studii:

  • Použití potenciálně nebezpečných funkcí exec, mktemp, eval, mark_safe atd.
  • Nezabezpečená konfigurace přístupových práv k souborům.
  • Připojte síťovou zástrčku ke všem síťovým rozhraním.
  • Používání hesel a šifrovaných klíčů.
  • Použití předdefinovaného dočasného adresáře.
  • Použití pass and continue v obslužných rutinách výjimek typu catch-all.
  • Spouštějte webové aplikace založené na webovém rámci Flask s povoleným režimem ladění.
  • Použití nezabezpečených metod k deserializaci dat.
  • Pomocí hashovacích funkcí MD2, MD4, MD5 a SHA1.
  • Používání nezabezpečených šifer a režimů šifrování DES.
  • Použití nezabezpečené implementace HTTPSConnection v některých verzích Pythonu.
  • Určení souboru: // schéma v urlopenu.
  • Při provádění kryptografických úkolů používejte generátory pseudonáhodných čísel.
  • Pomocí protokolu Telnet.
  • Používání nezabezpečených analyzátorů XML.

Kromě toho je zmíněna detekce 8 škodlivých balíčků v adresáři PyPI. Problémové balíčky byly před odstraněním staženy více než 30 64krát. Abychom skryli škodlivou aktivitu a vyhnuli se jednoduchým upozorněním statického analyzátoru na balíčky, použili jsme blokové kódování pomocí kódu ve formátu BaseXNUMX a po dekódování jsme zinscenovali jeho spuštění voláním eval.

Kód nalezený v balíčcích noblesse, genesisbot, jsou, suff, noblesse2 a noblessev2 pro zachycení čísel kreditních karet a hesel uložených v prohlížečích Chrome a Edge, jakož i pro přenos tokenů účtů z aplikace Discord a odesílání dat ze systému, včetně screenshotů obsahu obrazovky. … Balíčky pytagora a pytagora2 obsahovaly možnost stáhnout a spustit spustitelný kód jiného výrobce.

Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.