Presentamos nuestra tecnología JAWS: controla el JavaScript malicioso a través de un plugin con inteligencia colaborativaEnrique Andrade González Área de Innovación y Laboratorio de Telefónica Tech 17 diciembre, 2018 El navegador es la gran puerta de entrada de muchas amenazas. En los últimos años, a través de JavaScript, hemos asistido a la moda de la minería no autorizada, de los skimmers virtuales para robar tarjetas de crédito… JavaScript además es la base de muchos otros tipos de ataques. Pero sin él, la experiencia web sería muy diferente. Para colmo, la detección por parte de los antivirus de código JavaScript es pobre por definición, puesto que no es su campo especializado de acción, pocas veces toca disco, y además por su naturaleza el propio código permite pasar bastante desapercibido. Hemos desarrollado una tecnología que permite una aproximación diferente para intentar solucionar este problema. JAWS proporciona al usuario protección a través de un sistema poco intrusivo para la detección de actividades maliciosas o alteraciones no previstas en el código fuente de las páginas web, un indicio que a priori levantaría sospechas sobre su funcionalidad. Esto suma a la contribución de la comunidad para generar reglas Yara y mejorar la precisión. En resumen, monitorizar el JavaScript del navegador en tiempo real buscando modificaciones, o indicadores contra un servidor colaborativo. Detectar de forma anticipada elementos maliciosos que afecten a los usuarios durante la navegación y sus actividades online cotidianas, siempre ha sido un reto. En concreto el JavaScript que ejecuta del lado del cliente supone un problema para los métodos tradicionales. Por ejemplo, podemos comprobar que los resultados que arrojan los motores de detección tradicionales ante muestras muy comunes, no supone una protección eficiente. En concreto, ponemos dos ejemplos muy populares: hook.js: fichero JavaScript que inyecta el Framework BeEF para infectar al navegador. Es una de las herramientas más conocidas para la explotación de vulnerabilidades en el navegador.CoinHive.js: fichero JavaScript que se utiliza para minar criptomonedas utilizando los recursos del usuario a través del navegador. En ambos casos los resultados comprobando el código contra motores estáticos son muy pobres. Las librerías JavaScript no han sido foco prioritario de detección durante mucho tiempo, hasta que la proliferación de malware en este lenguaje ha demostrado que llevamos bastante tiempo de retraso al respecto. Para combatir estas carencias, el proyecto JAWS proporciona una solución simple y no intrusiva que puede alertar y prevenir buena parte de las amenazas de ciberseguridad, basadas en código JavaScript utilizando y desarrollando técnicas avanzadas de detección que pueden proteger a los sistemas de ataques aún no conocidos como amenazas de día 0 (0-days). Estas capacidades pueden proteger ataques como el típico phishing, XSS, CRSF hasta los actuales cryptojacking y skimming. Este proyecto fue seleccionado como uno de los tres ganadores de la segunda edición del University Challenge, los retos de Big Data y Ciberseguridad del CDO de Telefónica, y fue presentado en el Security Innovation Day del pasado año. Donde la unidad de ciberseguridad de Telefónica, ElevenPaths, ha supervisado, tutorizado y orientado el desarrollo de este proyecto para alinearlo con las necesidades de mercado que más demanda el panorama actual de ciberseguridad. JAWS es capaz de realizar en tiempo real una comparativa entre las librerías y ficheros JavaScript ubicados en la web y los registrados previamente en el último acceso. Es decir, compara las fuentes a nivel de código JavaScript en cada visita, alertando de las colisiones encontradas, localizando diferencias y anomalías. Adicionalmente,i es capaz de realizar una batería de pruebas de detección de malware gracias al conjunto de reglas Yara creada por la comunidad. Esto permite además identificar si las diferencias o anomalías detectadas en el código corresponden a código malicioso que se haya inyectado directamente en la librería o en el DOM de la página web. Gracias a esto es capaz de detectar y alertar de amenazas de ciberseguridad incluyendo ataques 0-day aún no descubiertos o incluso nuevos elementos para los que ni siquiera se hayan generado indicadores ni alertas todavía. JAWS por tanto realiza una monitorización y supervisión constante de la importación, carga y ejecución de librerías JavaScript. Su capacidad depende directamente del conjunto de reglas generadas, pero aun no existiendo una que sea capaz de detectar el malware a través de reglas identificativas, el motor de diferencias detectará que hay un elemento diferencial en el código, alertando, aislando e incluso bloqueando su carga si así se ha establecido. Para proporcionar estas capacidades de seguridad JAWS establece una arquitectura de tres niveles descritos a continuación: Capas de usuario Se compone de la extensión en el navegador que realiza el envío de los ficheros JavaScript ejecutados por el navegador. El trabajo de este complemento es transparente, salvo que detecte alguna anomalía. Ante cualquier alerta, aviso e incluso para usuarios avanzados que quieran investigar qué anomalía se ha detectado, la extensión se proporciona una interfaz adecuada para conseguirlo. Capas de servidor JAWS incorpora un backend escalable que asimila la recepción constante de ficheros JavaScript que indexa y gestiona de forma muy jerarquizada. Almacenapropiedades como el origen de los datos para conocer con precisión dónde se descargaron y el contenido de cada uno de ellos, tratando de estructurar un compendio de información relevante como el referrer, dominio, tipo de JavaScript, fecha de detección, fecha del último acceso, etc. Esta capa adquirirá en el futuro capacidades de Big Data y sobre la que se realizarán distintos procesos de rastreo, correlación y localización de IOCs. La detección de modificaciones de código se realiza mediante una comparativa del JavaScript recibido con el último acceso registrado. Utilizando inicialmente un valor hash a nivel de fichero para detectar si es una librería JavaScript ha sido almacenada previamente, gracias a este enfoque mediante hashes se consigue optimizar el rendimiento global de análisis sin que repercuta en el usuario. Finalmente, los nuevos ficheros JavaScript que suben al backend son analizados utilizando un módulo Yara mediante reglas pregeneradas por la comunidad (el acceso y generación será libre). Tanto si se ha detectado una anomalía por diferencias entre librerías o si una regla Yara ha detectado malware en el fichero, el interfaz de usuario recibirá del servidor un diff entre ambos ficheros, y avisará al usuario del tipo de detección encontrada. El servidor servidor proporcionará toda la información pertinente para el usuario. Capas de comunidad Este nivel permitirá generar una comunidad de usuarios que no solo utilicen JAWS para protegerse sino que generarán reglas de detección de contenido malicioso (YARA), lo que incrementa las capacidades de detección del sistema. Gracias a este enfoque social, los usuarios se verán beneficiados de una protección potenciada y actualizada gracias a las capacidades de otros colaboradores que contribuyen con JAWS. Gracias a esta aproximación no solo se puede detectar malware ya conocido, sino que además el potencial semántico de las reglas YARA hace posible detectar familias de malware modificado o evolucionado, incluso desconocido, utilizando para ello reglas basadas en políticas de comportamiento que se traducen en cadenas de texto o cadenas binarias. La siguiente figura muestra una simplificación del proceso global de JAWS y muestra de forma global el funcionamiento y la operativa que desempeña la plataforma. Al utilizar un sistema centralizado donde se genera una gran cantidad de datos, toda esta información se puede utilizar para posteriormente generar sistemas inteligentes de detección, utilizando para ello Big Data y correladores de Machine Learning. Esto, a su vez, permite un amplio abanico de posibilidades y aumenta significativamente el potencial de la plataforma. Con este enfoque JAWS no solo se presenta como una solución de alto potencial, sino que además establece varios frentes de mejora en sus capacidades, permitiendo establecer un balance de carga, capacidad de procesado y del número de reglas a comprobar en el conjunto de librerías JavaScript encontradas. Esta escalabilidad y adaptabilidad es fundamental para los objetivos de JAWS. A continuación, se muestra la presentación del proyecto y su funcionamiento a través de una prueba de concepto que simula la inyección de un skimming en la página de Nevele Bank. Simulación muy parecida al ataque sufrido por British Airways donde un atacante fue capaz de inyectar un skimming que extraía los datos de las tarjetas bancarias de los clientes de la compañía. Desde la Unidad de Ciberseguridad de Telefónica, ElevenPaths, se ha realizado un seguimiento y tutorización muy cercano a este desarrollo de cara a ser incorporado como nuevo prototipo en el área de Innovación y Laboratorio, donde se dará continuidad al proyecto. Segunda Edición de Women in Cybersecurity of Spain organizada por TelefónicaSegunda Edición de #GirlsInspireTech18: el laboratorio tecnológico para hijas de empleados de Telefónica
Roberto García Esteban ChatGPT y Cloud Computing: un matrimonio bien avenido ChatGPT (quizá no sepas que son las siglas de Chat Generative Pre-Trained Transformer) está en boca de todos por su impresionante habilidad para generar textos que parecen escritos por...
David Prieto Marqués La importancia del control de acceso: ¿está tu empresa protegida? Por David Prieto y Rodrigo Rojas En un mundo cada vez más digitalizado y complejo, la seguridad de la información es fundamental para las empresas. A medida que las empresas...
Telefónica Tech Boletín semanal de Ciberseguridad, 22 – 26 de mayo GitLab parchea una vulnerabilidad crítica GitLab ha abordado una vulnerabilidad crítica que afecta a GitLab Community Edition (CE) y Enterprise Edition (EE) en la versión 16.0.0. En concreto, dicho fallo...
David García ¿Salvará Rust el mundo? (II) Segunda entrega en la que descubrimos cómo Rust, el lenguaje de programación de código abierto centrado en la seguridad, mejora el panorama en cuanto a vulnerabilidades basadas en errores...
Sergio de los Santos Cuatro hitos en Ciberseguridad que marcaron el futuro del malware Un recorrido por los 15 años que ha dedicado Microsoft para consolidar una estrategia que ha repercutido en la Ciberseguridad a nivel global
Telefónica Tech Boletín semanal de Ciberseguridad, 15 – 19 de mayo Vulnerabilidades en plataformas cloud El equipo de investigadores de Otorio descubrió 11 vulnerabilidades que afectan a diferentes proveedores de plataformas de administración de cloud. En concreto, se tratan de Sierra...