Saltar al contenido

El modelo de amenazas de una app instalada

Qué cambia cuando el código corre en la máquina del usuario con sus permisos. Los cinco atacantes reales, cuál de ellos es el que de verdad importa, y por qué la respuesta no es «nadie va a atacar mi aplicación».

Los cinco

El que importa

Los dos últimos comparten forma y son el modelo de amenazas real de casi toda aplicación de escritorio:

Alguien consigue ejecutar JavaScript dentro de tu webview.

No hace falta un ataque dirigido. Basta con una dependencia del frontend comprometida —el caso más frecuente— o con un dato ajeno que en algún punto se interpreta como marcado.

Y una vez ahí, lo que ese código puede hacer es exactamente lo que tu aplicación le permita hacer. Ese es el enunciado completo del modelo de amenazas de Tauri, y toda la fase V trata de acotar esa lista.

«Mi aplicación no tiene datos valiosos»

Es la objeción más común y tiene tres respuestas, en orden de contundencia:

El valor no está en tus datos: está en los permisos del usuario. Tu aplicación corre con su cuenta. Un comando que lea una ruta arbitraria da acceso a su disco entero: sus documentos, sus llaves, su correo local. Da igual lo que tu aplicación guarde.

El valor está en la persistencia. Una aplicación instalada arranca con la sesión y corre a diario. Eso es un punto de apoyo mucho mejor que una pestaña, y es lo que buscan la mayoría de los ataques de cadena de suministro.

Y el valor está en tu firma. Tu aplicación está firmada y notarizada —fase XII—, así que el sistema operativo confía en ella. Código que se ejecuta dentro hereda esa confianza, y eso vale más que cualquier dato que puedas tener.

Escribirlo

El ejercicio de este nivel es un documento de cinco líneas que después la fase V va a usar:

TXT
Contra quién:  una dependencia comprometida, o contenido ajeno interpretadoQué protejo:   los ficheros del usuario, sus credenciales, su capacidad de ejecutarQué NO protejo: al usuario de sí mismo; su máquina de otro programa con sus permisosSuperficie:    los N comandos registrados, más lo que concedan las capabilitiesLo peor que puede pasar: ______________________________________

La última línea es la útil. Escribirla obliga a mirar la lista de comandos del nivel 14.2 y preguntarse qué haría con ellos alguien con malas intenciones. Casi siempre aparece uno que sobra.