Shramba PyPI vsebuje potencialno negotovo kodo

Raziskovalci z Univerze v Turku (Finska) dal vedeti pred kratkim rezultati analize so naredili s paketi v skladišču avtor PyPI za uporabo potencialno nevarnih konstrukcij, ki bi lahko ustvarile ranljivosti. V analizi to izvedenih je bilo približno 197.000 paketov in ugotovljenih 749.000 možnih varnostnih težav.

Z drugimi besedami, 46% paketov ima vsaj eno od teh težav, med katerimi so najpogostejše težave, povezane z ravnanjem z izjemami in uporabo možnosti zamenjave kode.

Od 749 tisoč ugotovljenih težav jih je 442 tisoč (41%) je bilo označenih kot mladoletnih, 227 tisoč (30%) kot zmerno nevarnih in 80 tisoč (11%) kot nevarnih.

Nabor podatkov temelji na posnetku vseh paketov, shranjenih v indeksu paketov Python (PyPI) ...

Kar zadeva vrste težav, kot so obravnavanje izjem in različne injekcije kode, so bile najpogostejše. V tem smislu izstopa modul niti. Če upoštevamo na splošno majhne velikosti paketov, meritve velikosti programske opreme ne napovedujejo števila težav, razkritih z analizo. 

Nekateri paketi so nenavadni in vsebujejo na tisoče težav: Na primer, v paketu PyGGI je bilo najdenih 2589 težav, ki so bile v glavnem povezane z uporabo konstrukta "poskusi-razen-prehoda", 2356 težav pa v paketu appengine-sdk. Tudi v paketih genie.libs.ops, pbcore in genie.libs.parser je veliko težav.

Treba je opozoriti, da so bili rezultati pridobljeni na podlagi avtomatizirane statične analize, ki ne upošteva konteksta uporabe določenih struktur.

Predlagal je razvijalec Bandit, ki je bil uporabljen za skeniranje kode da je zaradi velikega števila lažno pozitivnih rezultatov lrezultatov skeniranja ni mogoče obravnavati kot ranljivosti neposredno brez dodatnega ročnega pregleda vsake težave.

Razčlenjevalnik na primer obravnava uporabo nezanesljivih generatorjev naključnih števil in algoritme razpršitve, kot je MD5, kot varnostni problem, medtem ko se lahko v kodi takšni algoritmi uporabljajo za namene, ki ne vplivajo na varnost.

Analizator meni tudi, da je potrebna kakršna koli zunanja obdelava podatkov v nevarnih funkcijah, kot so pickle, yaml.load, subprocess in eval je problem, vendar ta uporaba ni nujno povezana z ranljivostjo in pravzaprav je uporaba teh funkcij lahko problem, ki se izvaja brez varnostne grožnje.

Med kontrolami, uporabljenimi v študiji:

  • Uporaba potencialno nevarnih funkcij exec, mktemp, eval, mark_safe itd.
  • Nezanesljiva konfiguracija pravic dostopa do datotek.
  • Priključite omrežni vtič na vse omrežne vmesnike.
  • Uporaba gesel in šifriranih ključev.
  • Uporaba vnaprej določenega začasnega imenika.
  • Z uporabo pass and continue v upravljalnikih izjem za vse-style.
  • Zaženite spletne aplikacije na osnovi spletnega ogrodja Flask z omogočenim načinom odpravljanja napak.
  • Z uporabo negotovih metod za deserializacijo podatkov.
  • Z uporabo hash funkcij MD2, MD4, MD5 in SHA1.
  • Uporaba nezaščitenih DES kod in načinov šifriranja.
  • Uporaba negotove izvedbe HTTPSConnection v nekaterih različicah Pythona.
  • Podajanje datoteke: // shema v urlopen.
  • Pri opravljanju kriptografskih nalog uporabite generatorje psevdo naključnih števil.
  • Uporaba protokola Telnet.
  • Uporaba nezaščitenih razčlenjevalnikov XML.

Poleg tega je omenjeno odkrivanje 8 zlonamernih paketov v imeniku PyPI. Paketi težav so bili pred odstranitvijo preneseni več kot 30 -krat. Da bi prikrili zlonamerno dejavnost in se izognili preprostim opozorilom statičnega razčlenjevalnika na paketih, smo uporabili blokovno kodiranje s kodo v formatu Base64 in njeno izvedbo po dekodiranju uprizorili s klicem eval.

Koda, ki jo najdemo v paketih noblesse, genesisbot, so, suff, noblesse2 in noblessev2 za prestrezanje številk kreditnih kartic in gesel, shranjenih v brskalnikih Chrome in Edge, pa tudi za prenos žetonov računa iz aplikacije Discord in pošiljanje podatkov iz sistema, vključno s posnetki zaslona vsebine zaslona. … Paketa pytagora in pytagora2 sta vključevala možnost prenosa in izvajanja izvršljive kode drugih proizvajalcev.

Končno če vas zanima več o tem, lahko preverite podrobnosti V naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.