Incident Response, Security and Forensics"

.

miércoles, 25 de mayo de 2011

Forensics Mac OSX (plist vs Registry)


Hola lectores,

Este post explora algunos de los lugares clave donde se puede encontrar información en una investigación sobre un Mac OSX

En el mundo que nos toca, los Macintosh se están convirtiendo en 'ordenadores' muy populares, como bien dice un amigo los Mac son divertidos. Por esta razón, es importante que los analistas forenses puedan entender dónde pueden encontrar información similar a la que ya existe en Windows.

Dentro de la estructura de ficheros de OSX nos encontramos con un juego muy interesante de ficheros llamados 'plist'

Archivos plist

En primer lugar, es importante saber lo que es una lista de propiedades (plist) y el tipo de información que se puede almacenar en su interior. Los desarrolladores de Apple describen el plist de la siguiente manera, "Es un conjunto de ficheros que organizan los datos en valores  asociando varios tipos de objetos. Estos objetos contienen una lista de propiedades que permiten a dispositivos y programas funcionar de una manera muy eficiente." No queda muy claro ¿verdad?.

Yo diria que los ficheros 'plist' pueden ser considerados como el "Registro" para OSX.  La información que se almacena en estos archivos es diferente para cada programa en el sistema. Cada uno contiene la configuración para el programa, que llama a la plist. Al igual que en Windows las entradas del Registro, si cambia un valor en el archivo, el programa se ejecutará de manera diferente. 

Los Plists pueden estar en tres formatos diferentes, siendo lo normal que sean en XML. Este formato es más portátil  y se pueden editar de forma manual. Los otros formatos están en binarios y ASCII. El formato binario se siguen utilizando hoy en día, pero rara vez se encuentra un plist con formato ASCII. Los Plists en formato binario se ejecutarán mas rápidamente si contiene una gran cantidad de valores.

Evidentemente, es muy incomodo de leer en este formato 'a pelo', por lo que el sistema operativo incorpora un editor propio para estos ficheros. En la siguiente pantalla tenemos un fichero 'a pelo' con TextEdit y el mismo abierto con la propia utilidad que viene en el sistema operativo



TIPOS DE PLIST

Autorun

En un Mac, la ubicación de esta información está en el fichero com.apple.loginitems.plist. En su mayor parte, cuando alguien instala un programa en una máquina Windows, el programa tiene una configuración predeterminada de inicio en el arranque. Por ejemplo una vez instalado el Messenger, este se iniciará automáticamente en el arranque a menos que le indiquen lo contrario. En Mac si uno quiere tener un inicio de un programa debe indicarle al programa que lo haga.

El fichero com.apple.loginitems.plist se puede encontrar en la siguiente ubicación: /usuario/LibraryPreferences/com.apple.loginitems.plist.

Documentos recientes

En Windows, el registro contiene las entradas de documentos usados ​​más recientemente (MRU). El MRU es una lista de programas recientes y archivos accedidos. Además de la MRU, Windows tiene la entrada UserAssist. Esta entrada contiene información acerca de los programas más utilizado por un usuario. Estas entradas están cifradas con el algoritmo de ROT-13.

En el entorno Mac, estas listas son más limitadas. Se hayan dentro de la carpeta /usuario/Library/Preferences/com.apple.recentitems.plist.  y por defecto, Mac OS X hace un seguimiento de los últimos 10 accesos


En la pantalla anterior se puede apreciar el nombre de los servidores "Windows 7", "Time Capsule" y el documento IRPF1.

Redes inalámbricas

El SSID o identificador de una conexión de red inalambrica se registra en Mac OSX. Esto puede incluir conexiones a los hotspots Wi-Fi  o puntos de acceso similares. En el Registro de Windows, el SSID se almacena en una clave y la configuración, tales como la dirección IP, máscara de subred y otra información sobre una red particular, se almacena en otra clave.

Esto es similar en un Mac. Los dos plist a tener en cuenta se pueden encontrar en las siguientes ubicaciones:

hd/Library/ Preferences/SystemConfiguration/com.apple.airport.prefrences.plist
hd/Library/Preferences/SystemConfiguration/com.apple.network.identification.plist

Mediante el uso de estos archivos a la vez, se puede ver la última fecha en que el ordenador estaba conectado a esa red mirando el com.apple.airport.preferences.plist. Por ejemplo, la siguiente pantalla se puede ver la red WLAN_11 y parte de su contraseña, así como una red abierta de nombre eus-wireless.



Una vez que el analista tiene la fecha y hora puede ir a la plist de identificación de red. Allí se encontrará con más información acerca de la red, incluyendo: servidores DNS, dirección IP, la interfaz utilizada (por cable o inalámbrica), máscara de subred y el router. En la siguiente pantalla podemos apreciar los DNS's


Según los ficheros plist ubicados en la carpeta /hd/Library/Preferences/SystemConfiguration, el analista puede determinar cuando un sospechoso estaba conectado a una red. Se puede utilizar los servidores DNS para averiguar el ISP, así como la lista de redes y timestamp de accesos.

Los dispositivos que se han montado o detectado

En una máquina Windows cuando se inserta un dispositivo el número de serie para el dispositivo (si es USB) está registrado, por lo que es más fácil de probar que un determinado USB se conecta al ordenador del sospechoso. Algunos dispositivos USB no tienen un número de serie por lo que Windows crea una cadena aleatoria en lugar del número de serie.

En el Mac, el plist /usuario/Library/Preferences/com.apple.finder.plist, muestra todos los dispositivos como USB, ISO, CD, DVD o iPod, que están o se han conectado al ordenador.


Cuando un usuario descarga un programa en un Mac, un archivo con extensión DMG se abre con el fin de instalar el programa. Esto es equivalente a un EXE en Windows. En el Mac, estos archivos están montados para que el usuario vea el programa de instalación. También podemos con este 'plist' ver que ficheros DMG que se han montado (o instalado)


Este elemento lo suelo utilizar muy a menudo si el tema tiene que ver con licencias de software fraudulentas o violación de la propiedad intelectual y hablando de esto recuerdo un caso de un acusado que además de ser un amante de la música, guardaba todo tipo de imágenes con pornografía infantil dentro de un IPOD. En el siguiente plist nos detectaría esta información  /usuario/Library/Preferences/com.apple.iPod.plist. Con este archivo, podemos verificar si el iPod se ha conectado a ese equipo.


Historial de Internet

Safari


Safari es el navegador de Internet  que viene nativo en un Mac. En Windows, Internet Explorer  dispone en el registro tres subclaves: principal, TypedURLs y directorio de descarga. En un Mac, Safari cuenta con una configuración similar. Estos archivos se encuentran en /usuario/Library/Caches/Safari.

En la siguiente pantalla y utilizando el programa Juicer se puede ver como ha regenerado la carpeta cache, reconstruyendo en formato de carpetas y añadiendo el fichero INDEX.HTML que contiene todas las imágenes.


Otro gran lugar para buscar evidencias es el historial del navegador. El plist que se encuentra en /usuario/ Library/ Safari/History.plist proporciona todos los detalles.


Otro archivo no menos interesante es el fichero downloads.plist que permite saber que ficheros se han descargado desde Safari

Aplicaciones

Al igual que en el mundo de Windows, cuando un usuario instala un programa, una carpeta, se crea para ese programa. En Windows, la carpeta se crea normalmente en archivos de programa, y ​​contiene los archivos ejecutables y otros importantes como las DLL's o ficheros de parámetros.

En un Mac, el ejecutable se coloca en la carpeta de aplicaciones, y todos los demás archivos importantes que se necesitan para ejecutar el programa se colocan en la carpeta de Aplication support, que se encuentra a su vez en /usuario/Library/

En Windows, en su mayor parte, cuando un usuario desinstala un programa, todos los archivos y carpetas relacionadas con ese programa son posteriormente eliminados. En un Mac, esto no es cierto. Cuando un usuario desinstala o elimina un programa, todo lo que estamos haciendo es eliminar el ejecutable de la carpeta de aplicaciones. La carpeta de Aplication support seguirá conteniendo todos los archivos asociados con ese programa.


Resumiendo lo que hemos visto:

Autorun:/usuario/Library/Preferences/com.apple.loginitems.plist

Documentos recientes:/usuario/Library/Preferences/ com.apple.recentitems.plist

Redes inalámbricas:hd/Library/Preferences/SystemConfiguration/com.apple.airport.prefrences.plist hd/Library/Preferences/SystemConfiguration/com.apple.network.identification.plist

Dispositivos detectados/usuario/Library/Preferences/com.apple.finder.plist
/usuario/Library/Preferences/com.apple.iPod.plist

Historial de internetusuario/Library/Safari/History.plist
usuario/Library/Safari/downloads.plist

Aplicaciones
/usuario/Library/Aplication Support

Conclusiones:

Como comentaba al principio del post, el Mac está creciendo con una gran popularidad y es importante los que nos dedicamos al análisis forense y a la seguridad el estar al día sobre estos temas (Os recomiendo la lectura del blog Seguridad Apple), a buen seguro que nos encontraremos cada vez con más análisis de productos de Apple. (¿quien no tiene un iPad o un iphone en la empresa?)

Se que no he abordado otros ficheros plist, pero por no hacer extenso el post y como en el futuro pondré temas relacionados con Mac OSX a buen seguro que hablaremos de estos ficheros. Tengo un caso muy interesante de una denegación de servicio utilizando como Bots una red de Mac OSX, pero eso será más adelante...