U 46% di i pacchetti Python in u repositoriu PyPI cuntenenu codice potenzalmentu inseguru

Un gruppu di circadori di l'Università di Turku (Finlandia) hà publicatu i risultati di una analisi di pacchetti in u repository PyPI per l'usu di custruzzioni potenzalmentu periculosi chì puderanu purtà à vulnerabili. Durante l'analisi di 197 mila pacchetti, 749 mila pussibuli prublemi di sicurezza sò stati identificati. U 46% di i pacchetti anu almenu un tali prublema. Trà i prublemi più cumuni sò e mancanze ligati à a gestione di l'eccezzioni è l'usu di funzioni chì permettenu a sustituzione di codice.

Di i 749 mila prublemi identificati, 442 mila (41%) sò stati etichettati cum'è minori, 227 mila (30%) cum'è prublemi moderati è 80 mila (11%) cum'è periculosi. Certi pacchetti si distinguenu da a folla è cuntenenu millaie di prublemi: per esempiu, u pacchettu PyGGI hà identificatu 2589 prublemi, principarmenti ligati à l'usu di a custruzzione "try-except-pass", è u pacchettu appengine-sdk hà trovu 2356 prublemi. Un gran numaru di prublemi sò ancu prisenti in i pacchetti genie.libs.ops, pbcore è genie.libs.parser.

Hè da nutà chì i risultati sò stati ottenuti basatu annantu à l'analisi statica automatizata, chì ùn piglia micca in contu u cuntestu di l'applicazione di certe strutture. U sviluppatore di u banditu toolkit, chì hè stata utilizata per scansà u codice, hà spressu l'opinione chì, per via di u numeru abbastanza elevatu di falsi pusitivi, i risultati di scansione ùn ponu esse direttamente cunsiderati vulnerabili senza rivisione manuale supplementu di ogni prublema.

Per esempiu, l'analizzatore cunsidereghja l'usu di generatori di numeri aleatorii inaffidabili è algoritmi di hashing, cum'è MD5, per esse un prublema di sicurezza, mentre chì in u codice tali algoritmi pò esse usatu per scopi chì ùn anu micca a sicurità. L'analizzatore cunsidereghja ancu ogni trattamentu di dati esterni in funzioni insicure cum'è pickle, yaml.load, subprocess è eval un prublema, ma questu usu ùn implica micca necessariamente una vulnerabilità è in fattu l'usu di sti funzioni pò esse implementatu senza una minaccia di sicurità. .

Trà i testi utilizati in u studiu:

  • Utilizà e funzioni potenzialmente insicure exec, mktemp, eval, mark_safe, etc.
  • Impostazione insicura di i diritti d'accessu per i schedari.
  • Attaccà un socket di rete à tutte l'interfaccia di rete.
  • L'usu di password è chjave strettamente specificate in u codice.
  • Utilizendu un repertoriu temporale predefinitu.
  • Utilizà u pass è cuntinuà in i gestori di eccezzioni catch-all-style;
  • Lanciazione di applicazioni web basate nantu à u framework web Flask cù u modu di debugging attivatu.
  • Utilizà metudi di deserializazione di dati insicuri.
  • Utilizà e funzioni hash MD2, MD4, MD5 è SHA1.
  • Utilizazione di cifri DES insicuri è modi di criptografia.
  • Utilizazione di una implementazione HTTPSConnection insegura in alcune versioni di Python.
  • Specificà u schema file:// in urlopen.
  • Utilizà i generatori di numeri pseudo-aleatoriu quandu eseguisce attività criptografiche.
  • Utilizà u protocolu Telnet.
  • Utilizà parsers XML insicuri.

Inoltre, si pò nutà chì 8 pacchetti maliziusi sò stati rilevati in u cartulare PyPI. Prima di sguassà, i pacchetti problematici sò stati scaricati più di 30 mila volte. Per ammuccià l'attività maliciosa è l'avvirtimenti di bypass da analizatori statici simplici in pacchetti, i blocchi di codice sò stati codificati cù Base64 è eseguiti dopu a decodificazione cù una chjama di eval.

I pacchetti noblesse, genesisbot, sò, soffrenu, noblesse2 è noblessev2 cuntenenu codice per interceptà i numeri di carte di creditu è ​​e password almacenate in i navigatori Chrome è Edge, è ancu trasferisce tokens di contu da l'applicazione Discord è mandà dati di sistema, cumprese screenshots di cuntenutu di u screnu. I pacchetti pytagora è pytagora2 includenu a capacità di carica è eseguisce codice eseguibile di terzu.

Source: opennet.ru

Add a comment