En nuestra búsqueda de diferentes tipos de códigos maliciosos para Mac, nos cruzamos con una peculiaridad en Safari. Resulta que Safari para Mac OS, como muchos otros navegadores contemporáneos, puede restaurar las sesiones de navegación previas. En otras palabras, todos los sitios que estaban abiertos en la sesión anterior – hasta aquellos que requieren autorización – pueden restaurarse siguiendo algunos simples pasos cuando se abre el navegador. ¿Cómodo? Sin duda. ¿Seguro? No, por desgracia.
Para que el navegador sepa qué estaba abierto en la sesión previa, la información al respecto debe guardarse en algún lado. Es obvio que debe estar en algún lugar que no permita el acceso a cualquiera y la información tiene que estar codificada.
Pero Safari no codifica las sesiones previas y las guarda en un formato de archivo plist común que es de fácil acceso. Por ende, no es complicado encontrar las credenciales de inicio de sesión del usuario:
Captura de pantalla de un archivo plist después de un intento de inicio de sesión en Gmail.
Es obvio que el nombre de usuario y contraseña no están codificados (como puedes ver en el óvalo rojo de la imagen).
La sesión autorizada completa del sitio se guarda en el archivo plist completamente a la vista a pesar de que se usó https. El archivo en sí se encuentra en una carpeta oculta, pero cualquiera puede leerlo.
El sistema puede abrir un archivo plist sin problemas. Guarda información sobre la sesión guardada – incluyendo las solicitudes http codificadas usando un simple algoritmo de codificación Base64 – en formato estructurado.
Hay una función en Safari – ‘Reabrir todas las ventanas de la última sesión’ – que hace que los sitios se abran tal y como estaban al final de la última sesión. Es la función que utiliza LastSession.plist.
Función ‘Reabrir todas las ventanas de la última sesión’ en Safari
La función está disponible en las siguientes versiones de Mac OS X y Safari:
- OSX10.8.5, Safari 6.0.5 (8536.30.1)
- OSX10.7.5, Safari 6.0.5 (7536.30.1)
Puedes imaginar lo que pasaría si los cibercriminales o un programa malicioso tuviesen acceso al archivo LastSession.plist en un sistema en el que el usuario ingresa a Facebook, Twitter, LinkedIn o su cuenta bancaria de Internet.
Almacenar información confidencial sin codificarla y permitir el acceso a ella sin restricciones es una gran falla de seguridad que ofrece a los usuarios maliciosos la oportunidad de robar datos a los usuarios haciendo un esfuerzo mínimo.
Hemos informado a Apple sobre el problema.
Por ahora no podemos confirmar si existe algún código malicioso que esté tratando de aprovechar esta vulnerabilidad, pero estamos seguros de que no tardará en aparecer.
Vulnerabilidad en Safari