Hopp til hovedinnhold

Onsdag 7. oktober

 Tilbake Koding 2 min 02.17

Bakdør i PyPI-pakken elementary-data nådde 1,1 millioner brukere via Actions-injeksjon

tirsdag 28. april · KI-generert · Kilde: Bleeping Computer

Innholdet er KI-generert og kan inneholde feil. Sjekk originalkilden.

Roter SSH-nøkler, AWS/GCP/Azure-credentials og .env-filer hvis du har installert elementary-data 0.23.3 eller pullet «:latest» fra ghcr.io denne uken. Bakdøren stjeler både utvikler-tokens og kryptolommebøker.

Bleeping Computer rapporterte 27. april at angripere kompromitterte den populære data-observability-pakken elementary-data ved å publisere en infostealer som versjon 0.23.3. Pakken har 1,1 millioner månedlige nedlastinger på PyPI og er en standard-komponent i mange dbt-pipelines og KI-prosjekter. Community-medlemmet «crisperik» oppdaget bakdøren samme dag og åpnet en issue på GitHub. En ren versjon 0.23.4 er nå publisert.

Angrepsvektoren er det interessante her. StepSecurity-analysen viser at angriperen ikke kompromitterte vedlikeholdernes kontoer (slik tilsvarende angrep ofte gjør), men la igjen en ondsinnet kommentar på en pull request som utnyttet en script injection-feil i workflow-en. Det fikk GitHub Actions til å kjøre angriper-kontrollert shell-kode, som lekket workflow-ens GITHUB_TOKEN. Med tokenet i hånd signerte angriperen en commit og tag (v0.23.3), og det legitime release-pipelinen bygde og publiserte den ondsinnede pakken til både PyPI og GitHub Container Registry.

«Release-workflow-en som laster opp til PyPI har også en build-and-push-docker-image-jobb. Bakdøren spredde seg automatisk til Docker-imaget også.» — StepSecurity-analysen

Payloaden er en elementary.pth-fil som lastes ved Python-oppstart. Den henter SSH-nøkler, Git-credentials, AWS/GCP/Azure-keys, Kubernetes- og Docker-secrets, CI-tokens, .env-filer og kryptolommebøker for Bitcoin, Litecoin, Dogecoin, Zcash, Dash, Monero og Ripple. I tillegg samles /etc/passwd, logger og shell-historie.

Nøkkeltall
1,1 mill
Månedlige nedlastinger av elementary-data på PyPI
0.23.3
Den ondsinnede versjonen (oppgrader til 0.23.4)
0.23.4
Sikker versjon publisert som erstatning

Hva bør du gjøre?

  1. Sjekk om du har installert 0.23.3. Kjør pip show elementary-data på alle utvikler-maskiner og CI-runners. Sjekk også Docker-pulls av ghcr.io/elementary-data/elementary:0.23.3 og :latest denne uken.
  2. Roter alt som har vært i miljøet. SSH-nøkler, AWS/GCP/Azure-credentials, GitHub-tokens, dbt Cloud-tokens, .env-innhold. Anta full kompromittering hvis pakken kjørte.
  3. Pin versjoner i requirements.txt og Dockerfile. Bruk eksakt versjon eller hash-pinning (pip-tools eller poetry.lock). «latest»-tags i container-registries er en angrepsoverflate.

Pulsen · norske KI-nyheter for deg som bygger. Sakene er KI-generert fra originalkilden, som alltid lenkes.