Il creatore del C++ critica l'imposizione di linguaggi di programmazione sicuri

Bjarne Stroustrup, il creatore del linguaggio C++, ha pubblicato obiezioni riguardo alle conclusioni tratte nel rapporto della NSA, in cui si raccomandava alle organizzazioni di allontanarsi dall'uso di linguaggi di programmazione come C e C++, che trasferiscono la gestione della memoria agli sviluppatori, a favore di linguaggi come C#, Go, Java, Ruby, Rust e Swift, che offrono la gestione automatica della memoria o eseguono controlli di sicurezza nella gestione della memoria durante la compilazione.

Secondo Stroustrup, i linguaggi sicuri menzionati nel rapporto della NSA non superano C++ in applicazioni importanti secondo la sua prospettiva. In particolare, le linee guida di base per l'uso di C++ sviluppate negli ultimi anni (C++ Core Guidelines) trattano metodi di programmazione sicura e prescrivono l'uso di strumenti che garantiscono un lavoro sicuro con tipi e risorse. Allo stesso tempo, agli sviluppatori che non necessitano di tali rigorose garanzie di sicurezza viene lasciata la possibilità di continuare a utilizzare metodi di sviluppo più tradizionali.

Stroustrup crede che un buon analizzatore statico, conforme alle linee guida del C++ Core Guidelines, possa fornire le garanzie necessarie per la sicurezza del codice C++, richiedendo significativamente meno sforzo rispetto all'adozione di nuovi linguaggi di programmazione sicuri. Ad esempio, la maggior parte delle raccomandazioni delle linee guida Core è già implementata nell'analizzatore statico e nel profilo di sicurezza della memoria di Microsoft Visual Studio. Alcune raccomandazioni sono state anche considerate nell'analizzatore statico Clang tidy.

Un altro aspetto oggetto di critica è stato l'accento posto nel rapporto della NSA esclusivamente sui problemi relativi alla gestione della memoria, trascurando molte altre problematiche dei linguaggi di programmazione che influenzano la sicurezza e l'affidabilità. Stroustrup considera la sicurezza come un concetto più ampio, le cui diverse sfaccettature possono essere raggiunte attraverso una combinazione di stile di codifica, librerie e analizzatori statici. Si propone di utilizzare annotazioni nel codice e opzioni del compilatore per gestire l'inclusione di regole che garantiscano la sicurezza nella gestione dei tipi e delle risorse.

Nelle applicazioni in cui le prestazioni sono più importanti della sicurezza, questo approccio consente di applicare selettivamente misure che garantiscono la sicurezza solo dove necessario. Gli strumenti per migliorare la sicurezza possono essere applicati parzialmente, ad esempio, iniziando con regole di verifica dei limiti e inizializzazione, per poi adattare gradualmente il codice a requisiti più rigorosi.

Fonte: opennet.ru

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