Packagist Supply Chain Attack infecteert 8 pakketten met behulp van door GitHub gehoste Linux-malware

Een nieuwe ‘gecoördineerde’ aanvalscampagne op de toeleveringsketen heeft gevolgen gehad voor acht pakketten Verpakker inclusief kwaadaardige code die is ontworpen om een ​​binair Linux-bestand uit te voeren dat is opgehaald van een GitHub Releases-URL.

“Hoewel de getroffen pakketten allemaal Composer-pakketten waren, werd de kwaadaardige code niet toegevoegd aan composer.json”, aldus Socket. “In plaats daarvan werd het in package.json ingevoegd, gericht op projecten die JavaScript-buildtools naast PHP-code leveren.”

Deze “plaatsing tussen ecosystemen” zorgt ervoor dat de activiteit opvalt, omdat ontwikkelaars en beveiligingsteams die PHP-afhankelijkheden scannen zich mogelijk alleen richten op Composer-gerelateerde metadata, terwijl ze de package.json-levenscyclushaken overslaan die in het pakket zijn gebundeld. De kwaadaardige versies zijn inmiddels verwijderd uit Packagist.

Uit een analyse van de pakketten is gebleken dat hun upstream-repository’s zijn aangepast om een ​​postinstall-script op te nemen dat probeert een Linux-binair bestand te downloaden van een GitHub Releases-URL (“github(.)com/parikhpreyash4/systemd-network-helper-aa5c751f”), het op te slaan in de map “/tmp/.sshd”, de rechten te wijzigen met behulp van “chmod” om uitvoeringsrechten aan alle gebruikers te verlenen, en het op de achtergrond uit te voeren.

De namen van de pakketten en de bijbehorende getroffen versie staan ​​hieronder vermeld:

  • moritz-sauer-13/silverstripe-cms-thema (ontwikkelaar-master)
  • crosiersource/crosierlib-base (ontwikkelaar-master)
  • devdojo/wave (dev-main)
  • devdojo/genesis (dev-main)
  • katanaui/katana (ontwikkelaar-main)
  • elitedevsquad/zijspan-laravel (3.x-dev)
  • r2luna/brain (ontwikkelaar-main)
  • baskarcm/tzi-chat-ui (ontwikkelaar-main)

Het onderzoek van Socket heeft verwijzingen naar dezelfde lading gevonden in 777 bestanden in GitHub, wat erop wijst dat het onderdeel zou kunnen zijn van een bredere campagne. In ten minste twee gevallen is het toegevoegd aan een GitHub-workflow. Het is momenteel echter niet bekend hoeveel hiervan overeenkomen met verschillende compromissen, forks, dubbele pakketartefacten of in de cache opgeslagen verwijzingen.

“Dit suggereert dat de aanvaller niet op één enkel uitvoeringsmechanisme vertrouwde. Bij pakketartefacten werd de payload geactiveerd via package.json postinstall-scripts”, aldus het applicatiebeveiligingsbedrijf. “In workflowbestanden was het gepositioneerd om te worden uitgevoerd tijdens GitHub Actions-taken.”

Bovendien is de exacte aard van de payload die is gedownload van GitHub onduidelijk, omdat het GitHub-account dat is gekoppeld aan de repository die deze host, niet langer beschikbaar is. De keuze voor de naam “gvfsd-network” voor de malware is interessant, omdat deze verwijst naar een GNOME Virtual File System (GVfs)-daemon die verantwoordelijk is voor het beheren en doorzoeken van netwerkshares.

“Zelfs zonder het binaire bestand van de tweede fase is het kwaadaardige installatieprogramma voldoende om blokkering te rechtvaardigen”, aldus Socket. “Het biedt externe code-uitvoering tijdens installatie- of bouwworkflows en probeert de activiteit ervan te verbergen door TLS-verificatie uit te schakelen, fouten te onderdrukken en een gedownload binair bestand op de achtergrond uit te voeren.”

Thijs Van der Does