Depoja PyPI përmban kod potencialisht të pasigurt

Studiuesit nga Universiteti i Turku (Finlanda) bëhet e ditur së fundmi rezultatet e një analize ata u bënë paketave në depo nga PyPI për përdorimin e ndërtimeve potencialisht të rrezikshme që mund të gjenerojnë dobësi. Në analizën që u realizuan rreth 197.000 pako dhe u identifikuan 749.000 probleme të mundshme të sigurisë.

Me fjalë të tjera, 46% e paketave kanë të paktën një nga këto probleme, nga të cilat ndër problemet më të zakonshme janë ato që lidhen me trajtimin e përjashtimeve dhe përdorimin e aftësive të zëvendësimit të kodit.

Nga 749 mijë probleme të identifikuara, 442 mijë (41%) u shënuan si të mitur, 227 mijë (30%) si mesatarisht të rrezikshme dhe 80 mijë (11%) si të rrezikshme.

Baza e të dhënave bazohet në një fotografi të të gjitha paketave të ruajtura në Indeksin e Pakove Python (PyPI) ...

Për sa i përket llojeve të problemeve, të tilla si trajtimi i përjashtimeve dhe injeksione të ndryshme të kodit kanë qenë problemet më të zakonshme. Në këtë kuptim, moduli i fijeve spikat. Duke reflektuar në përmasat përgjithësisht të vogla të paketave, metrikat e madhësisë së softuerit nuk parashikojnë mirë numrin e çështjeve të zbuluara përmes analizës. 

Disa pako janë jashtë normales dhe përmbajnë mijëra probleme: Për shembull, 2589 probleme u gjetën në paketën PyGGI, kryesisht të lidhura me përdorimin e konstruktit "provo-përjashto-kalo", dhe 2356 probleme u gjetën në paketën appengine-sdk. Ekzistojnë gjithashtu shumë probleme në paketat genie.libs.ops, pbcore dhe genie.libs.parser.

Duhet të theksohet se rezultatet janë marrë në bazë të një analize statike të automatizuar, e cila nuk merr parasysh kontekstin e aplikimit të strukturave të caktuara.

Zhvilluesi i Bandit, i cili u përdor për të skanuar kodin, sugjeroi se për shkak të numrit të madh të pozitivëve false, lrezultatet e skanimit nuk mund të konsiderohen si dobësi drejtpërdrejt pa një rishikim manual manual të secilit problem.

Për shembull, analizuesi e konsideron përdorimin e gjeneratorëve të pabesueshëm të numrave të rastit dhe algoritme të hash si MD5 si një shqetësim sigurie, ndërsa në kod algoritme të tilla mund të përdoren për qëllime që nuk ndikojnë në sigurinë.

Analizuesi gjithashtu konsideron se çdo përpunim i jashtëm i të dhënave në funksione të pasigurta si turshi, yaml.load, nënproces dhe eval eshte problem, por ky përdorim nuk shoqërohet domosdoshmërisht me një dobësi dhe, në fakt, përdorimi i këtyre funksioneve mund të jetë një problem i zbatuar pa një kërcënim sigurie.

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

  • Përdorimi i funksioneve potencialisht të pasigurta exec, mktemp, eval, mark_safe, etj.
  • Konfigurimi i pasigurt i të drejtave të qasjes në skedar.
  • Lidhni një prizë rrjeti me të gjitha ndërfaqet e rrjetit.
  • Përdorimi i fjalëkalimeve dhe çelësave të koduar.
  • Përdorimi i një drejtorie të paracaktuar të përkohshme.
  • Përdorimi i kalimit dhe vazhdimit në përdoruesit e përjashtimeve të të gjitha stileve.
  • Nisni aplikacionet në internet bazuar në kuadrin e faqes Flask me modalitetin e korrigjimit të aktivizuar.
  • Përdorimi i metodave të pasigurta për të dezinfektuar të dhënat.
  • Duke përdorur funksionet e hash MD2, MD4, MD5 dhe SHA1.
  • Përdorimi i shifrave të pasigurt DES dhe mënyrat e kriptimit.
  • Përdorimi i një zbatimi të pasigurt HTTPSConnection në disa versione të Python.
  • Specifikimi i skedarit: // schema në urlopen.
  • Përdorni gjeneratorë të numrave pseudo të rastit kur kryeni detyra kriptografike.
  • Duke përdorur protokollin Telnet.
  • Përdorimi i analizuesve të pasigurt XML.

Për më tepër, përmendet zbulimi i 8 paketave me qëllim të keq në drejtorinë PyPI. Pakot problematike u shkarkuan më shumë se 30 herë para se të hiqeshin. Për të fshehur aktivitetin keqdashës dhe për të shmangur paralajmërimet e thjeshta të analizuesit statik në paketa, ne përdorëm kodimin e bllokut me kod duke përdorur formatin Base64 dhe vendosëm ekzekutimin e tij pas deshifrimit duke thirrur eval.

Kodi i gjetur në paketat noblesse, genesisbot, janë, suff, noblesse2 dhe noblessev2 për të përgjuar numrat e kartave të kreditit dhe fjalëkalimet e ruajtura në shfletuesit Chrome dhe Edge, si dhe transferimin e shenjave të llogarisë nga aplikacioni Discord dhe dërgimin e të dhënave nga sistemi, përfshirë pamjet e ekranit të përmbajtjes së ekranit. … Paketat pytagora dhe pytagora2 përfshinin aftësinë për të shkarkuar dhe drejtuar kodin e ekzekutueshëm të palëve të treta.

Më në fund nëse jeni të interesuar të dini më shumë për të, ju mund të kontrolloni detajet Në lidhjen vijuese.


Përmbajtja e artikullit i përmbahet parimeve tona të etika editoriale. Për të raportuar një gabim klikoni këtu.

Bëhu i pari që komenton

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.