Auditoría de Crates de Terceros

Añadir nuevas bibliotecas está sujeto a las políticas estándar de Chromium, pero también a la revisión de seguridad. Como puede que no solo incluyas un único crate sino también dependencias transitivas, es posible que haya mucho código que revisar. Por otro lado, el código de Rust seguro puede tener efectos secundarios negativos limitados. ¿Cómo se revisa?

Con el tiempo, Chromium intentará adoptar un proceso basado en cargo vet.

Mientras tanto, se debe hacer lo siguiente para cada nuevo crate:

  • Entender por qué se usa cada crate. ¿Cuál es la relación entre los crates? Si el sistema de compilación de cada crate contiene un archivo build.rs o macros de procedimiento, averigua para qué sirven. ¿Son compatibles con la forma en la que se compila normalmente Chromium?
  • Comprobar que cada crate tenga un mantenimiento razonable.
  • Usar cd third-party/rust/chromium_crates_io; cargo audit para comprobar si existen vulnerabilidades (primero se tiene que usar cargo install cargo-audit, lo que, irónicamente, implica descargar muchas dependencias de Internet2).
  • Asegúrate de que cualquier código unsafe sea adecuado para la Regla de dos.
  • Comprobar si se usan las APIs fs o net.
  • Leer todo el código con suficiente profundidad para comprobar si hay algo fuera de lugar que pueda haberse insertado de forma malintencionada. (Es imposible hacerlo perfecto, ya que, a menudo, hay demasiado código).

Estas son solo algunas directrices, trabaja con revisores de security@chromium.org para determinar la forma adecuada de utilizar los crates.