Desde OS X 10.6 Snow Leopard a OS X 10.8 Mountain Lion, la ejecución de XProtect dependía de una aplicación ubicada en:
/usr/libexec/XProtectUpdater
Que se ejecutaba periódicamente y que el propio usuario podía disparar accediendo a XProtectupdater.
En OS X 10.9 Mavericks, sin embargo, Apple modificó la estructura de este sistema de seguridad haciéndolo depender del sistema de actualización de software a través de una característica no documentada y eliminó XProtectupdater.
Para forzar la ejecución del servicio de actualización de las definiciones de XProtect el sistema de actualización de software debe estar siempre activado. Esta opción, definica por una casilla en el panel de control de la Mac App Store, permite la ejecución de esta tarea crítica ya sea cada cierto tiempo o de forma manual, si la disparamos con el correspondiente comando de Terminal.
Para invocar el sistema de actualización de definiciones de XProtect, abre el Terminal en APlicaciones > Utilidades y ejecuta:
sudo softwareupdate --background-critical
Al utilizar sudo, se te solicitará la contraseña de administrador. El comando realiza las mismas acciones que se realizaban con XProtectUpdater:
- Comprobación de si el Mac tiene la última lista de definiciones de XProtect
- Actualizar esa lista si es necesario
También puedes gestionar la comprobación de esta tarea de seguridad desde el Terminal con dos comandos, el primero, activa esta tarea y el segundo, la desactiva:
softwareupdate --schedule on
softwareupdate --schedule off
Las actualizaciones de Xprotect
Para gestionar XProtect, Apple actualiza y trabaja con tres archivos que están ubicados en:
/System/Library/CoreServices/XProtect.bundle/Contents/Resources/
Los tres archivos son Xprotect.meta.plist, Xprotect.plist y Xprotect.yara.
Xprotect.meta.plist gestiona la versión de ciertos plugins y software que tienen problemas de seguridad. Así, por ejemplo, cuando Apple no quiere que se ejecute una versión del plugin Flash porque es vulnerable a algún ataque, introduce la versión de ese plugin en este archivo de forma que si está instalado, no se le permite ejecutarse, solicitando al usuario que actualice a una versión considerada como segura.
Xprotect.plist gestiona las definiciones del malware que Apple añade para que luego MRT[note]Malware Removal Tool[/note] pueda eliminarlas si están instaladas y evita que puedan instalarse posteriormente.
Xprotect.yara es bastante interesante. Yara es una es una herramienta basada en texto, desarrollada por Google, que utilizan los investigadores de seguridad para identificar y clasificar muestras de malware. La ventaja de Yara es que ofrece un complejo y sobre todo, muy poderoso, sistema de reglas basadas en condiciones. Así con Yara es factible crear descripciones de familias de malware basadas en patrones de texto o incluso binarias, de forma que si una aplicación incluye ese patrón es identificada como malware para a continuación pasar a cualquier método de eliminación o cuarentena determinado por el sistema operativo.
Este archivo incluye las reglas de detección de los diferentes malware y puede abrirse con un editor de texto puro, como BBedit, para mostrar las reglas que está utilizando el sistema para detectar un malware. El sistema es bastante sencillo, con una etiqueta meta que permite identificar qué malware se está filtrando, una serie de strings que serían el código a identificar en el malware y luego, una serie de condiciones que se deben cumplir para identificar el malware, como en este ejemplo.
rule XProtect_OSX_Genieo_G { meta: description = "OSX.Genieo.G" strings: $a1 = {67 65 74 53 61 66 61 72 69 48 69 73 74 6F 72 79} $a2 = {73 65 6c 65 63 74 20 63 6f 75 6e 74 28 2a 29 20 66 72 6f 6d 20 6d 6f 7a 5f 68 69 73 74 6f 72 79 76 69 73 69 74 73} $a3 = {53 46 45 58 54 46 69 6c 65 4d 61 6e 61 67 65 72} condition: Macho and filesize < 2000000 and (all of ($a*)) }