Técnicas de evasión C2: Entendiendo la Aleatorización JA3/S y el Cipher Stunting

28 de enero de 2021
Joshua St. Hilaire
Director of Security Research
Técnicas de evasión C2: Entendiendo la Aleatorización JA3/S y el Cipher Stunting

JA3 ha ido ganando cierta popularidad dentro de la comunidad de seguridad para señalar fácilmente herramientas conocidas o malware mediante una firma que puede generarse fácilmente a partir de los valores de seguridad de la capa de transporte (TLS) utilizados durante la comunicación que emplea dicho cifrado. Aunque las firmas JA3 son fáciles de usar y parecen una forma sencilla de que los defensores detecten comunicaciones maliciosas, pueden ser manipuladas con la misma facilidad para eludir la detección y mezclarse con el tráfico TLS/SSL normal.

En este artículo, empezaremos a desvelar algunos de los métodos que utilizan los servidores y agentes de comando y control (C2) para eludir la detección. Nos centraremos en las técnicas de evasión utilizadas por conocidos marcos C2 que utilizan varias técnicas para evadir la detección. Con respecto a las firmas JA3 específicamente, los desarrolladores de estas herramientas han realizado algunos esfuerzos para evitar la detección. Además, hay pruebas claras de que estas mismas técnicas de evasión están siendo utilizadas activamente por malware para eludir la detección.

Desentrañando JA3/S: una introducción

En primer lugar, vamos a resumir brevemente qué es JA3 y por qué se puede utilizar para detectar tráfico malicioso. JA3 es un método de huella digital del apretón de manos TLS que fue publicado por primera vez por John Althouse, Jeff Atkinson y Josh Atkins de Salesforce en 2017. El tráfico de Internet que implementa TLS transmitirá valores entre sí en un esfuerzo por establecer una conexión segura. Los siguientes valores se utilizan para formar un hash JA3 ( SSLVersion , Cipher, SSLExtension, EllipticCurve, EllipticCurvePointFormat) y para el hash JA3S(SSLVersion,Cipher,SSLExtension). Estos valores se transmiten en claro antes del cifrado para que el cliente y el servidor sepan qué tipo de cifrado pueden utilizar. Son la base de lo que se utiliza para formar un hash JA3/S. Estos valores pueden utilizarse para identificar ciertos tipos de tráfico malicioso cuando son fiables. Para una explicación más detallada puedes ver el post original de SalesForce.

Comprensión de la aleatorización JA3/S y el enmascaramiento de cifras

Como ya se ha mencionado, parte de la firma JA3/S se deriva del cifrado. La lista de cifrado se transmite durante la negociación de hola cliente/servidor. Un ejemplo de esto se puede ver en la imagen de una captura de paquete a continuación.

Figura 1: Lista de cifrado transmitida durante el saludo del cliente TLS

Durante este proceso, el servidor elegirá el cifrado más alto disponible que admitan ambos extremos de la conexión. Esto significa que para cada conexión realizada entre un extremo y un servidor, se esperaría que la firma JA3/S fuera la misma y diera como resultado la misma firma JA3/S. Sin embargo, al utilizar la aleatorización JA3/S, el servidor elegirá un cifrado aleatorio de la lista de cifrados admitidos. Sin embargo, al utilizar la aleatorización JA3/S, el servidor elegirá un cifrado aleatorio de la lista de cifrados admitidos. Al utilizar un cifrado diferente, el hash JA3/S que se deriva de estos valores acabará siendo diferente.

Para eludir la detección, los autores malware tendrán que manipular los valores TLS utilizados, que son la base de la firma JA3. De este modo, podrán eludir la detección. Una forma fácil de hacerlo es elegir aleatoriamente un conjunto de cifrado. Esta técnica se conoce como aleatorización JA3/S.

Una tendencia creciente: JA3/S en marcos C2

El equipo de investigación de Akamai ha compartido información al respecto. En resumen, los resultados de su investigación muestran que las huellas TLS saltaron de 18.652 huellas distintas a nivel mundial en agosto de 2018 a más de 1.300 millones a finales de febrero de 2019. Esto sugiere que tras la investigación y el interés en las huellas digitales JA3/S por parte de la comunidad de seguridad, los autores de malware y los controladores de bots implementaron técnicas para eludir las firmas TLS.

La aleatorización JA3/S/Cipher-Stunting también ha comenzado a introducirse en C2 Frameworks como Empire a partir de la versión maestra 3.0, según el registro de cambios de Github. La imagen de abajo muestra el código fuente de Empire GitHub, que destaca una muestra de cómo se puede lograr la aleatorización JA3.

Figura 2: Aleatorización de la firma JA3 mediante la elección aleatoria de una lista de cifrados

Evadir la detección: Más de un enfoque

Como ocurre con todas las técnicas novedosas utilizadas en la comunidad de seguridad para identificar amenazas, los atacantes siempre han sido rápidos a la hora de cambiar de táctica para eludir las estrategias de detección. Aunque hemos visto que las herramientas del equipo rojo utilizan la aleatorización JA3 para frustrar la detección, existen otros métodos para hacer lo mismo. Como dice el adagio, "hay más de una forma de despellejar a un gato". Por ejemplo, la suplantación de JA3 puede hacerse imitando los valores TLS de los navegadores comunes o incluso utilizando el cliente HTTPS del sistema operativo subyacente para eludir la detección.

Conclusiones: El reto de la detección

Queda claro que con cualquier técnica que pueda ser utilizada para detectar "maldades" por los profesionales de la seguridad, los atacantes se adaptarán rápidamente para continuar operando sin ser detectados. Identificar C2 Frameworks con firmas JA3 se vuelve difícil cuando el Framework está implementando la aleatorización JA3/S u otra técnica. Las herramientas y técnicas de seguridad que utilizan los defensores deben ser muy flexibles y capaces de adaptarse rápidamente a los cambios. Si no lo hacen, el C2 seguirá eludiendo la detección y operando bajo el radar de los profesionales de la ciberseguridad. Las firmas JA3, incluso sin manipulación, son un indicador de baja fidelidad de la actividad maliciosa y las técnicas descritas en el post las hacen aún menos fiables debido a la facilidad con la que pueden manipularse.

Teniendo esto en cuenta, las firmas JA3 pueden utilizarse como indicador suplementario de compromiso, pero no debe confiarse demasiado en ellas debido a su baja fidelidad y a la facilidad con la que pueden ser manipuladas. La calidad de las detecciones basadas en firmas depende de la fiabilidad de los datos subyacentes y de su mantenimiento. Lo ideal sería que la detección de C2 utilizara una estrategia de detección de redes polifacética, ágil y capaz de generalizar. Por supuesto, este planteamiento requiere una inversión mucho mayor, pero a largo plazo dará sus frutos.

Echa un vistazo mi segundo blog en el que examino un método conocido como perfiles C2 maleables.

Preguntas frecuentes

¿Qué es JA3 y cómo ayuda a detectar el tráfico malicioso?

JA3 es un método de toma de huellas dactilares del protocolo TLS, que implica la captura y el hash de valores específicos transmitidos durante el protocolo (SSLVersion, Cipher, SSLExtension, EllipticCurve y EllipticCurvePointFormat). Este hash puede ayudar a identificar herramientas maliciosas conocidas o malware comparándolo con una base de datos de firmas JA3 conocidas.

¿Qué es JA3S y en qué se diferencia de JA3?

JA3S es similar a JA3 pero se centra en la respuesta del servidor durante el handshake TLS. Utiliza valores como SSLVersion, Cipher y SSLExtension para crear su hash. Tanto JA3 como JA3S se utilizan para identificar tráfico malicioso, pero JA3S captura la perspectiva del servidor.

¿Por qué las huellas JA3/S se consideran un indicador de baja fidelidad de actividad maliciosa?

Las huellas JA3/S se consideran de baja fidelidad porque las firmas pueden manipularse fácilmente. Los atacantes pueden alterar los valores de TLS para evadir la detección, por lo que no es fiable depender únicamente de las huellas JA3/S para identificar actividades maliciosas.

¿Cuáles son las limitaciones del uso de firmas JA3/S para la detección de amenazas?

Las principales limitaciones incluyen la facilidad con la que los atacantes pueden aleatorizar o imitar los valores JA3/S, lo que dificulta confiar únicamente en estas firmas para una detección precisa. Las firmas JA3/S deben utilizarse como indicadores complementarios y no como métodos de detección primarios.

¿Por qué es importante que las herramientas de detección sean ágiles y adaptables?

Los atacantes evolucionan continuamente sus técnicas para eludir la detección. Si las herramientas de detección no son ágiles y adaptables, quedarán rápidamente obsoletas e ineficaces, permitiendo que las actividades maliciosas pasen desapercibidas.

¿Cómo ayuda la aleatorización JA3 a que malware evada la detección?

La aleatorización JA3 implica alterar el conjunto de cifrado utilizado durante el protocolo TLS. Al seleccionar un cifrado aleatorio de la lista de cifrados admitidos, el hash JA3 cambia en cada conexión, lo que dificulta que las herramientas de seguridad detecten y marquen de forma coherente el tráfico malicioso basándose en una firma JA3 estática.

¿Cuáles son las técnicas más utilizadas por las redes C2 para eludir la detección?

Entre las técnicas más comunes se encuentran la aleatorización JA3/S, el cipher stunting (selección aleatoria de un cifrado) y la suplantación JA3 (imitación de los valores TLS de navegadores o sistemas operativos comunes). Estos métodos ayudan a los marcos C2 a evitar la detección mediante la alteración de sus huellas dactilares TLS.

¿Cómo ha evolucionado la adopción de la aleatorización JA3/S en los marcos de malware y C2?

La investigación realizada por Akamai mostró un aumento significativo de huellas dactilares TLS distintas desde agosto de 2018 hasta febrero de 2019, lo que indica que los autores de malware adoptaron rápidamente técnicas de aleatorización JA3/S para eludir los métodos de detección que se basan en firmas JA3/S estáticas.

¿Cuáles son las limitaciones del uso de firmas JA3/S para la detección de amenazas?

Una estrategia polifacética de detección de redes que incluya análisis de comportamiento, detección de anomalías y métodos basados en firmas puede mejorar la detección de las comunicaciones C2. Este enfoque requiere herramientas flexibles y adaptables que puedan responder a la evolución de las técnicas de evasión.

¿Qué papel desempeña una plataforma de detección y respuesta a amenazas en un Centro de Operaciones de Seguridad (SOC)?

Una plataforma de detección y respuesta a amenazas es crucial en un SOC, ya que integra varios métodos de detección, proporciona análisis en tiempo real y facilita una respuesta rápida a las amenazas. Estas plataformas mejoran la capacidad del SOC para detectar y mitigar técnicas de evasión avanzadas como la aleatorización JA3/S.