Quando o Fortanix foi lançado em 2016, a empresa tomou uma decisão: ela se comprometeria com a linguagem de programação Rust de um ano para se beneficiar de seus pontos fortes de segurança e desempenho.
Sete anos depois, o compromisso da Fortanix com Rust provou ser um sucesso. A empresa criou suporte para Intel Software Guard Extensions (SGX), que permite o uso de enclaves seguros para dados do usuário e se beneficia da capacidade do compilador Rust de evitar algumas classes de vulnerabilidades, especialmente problemas de segurança de memória, diz Jethro Beekman, vice-presidente de tecnologia e CISO na empresa de segurança de dados .
“Alguns adotantes iniciais realmente viram esse potencial e, depois de fazer uma pesquisa completa e obter alguma experiência prática com ele, decidimos basicamente apostar tudo”, diz ele. “As ferramentas e o compilador realmente ajudam a evitar erros.”
Oito anos após seu lançamento 1.0, a linguagem Rust e as plataformas de desenvolvimento continuam a ganhar popularidade entre desenvolvedores e empresas focadas em código seguro . Embora Rust tenha uma classificação TIOBE muito mais baixa do que C ou C++ , a linguagem está recebendo usuários adicionais significativos ano após ano. Rust também tem seguidores comprometidos: enquanto apenas 12% dos programadores usaram a tecnologia no ano passado, quase 85% desses desenvolvedores querem continuar usando a linguagem, tornando-a a linguagem de programação “mais admirada”, de acordo com o Stack Overflow ” Pesquisa de desenvolvedores de 2023.”
Como parte de um esforço para eliminar classes de bugs, por exemplo, a Microsoft está reescrevendo partes do kernel usando Rust, disse David Weston, vice-presidente de segurança corporativa e de sistemas operacionais da Microsoft, durante o BlueHat Israel em março. A empresa criou o DWriteCore em Rust para transformar a análise de fonte em um recurso de segurança de memória e atualmente está trabalhando em experimentos com a gravação de partes da interface do driver gráfico (GDI) em Rust. A empresa viu o desempenho aumentar de 5% a 15% nas primeiras versões do código.
“Eu diria que estamos no estágio inicial… para o Rust no Windows”, disse Weston em uma gravação de vídeo de sua apresentação . “Estamos experimentando uma cadeia de ferramentas; estamos analisando a geração de código e tentando descobrir se vale a pena aprender Rust.”
No entanto, a Microsoft, patrocinadora da Rust Foundation, se comprometeu com a linguagem. “Na verdade, você terá o Windows inicializando com Rust no kernel”, diz Weston.
Google, 1Password e outros a bordo
O Google também é um grande apoiador do Rust. A empresa atribui uma queda na parcela de vulnerabilidades de segurança de memória no Android à transição para Rust, Kotlin (uma linguagem de programação funcional) e Java de C e C++. Em 2022, as vulnerabilidades de segurança de memória, como estouros de buffer, representaram menos da metade de todas as vulnerabilidades no Android .
“Geralmente recomendamos o uso de Rust em qualquer lugar que você esteja pensando em criar um novo código C [ou] C++”, diz Lars Bergstrom, diretor de engenharia para linguagens de programação Android no Google e presidente do conselho de administração da Rust Foundation. “Portanto, o Rust costuma ser uma boa escolha quando você precisa de um controle rígido do sistema subjacente e de seus recursos, como a memória.”
A Agência de Segurança Nacional também recomenda que os desenvolvedores busquem alternativas para C e C++ para códigos críticos de segurança porque essas linguagens dependem muito de que o desenvolvedor não cometa erros .
Embora a Fortanix tenha se comprometido a usar Rust extensivamente, outras empresas são mais táticas sobre como introduzir a linguagem em suas bases de código. A empresa de gerenciamento de senhas e identidades 1Password, que requer segurança sólida para proteger os armazenamentos de senhas dos usuários, adotou Rust como sua plataforma de desenvolvimento para seus principais componentes de segurança de dados, usando outras linguagens para a interface front-end em diferentes sistemas operacionais, afirmou a empresa em uma postagem de blog .
A Microsoft está em uma situação semelhante e não reescreverá grandes trechos de sua base de código em Rust, disse Weston.
“Eu odeio dizer a vocês – eu conheço os fãs do Rust por aí – reescrever o Windows no Rust provavelmente não vai acontecer tão cedo”, disse ele aos participantes da conferência BlueHat Israel. “Apesar de amarmos o Rust, precisamos de uma estratégia que também inclua proteger mais do nosso código nativo.”
Curva de aprendizado não tão íngreme
A Rust Foundation tem visto uma grande adoção por empresas de dispositivos embarcados e conectados – especialmente em aplicativos automotivos, industriais e aeroespaciais – bem como na criação de aplicativos Web e em nuvem em outra nova plataforma, WebAssembly, diz Rebecca Rambul, diretora executiva e CEO da Rust Foundation.
“Esses tipos de organizações estão entre as… primeiras fora das grandes organizações de tecnologia a realmente ver o potencial do Rust, não apenas por causa da segurança, mas por causa da velocidade e do desempenho “, diz ela. “Você obtém esse nível de segurança por causa da segurança da memória, mas não perde nada do ponto de vista do desempenho.”
Quando o Fortanix começou, todo programador tinha que aprender Rust. Embora o senso comum seja que a linguagem é difícil de aprender, mais de dois terços dos programadores que estão aprendendo Rust disseram que se sentem confiantes em contribuir para um projeto em dois meses, de acordo com uma pesquisa de programadores internos do Google .
Embora novos programadores tenham aprendido Rust rapidamente, o compilador continua mais lento do que muitos gostariam, constatou a pesquisa.
A linguagem requer alguns ajustes, reconhece Michael Erquitt, engenheiro de segurança sênior da empresa de treinamento de codificação segura Security Journey. Além disso, os programadores precisam desenvolver seu próprio senso de quais funções e aplicativos se beneficiariam da linguagem.
“Sempre há compensações inerentes ao escolher linguagens e ferramentas de programação”, diz Erquitt . “Rust como uma linguagem de programação moderna pode ser usada para uma ampla gama de projetos, mas a escolha acaba se resumindo ao que melhor satisfaz os requisitos funcionais/do cliente do seu projeto.”
FONTE: DARKREADING