Il creatore di C++ ha criticato l'imposizione di linguaggi di programmazione sicuri

Bjarne Stroustrup, il creatore del linguaggio C++, ha pubblicato obiezioni alle conclusioni riportate nel rapporto della NSA, nel quale veniva raccomandato alle organizzazioni di allontanarsi dall'uso di linguaggi di programmazione come C e C++, che delegano la gestione della memoria agli sviluppatori, a favore di linguaggi come C#, Go, Java, Ruby, Rust e Swift, che forniscono gestione automatica della memoria o eseguono controlli di sicurezza della memoria durante la compilazione.

Secondo Stroustrup, i linguaggi considerati sicuri nel rapporto della NSA non superano in realtà C++ in applicazioni importanti dal suo punto di vista. In particolare, le recenti linee guida fondamentali per l'uso di C++ (C++ Core Guidelines) coprono le metodologie di programmazione sicura e prescrivono l'uso di strumenti che garantiscono un utilizzo sicuro dei tipi e delle risorse. Gli sviluppatori che non richiedono tali rigorose garanzie di sicurezza possono continuare a usare i metodi di sviluppo più vecchi.

Stroustrup ritiene che un buon analizzatore statico che segua le raccomandazioni delle C++ Core Guidelines possa fornire le necessarie garanzie di sicurezza del codice C++, richiedendo significativamente meno costi rispetto alla transizione verso nuovi linguaggi di programmazione sicuri. Ad esempio, gran parte delle raccomandazioni delle Core Guidelines è già implementata nell'analizzatore statico e nel profilo di utilizzo sicuro della memoria di Microsoft Visual Studio. Alcune raccomandazioni sono state incorporate anche nell'analizzatore statico Clang tidy.

Oggetto di critica è stata anche l'enfasi del rapporto della NSA esclusivamente sui problemi legati alla memoria, ignorando molti altri problemi dei linguaggi di programmazione che influenzano la sicurezza e l'affidabilità. Stroustrup considera la sicurezza un concetto più ampio, le cui diverse sfaccettature possono essere raggiunte attraverso una combinazione di stili di scrittura del codice, librerie e analizzatori statici. Per gestire l'inclusione delle regole che garantiscono la sicurezza del lavoro con tipi e risorse, si propone di utilizzare annotazioni nel codice e opzioni del compilatore.

Nelle applicazioni in cui le prestazioni sono più importanti della sicurezza, un approccio del genere offre la possibilità di applicare selettivamente misure di sicurezza solo dove necessario. Gli strumenti per migliorare la sicurezza possono anche essere applicati parzialmente, ad esempio, inizialmente limitandosi a regole di controllo dei range e di inizializzazione, per poi adattare gradualmente il codice a requisiti più rigorosi.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster