Er is een nieuwe software supply chain-aanvalscampagne waargenomen waarbij gebruik wordt gemaakt van sleeper-pakketten als kanaal om vervolgens kwaadaardige ladingen te pushen die diefstal van inloggegevens, geknoei met GitHub Actions en SSH-persistentie mogelijk maakten.
De activiteit is toegeschreven aan het GitHub-account “BufferZoneCorp“, dat een reeks opslagplaatsen heeft gepubliceerd die zijn gekoppeld aan kwaadaardige Ruby-edelstenen en Go-modules. Op het moment van schrijven zijn de pakketten uit RubyGems gehaald en zijn de Go-modules geblokkeerd. De namen van de bibliotheken staan hieronder vermeld –
- Robijn:
- knot-activesupport-logger
- knoop-bedacht-jwt-helper
- knot-rack-sessie-winkel
- knoop-rails-activa-pijplijn
- knot-rspec-formatter-json
- knot-date-utils-rb (Sleeper-edelsteen)
- knot-simple-formatter (Sleeper-edelsteen)
- Gaan:
- github(.)com/BufferZoneCorp/go-metrics-sdk
- github(.)com/BufferZoneCorp/go-weather-sdk
- github(.)com/BufferZoneCorp/go-retryablehttp
- github(.)com/BufferZoneCorp/go-stdlib-ext
- github(.)com/BufferZoneCorp/grpc-client
- github(.)com/BufferZoneCorp/net-helper
- github(.)com/BufferZoneCorp/config-loader
- github(.)com/BufferZoneCorp/log-core (Sleeper-module)
- github(.)com/BufferZoneCorp/go-envconfig (Sleeper-module)
De geïdentificeerde pakketten doen zich voor als herkenbare en bekende modules zoals activesupport-logger, devise-jwt, go-retryablehttp, grpc-client en config-loader om detectie te omzeilen en gebruikers te misleiden om ze te downloaden.
“Het account maakt deel uit van een software supply chain-campagne die zich richt op ontwikkelaars, CI-runners en bouwomgevingen in twee ecosystemen”, zei Socket-beveiligingsonderzoeker Kirill Boychenko in een vandaag gepubliceerde analyse.
De Ruby-edelstenen zijn ontworpen om diefstal van inloggegevens tijdens de installatie te automatiseren, waarbij omgevingsvariabelen, SSH-sleutels, AWS-geheimen, .npmrc, .netrc, GitHub CLI-configuratie en RubyGems-inloggegevens worden verzameld. De gestolen gegevens worden vervolgens geëxfiltreerd naar een door de aanvaller bestuurd Webhook(.)site-eindpunt.
Aan de andere kant bieden de Go-modules bredere mogelijkheden om met GitHub Actions-workflows te knoeien, valse Go-wrappers te plaatsen, ontwikkelaarsgegevens te stelen en een hardgecodeerde openbare SSH-sleutel toe te voegen aan “~/.ssh/authorized_keys” voor externe toegang tot de gecompromitteerde host. De modules hebben niet allemaal hetzelfde laadvermogen; in plaats daarvan zijn ze verspreid over het cluster.
“De module wordt uitgevoerd via init(), detecteert GITHUB_ENV en GITHUB_PATH, stelt HTTP_PROXY en HTTPS_PROXY in, schrijft een nep-go-uitvoerbaar bestand in een cachemap en voegt die map toe aan het workflowpad, zodat de wrapper wordt geselecteerd vóór het echte binaire bestand”, legt Boychenko uit.
“Die wrapper kan vervolgens latere uitvoeringen onderscheppen of beïnvloeden, terwijl hij nog steeds de controle overdraagt aan het legitieme binaire bestand om te voorkomen dat de klus wordt gekraakt.”
Gebruikers die de pakketten hebben geïnstalleerd, wordt geadviseerd deze van hun systemen te verwijderen, te controleren op tekenen van toegang tot gevoelige bestanden of ongeautoriseerde wijzigingen aan “~/.ssh/authorized_keys”, blootgestelde inloggegevens te roteren en netwerklogboeken te inspecteren op uitgaand HTTPS-verkeer naar het exfiltratiepunt.