Vai al paragrafo

Cos'è la sicurezza della catena di distribuzione del software?

Copia URL

La sicurezza della catena di distribuzione del software combina le procedure consigliate per la gestione del rischio ai principi della sicurezza informatica, allo scopo di tutelare la catena di distribuzione del software da possibili vulnerabilità. Per catena di distribuzione del software si intende l'insieme delle tecnologie, dei processi e delle persone coinvolti in qualsiasi attività che riguardi il codice durante il ciclo di vita dello sviluppo del software (SDLC), dallo sviluppo applicativo alla pipeline CI/CD e al deployment. 

La catena di distribuzione comprende le reti informatiche che riguardano un determinato software, come i componenti (l'infrastruttura, i componenti hardware, il sistema operativo, i servizi cloud, ecc.), chi si occupa di scrivere il codice e le sorgenti (i registri, i repository GitHub, le codebase e gli altri progetti open source). Include anche le vulnerabilità che potrebbero compromettere la sicurezza del software. Ed è questo il contesto in cui la sicurezza della catena di distribuzione del software riveste un ruolo chiave.  

 

Al giorno d'oggi la maggior parte dei software non viene scritta da zero. In genere si combinano insieme diversi artefatti software contenenti software open source. Il problema però è che questi artefatti possono presentare delle vulnerabilità e che gli sviluppatori hanno minore controllo sul codice sorgente creato da terze parti e su eventuali modifiche apportate a un artefatto software nel tempo. E se un software non dispone delle patch necessarie è più soggetto a problemi di sicurezza. Poiché il software è essenziale per l'esecuzione delle operazioni aziendali quotidiane, garantire la sicurezza della catena di distribuzione è una delle responsabilità chiave di ogni organizzazione e team di sicurezza.

Nel 2020 la SolarWinds, un'azienda che sviluppa software, è stata vittima di un attacco informatico durante il quale gli hacker sono riusciti a lanciare il codice dannoso tramite Orion, il software dell'azienda per il monitoraggio e la gestione degli ambienti IT e piattaforma scelta da grandi aziende e agenzie governative. Attaccando la catena di distribuzione, gli hacker sono arrivati a violare non solo i sistemi di SolarWinds ma anche quelli dei suoi clienti. Un caso analogo è quello del software open source di Log4j che, nonostante l'ampia diffusione, presenta delle vulnerabilità che lo rendono il veicolo ideale per perpetrare attacchi informatici a spese dei suoi utenti. Nel 2021 anche il presidente degli Stati Uniti ha ribadito l'importanza della catena di distribuzione e della sicurezza informatica, firmando due decreti in merito.

Un rischio per uno qualsiasi dei componenti della catena di distribuzione del software rappresenta potenzialmente un rischio per tutti gli artefatti software che si basano su quel componente. Offre agli hacker l'opportunità di introdurre malware, backdoor o altre tipologie di codice dannoso per compromettere i componenti e le relative catene di distribuzione. Gli attacchi alla catena di distribuzione del software, che siano spinti da motivazioni economiche o politiche, sono in aumento e possono avere ripercussioni critiche sia nel mondo digitale che in quello fisico. Normalmente i rischi rientrano in una delle quattro categorie riportate di seguito:

  • Vulnerabilità: sono difetti nel codice software che gli hacker possono sfruttare. L'applicazione delle patch e l'aggiornamento degli artefatti software riduce il rischio.
  • Licenze: sono rischi legali che potrebbero obbligarti a rendere open source gli artefatti software che hai cerato o annullare i diritti brevettuali. In questo caso è bene avvalersi di un consulente legale.
  • Dipendenze da terze parti: sono tutte le dipendenze dalle organizzazioni esterne che intervengono nella catena di distribuzione del software. Non sempre sono facili da individuare. Esamina attentamente il codice prodotto da terze parti e chiedi ai fornitori quali strategie di sicurezza utilizzano.
  • Processi e policy: sono due elementi imprescindibili. Crea delle policy per gli sviluppatori e dei processi (o playbook) per intervenire tempestivamente qualora si presentasse una vulnerabilità.

I vettori di attacco più comuni sono l'hijacking degli aggiornamenti, l'indebolimento della firma del codice e la manomissione del codice open source. 

DevSecOps è un approccio alla cultura, all'automazione e alla progettazione software che integra la sicurezza come responsabilità condivisa lungo l'intero ciclo di vita dell'IT. Questo approccio è incentrato sulla sicurezza delle applicazioni e dell'infrastruttura sin dalle prime fasi e sull'automatizzazione di alcune attività di controllo della sicurezza per evitare che rallentino il flusso di lavoro DevOps. Per realizzare tali obiettivi, è necessario scegliere gli strumenti che consentano di integrare la sicurezza in maniera costante, come un ambiente di sviluppo integrato (IDE) dotato di funzionalità di sicurezza.

Red Hat Advanced Cluster Security for Kubernetes integra i controlli di sicurezza nella catena di distribuzione del software e nei carichi di lavoro degli sviluppatori per individuare i problemi di sicurezza a rischio elevato e contribuire a risolverli. Inoltre, automatizza la sicurezza nelle attività DevOps fornendo agli sviluppatori un contesto di sicurezza all'interno dei loro attuali flussi di lavoro. 

La catena di distribuzione del software è composta da tutti gli elementi, processi e persone inclusi, che intervengono sul codice, mentre la sicurezza delle applicazioni si occupa di protegge il codice da attacchi e vulnerabilità. Analogamente alla sicurezza della catena di distribuzione del software, anche la sicurezza delle applicazioni si dovrebbe adottare in ogni fase dello sviluppo. 

La sicurezza delle applicazioni inizia nel ciclo di vita dello sviluppo del software e si estende per tutto il ciclo di vita dell'applicazione con l'obiettivo di prevenire l'accesso non autorizzato al sistema e proteggere i dati proprietari. Incrementando l'integrità della catena di distribuzione, si aumenta anche la sicurezza delle applicazioni. Rafforzare le configurazioni, ridurre al minimo le superfici di attacco, limitare le autorizzazioni, firmare i software e distribuire le build in punti diversi del sistema sono tutte ottime soluzioni per impedire agli hacker di compromettere le applicazioni. 

La sicurezza della catena di distribuzione del software è importante per le organizzazioni, per i loro clienti e per qualsiasi azienda che basi il suo lavoro su contributi open source. Le organizzazioni oggi non devono soltanto tutelate i loro sistemi da eventuali violazioni, ma devono preoccuparsi anche di non diventare veicolo di attacchi perpetrati ai danni di altre aziende. Riuscire a proteggere la catena di distribuzione del software è indispensabile per garantire la sicurezza di tutti.  

Ecco alcune procedure consigliate per i team di sicurezza:

  • Adotta il principio del privilegio minimo per l'accesso alle risorse in tutta la catena di distribuzione (ad esempio strumenti per sviluppatori, repository del codice sorgente e altri sistemi software), abilita l'autenticazione a più fattori e usa password complesse.
  • Organizza regolarmente corsi di formazione sulla sicurezza per i dipendenti.
  • Rafforza la sicurezza di tutti i dispositivi connessi e dei dati sensibili.
  • Assicurati di conoscere i fornitori con cui collabori, a partire dalle aziende più importanti. Esegui una valutazione del rischio per stabilire il livello di sicurezza informatica dei fornitori e le loro policy pubbliche sulle vulnerabilità.
  • Scansiona regolarmente i sistemi vulnerabili e applica le patch necessarie.

Gli sviluppatori dovrebbero adottare pratiche di programmazione sicure, come i file di blocco e altre iniziative orientate alla sicurezza:

  • Convalida i checksum.
  • Inserisci le dipendenze dai fornitori nel controllo della sorgente.
  • Pubblica e utilizza la distinta base (SBOM).
  • Adotta i Supply Chain Levels for Software Artifacts (SLSA), che prevedono:
    • La possibilità di firmare digitalmente gli artefatti software per autenticarne l'origine.
    • La possibilità di automatizzare i processi e le policy.
  • Scansiona i tuoi software con strumenti di valutazione della sicurezza automatizzati come gli strumenti di Composition Analysis (SCA), Static Application Security Testing (SAST) e Dynamic Application Security Testing (DAST).

Red Hat comprende l'esigenza di proteggere le componenti e le dipendenze software sin dalle prime fasi del ciclo di vita dello sviluppo e risponde a questa necessità servendosi delle pratiche DevSecOps per automatizzare l'integrazione della sicurezza a 360°. Adotta direttamente prodotti affidabili con supporto sempre disponibile e lascia che sia Red Hat a occuparsi della catena di distribuzione upstream. Red Hat e i suoi partner mettono a disposizione competenza, un ecosistema DevSecOps completo la capacità di supportare le organizzazioni nell'implementazione della catena di distribuzione durante l'intero ciclo di vita dello sviluppo del software.

Keep reading

ARTICOLO

Cos'è la metodologia DevSecOps?

Per sfruttare tutta l'agilità e la reattività di un approccio DevOps, occorre tenere conto anche di un altro elemento cruciale dell'intero ciclo di vita delle tue applicazioni: la sicurezza IT.

ARTICOLO

La sicurezza nel cloud

I problemi di sicurezza hanno un impatto sia sui sistemi IT tradizionali che su quelli cloud. Scopri perché la sicurezza nel cloud è differente.

ARTICOLO

Cosa si intende con SOAR?

L'acronimo SOAR indica 3 capacità chiave utilizzate dai team che si occupano di sicurezza: gestione dei casi e dei flussi di lavoro, automazione delle attività e sistema centralizzato di accesso, query e condivisione dei dati di intelligence sulle minacce.

Scopri di più sulla sicurezza

Prodotti

Un framework di sicurezza progettato per gestire le identità utente e garantire la privacy delle comunicazioni.

Una soluzione, Kubernetes native ed enterprise ready, per la sicurezza dei container che permette di creare, distribuire ed eseguire applicazioni cloud native in modo più sicuro.

Un servizio di analisi predittiva per identificare e contrastare le minacce a sicurezza, prestazioni e disponibilità della tua infrastruttura Red Hat.

Una soluzione che permette di controllare cluster e applicazioni Kubernetes da una singola console dotata di criteri di sicurezza integrati.

Risorse