La sicurezza della memoria nei linguaggi di programmazione è diventata una questione di sopravvivenza per C++, con Bjarne Stroustrup che lancia un accorato appello alla comunità per difendere il suo futuro. Il creatore del linguaggio ha rotto il suo abituale tono pacato per sollecitare un'azione urgente contro quello che considera un attacco senza precedenti al C++, in un contesto dove agenzie di cybersecurity e giganti tecnologici stanno progressivamente abbandonando i linguaggi con gestione manuale della memoria a favore di alternative più sicure.
In una nota del 7 febbraio indirizzata al Comitato per gli Standard C++ (WG21), Stroustrup ha definito la situazione come "un'opportunità" ma anche come una minaccia esistenziale, sottolineando che "la sicurezza del tipo e delle risorse, inclusa la sicurezza della memoria, sono stati obiettivi chiave del C++ fin dall'inizio". Il tono insolitamente allarmato del professore della Columbia University rivela la gravità della situazione: l'ultima volta che utilizzò un linguaggio così enfatico fu nel 2018, quando avvertì che certe tendenze "avrebbero potuto distruggere il C++".
La preoccupazione di Stroustrup non è infondata. L'agenzia americana CISA (Cybersecurity and Infrastructure Security Agency) ha pubblicato nell'ottobre scorso un rapporto che raccomanda ai produttori di software di elaborare, entro il 1° gennaio 2026, una roadmap per l'eliminazione delle vulnerabilità legate alla memoria nei prodotti che utilizzano linguaggi memory-unsafe, o di adottare direttamente linguaggi con sicurezza della memoria integrata.
Rust avanza, C++ cerca di adattarsi
Il problema fondamentale di C e C++ risiede nella loro gestione manuale della memoria, che può generare errori come letture e scritture fuori dai limiti. Queste vulnerabilità rappresentano la maggioranza dei bug in codebasi di grandi dimensioni e il loro sfruttamento ha causato danni finanziari significativi negli ultimi anni. Non sorprende quindi che esperti di sicurezza informatica, sia nel settore privato che governativo, stiano promuovendo linguaggi con migliore sicurezza della memoria come Rust, Go, C#, Java, Swift, Python e JavaScript.
La risposta della comunità C/C++ non si è fatta attendere, con numerose proposte per migliorare la sicurezza della memoria, tra cui TrapC, FilC, Mini-C e Safe C++. Il framework Profiles proposto da Stroustrup è solo l'ultima di queste iniziative, ma secondo Robin Rowe, responsabile del progetto TrapC, potrebbe non arrivare in tempo o non essere una soluzione pratica.
Secondo Rowe, "Se marchi il tuo codice per applicare un Profilo, alcune funzionalità del linguaggio C/C++ smetteranno di funzionare", costringendo i programmatori a riscrivere parti del loro codice. È improbabile che i Profili C++ vengano standardizzati dal Comitato ISO C++ o implementati in un compilatore prima del 2026, la scadenza indicata dalla CISA.
Il progetto TrapC di Rowe, presentato al Comitato ISO C come potenziale estensione al linguaggio C, promette di rendere sicuri tutti i puntatori senza richiedere modifiche al codice. "I Memory Safe Pointers (MSP) di TrapC non causeranno buffer overrun né segfault", afferma Rowe, sostenendo che altri schemi di sicurezza della memoria per C e C++ non sono abbastanza completi.
La migrazione graduale come via d'uscita
La riscrittura di miliardi di righe di codice in una volta sola rappresenta un problema enorme: anche se il risultato finale fosse sicuro dal punto di vista della memoria, la riscrittura introduce inevitabilmente nuovi bug, molti dei quali potrebbero compromettere la sicurezza. Chisnall propone invece una "storia di migrazione dal C a un dialetto C++ sicuro che le persone possano implementare gradualmente nel corso di anni".
Con la scadenza del 2026 che si avvicina rapidamente, la comunità C/C++ ha poco tempo per rispondere efficacemente. Resta da vedere chi scriverà il prossimo capitolo di questa storia - sempre che la sicurezza della memoria rimanga una priorità governativa, considerando che la nuova amministrazione USA ha rimosso tutto ciò che riguardava questo tema dal sito della Casa Bianca e ha licenziato la maggior parte del personale CISA che si occupava di sicurezza della memoria.
Questo commento è stato nascosto automaticamente. Vuoi comunque leggerlo?