Há dois anos, o Google vem culpando as linguagens de programação do C e C++ afirmando que 70% das vulnerabilidades de alta gravidade no Android eram devidas a bugs de memória, que continuam a formar a base do sistema operacional móvel. Então, os dados foram levantados como o motivo para então introduzir o Rust no desenvolvimento do Android. Então, o criador do C++ critica relatório que defende a superioridade de ‘linguagens seguras’ como Rust.
Em novembro passado, a Agência de Segurança Nacional dos EUA (NSA) divulgou um breve relatório chamado ‘Software Memory Safety’ (PDF), no qual ele mandava explicitamente interromper o uso das antigas (e muito populares) linguagens de programação C e C++ em troca de ‘linguagens seguras de gerenciamento de memória’, os exemplos mais conhecidos seriam C#, Java, Ruby ou o crescente Rust .
Porém, agora o site do Open Standards Project publicou um documento que contesta o da NSA, intitulado “Uma chamada à ação: pense seriamente sobre segurança e faça algo sensato a respeito”.
O autor chama-se Bjarne Stroustrup, ele é um professor de computação dinamarquês que criou a linguagem C++ ano de 1979 . Nesta resposta ao relatório original, nosso protagonista lança um argumento contra o que ele acha ser uma simplificação excessiva por parte da agência federal dos EUA:
Agora, se eu considerasse uma dessas linguagens ‘seguras’ superior ao C++ para a os tipos de usos em que estou interessado, não veria o fim do C/C++ como algo negativo, mas não é o caso. . Conforme descrito [pela NSA], ‘seguro’ é limitado à segurança da memória, deixando de fora uma dúzia de maneiras diferentes pelas quais um idioma pode (e será) usado para violar qualquer tipo de proteção.”
Não existe uma definição única de segurança
Stroustrup deixa claro que ” ignorar as questões de segurança prejudicaria grandes seções da comunidade C++ no entanto, também o resto do trabalho que estamos fazendo para melhorar o C++”,mas, portanto, ele propõe não ceder a quem quer que veja Rust et al. como a solução para os tais problemas: “Porém, podemos alcançar várias classes de segurança por meio de uma combinação de estilos de programação, bibliotecas complementares e aplicativos de análise estática .”
Um dos exemplo de tais bibliotecas seria SLIMalloc, que de acordo com seu autor torna C uma linguagem “mais segura do que linguagens ‘seguras em memória'”. O criador do C++ também menciona outro documento de sua autoria (PDF) esse documento fornece um breve resumo do processo que ele propõe.
Criador do C++ critica relatório que defende a superioridade de ‘linguagens seguras’ como Rust
Ele, porém, argumenta que um analisador estático que esteja em conformidade com as diretrizes básicas do C++ desenvolvidas nos últimos anos pode garantir a segurança do código a um custo muito menor do que o necessário para iniciar uma transição de código para novas linguagens. Algumas dessas diretrizes já foram implementadas no analisador estático do MS Visual Studio ou no Clang-Tidy.
Ele afirma que, se trabalharmos em domínios de aplicativos que priorizam o desempenho em detrimento da segurança de tipo, poderemos ” aplicar garantias de segurança somente quando for necessário usar nossas técnicas de ajuste favoritas” no restante dos casos.
Da mesma forma, Stroustrup afirma que
Infelizmente, muito do código C++ está parado no passado distante, ignorando melhorias, incluindo maneiras de melhorar drasticamente a segurança. [Mas] bilhões de linhas de código C++ não vão desaparecer magicamente, e até mesmo código ‘seguro’ (em qualquer idioma) terá que chamar ou ser chamado pelo código C ou C++ tradicional que não oferece garantias de segurança específicas.