Naučnici u Finskoj su skenirali softverske biblioteke otvorenog koda u Python Package Index-u, poznatijem kao PyPI, u potrazi za bezbednosnim problemima i otkrili da skoro polovina sadrži potencijalno ranjiv kod. 

U istraživačkom radu koji je distribuiran putem ArXiv-a, arhive za elektronske preprinte naučnih članaka, istraživači sa Univerziteta u Turku opisuju kako su podvrgli nekih 197.000 Python paketa dostupnih putem PyPI-ja alatu za statičku analizu koda, što je proces analize izvornog ili binarnog koda softvera, i pronašli više od 749.000 primera ranjivog koda.

Čak i pod ograničenjima koja nameće statička analiza, rezultati ukazuju na rasprostranjenost bezbednosnih problema; bar jedan problem je prisutan za oko 46 odsto Python paketa, navode naučnici.

Od identifikovanih problema, većina (442.373) su označeni kao „ne veoma ozbiljni” (low severity). Oko 227.426 je umerene ozbiljnosti, prisutno u oko 25 procenata PyPI paketa. Na kraju, 80.065 bezbednosnih problema je veoma ozbiljno, prisutno u oko 11 procenata PyPI paketa.

Međutim, naučnici su pronašli pet paketa sa više od hiljadu otkrivenih problema: PyGGI, appengine-sdk, genie.libs.ops, pbcore i genie.libs.parser.

Među ovim prestupnicima, mnogi od otkrivenih problema nisu bili posebno zabrinjavajući. Na primer, istraživači su rekli da je svih 2.589 problema sa PyGGI-om povezano sa konstrukcijom „try-except-pass”, za koju su sugerisali da je možda više nepreporučljiv obrazac nego potvrđena ranjivost. 

Međutim, appengine-sdk, nezvanična verzija Google-ovog Python razvojnog alata za App Engine uslugu u oblaku, pokazala je ozbiljnije probleme. Među 2.356 otkrivenih problema, 395 se odnosi na opšte poznate probleme, 351 je vezano za injekcije, 500 ima veze sa potencijalnim skriptiranjem na više veb lokacija (tzv. cross-site scripting), a 7 uključuje potencijalno nesigurne mrežne protokole.

Druga istraživanja ove vrste došla su do sličnih zaključaka o ekosistemima softverskih paketa. Prošlog septembra, grupa istraživača IEEE-a analizirala je 6.673 aktivno korišćenih aplikacija Node.js i otkrila da oko 68 odsto zavisi od najmanje jednog ranjivog paketa.

Samo prošlog marta, PyPI je obrisao 3.653 zlonamernih paketa nakon što je neko otvorio nalog pod nazivom „RemindSupplyChainRisks”, očigledno kako bi pokazao koliko je lako kompromitovati PyPI spremište lošim paketima.

Startit Dnevnik je nedavno pisao da bi Python uskoro mogao biti najpopularniji programski jezik, boreći se za prvo mesto sa programskim jezicima kao što su JavaScript, Java i C. U tom kontekstu, ovaj problem sa kojim se suočava PyPI spremište može imati dalekosežnije posledice na sajber bezbednost, koja je poslednjih meseci jedna od ključnih tema u svetu, pa i kod nas.