Rust é uma linguagem de programação compilada multiparadigma e de uso geral.
Há poucos dias, foi anunciada a notícia sobre o resultados de uma investigação em que mostram que a Rust tem potencial para atrair e facilitar a chegada de novos contribuintes para projetos de código aberto, ao mesmo tempo que reconhece a redução de vulnerabilidades.
O estudo foi realizado por membros da Universidade de Waterloo, Canadá, através do estudo do projeto Oxidation da Mozilla, os autores revelam que a linguagem Rust reduz significativamente a probabilidade de novos contribuidores introduzirem vulnerabilidades no código, em comparação com C++.
Além disso, é mencionado que a pesquisa também avalia vulnerabilidades de Rust em projetos de código aberto e mede a eficácia do algoritmo SZZ na identificação de commits que induzem a erros.
E não é surpresa que Rust já esteja entre as principais linguagens de programação preferidas por muitos, além de ser uma das mais recomendadas para quem está começando no mundo da programação.
Para quem ainda não conhece Rust, saiba que esta é uma linguagem de programação compilada multiparadigma projetada e desenvolvida pela Mozilla Research desde 2010. Ela foi projetada para ser “uma linguagem prática, concorrente e confiável”, suportando modelos puramente funcionais , de atores, procedimentais e orientados a objetos em determinados aspectos. Devido à política da Mozilla, Rust é desenvolvido de forma totalmente aberta e solicita feedback e contribuições da comunidade. O design da linguagem é melhorado gradualmente graças ao feedback da equipe, com a maioria das contribuições provenientes da comunidade.
O grupo de pesquisadores menciona em sua publicação intitulada «Classificação em uma curva: como o Rust pode facilitar novos colaboradores e, ao mesmo tempo, diminuir vulnerabilidades", o que Novos contribuidores são essenciais para projetos de código aberto eporque sem eles, o projeto acabará por atrofiar e tornar-se inativo, ou os seus colaboradores experientes distorcerão as direções futuras do projeto.
No entanto, novos contribuintes Eles também podem correr maior risco de introduzir código vulnerável. Para projetos que necessitam de implementações seguras e de uma comunidade forte e diversificada de colaboradores, este conflito é uma questão que sempre teve de ser levada em consideração. É por isso que É mencionado na investigação que uma das rotas planeadas Para atingir este objetivo, reduzir as possibilidades de introdução de código vulnerável, consiste em reescrever elementos de código C ou C++ em Rust, uma linguagem projetada para ser aplicada aos mesmos domínios de C e C++, mas com maiores garantias de segurança.
Para determinar se Rust pode ajudar a evitar que novos contribuidores introduzam vulnerabilidades e, assim, aliviar a carga dos mantenedores, examinamos o projeto Oxidation da Mozilla, que substituiu componentes do navegador Firefox por equivalentes escritos em Rust.
Os pesquisadores confiaram na coleta de dados disponíveis desses projetos para derivar parâmetros para as curvas de aprendizado de um novo aplicativo, e que também foi usado para estimar a proporção de mudanças que introduzem novas vulnerabilidades de contribuidores de uma forma que seja diretamente comparável.
Descobrimos que, apesar das preocupações com a usabilidade, os novos contribuidores para projetos Rust têm aproximadamente 70 vezes menos probabilidade de introduzir vulnerabilidades do que os novos contribuidores para projetos C++.
O estudo revela que a taxa de novos contribuidores aumentou globalmente após a mudança para Rust, o que implica que esta diminuição nas vulnerabilidades de novos contribuidores não é o resultado de um grupo menor de desenvolvedores mais qualificados, e que Rust pode, de fato, facilitar a chegada de novos contribuidores. novos contribuidores para projetos de código aberto.
Ao mesmo tempo, mencionam que realizaram uma análise qualitativa das vulnerabilidades do Rust nestes projetos e com base nisso realizaram uma medida da eficácia do algoritmo SZZ comum na identificação de commits que induzem erros nas suas correções.
Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.