O criador do C++ criticou a imposição de linguagens de programação seguras

Bjarne Stroustrup, o criador da linguagem C++, publicou objeções às conclusões do relatório da NSA, que recomendava que as organizações se afastassem de linguagens de programação como C e C++, que deixam o gerenciamento de memória para o desenvolvedor, em favor de linguagens ​​como C#, Go, Java, Ruby, Rust e Swift, que fornecem gerenciamento automático de memória ou realizam verificações de segurança de memória em tempo de compilação.

Segundo Stroustrup, as linguagens seguras mencionadas no relatório da NSA não são de fato superiores ao C++ nas aplicações que são importantes do seu ponto de vista. Em particular, as recomendações básicas para o uso de C++ (Diretrizes Básicas de C++), desenvolvidas nos últimos anos, abrangem métodos de programação seguros e prescrevem o uso de ferramentas que garantem um trabalho seguro com tipos e recursos. Isso deixa aos desenvolvedores que não exigem garantias de segurança tão rigorosas a opção de continuar usando métodos de desenvolvimento antigos.

Stroustrup acredita que um bom analisador estático que siga as Diretrizes Básicas do C++ pode fornecer as garantias necessárias para a segurança do código C++ a um custo significativamente menor do que a migração para novas linguagens de programação seguras. Por exemplo, a maioria das Diretrizes Básicas já está implementada no analisador estático e no perfil de segurança de memória incluídos no Microsoft Visual Studio. Algumas recomendações também são levadas em consideração no analisador estático Clang tidy.

O relatório da NSA também foi criticado por focar apenas em problemas de memória, deixando de fora muitos outros problemas de linguagem de programação que afetam a segurança e a confiabilidade. Stroustrup vê a segurança como um conceito mais amplo, cujas diferentes facetas podem ser alcançadas por uma combinação de estilo de codificação, bibliotecas e analisadores estáticos. Para controlar a inclusão de regras que garantam a segurança do trabalho com tipos e recursos, propõe-se a utilização de anotações no código e opções do compilador.

Em aplicações onde o desempenho é mais importante que a segurança, esta abordagem permite a aplicação seletiva de recursos que garantem a segurança apenas onde ela é necessária. As ferramentas de segurança também podem ser aplicadas de maneira fragmentada, começando com verificação de intervalo e regras de inicialização e, em seguida, adaptando gradualmente o código a requisitos mais rigorosos.

Fonte: opennet.ru

Adicionar um comentário