Los sistemas antifraude modernos utilizan diversos métodos para identificar a los usuarios. Una de las tecnologías clave es la huella digital de red, que permite reconocer los dispositivos y sus características a nivel de conexión de red. Este enfoque incluye herramientas como p0f, JA3, JA4, JARM y el análisis de los parámetros de las conexiones TLS/SSL. #### Historia de la creación y finalidad de las huellas digitales de red ###### p0f La herramienta p0f fue creada para analizar pasivamente el tráfico de red e identificar sistemas operativos, configuraciones y características de dispositivos sin comunicación activa. Su uso comenzó en el campo del diagnóstico de redes, pero más tarde se aplicó a los sistemas antifraude. ###### JA3 y JA4 Estos métodos surgieron con el objetivo de analizar conexiones TLS/SSL. JA3 genera un hash a partir de los parámetros de un mensaje TLS Hello del cliente, mientras que JA4 genera un hash a partir de un mensaje Hello del servidor. Esto permite crear huellas digitales únicas para clientes y servidores, identificando dispositivos y programas. ###### Huellas digitales de red como herramienta en los sistemas antifraude Las huellas digitales de red se utilizan para: - Identificar dispositivos mediante el análisis de su comportamiento en la red. - Identificar tráfico de red sospechoso o inusual. - Reconocer bots y navegadores antidetección que utilizan cloaking. - Detectar servidores maliciosos mediante técnicas de análisis activo y pasivo. ###### Parámetros clave de conexión de red para la toma de huellas dactilares **Cabeceras TCP/IP - Tamaño de ventana. - Secuencia de banderas. - TTL (tiempo de vida). **Parámetros TLS/SSL - Suites de cifrado soportadas. - Extensiones y su orden. - Versión del protocolo. ###### Parámetros de huella digital de red **1. Parámetros de seguridad de la capa de transporte (TLS) ** **Versiones de TLS:** - Versión de registro: TLS 1.0 (769). - Versión Handshake: TLS 1.2 (771). - Versión acordada: TLS 1.3 (772). **Suites de cifrado El cliente soporta múltiples suites de cifrado incluyendo: - TLS_AES_128_GCM_SHA256 (4865). - TLS_AES_256_GCM_SHA384 (4866). - TLS_CHACHA20_POLY1305_SHA256 (4867). - Varios cifrados basados en ECDHE y RSA. **2. Métodos de huella digital** ** - Huella digital JA3:** ◦ Hash: dcc69aae7a9e90b98e2f45cefce8d0ab. ◦ Formato: versión TLS, suites de cifrado, extensiones, curvas elípticas, formatos de curvas elípticas. ◦ Se utiliza para identificar clientes TLS en función de las características de su mensaje de bienvenida. ** - Huella digital JA3N:** ◦ Hash: dee19b855b658c6aa0f575eda252525e19. ◦ Similar a JA3, pero normalizado para eliminar los valores GREASE. ** - Huella de JA4:** ◦ Valor: t13d1516h2_8daaf6152771_02713d6af862. ◦ Incluye la versión TLS y otros parámetros de conexión. #### Ejemplos de análisis de huellas p0f, JA3, JA4 ###### Análisis de p0f Un ejemplo de uso de p0f para determinar el SO: Consideremos la huella dactilar p0f de un ordenador Windows conectado por cable a un router con Internet de un ISP. Abramos la página p0ftest.tanatos.org. - mod: «syn» cli: «188.226.xxx.xxx/26860» srv: «167.172.59.39/443» subj: «cli» os: «Windows NT kernel» dist: «15» params: «genérico» raw_sig: «4:113+15:0:1460:mss*44,8:mss,nop,ws,nop,nop,sok:df,id+:0» - mod: «mtu» cli: «188.226.xxx.xxx/26860» srv: «167.172.59.39/443» subj: «cli» enlace: «Ethernet o módem» raw_mtu: «1500» Como resultado de la prueba vemos la siguiente característica para el sistema operativo Windows: orden de opciones TCP (mss,nop,ws,nop,nop,sok), multiplicador (mss*44,8) y Tamaño de ventana TCP (113+15), en base a estos datos el sitio concluye que estamos utilizando os: «Windows NT kernel». Tamaño Los valores mss 1460 (Tamaño máximo de datos TCP sin cabeceras) y mtu 1500 (Tamaño máximo de paquetes)... son parámetros relacionados que definen el tamaño de los paquetes en la red e indican el uso de «Ethernet o módem» Repitamos la prueba en un dispositivo móvil conectado vía Wi-Fi al router - mod: «syn» cli: «188.226.xxx.xxx.xxx/60496» srv: «167.172.59.39/443» subj: «cli» os: «Linux 2.2.x-3.x» dist: «15» params: «genérico» raw_sig: «4:49+15:0:1460:65535,10:mss,sok,ts,nop,ws:df,id+:0» - mod: «mtu» cli: «188.226.xxx.xxx.xxx/60496» srv: «167.172.59.39/443» subj: «cli» enlace: «Ethernet o módem» raw_mtu: «1500» - mod: «uptime» cli: «188.226.xxx.xxx.xxx/60496» srv: «167.172.59.39/443» subj: «cli» uptime: «25 días 14 h 22 min (módulo 49 días)» raw_freq: «1000,03 Hz». En esta prueba el dispositivo se identificó como os: «Linux 2.2.x-3.x» por una serie de características: orden de las opciones TCP (mss,sok,ts,nop,ws), valor del tamaño de ventana TCP (49+15). También en la huella digital hay información sobre el tiempo de presencia del dispositivo en la red uptime: «25 days 14 hrs 22 min (modulo 49 days)». Comprobemos la huella P0f en un dispositivo móvil android con 4G - mod: «syn» cli: «176.15.252.192/41378 srv: «167.172.59.39/443» subj: «cli» os: «Linux 2.2.x-3.x» dist: «14» params: «genérico» raw_sig: «4:50+14:0:1408:65535,10:mss,sok,ts,nop,ws:df,id+:0» - mod: «mtu» cli: «176.15.252.192/41378» srv: «167.172.59.39/443» subj: «cli» enlace: «?????» raw_mtu: «1448» - mod: «uptime» cli: «176.15.252.192/41378» srv: «167.172.59.39/443» subj: «cli» uptime: «32 días 13 h 29 min (módulo 49 días)» raw_freq: «989,80 Hz». La característica distintiva de este ejemplo son los tamaños de paquete mss 1408 y mtu 1448. Ejecutemos la prueba en un navegador antidetección con huella móvil utilizando un proxy adquirido en uno de los servicios  En este ejemplo, obtenemos una huella dactilar p0f correspondiente a un dispositivo de escritorio, pero intentamos hacernos pasar por un dispositivo móvil. Este tipo de incoherencias serán tratadas como sospechosas por los sistemas antifraude. También en este ejemplo los valores de mss 1360 y mtu 1400 corresponden a tamaños de paquetes OpenVPN y difieren de los valores de la mayoría de operadores móviles. Repitamos la prueba en el navegador antidetección con otro proxy  Los resultados de la prueba con el proxy proporcionado son completamente coherentes con los resultados de la prueba en un dispositivo móvil real. ###### UDP (User Datagram Protocol) en los sistemas antifraude. UDP (User Datagram Protocol) es un protocolo de transporte que funciona sobre IP (Internet Protocol). Está diseñado para la transferencia rápida y simplificada de datos sin establecer una conexión y sin garantizar la entrega. Hoy en día, los sistemas antifraude a menudo establecen conexión con el cliente a través de UDP, este método ayuda a determinar la dirección IP real del cliente y detectar el uso de proxies que, o bien no procesan los paquetes UDP y los pasan directamente al destinatario, revelando la dirección IP real, o bien bloquean los paquetes UDP, lo que indica el uso de enmascaramiento de la dirección IP real. Probemos el soporte UDP abriendo la página networktest.twilio.com en el ordenador.  Repitamos la prueba en un dispositivo móvil con 4G  Ambos dispositivos reales superan con éxito las pruebas de conexión UDP. Ejecutemos la prueba en un navegador antidetección utilizando el primer proxy  Este proxy bloquea las conexiones UDP. Comprobemos nuestro segundo proxy en un navegador antidetección  Este tipo de proxy establece y mantiene conexiones UDP y pasa con éxito las comprobaciones. ###### Huella digital JA3 La huella dactilar JA3 se forma a partir de los valores TLSVersion,Cifrados,Extensiones,EllipticCurves,EllipticCurvePointFormats Ejemplo: 769,47–53–5–10–49161–49162–49171–49172–50–56–19–4,0–10–11,23–24–25,0 Puede obtener más información sobre cómo se forma y funciona la huella digital JA3/JA3S en este artículo engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967. Veamos cómo es el fingerprinting JA3 utilizando los navegadores Chrome y Firefox como ejemplos. Abramos la página tls.peet.ws/api/all en un ordenador en el navegador Firefox  771,4865-4867-4866-49195-49199-52393-52392-49196-49200-49162-49161-49171-49172-156-157-47-53,0-23-65281-10-11-16-5-34-51-43-13-45-28-27-65037-41,4588-29-23-24-25-256-257,0 Actualizando la página, tenemos la siguiente impresión de JA3  771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,23-45-18-13-43-35-11-10-5-0-65281-65037-16-27-51-17513-41,4588-29-23-24,0 Comparando las impresiones obtenidas del mismo dispositivo en el navegador Firefox, vemos una ligera diferencia en los valores de Extensiones. Abramos la página de prueba en el navegador Chrome de nuestro ordenador y obtengamos el resultado de la huella JA3 771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,51-11-13-35-0-5-18-65037-16-43-45-10-65281-17513-27-23-41,4588-29-23-24,0 Actualicemos la página en el navegador Chrome y observemos la huella JA3 771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,35-51-10-27-13-18-65281-65037-45-16-5-23-43-0-11-17513-41,4588-29-23-24,0 Podemos observar que para protegerse contra la obtención de la huella JA3, el navegador Chrome cambia el orden de los valores de las Extensiones. Repitamos la prueba en un dispositivo móvil en el navegador Firefox  JA3: 771,4865-4867-4866-49195-49199-52393-52392-49196-49200-49162-49161-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-34-51-43-13-45-28-27-65037,29-23-24-25-256-257,0 Actualicemos la página en el navegador móvil Firefox JA3: 771,4865-4867-4866-49195-49199-52393-52392-49196-49200-49162-49161-49171-49172-156-157-47-53,0-23-65281-10-11-16-5-34-51-43-13-45-28-27-65037-41,29-23-24-25-256-257,0 En el navegador móvil Firefox, al igual que en el de escritorio, los valores de las Extensiones cambiaron al actualizar la página. Realicemos la prueba en el navegador móvil Chrome  JA3: 771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-65281-13-5-17513-51-27-45-43-11-65037-23-16-35-18-10,4588-29-23-24,0 Actualicemos la página JA3: 771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,10-13-23-43-18-35-0-65281-51-11-45-27-16-5-65037-17513-41,4588-29-23-24,0 El navegador Chrome para móviles cambia el orden de los valores de las extensiones del mismo modo que en la versión de escritorio. Combinemos los resultados en una tabla y clasifiquemos los valores por orden  En la tabla podemos observar las diferencias características entre los valores de las secciones Cifrados, Extensiones y CurvasElípticas de la huella JA3 para distintos navegadores y sistemas. Basándose en estos valores, los sistemas antifraude pueden distinguir entre los sistemas operativos conocidos y los navegadores en uso. Es importante señalar que los conjuntos de valores de las distintas versiones de un mismo navegador pueden diferir ligeramente. Igualmente importante es la huella JA3S, se forma a partir de los valores de Versión, Cifrado Aceptado y Lista de Extensiones del mensaje TLS Server Hello. Veamos como ejemplo las versiones de escritorio de los navegadores Firefox y Chrome. Firefox JA3S:  Chrome JA3S:  Basándonos en los resultados de la prueba, podemos concluir que los valores de la Lista de extensiones en la huella JA3S cuando el servidor responde son diferentes para los distintos clientes. ###### Huella JA4 La huella JA4 es una versión mejorada de la huella JA3, tiene en cuenta más parámetros y es más estable. Un ejemplo de una huella JA4: t13d1517h2_8daaf6152771_b0da82dd1658 Donde: **t** 13d1517h2_8daaf6152771_b0da82dd1658 - Protocolo (t es TCP, q es QUIQ) t **13** d1517h2_8daaf6152771_b0da82dd1658 - Versión TLS (12 - 1.2, 13 - 1.3) t13 **d** 1517h2_8daaf6152771_b0da82dd1658 - Indica un salto por i - dirección ip o d - dominio t13d **15** 17h2_8daaf6152771_b0da82dd1658 - número de Chipher Suites t13d15 **17** h2_8daaf6152771_b0da82dd1658 - número de Extensiones t13d1517 **h2** _8daaf6152771_b0da82dd1658 - h2 - protocolo HTTP/2 t13d1517 h2_ **8daaf6152771** _b0da82dd1658 - hash para suites Chipher ordenadas t13d1517h2_8daaf6152771_ **b0da82dd1658** - hash de la lista de Extensiones y algoritmos ordenados Así se representa la huella JA4  JA4: t13d1517h2_8daaf6152771_b0da82dd1658 Y su versión en bruto JA4_r: t13d1517h2_002f,0035,009c,009d,1301,1302,1303,c013,c014,c02b,c02c,c02f,c030,cca8,cca9_0005,000a,000b, 000d,0012,0017,001b,0023,0029,002b,002d,0033,4469,fe0d,ff01_0403,0804,0401,0503,0805,0501,0806,0601 Puede encontrar más información sobre la formación de una huella JA4 en esta página blog.foxio.io/ja4+-network-fingerprinting. #### Métodos de suplantación de huellas digitales de red Los atacantes pueden intentar ocultar los parámetros reales de una conexión de red mediante: - Modificando los parámetros TCP/IP. - Generando huellas JA3/JA4 falsas. - Utilizando servidores proxy o VPN. Los sistemas antifraude responden a estos intentos analizando las anomalías, comparando las huellas dactilares y comprobando la secuencia de acciones del cliente. #### Conclusión Las huellas digitales de red como p0f, JA3, JA4 se han convertido en herramientas importantes en el arsenal de los sistemas antifraude. Permiten no sólo identificar dispositivos, sino también detectar intentos de enmascaramiento. La combinación de huellas digitales de red y hardware, así como el análisis en profundidad de los protocolos HTTP/2 y la pila TCP/IP proporcionan una protección más precisa contra el fraude y las amenazas. _Bannykh M.V._