Amenazas en el ciclo de vida de la aplicación
Las aplicaciones Tauri están compuestas por muchas piezas en diferentes momentos del ciclo de vida de la aplicación. Aquí describimos las amenazas clásicas y lo que DEBES hacer al respecto.
Todos estos pasos distintos se describen en las siguientes secciones.
Amenazas de origen (Upstream)
Sección titulada “Amenazas de origen (Upstream)”Tauri es una dependencia directa de tu proyecto, y mantenemos un control estricto de autoría de commits, revisiones, pull requests y lanzamientos. Hacemos todo lo posible para mantener las dependencias actualizadas y tomamos medidas para actualizar o hacer un fork y corregir. Puede que otros proyectos no estén tan bien mantenidos e incluso que nunca hayan sido auditados.
Por favor, considera su estado de salud al integrarlos; de lo contrario, podrías estar adoptando deuda arquitectónica sin siquiera saberlo.
Mantén tus aplicaciones actualizadas
Sección titulada “Mantén tus aplicaciones actualizadas”Al distribuir tu aplicación en producción, también estás enviando un paquete que incluye Tauri.
Las vulnerabilidades que afectan a Tauri pueden influir en la seguridad de tu aplicación.
Al actualizar Tauri a la versión más reciente, te aseguras de que las vulnerabilidades críticas
ya estén parcheadas y no puedan ser explotadas en tu aplicación.
Asegúrate también de mantener actualizados tu compilador (rustc) y transpiladores (Node.js),
ya que a menudo se resuelven problemas de seguridad.
Esto también se aplica a tu sistema de desarrollo en general.
Evalúa tus dependencias
Sección titulada “Evalúa tus dependencias”Si bien npm y Crates.io proporcionan muchos paquetes convenientes, es tu responsabilidad elegir bibliotecas de terceros confiables, o reescribirlas en Rust. Si usas bibliotecas desactualizadas que se ven afectadas por vulnerabilidades conocidas o no tienen mantenimiento, la seguridad de tu aplicación y tu tranquilidad podrían estar en peligro.
Utiliza herramientas como npm audit
y cargo audit para automatizar este proceso,
y apóyate en el importante trabajo de la comunidad de seguridad.
Las tendencias recientes en el ecosistema de Rust como cargo-vet
o cargo crev pueden
ayudar a reducir aún más la probabilidad de ataques a la cadena de suministro.
Para descubrir sobre los hombros de quién estás parado, puedes usar la herramienta cargo supply chain.
Una práctica que recomendamos encarecidamente es consumir dependencias críticas desde git usando revisiones de hash en el mejor de los casos o etiquetas nombradas como segunda mejor opción. Esto aplica tanto para el ecosistema de Rust como para el de Node.
Amenazas en el desarrollo
Sección titulada “Amenazas en el desarrollo”Asumimos que tú, como desarrollador, te preocupas por tu entorno de desarrollo. Depende de ti asegurarte de que tu sistema operativo, las cadenas de herramientas de compilación y las dependencias asociadas se mantengan actualizadas y razonablemente aseguradas.
Un riesgo real al que todos nos enfrentamos es lo que se conoce como “ataques a la cadena de suministro”, que generalmente se consideran ataques a las dependencias directas de tu proyecto. Sin embargo, una clase creciente de ataques en el mundo real se dirige directamente a las máquinas de desarrollo, y harías bien en abordar esto de frente.
Servidor de desarrollo
Sección titulada «Servidor de desarrollo»Los frontends de las aplicaciones Tauri se pueden desarrollar utilizando una serie de frameworks web. Cada uno de estos frameworks suele incluir su propio servidor de desarrollo, que expone los recursos del frontend a través de un puerto abierto al sistema o red local. Esto permite que el frontend se recargue en vivo (hot-reload) y se depure en la WebView o navegador.
En la práctica, por defecto esta conexión a menudo no está ni cifrada ni autenticada. Este es también el caso del servidor de desarrollo integrado de Tauri y expone tu frontend y recursos a la red local. Además, esto permite a los atacantes enviar su propio código frontend a los dispositivos de desarrollo en la misma red que el atacante. Dependiendo de qué tipo de funcionalidad esté expuesta, esto podría llevar en el peor de los casos al compromiso del dispositivo.
Solo debes desarrollar en redes de confianza donde puedas exponer de forma segura tu dispositivo de desarrollo. Si esto no es posible, DEBES asegurarte de que tu servidor de desarrollo utilice autenticación mutua y cifrado (por ejemplo, mTLS) para las conexiones con tus dispositivos de desarrollo.
Fortalece las máquinas de desarrollo
Sección titulada “Fortalece las máquinas de desarrollo”El fortalecimiento de tus sistemas de desarrollo depende de varios factores y de tu modelo de amenaza personal, pero aquí tienes algunos consejos genéricos que recomendamos seguir:
- Nunca uses cuentas administrativas para tareas cotidianas como programar
- Nunca uses secretos de producción en máquinas de desarrollo
- Evita que los secretos se incluyan en el control de versiones del código fuente
- Usa tokens de seguridad de hardware o similares para reducir el impacto de sistemas comprometidos
- Mantén tu sistema actualizado
- Mantén las aplicaciones instaladas al mínimo
Se puede encontrar una colección más práctica de procedimientos en una fantástica colección de endurecimiento de seguridad.
Por supuesto, puedes virtualizar tu entorno de desarrollo para mantener a raya a los atacantes, pero esto no te protegerá de los ataques dirigidos a tu proyecto en lugar de a tu máquina.
Garantiza la autenticación y autorización en el control de código fuente
Sección titulada “Garantiza la autenticación y autorización en el control de código fuente”Si trabajas como la mayoría de los desarrolladores, el uso de herramientas de control de versiones de código fuente y proveedores de servicios es un paso esencial durante el desarrollo.
Para garantizar que tu código fuente no pueda ser modificado por actores no autorizados, es importante comprender y configurar correctamente el control de acceso para tu sistema de control de versiones de código fuente.
Además, considera exigir a todos los colaboradores (habituales) que firmen sus commits para evitar situaciones en las que commits maliciosos se atribuyan a colaboradores no comprometidos o no maliciosos.
Amenazas en el tiempo de compilación
Sección titulada “Amenazas en el tiempo de compilación”Las organizaciones modernas usan CI/CD para fabricar artefactos binarios.
Necesitas poder confiar plenamente en estos sistemas remotos (y propiedad de terceros), ya que tienen acceso al código fuente, a los secretos y pueden modificar las compilaciones sin que puedas probar de forma verificable que los binarios producidos son los mismos que tu código local. Esto significa que o bien confías en un proveedor de buena reputación o alojas estos sistemas en tu propio hardware controlado.
En Tauri, proporcionamos un Workflow de GitHub para compilar en múltiples plataformas. Si creas tu propio CI/CD y dependes de herramientas de terceros, ten cuidado con las acciones cuyas versiones no hayas fijado explícitamente.
Debes firmar tus binarios para la plataforma a la que estés realizando los envíos. Aunque esto puede ser complicado y algo costoso de configurar, los usuarios finales esperan que tu aplicación provenga de ti de forma verificable.
Si los secretos criptográficos se almacenan correctamente en tokens de hardware, un sistema de compilación comprometido no podrá filtrar las claves de firma involucradas, pero podría usarlas para firmar lanzamientos maliciosos.
Compilaciones reproducibles
Sección titulada “Compilaciones reproducibles”Para combatir la inyección de puertas traseras durante el tiempo de compilación, necesitas que tus compilaciones sean reproducibles, de modo que puedas verificar que los recursos de compilación sean exactamente los mismos cuando los compilas localmente o en otro proveedor independiente.
El primer problema es que Rust por defecto no produce de forma completamente confiable compilaciones reproducibles. Admite esto en teoría, pero todavía existen errores y recientemente se rompió en un lanzamiento.
Puedes realizar un seguimiento del estado actual en el rastreador público de errores del proyecto Rust.
El siguiente problema que encontrarás es que muchos empaquetadores de frontend comunes tampoco producen un resultado reproducible, por lo que los recursos empaquetados también pueden romper las compilaciones reproducibles.
Esto significa que no puedes confiar plenamente en las compilaciones reproducibles de forma predeterminada y, lamentablemente, debes confiar plenamente en tus sistemas de compilación.
Amenazas en la distribución
Sección titulada “Amenazas en la distribución”Hemos hecho todo lo posible para que el envío de actualizaciones rápidas a la aplicación sea lo más directo y seguro posible. Sin embargo, todo está en riesgo si pierdes el control del servidor de manifiesto, del servidor de compilación o del servicio de alojamiento de binarios.
Si construyes tu propio sistema, consulta a un arquitecto de OPS profesional y constrúyelo adecuadamente.
Si buscas otra solución de distribución confiable para aplicaciones Tauri, nuestro socio CrabNebula tiene una oferta: https://crabnebula.dev/cloud
Amenazas en tiempo de ejecución
Sección titulada “Amenazas en tiempo de ejecución”Asumimos que la webview es insegura, lo que ha llevado a Tauri a implementar varias protecciones con respecto al acceso de la webview a las API del sistema en el contexto de la carga de contenido no confiable de userland.
El uso de la Content Security Policy bloqueará tipos de comunicación que la Webview pueda realizar. Además, las Capacidades pueden evitar que contenido o scripts no confiables accedan a la API dentro de la Webview.
También recomendamos configurar una forma fácil y segura de reportar vulnerabilidades similar a nuestro proceso.
© 2026 Colaboradores de Tauri. CC-BY / MIT