Auditoria de Crates de Terceiros

A adição de novas bibliotecas estĂĄ sujeita Ă s polĂ­ticas padrĂŁo do Chromium (https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/rust.md#Third_party-review), mas, Ă© claro, tambĂ©m estĂĄ sujeita Ă  verificação de segurança. Como vocĂȘ pode estar trazendo nĂŁo apenas um Ășnico crate, mas tambĂ©m dependĂȘncias transitivas, pode haver muito cĂłdigo para revisar. Por outro lado, o cĂłdigo Rust seguro pode ter efeitos colaterais negativos limitados. Como vocĂȘ deve revisĂĄ-lo?

Ao longo do tempo, o Chromium visa a migrar para um processo baseado em cargo vet.

Enquanto isso, para cada nova adição de crate, estamos verificando o seguinte:

  • Entenda por que cada crate Ă© usado. Qual Ă© a relação entre os crates? Se o sistema de compilação de cada crate contiver um build.rs ou macros procedurais, descubra para que servem. Eles sĂŁo compatĂ­veis com a maneira como o Chromium Ă© normalmente construĂ­do?
  • Verifique se cada crate parece estar razoavelmente bem mantido
  • Use cd third-party/rust/chromium_crates_io; cargo audit para verificar se hĂĄ vulnerabilidades conhecidas (primeiro vocĂȘ precisarĂĄ cargo install cargo-audit, o que ironicamente envolve baixar muitas dependĂȘncias da internet2)
  • Certifique-se de que qualquer cĂłdigo unsafe seja bom o suficiente para a Regra de Dois
  • Verifique se hĂĄ uso de APIs fs ou net
  • Leia todo o cĂłdigo em um nĂ­vel suficiente para procurar qualquer coisa fora do lugar que possa ter sido inserida maliciosamente. (VocĂȘ nĂŁo pode realisticamente visar 100% de perfeição aqui: muitas vezes hĂĄ simplesmente muito cĂłdigo).

Estas são apenas diretrizes — trabalhe com revisores do security@chromium.org para descobrir a maneira certa de se tornar confiante no crate.