Home Artículos técnicos Cómo proteger su servicio OTT de un ataque de relleno de credenciales
Applications

Cómo proteger su servicio OTT de un ataque de relleno de credenciales

About The Author

Outline

La amenaza planteada por los ataques de relleno de credenciales en los servicios de streaming OTT se hizo muy clara recientemente. A las pocas horas de un muy publicitado lanzamiento de un popular servicio de streaming, las cuentas de usuario fueron pirateadas y ofrecidas a la venta con un descuento. Esta brecha se transformó en un desafío de relaciones públicas cuando miles de suscriptores recurrieron a las redes sociales para desahogarse de sus frustraciones sobre el acceso bloqueado a la cuenta y los problemas de accesibilidad al servicio.

Como ilustra esta experiencia, los ataques de relleno de credenciales son un desafío emergente para los equipos de seguridad OTT. Las suscripciones a servicios de streaming, impulsadas por pruebas gratuitas, corte de cables y contenido exclusivo, han generado grandes colecciones de información de los usuarios, haciendo que los servicios OTT sean objetivos cada vez más atractivos para el robo de datos. Revender el acceso a cuentas violadas no es el único motivo para los hackers. También pueden extraer datos privados valiosos de cuentas de usuario violadas, como direcciones, historial de navegación y teléfono, y datos de tarjetas de crédito. El hacker puede entonces vender esta información a través de la web oscura o causar más daño a través de la ingeniería social y ataques de phishing.

La zona de daño de un ataque de relleno de credenciales va mucho más allá del impacto en la privacidad y las finanzas de un usuario. Los ataques de relleno de credenciales usan botnets capaces de automatizar millones de solicitudes de inicio de sesión por hora, causando estragos en la infraestructura de aplicaciones. Incluso con una baja tasa de éxito, un volumen tan alto de solicitudes puede aumentar el costo de operar la plataforma de transmisión. Los ciclos adicionales de CPU, la memoria y las tarifas de entrada/salida de datos aumentan con el tiempo. Dado el costo relativamente alto de administrar backends de aplicaciones, especialmente en la nube, las solicitudes de inicio de sesión, que dependen en gran medida de los sistemas backend, son el ataque más costoso. En última instancia, un alto nivel de actividad nefasta no verificada degrada el servicio para usuarios legítimos que intentan autenticar, navegar y transmitir contenido.

¿Cómo puede un servicio de streaming neutralizar esta creciente amenaza? Este artículo técnico revisará lo que se requiere para administrar bots en el mundo actual y lo que se necesita para un servicio de streaming para minimizar el impacto —y reducir la probabilidad— de un ataque de relleno de credenciales.

La anatomía de un ataque de relleno de credenciales

Los ciberdelincuentes pueden iniciar un ataque de relleno de credenciales obteniendo credenciales robadas a través de varios medios, incluyendo el descubrimiento de bases de datos mal configuradas, ataques de phishing, infectar los dispositivos de los usuarios con malware o comprar credenciales pirateadas en la web oscura. A continuación, los atacantes enrutan innumerables solicitudes de inicio de sesión a través de servidores proxy distribuidos para oscurecer el origen del ataque y amplificar las solicitudes. Los delincuentes pueden comprar acceso a los servicios proxy, a precios asequibles por hora, de los pastores de bots en foros web oscuros. Por último, los atacantes crean scripts para automatizar las solicitudes de autenticación utilizando la lista de credenciales violadas, generalmente utilizando contraseñas reutilizadas o simplistas, para obtener acceso a los servicios. Los atacantes también pueden comprar kits de herramientas en la web oscura, como solucionadores CAPTCHA, emuladores de navegador o scripts de suplantación de huellas dactilares, para ayudar a contrarrestar las defensas existentes.

Defendiéndose contra los ataques de relleno de credenciales

Detener tales ataques requiere la capacidad de distinguir a los bots de los humanos. Desafortunadamente, los operadores de bots continuamente encuentran nuevas formas de eludir los métodos de detección de bots. La última generación de bots es casi indistinguible de los humanos.

A medida que los bots se han vuelto más sofisticados, las estrategias de mitigación simples que pueden haber funcionado en el pasado, como bloquear la solicitud del bot, la dirección IP o el agente de usuario (UA), ya no son suficientes. Los atacantes de hoy en día están utilizando uno de los servicios de proxy IP giratorio baratos y abundantes en lugar de atacar desde IP estáticas, lo que les ayuda a eludir la limitación de la velocidad y la protección simple de la lista de control de acceso (ACL). Además, el bloqueo no es recomendable porque sirve como un mecanismo de retroalimentación útil para los operadores de bots, diciéndoles que evolucionen su automatización para derrotar el método de detección.

Las técnicas de detección de bots han tenido que ser más sofisticadas para adaptarse a la creciente sofisticación de los ataques de bots. Las técnicas de detección de bots de última generación de hoy en día implican tres formas de análisis tanto en el lado del servidor como en el lado del cliente. Son:

  1. Solicitar huellas dactilares
  2. Huellas dactilares del cliente
  3. Huellas dactilares conductuales

Necesitarás una combinación de los tres para derrotar sofisticados ataques de relleno de credenciales.

Método de detección de ataques 1: Solicitar huellas dactilares

La solicitud de huellas dactilares generalmente se realiza en el lado del servidor tan pronto como el servidor recibe toda la información solicitada del cliente. Una solicitud de cliente normalmente consiste en una combinación de una red (IP), conexión, cifrado y otros metadatos HTTP analizados y utilizados para generar una huella dactilar de solicitud. Esta huella digital incluye detalles básicos como la dirección IP, el apretón de manos TCP, el apretón de manos TLS (es decir, el protocolo TLS, los cifrados, etc.). y extensiones), encabezados HTTP y órdenes de encabezado, y otra información derivada de los metadatos, como el ASN y el tipo de dispositivo. Cuando se juntan, estas características de solicitud pueden producir una firma o huella digital única para cada cliente.

Gráfico 1. Una pequeña muestra de características de solicitud que pueden trabajar juntas para crear una huella digital de solicitud única.

A partir de la huella dactilar, podemos empezar a buscar anomalías. Por ejemplo, si una solicitud afirma ser de una UA de Chrome, ¿incluye encabezados en el orden esperado en esa versión del navegador Chrome como se indica en el agente de usuario? ¿Utiliza los protocolos HTTP y TLS típicos? ¿El mensaje ClientHello contiene el protocolo y el cifrado con el orden preferido típico de esta versión de Chrome? Además de analizar los metadatos de la solicitud, el servidor también puede realizar un análisis de comportamiento limitado, como el número de solicitudes y su frecuencia y si existe un patrón de navegación que pueda ayudar a determinar si las solicitudes están automatizadas.

Solicitar huellas dactilares es un primer paso necesario, pero es insuficiente por sí solo.

Método de detección de ataques 2: Huellas dactilares del cliente

El desafío con las huellas dactilares de solicitud es que los atacantes ahora pueden falsificar las huellas dactilares de solicitud que, la mayoría de las veces, aparecerán 100% idénticas al cliente real. Si los atacantes cometen un error, solicitar huellas dactilares identificará esos errores, pero no puedes contar con que eso ocurra regularmente.

Fundamentalmente, solicitar huellas dactilares solo cuenta la mitad de la historia. El servidor necesita ver lo que está sucediendo en el lado del cliente y generar una huella dactilar del cliente para complementar la huella dactilar de la solicitud para obtener más información. Esto proporciona a los sistemas de detección de bots una imagen más completa del cliente y hace que sea más difícil para los atacantes evitar la detección.

Un servidor de huellas dactilares del cliente puede inyectar una pequeña pieza de JavaScript (JS) para que se ejecute en el lado del cliente reescribiendo el HTML en respuesta a la página solicitada. Alternativamente, el servidor puede inyectar una etiqueta de script que apunta a un JS remoto que el cliente puede descargar al cargar la página de inicio de sesión. El JS puede realizar comprobaciones en el lado del cliente y recopila información del dispositivo, como si JS o cookies están habilitadas, y examina el sistema operativo, el lienzo, el renderizador, el navegador, el motor JS, y el sistema operativo. y más para generar una huella digital completa del cliente.

Se espera que un navegador normal tenga soporte de cookies y esté habilitado para JS (para que puedan iniciar sesión correctamente y utilizar sus servicios de streaming); no haberlo habilitado puede causar sospechas. Las huellas dactilares del cliente pueden identificar otros elementos sospechosos no típicos del dispositivo anunciado que pueden indicar un cliente falso potencial, como un navegador Safari UA con Blink (motor del navegador) o Chrome con un motor SpiderMonkey JS.

Estos detalles se recopilan y se pueden transmitir a un servidor remoto, ya que la API llama para un análisis posterior o se cifran y se establecen como una cookie o encabezado que se enviará al servidor para su análisis en las solicitudes posteriores de los clientes. Las técnicas anteriores para recopilar y generar huellas dactilares de los clientes también se pueden adoptar para aplicaciones de transmisión que no sean de navegador, como aplicaciones para iPhone / Android, Roku o televisores Samsung a través de diferentes SDK.

Gráfico 2. Una pequeña muestra de características que pueden trabajar juntas para crear una huella digital única del cliente.

Si bien la combinación de solicitud y huellas dactilares del cliente fue efectiva con los bots de generación temprana, los bots más avanzados se basan en los mismos clientes que los humanos, incluidos Chrome, Firefox y Safari. También pueden emplear navegadores sin cabeza como Headless Chrome. A diferencia de los bots básicos que pueden carecer de funcionalidad, como soporte para JavaScript y cookies, los bots más avanzados pueden utilizar el navegador adecuado y el motor JS para realizar solicitudes TCP y TLS y HTTP correctamente formadas de acuerdo con su tipo de dispositivo.

Los ataques bajos y lentos se pueden realizar distribuyendo solicitudes a través de miles de direcciones IP, anulando cualquier método de detección basado en tarifas. Para agravar aún más el problema, los navegadores reales de dispositivos de usuario reales pueden ser secuestrados y utilizados para actividades de relleno de credenciales, y es casi seguro que tales ataques se perderán solo con estos enfoques.

Método de detección de ataques 3: Huellas dactilares comportamentales

Para superar verdaderamente el relleno de credenciales, debe agregar huellas dactilares inteligentes de comportamiento. Cuando los usuarios interactúan con un servicio de transmisión, no solo hacen solicitudes de contenido, sino que se mueven, hacen clic, tocan y navegan por la aplicación. Las huellas dactilares comportamentales estudian estas acciones mediante la recopilación de datos de telemetría del usuario en el lado del cliente, generalmente a través de JS. Estos pueden incluir patrones de movimiento del ratón, pulsaciones de teclas, el tiempo de una acción o incluso aprovechar sensores de dispositivos como acelerómetros de teléfonos o giroscopios para medir el patrón de movimiento y el posicionamiento de un usuario.

En función de los datos recopilados, las huellas dactilares de comportamiento se generan y envían para un análisis en tiempo real o fuera de línea. ¿Está el usuario exhibiendo un patrón aleatorio o no orgánico? ¿Se mueve el ratón en patrones lineales, o la velocidad de desplazamiento es más rápida de lo que un humano podría lograr? ¿Está el teléfono siempre en un ángulo de grado fijo durante toda la sesión de navegación? ¿Es humanamente posible el número de solicitudes de inicio de sesión por segundo?

Este es el campo de batalla de los científicos de datos e investigadores que deben emplear técnicas de aprendizaje automático para analizar continuamente los datos y obtener información sobre si una solicitud está automatizada. Esto se debe en parte al crecimiento exponencial de la combinación de solicitudes, dispositivos y atributos de comportamiento reunidos. A medida que los bots han mejorado su capacidad para imitar el comportamiento humano a través de secuestros de comportamiento, confiar en características básicas de comportamiento como los movimientos del ratón ya no es adecuado y puede aumentar la tasa de falsos positivos e impactar la experiencia de los usuarios reales.

Estos tipos de bots presentan el desafío más difícil para mitigar el relleno de credenciales. Detener los bots más sofisticados requiere más datos, como el comportamiento de navegación del cliente a lo largo de la sesión, para analizar la intención del cliente y así identificar si la solicitud es maliciosa. Por ejemplo, ¿es un comportamiento normal cuando un usuario visita la página de inicio de un servicio de streaming directamente sin pasar por la página de inicio? ¿Es normal que un usuario navegue inmediatamente a la página de la cuenta después de iniciar sesión en el servicio de transmisión y no realice ninguna otra acción? Estos puntos de datos pueden identificar con precisión la intención de los bots. La interacción del usuario con el servicio de streaming a lo largo de toda la sesión y otros datos de comportamiento puede producir una huella digital más rica y completa con una menor probabilidad de falsos positivos.

Gestión de bots

Una vez que haya detectado con éxito un bot que intenta hacer una solicitud de inicio de sesión, ¿cuál es la respuesta correcta? ¿Es para bloquear el bot y esperar que desaparezca? En la mayoría de los casos, esa es la acción equivocada. Supongamos que responde con un error 4xx, como una respuesta no autorizada 401. Los atacantes conocen las técnicas inadecuadas actuales y actualizan sus herramientas de automatización para superar su mecanismo de detección a través de pruebas y errores. En este caso, inadvertidamente has ayudado a los atacantes proporcionando un bucle de retroalimentación para alertarlos de que evolucionen su método.

Si bien es inevitable que los operadores de bots sofisticados eventualmente detecten que se están mitigando y evolucionen sus métodos, hay algunas buenas prácticas para evitar o retrasar estos esfuerzos. Cuando se detecta, en lugar de bloquear las solicitudes del bot, el servidor puede enviar un código de respuesta estándar y esperado cuando un intento de inicio de sesión es exitoso, como 200 OK, junto con una respuesta estática de boilerplate que no expone datos sensibles.

Es más probable que los operadores de bots asuman que una respuesta exitosa indica que su método actual es exitoso. Y que las credenciales robadas son útiles aunque no sea el caso, manteniendo al atacante en la oscuridad. Otra opción es detener la solicitud del bot al no proporcionar ninguna respuesta, dejando la solicitud del bot colgando hasta que se agote. Esto se puede hacer si utiliza una plataforma grande distribuida globalmente con una gran capacidad de servidor, como una red de entrega de contenido (CDN). Es probable que estos métodos de desinformación sean más eficaces que simplemente bloquear las solicitudes del bot.

Otra estrategia de gestión de bots, que tiene menos impacto en la experiencia del usuario en caso de un falso positivo, requiere un bot sospechoso para resolver un CAPTCHA. Solo después de completar el CAPTCHA el login será exitoso. Esto permite a los usuarios reales continuar incluso si se identifican erróneamente como un bot. También proporciona información valiosa para ajustar su método de detección para reducir los falsos positivos.

Mantén la transmisión segura

La prevención de ataques de relleno de credenciales es una prioridad importante para cualquier servicio de transmisión OTT. A medida que estos servicios ganan en popularidad, también lo hacen los riesgos de seguridad. Un enfoque de múltiples capas para la seguridad de las aplicaciones y la administración de bots puede identificar con precisión incluso los bots más sofisticados utilizados para impulsar los ataques de relleno de credenciales y evitar que dichos ataques afecten a la experiencia o reputación del cliente.

Obtenga más información sobre cómo nuestras capacidades de seguridad en la nube pueden proteger su presencia en línea de ataques de relleno de credenciales, ataques DDoS y más.