Er is een analyser gepubliceerd die 200 kwaadaardige pakketten in NPM en PyPI heeft geïdentificeerd

De OpenSSF (Open Source Security Foundation), gevormd door de Linux Foundation en gericht op het verbeteren van de beveiliging van open source software, introduceerde het open project Package Analysis, dat een systeem ontwikkelt voor het analyseren van de aanwezigheid van kwaadaardige code in pakketten. De projectcode is geschreven in Go en gedistribueerd onder de Apache 2.0-licentie. Dankzij een voorlopige scan van de NPM- en PyPI-repository's met behulp van de voorgestelde tools konden we meer dan 200 voorheen niet-gedetecteerde kwaadaardige pakketten identificeren.

Het grootste deel van de geïdentificeerde problematische pakketten manipuleert de intersectie van namen met interne, niet-openbare afhankelijkheden van projecten (dependency verwarringsaanval) of maakt gebruik van typosquatting-methoden (het toekennen van namen die lijken op de namen van populaire bibliotheken), en roept ook scripts aan die toegang krijgen tot externe hosts tijdens het installatieproces. Volgens de ontwikkelaars van Package Analysis zijn de meeste van de geïdentificeerde problematische pakketten hoogstwaarschijnlijk gemaakt door beveiligingsonderzoekers die deelnamen aan bugbounty-programma's, aangezien de verzonden gegevens beperkt zijn tot de gebruikers- en systeemnaam en de acties expliciet worden uitgevoerd, zonder pogingen om hun gedrag verbergen.

Pakketten met kwaadaardige activiteiten omvatten:

  • PyPI-pakket discordcmd, dat het verzenden van atypische verzoeken naar raw.githubusercontent.com, Discord API en ipinfo.io registreert. Het opgegeven pakket downloadde de achterdeurcode van GitHub en installeerde deze in de Discord Windows-clientmap, waarna het begon met het zoeken naar Discord-tokens in het bestandssysteem en deze naar een externe Discord-server stuurde die door de aanvallers werd beheerd.
  • Het kleurenss NPM-pakket probeerde ook tokens van een Discord-account naar een externe server te sturen.
  • NPM-pakket @roku-web-core/ajax - tijdens het installatieproces stuurde het gegevens over het systeem en lanceerde het een handler (reverse shell) die externe verbindingen accepteerde en opdrachten lanceerde.
  • PyPI-pakket secrevthree - lanceerde een omgekeerde shell bij het importeren van een specifieke module.
  • NPM-pakket willekeurige-vouchercode-generator - na het importeren van de bibliotheek stuurde het een verzoek naar een externe server, die de opdracht retourneerde en het tijdstip waarop deze moest worden uitgevoerd.

Het werk van Package Analysis komt neer op het analyseren van codepakketten in de broncode voor het tot stand brengen van netwerkverbindingen, toegang tot bestanden en het uitvoeren van opdrachten. Bovendien worden veranderingen in de status van pakketten gemonitord om de toevoeging van kwaadaardige invoegingen in een van de releases van aanvankelijk onschadelijke software vast te stellen. Om de verschijning van nieuwe pakketten in repository's te controleren en wijzigingen aan te brengen in eerder geposte pakketten, wordt de Package Feeds-toolkit gebruikt, die het werk met de NPM-, PyPI-, Go-, RubyGems-, Packagist-, NuGet- en Crate-repository's verenigt.

Pakketanalyse omvat drie basiscomponenten die zowel in combinatie als afzonderlijk kunnen worden gebruikt:

  • Planner voor het starten van pakketanalysewerk op basis van gegevens uit pakketfeeds.
  • Een analysator die een pakket rechtstreeks onderzoekt en het gedrag ervan evalueert met behulp van statische analyse en dynamische traceringstechnieken. De test wordt uitgevoerd in een geïsoleerde omgeving.
  • Een lader die de testresultaten in BigQuery-opslag plaatst.

Bron: opennet.ru

Voeg een reactie