Il governo US preferirebbe che si smettesse di programmare strumenti in C o C++. In un nuovo rapporto, l’Office of the National Cyber Director (ONCD) della Casa Bianca ha invitato gli sviluppatori a utilizzare “linguaggi di programmazione sicuri per la memoria”, una categoria che esclude i linguaggi più diffusi.

The consiglio fa parte della strategia di Cybersecurity del Presidente degli Stati Uniti Biden and mira in rendere sicuri gli elementi costitutivi del cyberspazio.

La sicurezza della memoria si riferisce alla protezione da bug e vulnerabilità che riguardano l’accesso alla memoria.

Nel 2019, gli ingegneri della sicurezza di Microsoft hanno riferito che circa il 70% delle vulnerabilità di sicurezza erano causate da problemi di sicurezza della memoria

I rischi

La violazione dell’accesso alla memoria può compromettere gravemente un programma, consentendo la manipolazione e lo sfruttamento non autorizzati del flusso di esecuzione e dell’integrità dei dati.

Quando un aggressore ottiene il controllo della memoria, può leggere o alterare informazioni sensibili, come password, chiavi di crittografia o dati personali dell’utente, direttamente dallo spazio di memoria del programma.

Questo accesso può portare all’esecuzione di codice arbitrario, consentendo agli aggressori di iniettare payload dannosi, installare backdoor o aumentare i privilegi. Inoltre, sfruttando vulnerabilità come buffer overflow o errori use-after-free, gli aggressori possono sovrascrivere aree di memoria critiche, reindirizzando il flusso di controllo del programma verso codice dannoso.

Questi exploit minano l‘affidabilità, la sicurezza e l’attendibilità del programma, portando potenzialmente a violazioni dei dati, corruzione del sistema e gravi danni finanziari o di reputazione per l’organizzazione colpita.

Delphi e Dossier Manager sono “memory-safe”

Tra i linguaggi suggeriti dalla NSA risulta anche Delphi, il linguaggio di Dossier Manager.

Pur non avendo la garbage collection, Delphi è caratterizzato dalla presenza di un sistema di tipo forte e la verifica da parte del linguaggio della mappatura dei tipi di dati in fase di compilazione e non in fase di esecuzione. I linguaggi dinamici, anche se dotati di un garbage collector, possono essere carenti ed essere esposti in errori di runtime, che possono influire sulla loro sicurezza.

In più, Delphi non deve ricorrere all’uso di puntatori e a una gestione più diretta della memoria nel codice generale. Sebbene Delphi non blocchi l’uso dell’accesso diretto alla memoria, questo è piuttosto raro. Delphi offre meccanismi che automatizzano e semplificano la gestione della memoria anche senza un GC.

Share this article!