46% e paketave Python në depozita PyPI përmbajnë kod potencialisht të pasigurt

Një grup studiuesish nga Universiteti i Turku (Finlandë) publikoi rezultatet e analizës së paketave në repositorin PyPI për përdorimin e konstruktimeve potencialisht të rrezikshme që mund të çojnë në shfaqjen e dobësive. Gjatë analizës së 197 mijë paketave, u zbuluan 749 mijë probleme potenciale me sigurinë. Në 46% të paketave, ka të paktën një problem të tillë. Midis problemeve më të zakonshme janë dobësitë e lidhura me menaxhimin e përjashtimeve dhe përdorimin e mundësive që lejojnë mbivendosjen e kodit.

Nga 749 mijë probleme të zbuluara, 442 mijë (41%) janë shënuar si të vogla, 227 mijë (30%) si probleme me rrezik të moderuar dhe 80 mijë (11%) si të rrezikshme. Disa paketa dalin nga masa dhe përmbajnë mijëra probleme: për shembull, paketa PyGGI pati 2589 probleme, kryesisht të lidhura me përdorimin e konstruktimeve "try-except-pass", ndërsa në paketën appengine-sdk u gjetën 2356 probleme. Një numër i madh problemesh gjithashtu është i pranishëm në paketat genie.libs.ops, pbcore dhe genie.libs.parser.

Duhet theksuar se rezultatet janë marrë në bazë të realizimit të një analize statike automatizimi, e cila nuk merr parasysh kontekstin e përdorimit të konstruktimeve të caktuara. Zhvilluesi i mjetit bandit, i cili u përdor për skanimin e kodit, shprehu mendimin se për shkak të një numri të lartë të sinjaleve false, rezultatet e kontrollit nuk mund të merren drejtpërdrejt si dobësi pa u realizuar një rishikim manual të çdo problemi.

Për shembull, analizuesi e konsideron si një problem sigurie përdorimin e gjeneruesve të rastësishëm të pasigurt dhe algoritmeve të hashing, si MD5, ndërsa në kod këto algoritme mund të përdoren për qëllime që nuk ndikojnë në siguri. Analizuesi gjithashtu e konsideron si problem çdo trajtim të të dhënave të jashtme në funksione të pasigurta, si pickle, yaml.load, subprocess dhe eval, por ky përdorim nuk është domosdoshmërisht i lidhur me shfaqjen e dobësive dhe mund të implementohet pa rrezik nga siguria.

Ndër kontrollet e përdorura në hulumtim:

  • PĂ«rdorimi i funksioneve potencialisht tĂ« pasigurta exec, mktemp, eval, mark_safe etj.
  • Vendosja e pasigurt e tĂ« drejtave tĂ« aksesit pĂ«r skedarĂ«t.
  • Kjornimi i njĂ« soketi rrjeti nĂ« tĂ« gjithĂ« ndĂ«rfaqet rrjetĂ«.
  • PĂ«rdorimi i password-eve dhe çelĂ«save tĂ« koduar ngushtĂ« nĂ« kod.
  • PĂ«rdorimi i njĂ« katalogu tĂ« pĂ«rkohshĂ«m tĂ« paracaktuar.
  • PĂ«rdorimi i pass dhe continue nĂ« menaxherĂ«t e pĂ«rjashtimeve nĂ« stilin catch-all;
  • ÇelĂ«si i aplikacioneve web tĂ« bazuara nĂ« çarjen e web-it Flask me modin debug tĂ« aktivizuar.
  • PĂ«rdorimi i metodave tĂ« pasigurta tĂ« deserializimit tĂ« tĂ« dhĂ«nave.
  • PĂ«rdorimi i funksioneve tĂ« hashing MD2, MD4, MD5 dhe SHA1.
  • PĂ«rdorimi i enkripcioneve tĂ« pasigura DES dhe mĂ«nyrat e enkriptimit.
  • PĂ«rdorimi i implementimit tĂ« pasigurt tĂ« HTTPSConnection nĂ« disa versione tĂ« Python.
  • Specifikimi i skemĂ«s file:// nĂ« urlopen.
  • PĂ«rdorimi i gjeneruesve tĂ« numrave pseudo-rastĂ«sor pĂ«r realizimin e detyrave kriptografike.
  • PĂ«rdorimi i protokollit Telnet.
  • PĂ«rdorimi i parserĂ«ve tĂ« pasigurt XML.

Së fundmi, duhet të theksoj se, në katalogun PyPI janë zbuluar 8 paketa keqbërëse. Para se të fshiheshin, paketa problematike kishin realizuar më shumë se 30 mijë shkarkime. Për të fshehur aktivitetet e dëmshme dhe për të anashkaluar paralajmërimet e analizatorëve staticë të thjeshtë, në paketa u përdor kodimi i blloqeve me kod duke përdorur Base64 dhe organizimi i ekzekutimit pas dekodimit përmes thirrjes eval.

Në paketat noblesse, genesisbot, are, suffer, noblesse2 dhe noblessev2 u zbulua një kod për kapjen e numrave të kartave të kreditit dhe fjalëkalimeve të ruajtura në shfletuesit Chrome dhe Edge, si dhe për transmetimin e tokeneve të llogarive nga aplikacioni Discord dhe dërgimin e të dhënave të sistemit, duke përfshirë screenshotet e përmbajtjes së ekranit. Në paketat pytagora dhe pytagora2 kishte mundësi për të shkarkuar dhe ekzekutuar kodin e tretë.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster