PyPI -bewaarplek bevat moontlik onveilige kode | Van Linux
Navorsers van die Universiteit van Turku (Finland) bekend gemaak onlangs die resultate van 'n analise hulle het die pakkette in die bewaarplek gedoen deur PyPI vir die gebruik van moontlik gevaarlike konstruksies wat kwesbaarhede kan veroorsaak. In die ontleding wat ongeveer 197.000 749.000 pakkette is uitgevoer en XNUMX XNUMX moontlike veiligheidsprobleme is geïdentifiseer.
Met ander woorde, 46% van die pakkette het ten minste een van hierdie probleme, waarvan een van die algemeenste probleme is wat verband hou met die hantering van uitsonderings en die gebruik van kodevervangingsvermoëns.
Van die 749 duisend geïdentifiseerde probleme, 442 duisend (41%) is as minderjariges gemerk, 227 duisend (30%) as matig gevaarlik en 80 duisend (11%) as gevaarlik.
Die datastel is gebaseer op 'n momentopname van alle pakkette wat in die Python Package Index (PyPI) gestoor is ...
Wat die tipe probleme betref, soos die hantering van uitsonderings en verskillende kode -inspuitings, was die algemeenste probleme. In hierdie sin val die draadmodule uit. Met inagneming van die oor die algemeen klein pakkiegroottes, voorspel sagtewaregrootte nie die aantal kwessies wat deur analise onthul word nie.
Sommige pakkette is ongewoon en bevat duisende probleme: Daar is byvoorbeeld 2589 probleme in die PyGGI-pakket gevind, hoofsaaklik met betrekking tot die gebruik van die 'probeer-behalwe-slaag'-konstruk, en 2356 probleme is gevind in die appengine-sdk-pakket. Daar is ook baie probleme in die genie.libs.ops-, pbcore- en genie.libs.parser -pakkette.
Daar moet op gelet word dat die resultate verkry is op grond van 'n outomatiese statiese analise, wat nie die konteks van die toepassing van sekere strukture in ag neem nie.
Die Bandit -ontwikkelaar, wat gebruik is om die kode te skandeer, stel voor dat as gevolg van die groot aantal vals positiewe, lskanderingsresultate kan nie as kwesbaarhede beskou word nie direk sonder 'n bykomende handmatige hersiening van elke probleem.
Byvoorbeeld, die ontleder beskou die gebruik van onbetroubare ewekansige getalopwekkers en hashing -algoritmes soos MD5 as 'n bekommernis oor die veiligheid, terwyl hierdie kode in kode gebruik kan word vir doeleindes wat nie sekuriteit beïnvloed nie.
Die ontleder is ook van mening dat enige eksterne dataverwerking in onveilige funksies soos piekel, yaml.load, subproses en eval dis 'n probleem, maar hierdie gebruik hou nie noodwendig verband met 'n kwesbaarheid nie, en die gebruik van hierdie funksies kan eintlik 'n probleem wees wat geïmplementeer word sonder 'n veiligheidsbedreiging.
Onder die kontroles wat in die studie gebruik is:
Gebruik van moontlik onveilige funksies exec, mktemp, eval, mark_safe, ens.
Onveilige opset van lêertoegangsregte.
Koppel 'n netwerkprop aan alle netwerk -koppelvlakke.
Gebruik van wagwoorde en geïnkripteer sleutels.
Gebruik 'n vooraf gedefinieerde tydelike gids.
Gebruik die pas en gaan voort met vang-alle-styl uitsonderingshanteerders.
Begin webtoepassings gebaseer op die Flask -webraamwerk met ontfoutingsmodus geaktiveer.
Gebruik onveilige metodes om data te deserialiseer.
Gebruik MD2, MD4, MD5 en SHA1 hash funksies.
Gebruik van onveilige DES -sifers en enkripsiemodusse.
Gebruik 'n onveilige implementering van HTTPSConnection in sommige weergawes van Python.
Spesifiseer die lêer: // skema in urlopen.
Gebruik pseudo-ewekansige getalopwekkers tydens die uitvoering van kriptografiese take.
Gebruik die Telnet -protokol.
Gebruik onseker XML -parsers.
Boonop word die opsporing van 8 kwaadwillige pakkette in die PyPI -gids genoem. Probleempakkette is meer as 30 64 keer afgelaai voordat dit verwyder is. Om kwaadwillige aktiwiteite te verberg en eenvoudige statiese ontledingswaarskuwings op pakkette te vermy, het ons blok -kodering met kode gebruik met behulp van die BaseXNUMX -formaat en die uitvoering daarvan uitgevoer na dekodering deur eval te bel.
Die kode in die noblesse, genesisbot, is, suff, noblesse2 en noblessev2 pakkette om kredietkaartnommers en wagwoorde wat in Chrome- en Edge -blaaiers gestoor is, te onderskep, asook om rekeningtekens van die Discord -toepassing oor te dra en data van die stelsel af te stuur, insluitend skermkiekies van skerminhoud. ... Die pytagora- en pytagora2-pakkette bevat die moontlikheid om die uitvoerbare kode van derde partye af te laai en uit te voer.
Ten slotte as u belangstel om meer daaroor te wete te kom, kan u die besonderhede nagaan In die volgende skakel.