Después de leer las otras respuestas y analizar esto, observé algunos comportamientos del sistema de archivos, lo que implica una solución muy simple. El programa terminal almacena sus datos en
~/Library/Saved Application State/com.apple.Terminal.savedState/
como se señaló anteriormente. Cuando salgo de toda la aplicación de Terminal (limpiamente), se elimina toda la carpeta. La razón por la que el OP está obteniendo datos restaurados es porque está fallando la aplicación de terminal con killall
. Observé esto abriendo el buscador a la carpeta Saved Application State
e iniciando y saliendo del terminal. La desventaja de esto es que tienes que cerrar TODAS las ventanas de la terminal, pero de esta manera todo el estado guardado parece borrado (por supuesto, dejando de lado el análisis forense de discos)
Parece que hay un archivo en este directorio para cada ventana de terminal abierta (¡pero no para todas las pestañas!) más data.data y windows.plist y window_1.data
que probablemente representa el programa del terminal. Los archivos por terminal desaparecen al cerrar la ventana; sin embargo, el archivo data.data es el que crece a medida que se emiten los comandos y, por lo tanto, presumiblemente almacena el búfer de retroceso. No se reduce en el cierre de la ventana del terminal, lo que implica que continúa reteniendo datos de retroceso. Sin embargo, el archivo data.data
se reduce cuando se abre la siguiente ventana de terminal. También se reduce drásticamente cuando se actualiza otra ventana de terminal (presionando retorno por ejemplo). Por lo tanto, parece que la siguiente rutina (probablemente) borrará completamente los datos del scrollback:
- Cierre la ventana limpiamente con los datos confidenciales (por ejemplo, punto rojo,
command + w
)
- Abra una nueva ventana de terminal O haga que se desplace en otra ventana de terminal que ya esté abierta.
o
- Cierre toda la aplicación de la terminal limpiamente (Comando + q, etc.)
También vale la pena señalar que el archivo data.data
no es un archivo de texto. Es un archivo binario que requerirá esfuerzo para interpretar. Mi conjetura es que los datos están comprimidos de alguna manera. Un simple cat
del archivo no revela nada legible. Entonces, para que estos archivos sean una vulnerabilidad, parece que ambas de las siguientes deben ser verdaderas:
- El terminal ha muerto y
NSQuitAlwaysKeepsWindows
es verdadero (ver otra respuesta), o la ventana del terminal se cerró y no se abrió ni actualizó ninguna otra ventana.
- El atacante es lo suficientemente sofisticado como para saber lo suficiente como para buscar y saber cómo descodificar el archivo data.data.
TENGA EN CUENTA: lo anterior se basa completamente en la observación de cómo aparecen / desaparecen los archivos y cómo cambian sus tamaños. Por supuesto, todavía es posible que se retenga cierta información parcial si el mantenimiento del archivo data.data
es descuidado. Sin embargo, estas observaciones me parecen suficientemente buenas. Decide por ti mismo si es lo suficientemente bueno para ti.
Estas observaciones provienen de OS X 10.9.5 y Terminal Versión 2.4 (326), verifique el comportamiento descrito anteriormente si está utilizando alguna otra versión antes de confiar en este consejo. Cualquiera o todo esto podría cambiar con las nuevas versiones de terminal o Mac OSX.