Naglalaman ang PyPI repository ng potensyal na insecure code

Ang mga mananaliksik mula sa Unibersidad ng Turku (Pinlandiya) nagpakilala kamakailan lamang ang mga resulta ng isang pagsusuri ginawa nila sa mga package sa repository ni PyPI para sa paggamit ng mga potensyal na mapanganib na konstruksyon na maaaring makabuo ng mga kahinaan. Sa pagsusuri na mga 197.000 na mga pakete ang natupad at 749.000 mga posibleng problema sa seguridad ang nakilala.

Sa madaling salita, 46% ng mga pakete ay may hindi bababa sa isa sa mga problemang ito, kung saan kabilang sa mga pinakakaraniwang problema ay ang mga nauugnay sa paghawak ng mga pagbubukod at paggamit ng mga kakayahan sa pagpapalit ng code.

Sa 749 libong mga problema na nakilala, 442 (41%) ay minarkahan bilang menor de edad, 227 libo (30%) bilang katamtamang mapanganib at 80 libo (11%) na mapanganib.

Ang dataset ay batay sa isang snapshot ng lahat ng mga pakete na nakaimbak sa Python Package Index (PyPI) ...

Sa mga tuntunin ng mga uri ng problema, tulad ng paghawak ng pagbubukod at iba't ibang mga injection na code ay naging pinakakaraniwang mga problema. Sa puntong ito, ang module ng mga thread ay nakatayo. Sumasalamin sa pangkalahatang maliit na mga laki ng packet, ang mga sukatan ng laki ng software ay hindi mahuhulaan nang maayos ang bilang ng mga isyung isiniwalat sa pamamagitan ng pagtatasa. 

Ang ilang mga pakete ay wala sa karaniwan at naglalaman ng libu-libong mga problema: Halimbawa, 2589 na mga problema ang natagpuan sa pakete ng PyGGI, pangunahin na nauugnay sa paggamit ng "try-kecuali-pass" na konstruksyon, at 2356 na mga problema ang natagpuan sa appengine-sdk package. Mayroon ding maraming mga problema sa mga genie.libs.ops, pbcore, at genie.libs.parser packages.

Dapat pansinin na ang mga resulta ay nakuha batay sa isang awtomatikong static na pagtatasa, na hindi isinasaalang-alang ang konteksto ng aplikasyon ng ilang mga istraktura.

Iminungkahi ng developer ng Bandit, na ginamit upang i-scan ang code na dahil sa malaking bilang ng mga maling positibo, lang mga resulta sa pag-scan ay hindi maituturing na mga kahinaan nang direkta nang walang karagdagang manu-manong pagsusuri sa bawat problema.

Halimbawa, isinasaalang-alang ng parser ang paggamit ng hindi maaasahang mga generator ng random na numero at pag-hash ng mga algorithm tulad ng MD5 bilang isang alalahanin sa seguridad, samantalang sa code ang mga naturang algorithm ay maaaring gamitin para sa mga hangaring hindi nakakaapekto sa seguridad.

Isinasaalang-alang din ng analyzer na ang anumang panlabas na pagproseso ng data sa mga hindi ligtas na pag-andar tulad ng atsara, yaml.load, subprocess at eval ito ay isang problema, ngunit ang paggamit na ito ay hindi kinakailangang nauugnay sa isang kahinaan at, sa katunayan, ang paggamit ng mga pagpapaandar na ito ay maaaring maging isang problema na ipinatupad nang walang banta sa seguridad.

Kabilang sa mga kontrol na ginamit sa pag-aaral:

  • Paggamit ng mga potensyal na hindi ligtas na function exec, mktemp, eval, mark_safe, atbp.
  • Hindi secure ang pagsasaayos ng mga karapatan sa pag-access ng file.
  • Ikonekta ang isang plug ng network sa lahat ng mga interface ng network.
  • Paggamit ng mga password at naka-encrypt na key.
  • Paggamit ng isang paunang natukoy na pansamantalang direktoryo.
  • Paggamit ng pass at magpatuloy sa catch-all-style na mga handler ng pagbubukod.
  • Ilunsad ang mga application ng web batay sa balangkas ng Flask web na may naka-enable na mode ng pag-debug.
  • Paggamit ng mga hindi siguradong pamamaraan upang ma-deserialize ang data.
  • Ang paggamit ng MD2, MD4, MD5 at SHA1 hash function.
  • Paggamit ng mga insecure DES cipher at mode ng pag-encrypt.
  • Paggamit ng isang hindi secure na pagpapatupad ng HTTPSConnection sa ilang mga bersyon ng Python.
  • Tinutukoy ang file: // schema sa urlopen.
  • Gumamit ng mga pseudo-random number generator kapag gumaganap ng mga gawain sa cryptographic.
  • Gamit ang Telnet protocol.
  • Paggamit ng mga insecure na XML parser.

Bilang karagdagan, ang pagtuklas ng 8 nakakahamak na mga pakete sa direktoryo ng PyPI ay nabanggit. Ang mga package ng problema ay na-download nang higit sa 30 beses bago alisin. Upang maitago ang nakakahamak na aktibidad at maiwasan ang simpleng mga static na babala ng parser sa mga pakete, ginamit namin ang pag-encode ng block na may code gamit ang format na Base64 at itinanghal ang pagpapatupad nito pagkatapos ng pag-decode sa pamamagitan ng pagtawag sa eval.

Ang code na natagpuan sa noblesse, genesisbot, ay, suff, noblesse2 at noblessev2 packages upang maharang ang mga numero ng credit card at password na nakaimbak sa mga browser ng Chrome at Edge, pati na rin ang paglipat ng mga token ng account mula sa application ng Discord at magpadala ng data mula sa system, kasama ang mga screenshot ng nilalaman ng screen. … Kasama sa mga pakete na pytagora at pytagora2 ang kakayahang mag-download at magpatakbo ng code na maipapatupad ng third-party.

Sa wakas kung interesado kang malaman ang tungkol dito, maaari mong suriin ang mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.