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
ounet
- 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.