Menú principal

viernes, 26 de agosto de 2011

Eliminar los ficheros .DS_Store en Mac OS X

Los archivos .DS_Store se generan de forma automática en las carpetas del sistema Mac OS X, por defecto, en cualquiera de las carpetas que sean accedidas por Finder de tu Mac. Este fichero se utiliza para guardar la configuración que el usuario realiza de sus carpetas, desde la colocación de los iconos hasta la forma de visualizar dicha carpeta. Comparándolo con Windows, este fichero sería el equivalente a desktop.ini y thumbs.db.

Sin embargo, como se contaba en El lado del mal, cuando estos ficheros se encuentran en un servidor web pueden utilizarse para acceder al contenido de la carpeta como si hubiera un listado de directorios abierto haciendo un análisis forense del mismo, como ya explicamos en el artículo de Analizar ficheros .DS_Store. Además, podrían demostrar que se ha borrado un determinado fichero en un carpeta o que un usuario accedió a una ubicación concreta, lo que puede ser un riesgo para la privacidad del sujeto.

Figura 1: Archivos .DS_Store descubiertos en servidores web a través de Google

Evitar que se generen ficheros .DS_Store en servidores

Apple, conociendo este fallo de seguridad, publicó un artículo que explicaba como se puede evitar la creación de estos ficheros cuando el equipo se esté conectando a ubicaciones remotas. Para ello hay que modificar las preferencias en el comportamiento de Finder cuando se conecte a una carpeta remota mediante el comando:

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Esta ejecución lo que hace es añadir al fichero de preferencias com.apple.desktopservices.plist, que se encuentra en la carpeta Libreria/Preferencias dentro del $Home de cada usuario una clave para indicarle a Finder que no se deben crear estos ficheros en ubicaciones remotas. Si no se ha modificado ninguna propiedad aún, es probable que el fichero no exista, pero tras la ejecución del comando aparecerá.

Figura 2: Preferencias en el fichero com.apple.desktopservices

Como se puede ver, los ficheros plist son codificaciones de archivos en formato .xml, y desde el propio Finder se pueden leer correctamente. Sin embargo, si se abren con un editor de texto se verán codificados. No tendrá efecto el comportamiento hasta que se reinicie la sesión de usuario.

Hay que recalcar que este cambio que se ha realizado en el comportamiento respecto a la creación de ficheros .DS_Store en ubicaciones remotas sólo afecta al usuario que lanzó el comando, por lo que si se quiere que todos los usuarios tengan el mismo comportamiento hay que copiar ese fichero a todas las carpetas de preferencias de todos los usuarios.

Borrado de todos los ficheros .DS_Store del sistema

Tras el cambio anterior ya no se crearán más ficheros .DS_Store en remoto, pero sin embargo se seguirán creando en local. Es por eso que Adobe propuso la creación de una tarea que busque y elimine todos los archivos .DS_Store del sistema y los elimine. Para encontrar todos los ficheros .DS_Store en tu sistema y eliminarlos, basta con utilizar el siguiente comando:

sudo find / -name ".DS_Store" -depth -exec rm {} \;

Eso los encontrará y eliminará, pero sin embargo, se seguirán creando acto seguido, por lo que esa tarea se tiene que ejecutar al cierre de sesión, o cada cierto tiempo. Adobe proponía esta última opción, modificando el fichero de tareas con el comando:

sudo crontab -e

y añadiendo una línea como la siguiente:

mm hh * * * usuario find / -name ".DS_Store" -depth -exec rm {} \; 

donde en las cinco primeras columnas (mm hh * * *) se indica el minuto, la hora, el día, mes y año que se quiere ejecutar la tarea. Al ponerse un * en día, mes y año, se está configurando una taréa diaria que se va a ejecutar la hora y minuto que se establezcan en mm y hh. Como se puede ver, es necsario especificar una cuenta de usuario para ejecutar la tarea, y esta deberá tener permisos suficientes para acceder a todas las ubicaciones, por lo que es necesario utilizar una cuenta privilegiada de administración.

Borrar los ficheros .DS_Store de las ubicaciones extraibles

Hay que tener en cuenta que cuando se inserta un pendrive o un disco duro externo, estos ficheros .DS_Store, junto con alguno otro, se pueden copiar también en los pendrives, por lo que deben ser tanmbien eliminados. Para esto, o bien se hace manualmente, o incluso se puede utilizar alguna herramienta que se encargue de tener cuidado de esto, como BlueHarvest 4.

Figura 4: BlueHarvest 4

Visualización de ficheros .DS_Store

Lo más importante de todo, es conocer los riesgos, y darse cuenta de la importancia de tener controlada la creación de estos ficheros. Hay que tener en cuenta que, por defecto, son ficheros ocultos y que si no se ha configurado la visualización en Finder de todos los ficheros ocultos, muchos usuarios no saben ni tan siquiera de su existencia. Para visualizar todos los ficheros ocultos en Finder, basta con ejecutar los comandos:

defaults write com.apple.finder AppleShowAllFiles True
Killall Finder
O buscar los ficheros .DS_Store en la consola de terminal de tu sistema.

Figura 5: .DS_Store buscados por terminal

Si conoces su comportamiento, sabrás controlar mejor cualquier posible fuga de datos por medio de estos ficheros .DS_Store.

4 comentarios:

  1. a alguien le ha dado este mensaje al intentar eliminar?

    Operation not permitted

    En caso positivo como puedo hacer para que borre todos los archivos .ds_store?

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
    2. Dale a tu usuario permisos de asministrador

      Eliminar
  2. no me crea el archivo en la librería , y tengo permisos, se puede hacer manual ?

    ResponderEliminar

Entrada destacada

Proteger tu cuenta de Google y de Gmail con Latch Cloud TOTP #Latch #Gmail #Google

La semana pasada se liberó la nueva versión de Latch y nuestro compañero Chema Alonso hizo un repaso de todo ello en su artículo Latch...

Otras historias relacionadas

Entradas populares