
Hace poco me topé con un hallazgo que me dejó helado. Mysk, el equipo de seguridad detrás de varias investigaciones que han sacudido iOS en los últimos años, publicó algo sobre macOS que Apple decidió ignorar: cualquier app que descargues desde la web puede ser reemplazada silenciosamente por otra, sin pedirte contraseña y sin mostrar una sola alerta.
La técnica es sorprendentemente simple. Si un atacante ya tiene ejecución de código en tu Mac — por ejemplo, con un script malicioso — puede comprimir una app legítima con tar, borrar la original, descomprimirla de nuevo y, de golpe, modificar el ejecutable principal sin que Gatekeeper ni TCC levanten la voz.
Lo más grave no es el reemplazo en sí. Es lo que viene después. Como la app sigue apareciendo como la original en los diálogos del sistema, puede pedirte acceso al Keychain o a tus archivos en Desktop y Documents usando el nombre y el ícono de una app que tú confías. Imagina que Signal, Brave o Visual Studio Code te pidan permiso para algo que ya usas todos los días. ¿Le darías click en Permitir? Yo probablemente sí.
El equipo de Mysk reportó esto a Apple el 4 de junio. Apple respondió dos semanas después: según ellos, esto no es una vulnerabilidad de Gatekeeper ni de TCC, porque el usuario sigue teniendo que aprobar el permiso. Pero el punto justamente es que el usuario no sabe que está aprobando algo falso. Es ingeniería social aprovechando la confianza que el sistema operativo le otorga a una app que ya pasó por todos los controles.
A mí me parece una respuesta perezosa. Gatekeeper debería revalidar la firma de una app si su bundle cambió, no solo la primera vez que la abriste. Y los diálogos de TCC deberían mostrar el Team ID del ejecutable que está pidiendo acceso, no solo el nombre bonito que aparece en la carpeta .app.
¿Qué puedes hacer mientras tanto? Si usas apps descargadas desde la web — que en la pega de ingeniería es casi todo el tiempo — no hay un parche que aplicar. La única defensa real es no ejecutar nada que no conozcas, mantener tus backups al día y, si eres paranoico como yo, revisar de vez en cuando los hashes de los ejecutables de las apps que manejan datos sensibles.
Apple tiene la costumbre de decir que «la seguridad es nuestro norte» hasta que un bug les cuesta más de lo que quieren pagar. Este es uno de esos casos. Y mientras tanto, nosotros seguimos usando Macs que confían ciegamente en apps que podrían haber sido reemplazadas hace días.
Fuente de inspiración: Silent Replacement of Trusted macOS App Executables
