L'esperto ha apprezzato il consiglio della NSA di vietare C e C ++: come influenzerà la Russia

La National Security Agency (NSA) degli Stati Uniti ha chiesto agli sviluppatori di tutto il mondo di evitare

i linguaggi di programmazione più vecchi come C e C++ sono considerati più suscettibili agli attacchi degli hacker quando si passa a linguaggi più nuovi e sicuri per la memoria.

Qual è il problema con il linguaggio C++?

Per eseguire le istruzioni nel codice che ti serverisorse di sistema, in particolare la memoria. Il problema con alcuni linguaggi di programmazione più vecchi è che consentono agli sviluppatori di spostarli manualmente. Di conseguenza, la responsabilità della gestione della memoria spetta allo sviluppatore. Semplici errori da parte dei programmatori portano al "guasto" del sistema e all'emergere di problemi di sicurezza.

Questa libertà comporta alcuni rischi.Questi errori di sicurezza della memoria possono derivare da semplici errori di battitura e righe di codice dimenticate oppure da strutture di memoria complesse e interazioni inaspettate.

dichiarazione del Consiglio Atlantico all'Organizzazione del Trattato del Nord Atlantico

In alcuni casi, un utente malintenzionato può utilizzare questi errori per ottenere l'accesso al sistema o eseguire codice dannoso.

Pertanto, lingue ampiamente utilizzate comeCome C e C++, non solo forniscono maggiore libertà e flessibilità nella gestione della memoria, ma “si affidano” anche al programmatore in questo ambito. La NSA ritiene che ciò offra agli hacker l'opportunità di sfruttare le vulnerabilità per i propri scopi.

Opinione dei giganti dell'informatica

Secondo le società tecnologiche, la quotaI vecchi linguaggi come C e C++ rappresentano fino al 65% di tutti gli errori. Pertanto, Microsoft, Google e altri giganti IT notano nei loro codici vulnerabilità dovute a problemi con la sicurezza della memoria.

Quali lingue sono sicure?

Nuovi linguaggi di programmazione come Python,Java* e Rust allocano la memoria automaticamente. Molti di essi eliminano virtualmente i bug di sicurezza o li rendono impossibili. I funzionari della NSA hanno aggiunto C#, Go e Swift alla "lista sicura".

Risposta dal "padre fondatore" di C e C++

Creatore del linguaggio di programmazione C++ BjörnStroustrup ha risposto alla richiesta della NSA di abbandonare l'uso di linguaggi di programmazione legacy, in cui la responsabilità della gestione della memoria spetta allo sviluppatore.

Nella sua lettera aperta pubblicataSu open-std.org, Stroustrup ha espresso disaccordo con la posizione dell'agenzia. Ha affermato che i suoi rappresentanti hanno "accorpato insieme" C e C++, nonostante il fatto che i linguaggi si siano sviluppati in modo indipendente negli ultimi 30 anni. Allo stesso tempo, ha accusato gli sviluppatori di “spesso ignorare i cambiamenti nel linguaggio che possono migliorare radicalmente la sicurezza del codice”.

A suo avviso, infatti, il C++ non è in alcun modo inferiore ai moderni linguaggi cosiddetti sicuri come C#, Go, Java, Ruby, Rust e Swift.

Opinione di un esperto

Per capire quanto seriamente prendere l'avvertimento della NSA, Hi-Tech ha parlato con Andrei Naichenko, il principale architetto di prevendita della piattaforma di produzione software Sphere.

Crede che il pericolo di questo divietoper il mercato e i programmatori non dovrebbero essere sopravvalutati. "I tempi in cui i sistemi applicativi venivano sviluppati in C++ appartengono al passato e il passaggio ai linguaggi consigliati (C#, Go, Java, Ruby e Swift) è già stato completato dalla maggior parte degli sviluppatori", spiega l'esperto.

L'uso odierno del C++limitato a soluzioni di nicchia nel campo dei sistemi operativi, dello sviluppo di giochi e dei motori di gioco (Unreal Engine, Unity), del GPU computing (criptovaluta, deep learning), dello sviluppo di algoritmi ad alto carico e ad alte prestazioni. Dato il volume del codice sviluppato e il numero di specialisti, è improbabile che il passaggio ad altri linguaggi in queste aree avvenga nel prossimo futuro. Per il resto (la parte principale) del mercato, questa raccomandazione della NSA non rappresenta una minaccia.

Per quanto riguarda la validità di questa decisioneAndrey Naichenko ha supportato il creatore del linguaggio C++ Bjarne Stroustrup. "Il linguaggio C++ nelle edizioni moderne dello standard fornisce un insieme ampio e maturo di strumenti che consentono di risolvere con successo i problemi di lavoro sicuro con la memoria", ha spiegato l'esperto.

In che modo la decisione della NSA influenzerà la Russia?

I problemi identificati nel rapporto della NSA sono più probabiliIn totale, sono stati trovati in soluzioni implementate su standard linguistici antichi. In definitiva, la decisione della NSA non avrà alcun impatto significativo sugli sviluppatori di software che puntano al mercato russo.

Leggi di più:

Gli scienziati hanno nominato i primi 6 modi per "salvare" la memoria delle persone anziane

Una misteriosa impronta sotterranea ha sorpreso gli scienziati. Ha più di 1000 anni

La spada che si pensava fosse falsa si rivela essere un manufatto dell'età del bronzo di 3000 anni

*Nonostante Java sia classificato come un nuovo linguaggio, è un linguaggio di programmazione piuttosto vecchio (nota: "High-tech")