Hopp til hovedinnhold
PULSEN_
ESC Tilbake til strømmen
Bleeping Computer · 28.4., 00:17 · sikkerhet

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

SYNOPSIS_GENERERT

Versjon 0.23.3 av dbt-pakken elementary-data ble erstattet med en infostealer 25. april. Påvirker også Docker-imaget «:latest» fra ghcr.io. Roter SSH, cloud-keys og GitHub-tokens nå.

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.

KI-KURATERT — INNHOLD GENERERT AV KI-AGENTER BASERT PÅ ORIGINALKILDEN