Las soluciones de detección y respuesta de puntos finales (EDR) son herramientas que ayudan a detectar e investigar actividades sospechosas en todos los puntos finales de una organización. Las soluciones EDR funcionan mediante la supervisión de los eventos de los puntos finales y el almacenamiento de la información en una base de datos de controladores centralizada para su posterior análisis, investigación y respuesta. El software de agente se instala en los puntos finales para ayudar a la recopilación de datos en tiempo real y a la supervisión de posibles amenazas.
Aunque las soluciones EDR son una herramienta valiosa para proteger los puntos finales y otros activos de TI, existen otros puntos igual de interesantes en la lista de capacidades de un EDR. Pero primero, repasemos cómo funcionan actualmente las soluciones EDR.
Características principales de EDR
En términos sencillos, el EDR mantiene una amplia recopilación de datos sobre posibles ataques y supervisa continuamente todos los puntos finales. Los datos recopilados facilitan la investigación y la respuesta a incidentes por parte de los equipos de TI y de seguridad. Proporciona una visión profunda y una comprensión de las anomalías y vulnerabilidades de una organización. Además, proporciona visibilidad y la capacidad de detectar amenazas sofisticadas en los puntos finales. El EDR es muy superior a las herramientas tradicionales que utilizan soluciones basadas en firmas en cuanto a la identificación de posibles amenazas.
Los sistemas EDR se han vuelto muy avanzados y se están diseñando para ser compatibles e integrarse con otras herramientas de seguridad. Este enfoque integrado proporciona una excelente seguridad a la red frente a posibles ciberamenazas y ataques.
Sin embargo, los sistemas de seguridad EDR desempeñan un papel mucho más amplio en la seguridad de las empresas. El EDR no sólo incluye el antivirus, sino que también contiene muchas otras herramientas de seguridad para proporcionar una protección completa contra las amenazas. Proporciona una protección mejor y más holística que otras opciones de protección de puntos finales.
Detección offline vs. Protección y/o respuesta casi en tiempo real
A diferencia de sus primos cercanos EPP (Endpoint Protection Platforms), los sistemas EDR detectan las amenazas analizando los datos de los puntos finales que ha recogido. Esto suele denominarse modo de análisis fuera de línea. Por lo general, no bloquea las amenazas en línea, aunque la respuesta a incidentes puede ocurrir para mitigar una amenaza después de que se detecte. Un sistema EDR puede recopilar los datos forenses de alta calidad necesarios para la respuesta a incidentes y la investigación para comprender el alcance completo de los posibles ataques, pero la falta de detección y protección en tiempo real puede ser un punto débil.
Añadir una función de respuesta en tiempo real para las soluciones EDR sería muy útil para cortar un ataque en sus fases iniciales antes de que sea crítico para la organización. ¿Cómo podemos mejorar las capacidades de EDR para alcanzar una respuesta en tiempo real (o casi)?
Flujos de datos frente a tablas de datos
Básicamente, los sistemas que utilizan métodos de análisis retrospectivos, o «fuera de línea», como las consultas basadas en tablas comúnmente asociadas con SQL, ElasticSearch, o ciertas bases de datos orientadas a columnas como ClickHouse, pueden ser lentos e ineficientes.
Las tablas representan el estado actual de los registros de datos. Por ejemplo, si se recogen eventos de creación de procesos, podemos tener una tabla que mantenga la información más actualizada de los procesos y los mapeos de relaciones entre ellos.
Para los sistemas destinados a identificar patrones en tiempo real, las consultas retrospectivas en las tablas de datos son ineficientes. He aquí un ejemplo. Supongamos que tenemos un flujo de eventos de creación de procesos procedentes de agentes de punto final. Cada evento puede contener información como: guía del proceso, guía del proceso padre, nombre del proceso y línea de comandos del proceso.
Dada esa información, podríamos ejecutar la siguiente consulta en una base de datos ElasticSearch y encontrar todas las ocurrencias en las que un proceso «chrome.exe» del navegador generó un comando PowerShell. Con un sistema de consulta retrospectiva como SQL, primero tenemos que encontrar todas las instancias del proceso «chrome.exe”
“SELECT process_guid, process_name, command_line FROM EventTable WHERE process_name ==’chrome.exe»
Luego unimos el conjunto resultante con otra consulta sobre process_name==’powershell.exe’ y el id de proceso padre de PowerShell es igual al id de proceso del navegador chrome. Esta búsqueda es obviamente ineficiente, ya que debemos hacer dos pasadas por los datos. Imagina lo ineficiente que sería a través de varios índices.
Para la escalabilidad de la base de datos, a menudo se elige una base de datos NoSQL basada en documentos como ElasticSearch para ser el almacén de datos. No es una base de datos relacional estructurada, por lo que es difícil ejecutar incluso consultas JOIN básicas a través de varios índices, ya que no existe el concepto de clave de «unión». Realizar uniones completas de tipo SQL en un sistema distribuido como ElasticSearch requiere un tiempo prohibitivo. En el ejemplo anterior, una consulta jerárquica compleja en la que tenemos que definir el padre, el hijo y otra información hace que la operación sea muy ineficiente.
Alternativas a las consultas basadas en tablas
¿Tenemos una solución mejor? Sí, la tenemos. Antes de que los datos de los agentes de los extremos se almacenen en el almacén de datos del backend, se envían en un flujo, ya sea directamente o a través de un corredor de mensajes. Un flujo es una secuencia ilimitada de registros de datos, ordenados por tiempo, que representa el estado pasado y presente de los datos. Podemos acceder a un flujo desde su inicio hasta los valores más recientes.
Hay una serie de enfoques para procesar los flujos de eventos. Un subconjunto de estos enfoques se denomina comúnmente Procesamiento de Eventos Complejos, o CEP, por sus siglas en inglés. El procesamiento de flujos de eventos se utiliza para responder a las mismas preguntas que la consulta retrospectiva de bases de datos fuera de línea, pero realiza el mismo análisis con algoritmos en línea más eficientes que no requieren el acceso a todo el conjunto de datos. La eficiencia se consigue reteniendo en el estado sólo los datos relevantes y correlacionando después los eventos entrantes con ellos.
En el ejemplo anterior, un enfoque basado en el flujo almacenaría cada instancia de los procesos de chrome.exe a medida que se observa en el punto final, manteniendo esa información para correlaciones posteriores. Cuando se observa una instancia de powershell.exe, podemos tomar el GUID del proceso padre del nuevo evento y compararlo con el conjunto actual de GUIDs del proceso chrome.exe guardados. Este enfoque es claramente más eficiente que una consulta retrospectiva.
Opciones de implementación
El problema clave en el procesamiento de eventos en tiempo real para la detección de amenazas es la detección de patrones de eventos en los flujos de datos. Sin embargo, hay varias tecnologías disponibles para esta tarea.
Apache Flink
El Procesamiento de Eventos Complejos (CEP) de Apache Flink aborda exactamente este problema de cotejar los eventos entrantes continuamente con un patrón. Los resultados del cotejo suelen ser eventos complejos que se derivan de los eventos de entrada. A diferencia de las bases de datos tradicionales, en las que se ejecuta una consulta sobre los datos almacenados, CEP ejecuta los datos contra una consulta almacenada. Todos los datos que no son relevantes para la consulta pueden descartarse inmediatamente.
Las ventajas de este enfoque son evidentes, ya que las consultas CEP se aplican sobre un flujo de datos potencialmente infinito. Además, las entradas se procesan inmediatamente. Una vez que el sistema ha visto todos los eventos de una secuencia coincidente, los resultados se emiten de inmediato. Este aspecto permite la capacidad de análisis en tiempo real del CEP.
En consecuencia, CEP puede utilizarse en EDR especificando patrones de comportamiento de usuarios sospechosos. Apache Flink está diseñado con verdaderas capacidades de streaming para una baja latencia, así como un procesamiento de flujo de alto rendimiento.
Kafka KSQL
Los flujos y las tablas son modelos semánticos proporcionados por Apache Kafka. Kafka soporta la unión de flujos con ventana de tiempo. Es muy fácil utilizarlo con el controlador EDR actual con un despliegue de Kafka y aplicar patrones de correlación de eventos a través de operaciones «join» en tiempo real.
Al definir las relaciones entre los eventos de seguridad de los puntos finales, podemos obtener el contexto adicional de que dos o más eventos están correlacionados entre sí, lo que permite la detección de amenazas. KSQL puede utilizarse para aplicar algunas de estas relaciones y enriquecer los datos recogidos de los endpoints en tiempo real.
Impacto del procesamiento en tiempo real
El procesamiento del flujo de eventos en tiempo real puede ayudar a detectar comportamientos maliciosos de forma rápida y eficiente. Por lo tanto, hace posible el bloqueo posterior a la violación del comportamiento malicioso, el malware y otros artefactos que los métodos de protección en línea pasan por alto.
La capacidad de detectar y responder en tiempo real, incluso después de que las amenazas hayan comenzado a ejecutarse, es importante. Detiene los procesos relacionados que se están ejecutando, impidiendo que el ataque progrese. Estos bloqueos se comunican a los controladores de EDR, lo que permite a los equipos de seguridad ver los detalles de la amenaza y el estado de la reparación, y seguir investigando en busca de amenazas similares si es necesario.
El procesamiento de flujos de eventos en tiempo real es una capacidad de EDR que todo analista de seguridad desea tener. Sin embargo, hay otras, como la capacidad de graficación para el triaje y la investigación de amenazas. Estas capacidades se combinan para hacer del EDR una herramienta inestimable en el arsenal de los analistas de seguridad de TI para identificar patrones de amenazas y responder automáticamente para eliminar o contener las amenazas a velocidad de cable, sin la intervención del personal.