Negli ultimi anni, il numero di vulnerabilità e esposizioni comuni segnalate (CVE) è aumentato costantemente. Solo nella prima metà del 2024, le CVE segnalate sono state 22.254, con un aumento del 30% rispetto alle 17.114 CVE registrate nel 2023. Poiché queste vulnerabilità, se sfruttate, hanno conseguenze dannose dal punto di vista finanziario e reputazionale, le aziende si trovano di fronte a un'unica opzione: correggere tempestivamente le vulnerabilità. Ma è più facile a dirsi che a farsi. A volte, con i sistemi legacy, è semplicemente impraticabile aggiornare le versioni vulnerabili a quelle più recenti che contengono le patch di sicurezza. È qui che entra in gioco il backporting.
Immaginate di avere un'auto d'epoca che possedete da anni. Improvvisamente, il motore e le ruote iniziano a dare problemi. La triste notizia è che si tratta di un modello molto vecchio, quindi non è possibile trovare i ricambi. Ma non volete nemmeno sostituire l'auto con un modello più recente. Quindi, invece, chiedete al vostro meccanico di procurarsi dei ricambi compatibili da un modello nuovo e di montarli sulla vostra auto d'epoca. Problema risolto!p>
Il backporting è simile a questo; significa adattare le patch della versione più recente del software per risolvere i problemi nei sistemi legacy. In questo articolo esploriamo il backporting, mettendone in evidenza l'importanza, i casi d'uso, le vulnerabilità associate e le migliori pratiche.
Che cos'è il backporting?
Il backporting è la pratica di prendere le correzioni di sicurezza o le nuove funzionalità introdotte nelle versioni più recenti del software e trasferirle alle versioni precedenti.
Perché il backporting è importante? Parte fondamentale della gestione delle vulnerabilità, il backporting diventa una necessità quando l'aggiornamento delle versioni vulnerabili del software è problematico.
Consideriamo questo esempio reale: Red Hat ha distribuito Red Hat Linux 8.0. utilizzando Apache HTTP Server versione 2.0.40. Poco dopo, sono state scoperte delle vulnerabilità di sicurezza nella vecchia versione di Apache ed è stata rilasciata una nuova versione, la 2.0.43.
Sebbene la nuova versione risolvesse tali bug, conteneva anche modifiche al codice che avrebbero reso il software upstream incompatibile con molte implementazioni downstream che dipendevano da esso. Pertanto, anziché applicare la nuova versione nella sua interezza, Red Hat ha effettuato il backport della patch prendendo i frammenti di codice pertinenti e modificandoli per adattarli alla versione precedente.
Essenzialmente, il backporting significa accedere e aggiornare autonomamente il codice sorgente di una versione del software oppure ottenere una versione upstream sottoposta a backporting dal proprio distributore di software, come nell'esempio di Red Hat sopra riportato. Ecco alcuni scenari comuni per il backporting:
- Sistemi legacy: Le aziende che dipendono da software legacy devono affrontare una sfida unica: i sistemi esistenti sono spesso incompatibili con gli ultimi aggiornamenti. Il backporting risolve questo problema, correggendo i problemi di prestazioni e sicurezza nei sistemi legacy senza richiedere la sostituzione completa o il refactoring.
- Conformità normativa: Per le organizzazioni che trattano informazioni sanitarie protette (PHI), informazioni sulle carte di pagamento (PCI) e informazioni di identificazione personale (PII) dei clienti, la protezione dei dati sensibili in conformità con gli standard normativi come HIPAA, GDPR e PCI DSS è una priorità. Il backporting consente a queste aziende di soddisfare i requisiti di conformità senza dover affrontare le seccature legate alla gestione delle versioni del software.
- Limiti delle risorse: Laddove gli aggiornamenti comporterebbero un costo significativo in termini di risorse umane, finanziarie e di sistema che molte aziende semplicemente non possono permettersi, il backporting offre un'alternativa efficiente dal punto di vista delle risorse.
Differenze tra backporting, patch e aggiornamento
Il backporting, il patch e l'aggiornamento sono concetti analoghi, che svolgono funzioni simili ma con metodi diversi. Ecco una panoramica delle differenze.
| Parametri | Backporting | Patching | Aggiornamento |
|---|---|---|---|
| Funzione | Aggiorna le patch critiche delle nuove versioni del software a quelle precedenti | Applica correzioni di sicurezza alle versioni attuali del software per risolvere vulnerabilità isolate | Passa da una versione precedente del software a una nuova, dotata di funzionalità migliorate e patch di sicurezza |
| Obiettivo | Principalmente finalizzato alla risoluzione di problemi di sicurezza | Risoluzione di problemi di sicurezza e prestazioni | Fornire miglioramenti a tutto campo |
| Sfida | Richiede una vasta competenza tecnica | Se non adeguatamente testato, può causare instabilità o introdurre nuovi rischi | Può introdurre problemi di compatibilità con il software a valle |
Come funziona il backporting?
Il processo di backporting prevede una serie di passaggi:
Fase 1: Identificare la vulnerabilità per la quale si desidera eseguire il backporting delle correzioni di sicurezza. Ciò può avvenire tramite controlli di sicurezza condotti da team interni o avvisi di sicurezza pubblicati su Internet.
Fase 2: Individuare la nuova versione del software che risolve il problema.
Fase 3: Isolare la correzione dalle altre modifiche presenti nella nuova versione del software estraendo i frammenti di codice necessari.
Fase 4: Adattare la correzione isolata al vecchio sistema.
Fase 5: Eseguire il test in un ambiente controllato, per assicurarsi che risolva effettivamente la vulnerabilità, senza introdurre problemi di prestazioni o sicurezza o altri effetti indesiderati, come la modifica delle funzionalità precedenti.
Fase 6: Eseguire il backport delle correzioni al vecchio sistema, distribuirle in produzione e monitorarle continuamente.
Vulnerabilità associate al backporting
Sebbene il backporting offra un'ancora di salvezza fondamentale alle organizzazioni che non sono in grado di aggiornare determinati software, non è privo di rischi. Uno dei rischi principali del backporting è che i sistemi più vecchi potrebbero non supportare nativamente i framework di sicurezza più recenti. Pertanto, le correzioni backportate potrebbero finire per introdurre vulnerabilità di backporting mentre si sta cercando di correggere altre vulnerabilità.
Cosa sono le vulnerabilità di backporting?
Le vulnerabilità di backporting sono rischi derivanti dall'adattamento di patch di sicurezza progettate per sistemi moderni a versioni precedenti, che possono causare effetti collaterali imprevisti.
Tipi di vulnerabilità di backporting
Quando esistono differenze significative nell'architettura o nelle dipendenze tra la versione nuova e quella vecchia del software, il backporting può introdurre i seguenti tipi di vulnerabilità:
1. Vulnerabilità di sicurezza
Le correzioni di sicurezza nelle versioni più recenti del software spesso si basano su paradigmi di sicurezza che non sono presenti nelle versioni precedenti. Se si esegue il backporting di queste correzioni, è necessario prestare attenzione a non introdurre nuove vulnerabilità di backporting o a non risolvere in modo improprio quelle precedenti.
Ad esempio, Microsoft ha recentemente rilasciato un aggiornamento per una vulnerabilità di esecuzione di codice remoto (RCE) in .NET (CVE-2024-38229). Sebbene efficace nei sistemi .NET 8.0 e 9.0, questo aggiornamento, se backportato su .NET 6.0, potrebbe non avere l'effetto desiderato. Questo perché lo stream HTTP/3, che è al centro della vulnerabilità, è solo sperimentale nella versione 6.0.
2. Problemi di compatibilità
Quando si esegue il backporting, ci sono molti componenti da considerare, tra cui dipendenze, API, framework e librerie, sistemi operativi, applicazioni fork e altro ancora. Considerando questo lungo elenco, diventa difficile garantire che le patch sottoposte a backporting si integrino completamente con tutti i componenti. Laddove l'architettura dei sistemi legacy è semplicemente incompatibile con quelli più recenti, potrebbero essere necessarie modifiche estese alla patch.
Ad esempio, le versioni più recenti del software utilizzano moderni kit di sviluppo software (SDK) come Kubernetes SDK che potrebbero non esistere nel software legacy. Il backporting delle patch in questi casi richiederebbe agli sviluppatori di riscrivere i frammenti di codice (contenenti la patch) o di installare complicate soluzioni alternative, che devono essere anch'esse compatibili.
3. Deterioramento delle prestazioni
Le versioni più recenti dei software sono spesso progettate per garantire velocità e sicurezza, il che può renderle più pesanti in termini di risorse. Il backporting di patch progettate in questo modo su sistemi più vecchi e lenti può sovraccaricare la capacità di elaborazione dei sistemi, causando tempi di risposta più lenti, errori o, peggio ancora, crash del sistema.
Rischi associati al backporting delle vulnerabilità
- Rischi per la sicurezza: Le patch backportate in modo improprio possono lasciare le vulnerabilità irrisolte o introdurne di nuove.
- Rischi operativi: L'allocazione delle risorse per il backporting può causare potenziali tempi di inattività o interruzioni del servizio.
- Rischi di conformità: Un backporting inadeguato può comportare la non conformità agli standard di sicurezza.
Come testare e convalidare le modifiche backportate
Testare e convalidare le patch backportate prima della loro distribuzione è fondamentale per garantire un processo di backporting sicuro ed efficace. Ciò comporta:
- Utilizzo di soluzioni di gestione delle vulnerabilità per rilevare le vulnerabilità che il processo di backporting non ha risolto completamente.
- Utilizzo di scanner di vulnerabilità per accertarsi che il processo di backporting non abbia introdotto nuove vulnerabilità.
- Utilizzo di strumenti di test di regressione per verificare che le patch si integrino correttamente senza influire negativamente sulle funzionalità esistenti.
- Implementazione di penetration tester per testare ulteriormente le patch backportate alla ricerca di potenziali vulnerabilità di sicurezza.
Sfide del backporting
Sebbene il backporting sia un modo efficace per risolvere le vulnerabilità nei sistemi legacy che non possono essere facilmente sostituiti, le aziende possono trovarsi ad affrontare le seguenti sfide:
#1. Complessità
In caso di problemi di compatibilità, il backporting richiede una riscrittura approfondita del codice, che di solito è un processo che richiede molto tempo, oltre al fatto che le aziende dovrebbero impiegare ingegneri e strumenti altamente specializzati.
#2. Rischi irrisolti
Il backporting, anche quando compatibile, potrebbe non risolvere completamente il problema. Ciò potrebbe verificarsi se la vulnerabilità risiede nella progettazione architettonica stessa. In tal caso, il backporting potrebbe dare alle aziende un'illusione di sicurezza fino a quando la vulnerabilità non viene sfruttata.
#3. Confusione nella numerazione CVE
Molte soluzioni di sicurezza rilevano le vulnerabilità esclusivamente correlandole ai numeri identificativi CVE presenti nei database delle vulnerabilità. Pertanto, è abbastanza comune che tali strumenti continuino a segnalare le versioni del software come vulnerabili anche dopo che il backporting ha risolto completamente la vulnerabilità, portando a falsi positivi.
#4. Documentazione scadente
Le organizzazioni dipendono dai fornitori di servizi per le patch software per sistemi operativi, framework, librerie e altro ancora. Nei casi in cui gli aggiornamenti non sono fattibili, questi fornitori eseguono il backport delle patch. Se ciò non è chiaramente documentato per ogni correzione di sicurezza rilasciata, gli utenti potrebbero inavvertitamente supporre che sia stato eseguito un aggiornamento anziché un backport.
Lo stesso vale per i processi di backport interni scarsamente documentati. Una documentazione inadeguata crea confusione negli utenti sul motivo per cui hanno ancora una versione precedente dopo che è stato effettuato un "aggiornamento". Può anche introdurre vulnerabilità di sicurezza se gli utenti non applicano correttamente le modifiche backportate.
Best practice per la mitigazione delle vulnerabilità del backporting
Ecco le 7 migliori best practice di backporting da implementare per un processo di backporting privo di vulnerabilità.
- Valutare le esigenze di backporting: Prima di scegliere il backporting, assicurarsi che sia l'approccio più efficace per risolvere la vulnerabilità. Valutare attentamente questo aspetto esaminando in modo approfondito il degrado delle prestazioni e le complessità operative che si verificheranno se si sceglie il backporting o l'aggiornamento.
- Seguire protocolli di test rigorosi: Testare accuratamente le correzioni backportate per le vulnerabilità di sicurezza e i problemi di prestazioni prima della distribuzione. Test rigorosi, in ambienti controllati, garantiscono che le vulnerabilità esistenti siano risolte e che il processo di backporting non ne introduca di nuove.
- Condurre valutazioni approfondite dei rischi: Assicurarsi che qualsiasi potenziale rischio o sfida di backporting che si dovrà affrontare sia ampiamente superato dai vantaggi in termini di sicurezza, operatività e conformità per la propria azienda.
- Mantenere una documentazione completa: Questo è fondamentale per tracciare le modifiche backportate nel tempo e creare audit trail di conformità dettagliati. È inoltre fondamentale per il debug futuro e l'analisi delle cause alla radice.
- Utilizzare sistemi di controllo delle versioni (VCS): I VCS come Git e Azure DevOps sono ottimi strumenti per tracciare le modifiche sottoposte a backporting e mantenere l'integrità del codice. Forniscono cronologie delle versioni che risultano utili in caso di problemi di instabilità con le versioni backportate e di necessità di ripristinare una versione stabile precedente.
- Stabilire processi di gestione delle modifiche: Ciò include un controllo e una revisione approfonditi delle patch backportate prima della loro distribuzione, l'applicazione delle modifiche backportate senza interrompere le funzioni dell'applicazione e il monitoraggio continuo dello stack IT per individuare eventuali cali di prestazioni o altri potenziali problemi dopo l'implementazione del backporting.
- Utilizzare gli strumenti giusti: Gli strumenti giusti per la gestione delle vulnerabilità e i test di sicurezza possono fare un'enorme differenza nella fluidità del processo di backporting.
Casi d'uso comuni per il backporting
Il caso d'uso più comune per il backporting è il software legacy, dove gli aggiornamenti completi sono impossibili. Ciò è particolarmente comune nel settore sanitario, finanziario e in altri settori in cui i sistemi legacy sono essenziali per le operazioni quotidiane e qualsiasi tentativo di aggiornarli comporterebbe enormi interruzioni del servizio. Altri casi d'uso del backporting includono:
- Protezione dei sistemi di produzione mission-critical in cui è essenziale un'elevata disponibilità, ad esempio i mainframe comunemente utilizzati dalle banche per gestire volumi elevati di traffico e esigenze di elaborazione rapida dei dati
- Garantire versioni di supporto a lungo termine (LTS) di progetti open source, ad esempio il kernel Linux LTS, comunemente utilizzato dai fornitori di servizi cloud per garantire la stabilità e facilitare la compatibilità delle versioni in ambienti ibridi.
- Soddisfare i requisiti di conformità in settori altamente regolamentati come quello finanziario e sanitario. Ad esempio, grazie al backporting delle patch, gli ospedali possono rimanere conformi alle leggi sulla protezione dei dati come l'HIPAA, senza dover affrontare le notevoli interruzioni del servizio associate agli aggiornamenti.
Liberate la cybersicurezza alimentata dall'intelligenza artificiale
Elevate la vostra posizione di sicurezza con il rilevamento in tempo reale, la risposta automatica e la visibilità totale dell'intero ambiente digitale.
Richiedi una demoConclusione
Il backporting può correggere molti problemi, ma può anche introdurre nuove sfide. Sarai al sicuro utilizzando una soluzione di monitoraggio delle minacce AI per affrontare le vulnerabilità in corso o quelle potenziali che potrebbero emergere. È possibile eseguire il backporting delle patch di sicurezza dalle versioni più recenti a quelle precedenti per correggere le vulnerabilità senza causare aggiornamenti dirompenti.
Un backporting di successo richiede test approfonditi, documentazione completa, analisi dei rischi corretta e strumenti di sicurezza specializzati per assistere il processo.
"FAQs
Il backporting consiste nell'isolare le patch di sicurezza delle versioni recenti del software e applicarle alle versioni precedenti per risolvere vulnerabilità critiche di sicurezza. L'aggiornamento, invece, consiste nell'implementare nuove versioni del software contenenti patch di sicurezza, correzioni di bug, nuove funzionalità e altri miglioramenti.
Le organizzazioni dovrebbero scegliere il backporting piuttosto che l'aggiornamento quando i sistemi hanno requisiti di uptime elevati, gli aggiornamenti possono causare gravi problemi di incompatibilità o gli aggiornamenti richiedono semplicemente troppo tempo e risorse per essere fattibili.
Le sfide comuni del backporting includono la complessità che richiede modifiche estese, modifiche backportate scarsamente documentate e vulnerabilità risolte in modo improprio.
I team di sviluppo svolgono un ruolo significativo nel backporting delle vulnerabilità. Innanzitutto, in collaborazione con i team di sicurezza, devono identificare le vulnerabilità critiche nelle versioni precedenti del software. Successivamente, gli sviluppatori devono isolare le correzioni del codice nelle nuove versioni e adattarle ai sistemi precedenti.
