46% ya vifurushi vya Python kwenye hazina ya PyPI vina nambari inayoweza kuwa si salama

Kundi la watafiti kutoka Chuo Kikuu cha Turku (Finland) lilichapisha matokeo ya uchanganuzi wa vifurushi katika hazina ya PyPI kwa ajili ya matumizi ya miundo hatari ambayo inaweza kusababisha udhaifu. Wakati wa uchambuzi wa vifurushi 197, shida za usalama 749 ziligunduliwa. 46% ya vifurushi vina angalau shida moja kama hiyo. Miongoni mwa matatizo ya kawaida ni mapungufu yanayohusiana na utunzaji wa ubaguzi na matumizi ya vipengele vinavyoruhusu uingizwaji wa kanuni.

Kati ya matatizo 749 yaliyotambuliwa, 442 (41%) yaliwekwa alama kuwa madogo, 227 (30%) ya matatizo ya wastani na 80 elfu (11%) kuwa hatari. Vifurushi vingine vinasimama kutoka kwa umati na vina maelfu ya shida: kwa mfano, kifurushi cha PyGGI kiligundua shida 2589, haswa zinazohusiana na utumiaji wa muundo wa "jaribu-isipokuwa-kupita", na kifurushi cha appengine-sdk kilipata shida 2356. Idadi kubwa ya matatizo pia yapo katika vifurushi vya genie.libs.ops, pbcore na genie.libs.parser.

Ikumbukwe kwamba matokeo yalipatikana kwa kuzingatia uchambuzi wa static automatiska, ambao hauzingatii mazingira ya matumizi ya miundo fulani. Msanidi wa zana ya zana za majambazi, ambayo ilitumika kuchanganua msimbo, alitoa maoni kwamba kwa sababu ya idadi kubwa ya chanya za uwongo, matokeo ya skanisho hayawezi kuzingatiwa moja kwa moja kama udhaifu bila ukaguzi wa ziada wa kila suala.

Kwa mfano, kichanganuzi huchukulia matumizi ya jenereta za nambari nasibu zisizotegemewa na algoriti za hashing, kama vile MD5, kuwa tatizo la usalama, ilhali katika kanuni algoriti kama hizo zinaweza kutumika kwa madhumuni ambayo hayaathiri usalama. Kichanganuzi pia huzingatia uchakataji wowote wa data ya nje katika vitendakazi visivyo salama kama vile kachumbari, yaml.load, mchakato mdogo na eval kuwa tatizo, lakini matumizi haya hayahusishi uwezekano wa kuathiriwa na kwa kweli matumizi ya vipengele hivi yanaweza kutekelezwa bila tishio la usalama. .

Miongoni mwa vipimo vilivyotumika katika utafiti:

  • Kutumia vitendakazi ambavyo huenda si salama kutekeleza, mktemp, eval, mark_safe, n.k.
  • Mpangilio usio salama wa haki za ufikiaji wa faili.
  • Kuambatanisha tundu la mtandao kwenye violesura vyote vya mtandao.
  • Utumiaji wa manenosiri na vitufe vilivyoainishwa kabisa kwenye msimbo.
  • Kwa kutumia saraka ya muda iliyoainishwa awali.
  • Kutumia pasi na kuendelea katika vidhibiti vya ubaguzi wa aina zote;
  • Inazindua programu za wavuti kulingana na mfumo wa wavuti wa Flask na hali ya utatuzi imewezeshwa.
  • Kutumia njia zisizo salama za kuondoa data.
  • Hutumia vitendaji vya MD2, MD4, MD5 na SHA1.
  • Matumizi ya misimbo ya DES isiyo salama na njia za usimbaji fiche.
  • Matumizi ya utekelezaji usio salama wa HTTPSConnection katika baadhi ya matoleo ya Python.
  • Inabainisha faili:// mpango katika urlopen.
  • Kutumia jenereta za nambari za uwongo wakati wa kufanya kazi za kriptografia.
  • Kwa kutumia itifaki ya Telnet.
  • Kwa kutumia vichanganuzi vya XML visivyo salama.

Zaidi ya hayo, inaweza kuzingatiwa kuwa vifurushi 8 vibaya viligunduliwa kwenye saraka ya PyPI. Kabla ya kuondolewa, vifurushi vyenye shida vilipakuliwa zaidi ya mara elfu 30. Ili kuficha shughuli hasidi na kukwepa maonyo kutoka kwa vichanganuzi rahisi tuli katika vifurushi, vizuizi vya misimbo vilisimbwa kwa kutumia Base64 na kutekelezwa baada ya kusimbua kwa kutumia simu ya eval.

Vifurushi vya noblesse, genesisbot, vinateseka, noblesse2 na noblessev2 vina msimbo wa kunasa nambari za kadi ya mkopo na manenosiri yaliyohifadhiwa katika vivinjari vya Chrome na Edge, na pia kuhamisha tokeni za akaunti kutoka kwa programu ya Discord na kutuma data ya mfumo, ikijumuisha picha za skrini zilizomo. Vifurushi vya pytagora na pytagora2 vilijumuisha uwezo wa kupakia na kutekeleza msimbo wa mtu wa tatu unaoweza kutekelezeka.

Chanzo: opennet.ru

Kuongeza maoni