Google e Microsoft refugiam-se na melhor segurança da Rust Language

Google e Microsoft se refugiam na melhor segurança da Rust Language

Quando o Fortanix foi lançado em 2016, a empresa tomou uma decisão: se comprometeria com a linguagem de programação Rust, de um ano de idade, para se beneficiar de seus pontos fortes e desempenho de segurança.

Sete anos depois, o compromisso da Fortanix com a Rust provou ser um sucesso. A empresa desenvolveu 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.

“Houve alguns pioneiros que realmente perceberam 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 focado em código seguro. Embora Rust tenha um valor muito menor Classificação TIOBE superior a C ou C++, o idioma está tendo usuários adicionais significativos ano após ano. Rust também tem seguidores comprometidos: embora apenas 12% dos programadores tenham usado 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 “2023 Developer Survey”.

Gráficos mostrando o crescimento da linguagem de programação Rust

A adoção da ferrugem continua a crescer exponencialmente. Fonte: Lib.rs (https://lib.rs/stats)

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 empresarial e de sistema operacional da Microsoft, durante o BlueHat Israel em março. A empresa criou o DWriteCore em Rust para transformar a análise de fontes em um recurso de segurança de memória e atualmente está trabalhando na experimentação de escrever partes da interface do driver gráfico (GDI) em Rust. A empresa viu um aumento de desempenho de 5% a 15% nas primeiras versões do código.

“Eu diria que estamos na fase de rastreamento… do 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 do código e tentando descobrir se vale a pena aprender Rust.”

No entanto, a Microsoft, patrocinadora da Rust Foundation, comprometeu-se 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 participação 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, vulnerabilidades de segurança de memória, como saturação de buffer, foi responsável por menos da metade de todas as vulnerabilidades no Android.

“Geralmente recomendamos o uso de Rust em qualquer lugar onde você esteja pensando em criar um novo código C [ou] C++”, diz Lars Bergstrom, diretor de engenharia para linguagens de programação Android do Google e presidente do conselho de administração da Rust Foundation. “Portanto, Rust costuma ser uma boa escolha quando você precisa de controle rígido do sistema subjacente e de seus recursos, como memória.”

A Agência de Segurança Nacional também recomenda que os desenvolvedores busquem alternativas ao C e C++ para códigos críticos de segurança porque essas linguagens confiar muito no desenvolvedor para não cometer erros.

Embora a Fortanix tenha se comprometido a usar Rust extensivamente, outras empresas são mais táticas sobre como introduzem a linguagem em suas bases de código. A empresa de gerenciamento de senhas e identidades 1Password, que exige 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, a empresa declarou em uma postagem no blog.

A Microsoft está em uma situação semelhante e não reescreverá grandes partes de sua base de código em Rust, disse Weston.

“Odeio dizer a vocês – conheço os fãs de Rust por aí – reescrever o Windows em Rust provavelmente não acontecerá tão cedo”, disse ele aos participantes da conferência BlueHat Israel. “Embora amemos 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 parte de empresas de dispositivos incorporados e conectados – especialmente em aplicações automotivas, industriais e aeroespaciais – bem como na criação de aplicações Web e em nuvem em outra nova plataforma, WebAssembly, diz Rebecca Rambul, diretora executiva e CEO da Fundação Rust.

“Esse tipo de organização está entre as… primeiras fora das grandes organizações de tecnologia a realmente ver o potencial da Rust, não apenas por causa da segurança, mas por causa da velocidade e do desempenho," ela diz. “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 precisava aprender Rust. Embora o senso comum seja que a linguagem é difícil de aprender, mais de dois terços dos programadores que aprendem Rust disseram que se sentem confiantes em contribuir para um projeto dentro de dois meses, de acordo com uma pesquisa com programadores internos do Google.

Embora os novos programadores tenham adquirido o Rust rapidamente, o compilador continua a ser mais lento do que muitos gostariam, descobriu a pesquisa.

A linguagem requer alguns ajustes, reconhece Michael Erquitt, engenheiro de segurança sênior da empresa de treinamento em codificação segura Security Journey. Além disso, os programadores precisam desenvolver sua própria noção de quais funções e aplicativos se beneficiariam com a linguagem.

“Sempre há compensações inerentes ao escolher linguagens e ferramentas de programação,” Erquitt diz. “Rust como uma linguagem de programação moderna pode ser usada para uma ampla variedade de projetos, mas a escolha, em última análise, se resume ao que melhor satisfaz os requisitos funcionais/do cliente do seu projeto.”

Carimbo de hora:

Mais de Leitura escura