46% bungkusan Python dina gudang PyPI ngandung kode anu berpotensi teu aman

Grup peneliti ti Universitas Turku (Finlandia) diterbitkeun hasil analisis bungkusan dina gudang PyPI pikeun pamakéan constructs berpotensi bahaya nu bisa ngakibatkeun vulnerabilities. Salila analisa 197 rébu bungkusan, 749 rébu masalah kaamanan poténsial diidentifikasi. 46% bungkusan ngagaduhan sahenteuna hiji masalah sapertos kitu. Diantara masalah paling umum nyaéta shortcomings patali penanganan iwal sarta pamakéan fitur nu ngidinan substitusi kode.

Tina 749 rébu masalah anu diidentifikasi, 442 rébu (41%) dilabélan minor, 227 rébu (30%) masalah sedeng sareng 80 rébu (11%) bahaya. Sababaraha bungkusan nangtung kaluar ti balaréa sarta ngandung rébuan masalah: Contona, pakét PyGGI dicirikeun 2589 masalah, utamana patali jeung pamakéan "coba-iwal-pass" ngawangun, sarta pakét appengine-sdk kapanggih 2356 masalah. A angka nu gede ngarupakeun masalah ogé hadir dina pakét genie.libs.ops, pbcore na genie.libs.parser.

Ieu kudu dicatet yén hasil diala dumasar kana analisis statik otomatis, nu teu tumut kana akun konteks aplikasi tina struktur nu tangtu. Pamekar tina toolkit bandit, anu dipaké pikeun nyeken kodeu, nyatakeun pamadegan yén alatan jumlah cukup luhur positip palsu, hasil scan teu bisa langsung dianggap kerentanan tanpa review manual tambahan unggal masalah.

Salaku conto, analisa nganggap panggunaan generator nomer acak anu teu dipercaya sareng algoritma hashing, sapertos MD5, janten masalah kaamanan, sedengkeun dina kode algoritma sapertos kitu tiasa dianggo pikeun tujuan anu henteu mangaruhan kaamanan. Analyzer ogé nganggap naon waé ngolah data éksternal dina fungsi anu teu aman sapertos pickle, yaml.load, subprocess sareng eval masalah, tapi panggunaan ieu henteu ngalibatkeun kerentanan sareng kanyataanna panggunaan fungsi ieu tiasa dilaksanakeun tanpa ancaman kaamanan. .

Di antara tés anu digunakeun dina pangajaran:

  • Ngagunakeun fungsi berpotensi unsafe exec, mktemp, eval, mark_safe, jsb.
  • Setelan teu aman tina hak aksés pikeun file.
  • Ngalampirkeun stop kontak jaringan ka sadaya interfaces jaringan.
  • Pamakéan kecap akses sareng konci anu ditetepkeun sacara ketat dina kodeu.
  • Ngagunakeun diréktori samentara anu tos disetel.
  • Ngagunakeun pass tur nuluykeun di nyekel-sadaya-gaya pawang iwal;
  • Ngaluncurkeun aplikasi wéb dumasar kana kerangka wéb Flask sareng mode debugging diaktipkeun.
  • Ngagunakeun métode deserialization data unsafe.
  • Nganggo fungsi hash MD2, MD4, MD5 sareng SHA1.
  • Pamakéan kodeu DES anu teu aman sareng modeu énkripsi.
  • Anggo palaksanaan HTTPSConnection anu teu aman dina sababaraha versi Python.
  • Nangtukeun file: // skéma dina urlopen.
  • Ngagunakeun generator angka pseudorandom nalika ngajalankeun tugas cryptographic.
  • Ngagunakeun protokol Telnet.
  • Ngagunakeun parsers XML teu aman.

Salaku tambahan, éta tiasa dicatet yén 8 bungkusan jahat dideteksi dina diréktori PyPI. Sateuacan ngahapus, pakét masalah diunduh langkung ti 30 rébu kali. Pikeun nyumputkeun kagiatan jahat sareng peringatan bypass tina analisa statik sederhana dina bungkusan, blok kode disandikeun nganggo Base64 sareng dieksekusi saatos decoding nganggo telepon eval.

The noblesse, genesisbot, nyaeta, sangsara, noblesse2 na noblessev2 bungkusan ngandung kode pikeun intercept angka kartu kiridit sareng kecap akses disimpen dina browser Chrome jeung Tepi, kitu ogé tokens akun mindahkeun tina aplikasi Discord sarta ngirimkeun data sistem, kaasup Potret layar eusi layar . Paket pytagora sareng pytagora2 kalebet kamampuan pikeun ngamuat sareng ngaéksekusi kode laksana pihak katilu.

sumber: opennet.ru

Tambahkeun komentar