A photograph of architectural diagrams on a table, with a yellow tape measure
Búsqueda de Ciberamenazas

Actualizaciones de contenido y arquitectura de producto: Sophos Endpoint

Sophos X-Ops echa un vistazo a las actualizaciones de contenido en Intercept X y cómo las validamos y publicamos

Tras nuestro reciente artículo sobre los controladores del kernel de Sophos Intercept X, en el que hablábamos de cómo se comprueban y qué hacen, ofrecemos más transparencia sobre el funcionamiento interno de Intercept X, esta vez con un vistazo a las actualizaciones de contenido, que son cambios de configuración que dan lugar a cambios en las rutas de ejecución del código, o son código en sí mismas.

Intercept X utiliza una combinación de búsquedas en la Nube en tiempo real y actualizaciones de contenido en el dispositivo. Dado que el panorama de las amenazas evoluciona y cambia constantemente, es crucial que las actualizaciones de contenido en el dispositivo se realicen con frecuencia (algunos datos en el dispositivo cambian con menos frecuencia, pero pueden requerir actualizaciones con poca antelación). Sin embargo, esto conlleva sus propios riesgos: si las actualizaciones de contenido están corruptas o no son válidas, pueden provocar interrupciones.

Sophos utiliza un mecanismo común para distribuir actualizaciones de contenido en los dispositivos, que se cargan en procesos de espacio de usuario de Sophos con pocos privilegios (en lugar de cargarse en los controladores del núcleo de Sophos o ser interpretados por ellos) desde la Red de Distribución de Contenido (CDN) de Sophos. Las actualizaciones de contenido forman uno de los tres componentes principales de Intercept X, junto con el software de la CDN, y la política y configuración de Sophos Central.

En este artículo, exploraremos los distintos tipos de actualizaciones de contenido que utilizamos, cómo las verificamos y validamos, y cómo está diseñado el ecosistema para evitar problemas causados por contenido corrupto o defectuoso. Como señalamos en nuestro artículo anterior, Intercept X (y todos sus componentes) también forma parte de un programa externo de recompensas por errores desde el 14 de diciembre de 2017.

Cabe señalar que los detalles de este artículo son correctos en el momento de escribirlo (agosto de 2024), pero pueden cambiar en el futuro a medida que sigamos actualizando y desarrollando soluciones.

Lanzamientos escalonados de actualizaciones de contenido

Sophos entrega nuevas actualizaciones de contenido a los clientes en “grupos de lanzamiento”. Cada usuario de Sophos Central está asignado a un grupo de versiones.

El primer grupo de lanzamiento es para pruebas internas de ingeniería; no le asignamos ningún cliente de producción. Esto permite a nuestros equipos de ingeniería probar nuevas actualizaciones de contenido en la infraestructura de producción, sin necesidad de ningún paso manual. Si las pruebas fallan, abortamos la publicación sin pasar a ningún otro grupo de publicación.

Si la prueba de ingeniería tiene éxito, promovemos manualmente la versión al grupo de versiones «Sophos interno» («dogfooding»). Esto incluye los dispositivos de producción de los empleados de Sophos, así como las cuentas personales de los empleados. De nuevo, si se detectan o notifican problemas, abortamos la publicación y no seguimos adelante.

Si todo va bien, promovemos manualmente la publicación a los grupos de publicación pública. A partir de este momento, los sistemas de publicación de Sophos publican automáticamente la nueva actualización de contenido en todos los grupos de publicación durante un periodo de varias horas o días por defecto (véase la Figura 1 a continuación).

Un gráfico cronológico azul que muestra cómo las actualizaciones de contenidos se publican por fases
Figura 1: fases de la publicación, con comprobaciones de verificación en cada fase

Descarga de datos: Sophos AutoUpdate

Sophos AutoUpdate, parte de Intercept X, comprueba si hay nuevas actualizaciones de contenido cada hora, aunque en la práctica las actualizaciones son menos frecuentes.

Sophos AutoUpdate descarga cada actualización de contenido de la CDN y comprueba si hay nuevos paquetes de actualización de contenido disponibles para el grupo de publicación correspondiente.

Las actualizaciones de contenido llevan una marca de tiempo y están firmadas con SHA-384 y una cadena de certificados privada de Sophos. Sophos AutoUpdate verifica las actualizaciones que descarga. Si detecta actualizaciones corruptas o no fiables, las descarta y avisa tanto a Sophos como al administrador de Sophos Central. Además, para protegerse contra cachés CDN obsoletas o ataques de repetición maliciosos, Sophos AutoUpdate rechaza cualquier actualización válida cuya marca de tiempo de firma sea más antigua que la actualización ya descargada.

Si hay disponible un nuevo paquete de actualización de contenido, Sophos AutoUpdate lo descarga e instala utilizando el instalador de paquetes correspondiente. Los distintos componentes de Intercept X gestionan las distintas actualizaciones.

Resumen de las actualizaciones de contenido

Las siguientes actualizaciones de contenido forman parte de la última versión de Intercept X (2042.2).

Tabla 1: resumen de las actualizaciones de contenido que forman parte de la última versión de Intercept X (2024.2)
A graphic showing which content updates relate to which processes and kernel drivers
Figura 2: diagrama que ilustra qué procesos de Sophos (en azul marino) cargan qué actualizaciones de contenido (en morado)

Conjunto de datosA

SophosFileScanner.exe carga el conjunto de datosA, un proceso con pocos privilegios y sin acceso al sistema de archivos (salvo a su carpeta de registro y a un directorio temporal utilizado para escanear objetos grandes). Carga la interfaz antivirus de Sophos (SAVI).

SophosFileScanner.exe escanea el contenido siguiendo las solicitudes de escaneado de otros procesos de Sophos. Aunque se llama “SophosFileScanner.exe”, el nombre es algo histórico: es el principal escáner de contenido de Intercept X, que escanea archivos, memoria de procesos, tráfico de red, etc.

LocalRepData

LocalRepData contiene dos listas de reputación:

  1. Reputación por SHA-256

  2. Reputación por firmante

Cuando un ejecutable de Windows comienza a ejecutarse, Intercept X lo busca en LocalRepData por su hash SHA-256 y su firma (suponiendo que esté válidamente firmado). Si la reputación la proporciona LocalRepData, Intercept X “etiqueta” el proceso con la reputación (las reglas de Sophos tratan de forma diferente los archivos y procesos de alta reputación, por ejemplo, eximiéndolos de la limpieza).

SSPService.exe utiliza LocalRepData para asignar la reputación a medida que se inician los procesos.

SophosFileScanner.exe también carga LocalRepData, para poder asignar reputación a los flujos ejecutables incrustados que descubre en contenidos distintos de los archivos ejecutados.

Comportamiento

SSPService.exe carga las reglas de comportamiento. Los archivos de reglas contienen código Lua firmado y cifrado. SSPService.exe verifica, descifra y carga las reglas en un intérprete LuaJIT aislado con acceso solo a las API internas de Sophos.

Lua es un lenguaje de scripting rápido e incrustado. Sophos utiliza Lua para las reglas de comportamiento porque proporciona una forma flexible de ofrecer nuevas detecciones de comportamiento sin necesidad de una nueva versión del software, pero manteniendo la seguridad. Las reglas se cargan en el espacio de usuario, por lo que no pueden causar un fallo crítico del sistema si se comportan mal. Además, Sophos construye su motor de reglas sin las bibliotecas base Lua. El único acceso al sistema es a través de la API interna de Sophos, que está reforzada contra el mal uso accidental por parte de las reglas de comportamiento. Sophos recopila una amplia telemetría sobre los tiempos de ejecución de las reglas y ajusta y reduce continuamente la sobrecarga del tiempo de ejecución.

Las reglas son reactores: Intercept X proporciona varios eventos y las reglas registran controladores para esos eventos. Las reglas también pueden configurar varios parámetros de agregación para algunos eventos de gran volumen, permitiendo que el sensor agrupe o descarte ciertos eventos.

Banderas

Las banderas son el medio por el que Sophos habilita gradualmente nuevas funciones en Intercept X. Los indicadores se suministran de dos formas:

  1. El Suplemento de Banderas contiene un conjunto básico de banderas correspondientes a las funciones disponibles en el software.

  2. El Servicio de Banderas es un microservicio de Sophos Central que permite a los ingenieros de versiones de Sophos configurar banderas en varios usuarios.

El Suplemento de Banderas para una determinada versión de software contiene un conjunto de banderas de características y cómo debe activarse la característica:

Valor del Suplemento de la bandera Valor de servicio de la bandera La función está…
Off Ignorado Off
Disponible Off Off
Disponible On On

Este mecanismo ofrece a Sophos múltiples vías para activar y desactivar funciones.

  • Sophos puede introducir nuevas funciones con la bandera «Disponible» (pero no habilitada en el Servicio de Banderas)

  • Sophos puede habilitar gradualmente nuevas funciones utilizando el Servicio de Banderas para habilitar banderas en todos los usuarios

  • Sophos puede desactivar una función problemática desactivando la bandera en el Servicio de Banderas

  • Sophos puede desactivar una función problemática en una versión de software específica cambiando el Suplemento Banderas de la versión.

CRT

La Herramienta de Eliminación de la Competencia (CRT) contiene un conjunto de reglas para eliminar software conocido incompatible durante la instalación. El instalador la descarga automáticamente y la elimina tras la instalación.

Normalmente, Intercept X no utiliza la CRT; sin embargo, si un cliente instala un componente que no sea de protección, como Sophos Device Encryption, y más tarde opta por desplegar Intercept X, el agente existente descarga e instala la CRT y la ejecuta antes de la instalación. Una vez instalado Intercept X, la CRT se elimina automáticamente.

Conjunto de reglas de autoayuda para endpoints

Las reglas de autoayuda para endpoints (ESH) son un conjunto de expresiones regulares para determinados archivos de registro. Si los ingenieros de Sophos han identificado una causa común o un error de configuración, pueden publicar una nueva regla y enlazar con el Artículo de la Base de Conocimientos (KBA) que describe el problema y la(s) solución(es) sugerida(s).

ScheduledQueryPack

La actualización del contenido del paquete de consultas programadas contiene una lista de consultas programadas y su frecuencia de ejecución. SophosOsquery.exe carga las reglas; McsClient.exe envía el resultado para que lo ingiera el lago de datos de Sophos Central.

SophosOsquery.exe tiene un perro guardián integrado que impide que las consultas “fuera de control” consuman demasiada CPU o memoria. Sophos recopila telemetría sobre el rendimiento de las consultas programadas y las optimiza y ajusta regularmente para evitar que se active el perro guardián.

RemapperRules

McsAgent.exe carga las reglas de remapeo y las utiliza para «remapear» la configuración de la política de Sophos Central en la configuración de Endpoint, almacenada en el registro de Windows en HKLM\SOFTWARE\Sophos\Management\Policy.

La política se suministra desde Central como un conjunto de documentos XML. Las reglas son también un conjunto de documentos XML que describen la estructura de los datos almacenados en el registro y proporcionan consultas XPath y algunas funciones de conversión para extraer contenido del XML de la política y generar datos del registro.

Si un archivo de reglas está dañado, o si su procesamiento falla por algún otro motivo, no se actualiza ninguno de los valores del registro definidos por ese archivo y se deja intacta cualquier configuración anterior. El procesamiento de otros archivos de reglas válidos tampoco se ve afectado.

EPIPS_data

La actualización de contenido EPIPS_data contiene firmas del sistema de prevención de intrusiones (IPS) cargadas por SophosIPS.exe. SophosIPS.exe contiene un producto IPS creado por Sophos. Las firmas son firmas IPS publicadas por SophosLabs.

SophosIPS.exe se ejecuta como un proceso con pocos privilegios. Cuando el IPS está activado, el controlador sntp.sys envía paquetes a SophosIPS.exe para que los filtre; SophosIPS.exe responde al controlador con comandos para aceptar o rechazar los paquetes.

Interactuar con los flujos de red paquete a paquete en lo más profundo de la pila de red requiere un cuidado extremo. Las llamadas de la Plataforma de Filtrado de Windows (WFP) en L2 son muy sensibles a los controladores subyacentes, a menudo de terceros, que dan servicio a las capas física y de acceso a medios. Debido al alto riesgo para la estabilidad del sistema, la función IPS se supervisa a sí misma para detectar BSOD o interrupciones de la red que probablemente estén causadas por interacciones de controladores de terceros. Si se detecta, la función IPS se desactiva automáticamente y establece el estado de salud del endpoint en rojo como alerta de la incompatibilidad.

NTP_OVERRIDES

Uno de los posibles problemas al crear un controlador de núcleo de la Plataforma de Filtrado de Windows (WFP) es que, aunque la plataforma está diseñada para que varios controladores interactúen con la pila de filtrado al mismo tiempo, Sophos ha identificado ciertos paquetes de software de terceros que no son compatibles con la función IPS, que requiere la capacidad de interceptar y manipular paquetes L2.

La actualización de contenido NTP_OVERRIDES contiene una lista de controladores incompatibles conocidos. Si la función IPS está activada en la política pero se despliega en un dispositivo con un controlador incompatible, SophosNtpService.exe desactiva el IPS, anulando la política.

Esto se entrega como una actualización de contenido para que, a medida que se descubran nuevos controladores incompatibles, Sophos pueda reaccionar dinámicamente para proteger a otros clientes con la misma configuración. Además, si Sophos o terceros actualizan los controladores para solucionar la incompatibilidad, Sophos puede eliminar el controlador a partir de una versión determinada.

RepairKit

Durante cada actualización horaria, Sophos AutoUpdate ejecuta un programa de autoreparación (su-repair.exe) para detectar y corregir cualquier problema conocido reparable. El RepairKit se creó originalmente para detectar y reparar la corrupción de archivos causada por cierres no limpios que podían corromper la instalación de Sophos. Con el tiempo, el equipo de ingenieros de Sophos ha utilizado esta función para corregir muchos problemas que históricamente habrían requerido un compromiso de soporte de Sophos con el cliente, o que potencialmente habrían pasado desapercibidos hasta que una futura actualización del software señalara el problema.

Las reglas de RepairKit se escriben en Lua y las carga su-repair.exe. Las reglas están cifradas y firmadas. Si su-repair.exe no carga las reglas de RepairKit, carga un conjunto de reglas de «último recurso» incorporado que solo se centra en reparar el propio Sophos AutoUpdate.

Las reglas RepairKit tienen amplio acceso a la máquina y se ejecutan como SYSTEM, ya que necesitan la capacidad de corregir claves y archivos privilegiados.

TELEMSUP

Esta actualización del contenido de telemetría contiene un documento JSON que describe con qué frecuencia y dónde enviar telemetría:

{
"additionalHeaders": "x-amz-acl:bucket-owner-full-control",
"port": 0,
"resourceRoot": "prod",
"server": "t1.sophosupd.com",
"verb": "PUT",
"interval": 86400
}

La actualización del contenido de telemetría no ha cambiado desde que se introdujo en 2016.

APPFEED, USERAPPFEED

Las actualizaciones de contenido APPFEED contienen fragmentos Lua firmados y cifrados para detectar aplicaciones instaladas y generar dinámicamente exclusiones para ellas.

Si se detecta una aplicación para la que el APPFEED contiene reglas de exclusión, las reglas generan dinámicamente exclusiones específicas de la máquina basadas en la aplicación instalada. Estas exclusiones se envían a Sophos Central para que el administrador de Sophos Central las vea.

Las reglas solo tienen acceso de lectura al registro y al sistema de archivos y suelen funcionar buscando aplicaciones conocidas en las claves del registro Agregar o quitar programas. Algunas aplicaciones, como Microsoft SQL Server, requieren la ejecución de secuencias de comandos PowerShell para detectar componentes opcionales del sistema operativo.

APPFEED y USERAPPFEED se cargan mediante una instancia de SEDService.exe.

ProductRulesFeed

Las reglas de producto las carga SSPService.exe. Tienen el mismo formato que las reglas de Comportamiento, con los mismos accesos y privilegios. Se cargan en el mismo intérprete LuaJIT y proporcionan la funcionalidad básica requerida por las reglas de Comportamiento.

Modelos ML

La actualización de contenido Modelos ML contiene varios modelos de aprendizaje automático cargados por SophosFileScanner.exe. A diferencia de la mayoría de las actualizaciones de contenido, los modelos ML contienen DLL de Windows que contienen la lógica central del modelo ML, así como los “pesos”, el resultado del entrenamiento y ajuste de los modelos en la nube de SophosLabs.

Los modelos ML son cargados por SophosFileScanner.exe y se ejecutan en el mismo entorno de bajo privilegio. SophosFileScanner.exe permite cargar dos versiones de cada modelo: “telemetría” y “en vivo”. Sophos utiliza esta capacidad para entregar modelos ML candidatos en modo telemetría. Cuando SophosFileScanner.exe tiene un modelo ML en modo telemetría, selecciona una muestra de datos para el análisis telemétrico, y la ejecuta a través del modelo telemétrico (además de las actividades normales). La salida del modelo de telemetría, junto con los datos recogidos por los modelos normales, proporciona telemetría a Sophos para su análisis y entrenamiento.

Sophos entrega los modelos ML como actualizaciones de contenido para que un nuevo modelo ML pueda recibir varias iteraciones de telemetría, reentrenamiento y puesta a punto antes de ser promovido al modelo activo.

Como la actualización del modelo ML contiene código ejecutable, Sophos lo libera de forma más gradual y con más puertas:

  • Pasa más tiempo en los primeros grupos de liberación (pruebas de ingeniería e internas de Sophos)

  • Se libera a lo largo de varias semanas, no de horas.

Hmpa_data

La actualización de contenido Hmpa_data contiene una lista global permitida de miniaturas de HitmanPro.Alert. Cada detección de HitmanPro.Alert crea una huella digital única para la mitigación relevante y la información específica de la detección. Por ejemplo, una huella digital para una mitigación StackPivot puede incluir el proceso y los últimos fotogramas de la pila.

Hmpa_data contiene una lista compacta de thumbprints permitidos globalmente. El servicio HitmanPro.Alert hmpalertsvc.exe utiliza esta base de datos para suprimir rápida y silenciosamente las detecciones, reducir los falsos positivos y evitar problemas de rendimiento o estabilidad.

  • El controlador de HitmanPro.Alert, hmpalert.sys, genera huellas y las envía al servicio para cualquier mitigación basada en el controlador: CryptoGuard, CiGuard, PrivGuard, etc.

  • La DLL gancho de HitmanPro.Alert, hmpalert.dll, que se inyecta en los procesos de usuario, genera huellas para cada detección y las envía al servicio para que informe.

Conclusión

Para seguir el ritmo del panorama de amenazas en constante evolución y protegerse contra las amenazas emergentes, es de vital importancia actualizar periódicamente los productos de seguridad con nuevos datos. Sin embargo, las actualizaciones de contenido corruptas o defectuosas pueden causar interrupciones, por lo que también es esencial que existan mecanismos que ayuden a garantizar que son válidas, están firmadas y verificadas.

En este artículo, hemos proporcionado una visión general de alto nivel de las actualizaciones de contenido que utilizamos en Intercept X explorando qué son, con qué frecuencia se entregan, cómo se validan y verifican, los procesos específicos de bajo privilegio en los que se cargan y los métodos que utilizamos para desplegarlas de forma escalonada y controlada.

Como aludimos en nuestro anterior artículo sobre los controladores del núcleo de Intercept X, equilibrar la protección y la seguridad es arriesgado, pero nos comprometemos a gestionar ese riesgo con la mayor transparencia posible.