Episodio 5: de Ade en Mountain View, California (agosto de 2019)
Episodios anteriores
Chrome se divide en procesos. Algunos están en zona de pruebas, lo que significa que redujeron el acceso al sistema y a las cuentas de los usuarios. En un proceso de zona de pruebas, los errores que permiten que se ejecute código malicioso son mucho menos graves.
El proceso del navegador no tiene una zona de pruebas, por lo que un error puede darle a un código malicioso acceso completo a todo el dispositivo. ¿Qué deberías hacer de manera diferente? ¿Cuál es la situación con otros procesos?
Todo el código tiene errores. En el proceso del navegador, esos errores permiten que el código malicioso instale un programa, robe datos del usuario, ajuste la configuración de la computadora, acceda al contenido de todas las pestañas del navegador, datos de acceso, etc.
En otros procesos, el acceso al SO está limitado debido a restricciones específicas de la plataforma. Para obtener más información, consulta la guía de implementación de la zona de pruebas de Chrome.
Asegúrate de evitar los siguientes errores comunes:
- No analices ni interpretes datos no confiables con C++ en el proceso del navegador.
- No confíes en el origen que afirma representar el procesador. El RenderFrameHost del navegador se puede usar para obtener el origen actual de forma segura.
En su lugar, usa las siguientes prácticas recomendadas:
- Sé paranoico si tu código está en el proceso del navegador.
- Valida toda la IPC de otros procesos. Supongamos que todos los demás procesos ya están comprometidos y trata de engañarte.
- Realiza el procesamiento en un procesador, proceso de utilidad o algún otro proceso de zona de pruebas. Lo ideal también es usar un lenguaje seguro para la memoria, como JavaScript (resuelve más del 50% de errores de seguridad).
Durante años, ejecutamos pilas de red (p.ej., HTTP, DNS y QUIC) en el proceso del navegador, lo que generó algunas vulnerabilidades críticas. En algunas plataformas, las herramientas de redes ahora tienen su propio proceso, y se agregará una zona de pruebas.
Recursos adicionales
- Regla de dos de Chromium: No más de dos datos no seguros, código no seguro y proceso no seguro.
- Validación de datos de IPC: Una guía sobre cómo asegurarte de que las IPC del proceso del procesador no estén llenas de fibrilaciones y tergiversaciones.