46% paket Python ing repositori PyPI ngemot kode sing ora aman

Klompok peneliti saka Universitas Turku (Finlandia) nerbitake asil analisis paket ing repositori PyPI kanggo nggunakake konstruksi sing bisa mbebayani sing bisa nyebabake kerentanan. Sajrone analisis 197 ewu paket, 749 ewu masalah keamanan potensial diidentifikasi. 46% paket duwe paling ora siji masalah kasebut. Antarane masalah sing paling umum yaiku kekurangan sing ana gandhengane karo penanganan pengecualian lan panggunaan fitur sing ngidini substitusi kode.

Saka 749 ewu masalah sing diidentifikasi, 442 ewu (41%) dicap minangka minor, 227 ewu (30%) minangka masalah moderat lan 80 ewu (11%) minangka mbebayani. Sawetara paket ngadeg metu saka akeh lan ngemot ewu masalah: contone, paket PyGGI dikenali 2589 masalah, utamanΓ© related kanggo nggunakake mbangun "nyoba-kajaba-pass", lan appengine-sdk paket ketemu 2356 masalah. A nomer akeh masalah uga ana ing paket genie.libs.ops, pbcore lan genie.libs.parser.

Perlu dicathet yen asil dipikolehi adhedhasar analisis statis otomatis, sing ora nggatekake konteks aplikasi struktur tartamtu. Pangembang toolkit bandit, sing digunakake kanggo mindai kode kasebut, mratelakake panemume yen amarga jumlah positif palsu sing cukup dhuwur, asil pindai ora bisa langsung dianggep minangka kerentanan tanpa review manual tambahan kanggo saben masalah.

Contone, analisa nganggep panggunaan generator nomer acak lan algoritma hashing sing ora bisa dipercaya, kayata MD5, minangka masalah keamanan, nanging ing kode kasebut, algoritma kasebut bisa digunakake kanggo tujuan sing ora mengaruhi keamanan. Analisa uga nganggep manawa pangolahan data eksternal ing fungsi sing ora aman kayata pickle, yaml.load, subprocess lan eval minangka masalah, nanging panggunaan iki ora mbutuhake kerentanan lan nyatane panggunaan fungsi kasebut bisa ditindakake tanpa ancaman keamanan. .

Antarane tes sing digunakake ing sinau:

  • Nggunakake fungsi sing bisa uga ora aman exec, mktemp, eval, mark_safe, lsp.
  • Setelan hak akses ora aman kanggo file.
  • Masang soket jaringan menyang kabeh antarmuka jaringan.
  • Panganggone tembung sandhi lan tombol kasebut kanthi tegas ing kode kasebut.
  • Nggunakake direktori sementara sing wis ditemtokake.
  • Nggunakake pass lan terus ing nyekel-kabeh-gaya pangecualian handler;
  • Ngluncurake aplikasi web adhedhasar kerangka web Flask kanthi mode debugging diaktifake.
  • Nggunakake metode deserialisasi data sing ora aman.
  • Nggunakake fungsi hash MD2, MD4, MD5 lan SHA1.
  • Panggunaan cipher DES lan mode enkripsi sing ora aman.
  • Panggunaan implementasi HTTPSConnection sing ora aman ing sawetara versi Python.
  • Nemtokake file: // skema ing urlopen.
  • Nggunakake generator nomer pseudorandom nalika nindakake tugas kriptografi.
  • Nggunakake protokol Telnet.
  • Nggunakake parser XML sing ora aman.

Kajaba iku, bisa dicathet yen 8 paket angkoro dideteksi ing direktori PyPI. Sadurunge dibusak, paket masalah diundhuh luwih saka 30 ewu kaping. Kanggo ndhelikake aktivitas angkoro lan nglewati bebaya saka analisa statis prasaja ing paket, pamblokiran kode dienkode nggunakake Base64 lan dieksekusi sawise dekoding nggunakake telpon eval.

Noblesse, genesisbot, iku, nandhang sangsara, paket noblesse2 lan noblessev2 ngemot kode kanggo nyegat nomer kertu kredit lan sandhi sing disimpen ing browser Chrome lan Edge, uga token akun transfer saka aplikasi Discord lan ngirim data sistem, kalebu gambar saka isi layar . Paket pytagora lan pytagora2 kalebu kemampuan kanggo mbukak lan nglakokake kode eksekusi pihak katelu.

Source: opennet.ru

Add a comment