A CISA e o FBI, dois importantes órgãos de segurança dos Estados Unidos, publicaram um documento em que pedem a empresas de desenvolvimento de software do país que deixem de usar linguagens de programação como C e C++. Motivo? Diminuir as vulnerabilidades em sistemas.
Não é uma recomendação que vem de agora. A própria Cybersecurity and Infrastructure Security Agency (CISA) tem mantido uma postura contrária ao uso de linguagens de programação antigas pelo menos desde 2019. As linguagens C e C++ têm sidos os principais alvos dos órgãos públicos de segurança americanos por serem amplamente utilizadas pela indústria.
O que há de errado com elas? O relatório da CISA explica que linguagens como C e C++ “dão muita liberdade e flexibilidade no gerenciamento de memória enquanto dependem fortemente do programador para executar as verificações necessárias nas referências de memória”.
Ou seja, o principal problema está no acesso direto à memória. C, C++ e outras linguagens mais antigas dão essa abertura, o que pode ser útil para otimizações finas no desempenho do software, por exemplo. Por outro lado, essa característica aumenta o risco de problemas como estouro ou vazamento de memória.
Problemas dessa ordem, quando encontrados em softwares implementados, podem ser explorados por agentes maliciosos para invasões de sistemas, capturas de dados sigilosos, paralisações de serviços e assim por diante.
Como forma de prevenir esses problemas, a CISA publicou, em outubro, o relatório Práticas Ruins de Segurança de Produtos (em tradução livre). O documento aborda justamente práticas de desenvolvimento de software que são consideradas inseguras atualmente e faz recomendações para substituí-las.
No caso de práticas que envolvem o acesso à memória, o órgão recomenda medidas que previnem esse problema, entre elas, o uso de “uma linguagem [de programação] segura para a memória ou recursos de hardware que previnam vulnerabilidades de segurança de memória”.
Use linguagens de programação mais modernas
Entre as linguagens que são mais seguras no aspecto do acesso à memória e, portanto, aparecem como substitutas em potencial, estão Rust, Java, C#, Go, Python e Swift.
Falando assim, parece fácil. Mas migrar de linguagem pode ser uma missão complexa, custosa e demorada, afinal, tende a exigir amplo planejamento, treinamento de programadores, numerosas rotinas de testes, homologação e vários outros procedimentos.
Apesar disso, a CISA pede para que empresas de software elaborem um roteiro para mover suas bases de código a linguagens mais modernas e apresentem esse documento até 1º de de janeiro de 2026.
Ainda que as recomendações sejam direcionadas ao mercado americano, essa mudança pode ter gerar uma mobilização sobre toda a indústria de software.
Com informações: The Register, TechRepublic