PyPI -förvaret innehåller potentiellt osäker kod

Forskare från Åbo universitet (Finland) gjort känt nyligen resultaten av en analys de gjorde med paketen i förvaret av PyPI för användning av potentiellt farliga konstruktioner som kan generera sårbarheter. I analysen som cirka 197.000 749.000 paket genomfördes och XNUMX XNUMX möjliga säkerhetsproblem identifierades.

Med andra ord har 46% av paketen minst ett av dessa problem, varav bland de vanligaste problemen är de som rör hantering av undantag och användning av kodersättningsfunktioner.

Av de 749 tusen identifierade problemen, 442 tusen (41%) märktes som minderåriga, 227 tusen (30%) som måttligt farliga och 80 tusen (11%) som farliga.

Datauppsättningen är baserad på en ögonblicksbild av alla paket som är lagrade i Python Package Index (PyPI) ...

När det gäller typer av problem, som undantagshantering och olika kodinjektioner har varit de vanligaste problemen. I den meningen sticker trådmodulen ut. Med tanke på de i allmänhet små paketstorleken förutspår mjukvarustorleksmätvärden inte väl antalet problem som avslöjas genom analys. 

Vissa paket är ovanliga och innehåller tusentals problem: Till exempel hittades 2589 problem i PyGGI-paketet, främst relaterade till användningen av "try-except-pass" -konstruktionen, och 2356 problem hittades i appengine-sdk-paketet. Det finns också många problem i paketet genie.libs.ops, pbcore och genie.libs.parser.

Det bör noteras att resultaten erhölls på grundval av en automatiserad statisk analys, som inte tar hänsyn till sammanhanget för tillämpningen av vissa strukturer.

Bandit -utvecklaren, som användes för att skanna koden, föreslog att på grund av det stora antalet falska positiva, lsökresultat kan inte betraktas som sårbarheter direkt utan ytterligare manuell granskning av varje problem.

Till exempel anser parsern användningen av opålitliga slumptalsgeneratorer och haschalgoritmer som MD5 som ett säkerhetsproblem, medan i kod kan sådana algoritmer användas för ändamål som inte påverkar säkerheten.

Analysatorn anser också att eventuell extern databehandling i osäkra funktioner som pickle, yaml.load, delprocess och eval det är ett problem, men denna användning är inte nödvändigtvis förknippad med en sårbarhet och faktiskt kan användningen av dessa funktioner vara ett problem som genomförs utan ett säkerhetshot.

Bland kontrollerna som används i studien:

  • Användning av potentiellt osäkra funktioner exec, mktemp, eval, mark_safe, etc.
  • Osäker konfiguration av filåtkomsträttigheter.
  • Anslut en nätverksplugg till alla nätverksgränssnitt.
  • Användning av lösenord och krypterade nycklar.
  • Använda en fördefinierad tillfällig katalog.
  • Använda pass och fortsätt i catch-all-style undantagshanterare.
  • Starta webbapplikationer baserade på Flask -webbramen med felsökningsläge aktiverat.
  • Använda osäkra metoder för att deserialisera data.
  • Med hjälp av hashfunktioner MD2, MD4, MD5 och SHA1.
  • Användning av osäkra DES -chiffer och krypteringslägen.
  • Använda en osäker HTTPSConnection -implementering i vissa versioner av Python.
  • Ange filen: // schema i urlopen.
  • Använd pseudo-slumpmässiga talgeneratorer när du utför kryptografiska uppgifter.
  • Använda Telnet -protokollet.
  • Använda osäkra XML -parsers.

Dessutom nämns upptäckten av 8 skadliga paket i PyPI -katalogen. Problempaket laddades ner mer än 30 64 gånger innan de togs bort. För att dölja skadlig aktivitet och undvika enkla statiska parservarningar på paket använde vi blockkodning med kod med BaseXNUMX -formatet och iscensatte dess körning efter avkodning genom att ringa eval.

Koden som finns i noblesse, genesisbot, är, suff, noblesse2 och noblessev2 -paket för att fånga upp kreditkortsnummer och lösenord som lagras i Chrome och Edge webbläsare, samt överföra kontotoken från Discord -applikationen och skicka data från systemet, inklusive skärmdumpar av skärminnehåll. … Pytagora- och pytagora2-paketen inkluderade möjligheten att ladda ner och köra körbar kod från tredje part.

Slutligen om du är intresserad av att veta mer om detkan du kontrollera detaljerna I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.