„PyPI“ saugykloje yra potencialiai nesaugus kodas

Turku universiteto mokslininkai (Suomija) paskelbta neseniai analizės rezultatus jie padarė paketus saugykloje pateikė PyPI naudoti potencialiai pavojingas konstrukcijas, kurios gali sukelti pažeidžiamumą. Analizuojant tai buvo atlikta apie 197.000 749.000 paketų ir nustatyta XNUMX XNUMX galimų saugumo problemų.

Kitaip tariant, 46% paketų turi bent vieną iš šių problemų, iš kurių dažniausiai pasitaikančios yra problemos, susijusios su išimčių tvarkymu ir kodo pakeitimo galimybių naudojimu.

Iš 749 tūkstančių nustatytų problemų 442 tūkst (41 proc.) Buvo pažymėti kaip nepilnamečiai, 227 tūkstančiai (30 proc.) Kaip vidutiniškai pavojingi ir 80 tūkstančių (11 proc.) kaip pavojingus.

Duomenų rinkinys pagrįstas visų paketų, saugomų „Python“ paketų indekse (PyPI), momentine nuotrauka ...

Kalbant apie problemų tipus, pvz., Išimčių tvarkymas ir skirtingi kodų įpurškimai buvo dažniausiai pasitaikančios problemos. Šia prasme išsiskiria siūlų modulis. Atsižvelgiant į paprastai mažus paketų dydžius, programinės įrangos dydžio metrika neprognozuoja analizės metu atskleistų problemų skaičiaus. 

Kai kurie paketai yra neįprasti ir juose yra tūkstančiai problemųPavyzdžiui: „PyGGI“ pakete buvo rasta 2589 problemos, daugiausia susijusios su konstrukcijos „try-išskyrus-pass“ naudojimu, o „appengine-sdk“ pakete-2356 problemos. Taip pat daug problemų kyla paketuose „genie.libs.ops“, „pbcore“ ir „genie.libs.parser“.

Reikėtų pažymėti, kad rezultatai buvo gauti remiantis automatine statine analize, neatsižvelgiant į tam tikrų struktūrų taikymo kontekstą.

„Bandit“ kūrėjas, kuris buvo naudojamas nuskaityti kodą, pasiūlė kad dėl daugybės klaidingų teiginių lnuskaitymo rezultatų negalima laikyti pažeidžiamumu tiesiogiai be papildomos rankinės kiekvienos problemos peržiūros.

Pavyzdžiui, analizatorius mano, kad saugumo požiūriu reikia naudoti nepatikimus atsitiktinių skaičių generatorius ir maišos algoritmus, tokius kaip MD5, o kode tokie algoritmai gali būti naudojami tikslams, kurie neturi įtakos saugumui.

Analizatorius taip pat mano, kad bet koks išorinis duomenų apdorojimas nesaugiose funkcijose, tokiose kaip marinatas, yaml.load, papildomas procesas ir eval tai problema, tačiau šis naudojimas nebūtinai yra susijęs su pažeidžiamumu ir iš tikrųjų šių funkcijų naudojimas gali būti problema, įgyvendinama be grėsmės saugumui.

Tarp tyrime naudojamų kontrolės priemonių:

  • Galimai nesaugių funkcijų „exec“, „mktemp“, „eval“, „mark_safe“ ir kt. Naudojimas
  • Nesaugi prieigos prie failų teisių konfigūracija.
  • Prijunkite tinklo kištuką prie visų tinklo sąsajų.
  • Slaptažodžių ir užšifruotų raktų naudojimas.
  • Naudojant iš anksto nustatytą laikiną katalogą.
  • Naudokite leidimą ir tęskite „catch-all-style“ išimčių tvarkyklėse.
  • Paleiskite žiniatinklio programas, pagrįstas kolbos žiniatinklio sistema, įjungę derinimo režimą.
  • Nesaugių metodų naudojimas duomenims deserializuoti.
  • Naudojant maišos funkcijas MD2, MD4, MD5 ir SHA1.
  • Nesaugių DES šifrų ir šifravimo režimų naudojimas.
  • Nesaugaus „HTTPSConnection“ diegimo naudojimas kai kuriose „Python“ versijose.
  • Failo: // schemos nurodymas urlopen.
  • Atlikdami kriptografines užduotis, naudokite pseudo atsitiktinių skaičių generatorius.
  • Naudojant „Telnet“ protokolą.
  • Naudojant nesaugius XML analizatorius.

Be to, paminėtas 8 kenkėjiškų paketų aptikimas PyPI kataloge. Prieš pašalindami probleminius paketus, jie buvo atsisiųsti daugiau nei 30 64 kartų. Norėdami paslėpti kenkėjišką veiklą ir išvengti paprastų statinių analizatorių įspėjimų apie paketus, mes panaudojome blokų kodavimą kodu, naudojant „BaseXNUMX“ formatą, ir įvykdėme jo vykdymą po dekodavimo paskambinę „eval“.

Kodas, rastas „noblesse“, „geneisbot“, yra paketai, suff, noblesse2 ir noblessev2, skirti perimti „Chrome“ ir „Edge“ naršyklėse saugomus kredito kortelių numerius ir slaptažodžius, taip pat perkelti paskyros žetonus iš „Discord“ programos ir siųsti duomenis iš sistemos, įskaitant ekrano kopijas ekrano turinio. … „Pytagora“ ir „pytagora2“ paketai apėmė galimybę atsisiųsti ir paleisti trečiųjų šalių vykdomąjį kodą.

Pagaliau jei norite sužinoti daugiau apie tai, galite patikrinti išsamią informaciją Šioje nuorodoje.


Būkite pirmas, kuris pakomentuos

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.