CircleCI: il servizio di creazione del codice subisce una totale compromissione delle credenziali

CircleCI: il servizio di creazione del codice subisce una totale compromissione delle credenziali

CircleCI: il servizio di creazione del codice subisce una compromissione totale delle credenziali PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Se sei un programmatore, che tu codifichi per hobby o per professione, saprai che creare una nuova versione del tuo progetto, una versione ufficiale di "rilascio" che tu stesso, o i tuoi amici o i tuoi clienti, installerete effettivamente e l'uso - è sempre un po' una corsa da brividi.

Dopotutto, una versione di rilascio dipende da tutto il tuo codice, si basa su tutte le tue impostazioni predefinite, esce solo con la tua documentazione pubblicata (ma nessuna conoscenza interna) e deve funzionare anche su computer che non hai mai visto prima, configurati in configurazioni che non avevi mai immaginato, insieme ad altri software di cui non hai mai testato la compatibilità.

In poche parole, più un progetto diventa complesso e più sviluppatori ci lavorano e più componenti separati devono funzionare senza problemi con tutti gli altri...

… più è probabile che l'intera cosa sia molto meno impressionante della somma delle parti.

Come rozza analogia, considera che la squadra di atletica leggera con i velocisti individuali più veloci sui 100 metri non vince sempre la staffetta 4x100 metri.

CI in soccorso

Un tentativo per evitare questo tipo di crisi "ma ha funzionato bene sul mio computer" è una tecnica nota in gergo come Integrazione continua, o CI in breve.

L'idea è semplice: ogni volta che qualcuno apporta una modifica alla propria parte del progetto, prendi il nuovo codice di quella persona e passa loro e il loro nuovo codice attraverso un ciclo completo di compilazione e test, proprio come faresti prima di creare una versione finale versione.

Costruisci presto, costruisci spesso, costruisci tutto, costruisci sempre!

Chiaramente, questo è un lusso che i progetti nel mondo fisico non possono accettare: se stai costruendo, per esempio, un Sydney Harbour Bridge, non puoi ricostruire un intero arco di prova, con materie prime completamente nuove, ogni volta che decidi di modificare il processo di rivettatura o di vedere se riesci a montare pennoni più grandi in cima.

Anche quando "costruisci" un progetto software per computer da un gruppo di file sorgente in una raccolta di file di output, consumi risorse preziose, come l'elettricità, e hai bisogno di un improvviso aumento della potenza di calcolo per funzionare insieme a tutti i computer che gli sviluppatori stessi stanno usando.

Dopotutto, nei processi di ingegneria del software che utilizzano CI, l'idea non è di aspettare che tutti siano pronti, e quindi che tutti facciano un passo indietro dalla programmazione e aspettino il completamento di una build finale.

Le build avvengono tutto il giorno, tutti i giorni, in modo che i programmatori possano sapere con largo anticipo se hanno inavvertitamente apportato "miglioramenti" che influiscono negativamente su tutti gli altri: rompere la costruzione, come direbbe il gergo.

L'idea è: fallire presto, risolvere rapidamente, aumentare la qualità, fare progressi prevedibili e spedire in tempo.

Certo, anche dopo una build di test riuscita, il tuo nuovo codice potrebbe ancora contenere bug, ma almeno non arriverai alla fine di un ciclo di sviluppo e poi scoprirai che tutti devono tornare al tavolo da disegno solo per ottenere il software per costruire e funzionare affatto, perché i vari componenti si sono spostati fuori allineamento.

I primi metodi di sviluppo del software venivano spesso indicati come segue a modello a cascata, dove tutti hanno lavorato in modo armonioso ma indipendente mentre il progetto scivolava dolcemente a valle tra le scadenze delle versioni, fino a quando tutto si è riunito alla fine del ciclo per creare una nuova versione, pronta a tuffarsi nella tumultuosa cascata di un aggiornamento della versione, solo per emergere in un'altra delicato periodo di acqua limpida a valle per ulteriore progettazione e sviluppo. Un problema con quelle "cascate", tuttavia, era che spesso finivi intrappolato in un vortice circolare apparentemente senza fine proprio sull'orlo della cascata, nonostante la gravità, incapace di superare l'orlo del precipizio fino a quando non modifiche (e concomitanti superamenti) hanno reso possibile il proseguimento del viaggio.

Solo il lavoro per il cloud

Come puoi immaginare, adottare la CI significa avere a disposizione una serie di server potenti e pronti all'uso ogni volta che uno dei tuoi sviluppatori attiva una procedura di build-and-test, al fine di evitare di ricadere in quel "rimanere bloccato al situazione molto lip of the waterfall.

Sembra un lavoro per il cloud!

E, in effetti, lo è, con numerosi cosiddetti servizi cloud CI/CD (this CD non è un disco musicale riproducibile, ma una scorciatoia per consegna continua) offrendoti la flessibilità di avere un numero sempre variabile di rami diversi di prodotti diversi che passano attraverso build configurati in modo diverso, forse anche su hardware diverso, allo stesso tempo.

CircleCI è uno di questi servizi basati su cloud...

…ma, sfortunatamente per i loro clienti, l'hanno appena fatto ha subito una violazione.

Tecnicamente, e come sembra essere comune in questi giorni, l'azienda non ha effettivamente utilizzato le parole "violazione", "intrusione" o "attacco" da nessuna parte nella sua notifica ufficiale: finora, è solo un incidente di sicurezza.

L'originale bacheca [2023-01-04] ha dichiarato semplicemente che:

Volevamo informarti che stiamo attualmente indagando su un incidente di sicurezza e che la nostra indagine è in corso. Ti forniremo aggiornamenti su questo incidente e la nostra risposta non appena saranno disponibili. A questo punto, siamo fiduciosi che non vi siano soggetti non autorizzati attivi nei nostri sistemi; tuttavia, per precauzione, vogliamo assicurarci che tutti i clienti adottino determinate misure preventive per proteggere anche i tuoi dati.

Cosa fare?

Da allora, CircleCI ha fornito aggiornamenti regolari e ulteriori consigli, che si riducono principalmente a questo: "Si prega di ruotare tutti i segreti memorizzati in CircleCI.

Come abbiamo spiegato prima, la parola gergale ruotare è scelto male qui, perché è l'eredità di un passato pericoloso in cui le persone facevano letteralmente "ruotare" password e segreti attraverso un piccolo numero di scelte prevedibili, non solo perché tenerne traccia di nuove era più difficile allora, ma anche perché la sicurezza informatica non era t importante come lo è oggi.

Ciò che significa CircleCI è che devi CAMBIARE tutte le tue password, i segreti, i token di accesso, le variabili di ambiente, le coppie di chiavi pubblico-privato e così via, presumibilmente perché gli aggressori che hanno violato la rete hanno rubato i tuoi o non si può provare che non lo siano averli rubati.

La società ha un fornito un elenco dei vari tipi di dati di sicurezza privata interessati dalla violazione e ha creato un comodo script chiamato CircleCI-Env-Ispettore che puoi utilizzare per esportare un elenco in formato JSON di tutti i segreti dell'elemento della configurazione che devi modificare nel tuo ambiente.

Inoltre, i criminali informatici possono ora disporre di token di accesso e chiavi crittografiche che potrebbero fornire loro un modo per rientrare nella tua rete, soprattutto perché i processi di creazione di CI a volte devono "chiamare casa" per richiedere codice o dati che non puoi o non vuoi da caricare nel cloud (gli script che lo fanno sono noti in gergo come corridori).

Quindi, CircleCI consiglia:

Consigliamo inoltre ai clienti di rivedere i log interni dei loro sistemi per qualsiasi accesso non autorizzato a partire dal 2022-12-21 [fino al 2023-01-04 incluso] o al completamento di [modifica dei segreti].

Curiosamente, anche se comprensibilmente, alcuni clienti hanno notato che la data implicita di CircleCI in cui è iniziata questa violazione [2022-12-21] coincide proprio con un post sul blog il società pubblicata sui recenti aggiornamenti sull'affidabilità.

I clienti volevano sapere: "La violazione era correlata a bug introdotti in questo aggiornamento?"

Dato che gli articoli di aggiornamento sull'affidabilità dell'azienda sembrano essere riepiloghi di notizie, piuttosto che annunci di singole modifiche apportate in date specifiche, la risposta ovvia è "No"...

…e CircleCI ha affermato che la data casuale del 2022-12-21 per il post sul blog sull'affidabilità era proprio questa: una coincidenza.

Buona rigenerazione delle chiavi!


Timestamp:

Di più da Sicurezza nuda