46% av Python-paketen i PyPI-repositoriet innehÄller potentiellt osÀker kod

En grupp forskare vid Åbo universitet (Finland) har publicerat resultaten av en analys av paketen i PyPI-repositoriet med avseende pĂ„ anvĂ€ndning av potentiellt farliga konstruktioner som kan leda till sĂ„rbarheter. Vid analysen av 197 000 paket identifierades 749 000 potentiella sĂ€kerhetsproblem. I 46% av paketen finns det minst ett sĂ„dant problem. Bland de vanligast förekommande problemen mĂ€rks brister relaterade till hantering av undantag och anvĂ€ndning av funktioner som tillĂ„ter kodinjektion.

Av de identifierade 749 000 problemen Àr 442 000 (41%) markerade som obetydliga, 227 000 (30%) som problem av mÄttlig fara och 80 000 (11%) som farliga. Vissa paket sticker ut och har tusentals problem: till exempel har paketet PyGGI identifierat 2589 problem, frÀmst relaterade till anvÀndningen av konstruktionen 'try-except-pass', medan paketet appengine-sdk har 2356 problem. Ett stort antal problem finns ocksÄ i paketen genie.libs.ops, pbcore och genie.libs.parser.

Det bör noteras att resultaten har erhÄllits genom en automatiserad statisk analys som inte tar hÀnsyn till kontexten för anvÀndningen av olika konstruktioner. Utvecklaren av verktyget bandit, som anvÀndes för att skanna koden, uttryckte Äsikten att pÄ grund av det ganska höga antalet falska positiva resultat kan kontrollerna inte direkt betraktas som sÄrbarheter utan ytterligare manuell granskning av varje problem.

Till exempel anser analysatorn att anvÀndning av osÀkra slumptalsgeneratorer och hash-algoritmer som MD5 Àr ett sÀkerhetsproblem, Àven om sÄdana algoritmer i koden kan anvÀndas för ÀndamÄl som inte pÄverkar sÀkerheten. Analysatorn anser ocksÄ att varje hantering av externa data i osÀkra funktioner som pickle, yaml.load, subprocess och eval Àr ett problem, men denna anvÀndning behöver inte nödvÀndigtvis medföra en sÄrbarhet och i praktiken kan anvÀndningen av dessa funktioner genomföras utan sÀkerhetshot.

Bland de kontroller som anvÀndes i studien:

  • AnvĂ€ndning av potentiellt osĂ€kra funktioner som exec, mktemp, eval, mark_safe etc.
  • OsĂ€kert att stĂ€lla in Ă„tkomstrĂ€ttigheter för filer.
  • Anslutning av nĂ€tverksuttag till alla nĂ€tverksgrĂ€nssnitt.
  • AnvĂ€ndning av hĂ„rdkodade lösenord och nycklar.
  • AnvĂ€ndning av en fördefinierad temporĂ€r katalog.
  • AnvĂ€ndning av pass och continue i catch-all-stil undantagshanterare;
  • Kör web-applikationer baserade pĂ„ webbramen Flask med felsökningslĂ€get aktiverat.
  • AnvĂ€ndning av osĂ€kra metoder för deserialisering av data.
  • AnvĂ€ndning av hash-funktionerna MD2, MD4, MD5 och SHA1.
  • AnvĂ€ndning av osĂ€kra kryptografiska algoritmer DES och krypteringslĂ€gen.
  • AnvĂ€ndning av osĂ€kra implementeringar av HTTPSConnection i vissa versioner av Python.
  • Specifikation av file:// scheman i urlopen.
  • AnvĂ€ndning av pseudorandomtalsgeneratorer vid utförande av kryptografiska uppgifter.
  • AnvĂ€ndning av Telnet-protokollet.
  • AnvĂ€ndning av osĂ€kra XML-parsers.

Det Àr vÀrt att nÀmna att 8 skadliga paket har upptÀckts i PyPI-katalogen. Innan problematiska paket togs bort hade de laddats ner mer Àn 30 000 gÄnger. För att dölja skadlig aktivitet och kringgÄ varningar frÄn enklare statiska analyzers anvÀndes blockkodning med Base64 och exekvering efter avkodning via eval-anrop.

I paketen noblesse, genesisbot, are, suffer, noblesse2 och noblessev2 har kod upptÀckts för att fÄnga kreditkortsnummer och lösenord som sparats i Chrome- och Edge-webblÀsare, samt för att överföra token för konton frÄn Discord-appen och sÀnda systemdata inklusive skÀrmdumpar av skÀrminnehÄllet. I paketen pytagora och pytagora2 fanns det möjlighet att ladda ner och köra extern körbar kod.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster