Jose Julio Ruiz de Loizaga.
José Julio Ruiz de Loizaga Ruiz Senior Malware Research Botech FPI

Ciberinteligencia 2.0: predicción

Machine Learning.

El día que uno de los ransomware más mediáticos se activó y creó el caos en medio mundo, a mí me pilló de vacaciones. No me enteré de nada, pero cuando regresé al hotel me encontré con una conversación en mi correo corporativo en la que se discutía qué había sucedido, cómo había pasado y qué íbamos hacer. En ese momento me hice, por enésima vez, la misma pregunta: ¿Por qué no podemos prever estos ataques? Aunque es muy difícil saber cuándo va a aparecer la próxima crisis de ciberseguridad, al menos sería interesante conocer de qué manera se va a producir.

Sabemos que todos somos vulnerables, y que siempre habrá alguien que busque nuestras debilidades para aprovecharlas y comprometer a nuestras organizaciones. Durante años las compañías hemos ido por detrás de los cibercriminales, hacktivistas y creadores de malware. Nos conocíamos a nosotros mismos, realizando auditorías, analizando los fallos de nuestros sistemas tras un ataque o creando normativas de contención (que en su punto más crítico era básicamente «tira del cable si todo falla»), pero no conocíamos a nuestro enemigo tan bien como debíamos.

La ciberinteligencia, Cyber Threat Intelligence (CTI), nació para dar respuesta a esta carencia, se concibió para conocer a los «malos» recabando toda la información posible de todas las fuentes hábiles. Si conocemos a quien nos ataca, podremos defendernos de forma más eficiente, creando contramedidas avanzadas y realizando una defensa activa; ser proactivos, en definitiva.

Se crearon numerosas materias que se centraban en feeds específicos: búsqueda de datos en fuentes abiertas (OSINT), información relacionada con las finanzas (FINNIT) o adquisición de referencias de geolocalización (GEOINT), son solo ejemplos de dichas materias. Cada una de estas especialidades nos da una pieza que compone la CTI, y uniendo y entrelazando la información tendremos una foto del estado actual de la amenazas en el ciberespacio; es más, nos puede llegar a mostrar el estado de las amenazas relacionadas con nuestra organización. Como se puede suponer, la cantidad de datos a analizar es inmensa, por lo que se necesita de las tecnologías de Big Data y Machine Learning para soportarlas y hacerlas prácticas. Gracias al rápido desarrollo de ambas tecnologías se han podido desarrollar proyectos de ciberseguridad y somos capaces de implementar soluciones prácticas para el blindaje de nuestras organizaciones, pero siempre basándonos en datos pasados, siempre un paso por detrás.

Machine learning.

Predecir amenazas

Pero, ¿y si fuésemos un paso por delante?, ¿y si pudiésemos predecir cómo serán las amenazas de mañana?, ¿qué hubiera pasado si hubiésemos conocido con anterioridad las oleadas de ransomware, el robo de información en redes sociales o los movimientos hacktivistas? Solo podemos hacer suposiciones, pero no es difícil imaginar el ahorro que hubiera supuesto para todas las organizaciones implicadas, tanto reputacional como económico.

Como respuesta a este escenario se ha empezado a desarrollar una idea: teorizar acerca de los riesgos futuros en el ciberespacio basándonos en los datos pasados y presentes en tiempo real, intentando prever cuál será el próximo problema y ayudar a tomar la mejor solución.

Con un ejemplo se entenderá mejor. Supongamos que hemos creado un motor de Machine Learning al que hemos entrenado para distinguir evidencias de malware. Al motor se le alimenta con los indicadores de compromiso (IOC) que se adquieren al analizar una muestra y éste es capaz de discernir el malware y posiblemente a qué familia pertenezca del goodware. Cuando el motor detecta un positivo, se crea una detección por sus evidencias o la estructura del propio fichero, y se introduce en el fichero de firmas. Esto no es ninguna novedad, las casas de antivirus llevan años aplicando esta tecnología para crear sus detecciones de forma automática. Pero ahora supongamos que le pedimos que nos cree las evidencias que podrían encontrarse en un fichero que no hemos estudiado, que no existe aún. Es lógico pensar que si nuestro motor sabe lo que es el malware, puede crear grupos de IOC lógicos que podrían encontrarse al analizar un fichero; básicamente nos adelantaríamos al posible malware, sabríamos de antemano lo que hará dándonos una teórica ventaja. Conociendo las posibles evidencias se podrían crear detecciones con anterioridad o informar sobre qué acciones podría ejecutar el malware.

Como he comentado antes, el ejemplo que he dado está centrado en el malware, pero se puede aplicar la idea a otros campos de la seguridad informática. Ataques, spam, phising, etc., son aptos para aplicar la misma técnica, si se aplicase a todos los campos.

‘Machine Learning’ inversa e IA

Aunque en un principio pueda parecer que esta idea es más propia de la ciencia ficción que de la ciberseguridad, no es mayor locura que cuando se hablaba de Machine Learning hace años; solo estamos cambiando de dirección: Machine Learning inversa, por denominarla de alguna manera. Naturalmente no estamos hablando de conseguir todas las evidencias exactas, ni de predecir con exactitud cómo será el panorama de la ciberseguridad dentro de un año. Lo que buscamos es obtener una cierta idea, tener indicios de las posibles evidencias e intentar estar por delante. Siendo realistas, un éxito de un 20 por ciento sería un magnífico dato.

Pero seamos ambiciosos, intentemos obtener mejores resultados. Además de conseguir que un motor nos ofrezca probables evidencias basándose en el conocimiento generado tras recopilar información, podríamos dar inteligencia a nuestros sistemas. Si aplicásemos la tecnología de Inteligencia Artificial (IA) a nuestro modelo, tendríamos la capacidad de obtener unos resultados que no se basen únicamente en información pasada o presente. Obtendríamos resultados fundamentados en el pensamiento abstracto, además de la lógica. Seríamos capaces de crear motores multiárea, a diferencia de los motores basados en Machine Learning, que son especialistas en un área concreta.

Se ha empezado a desarrollar una idea: teorizar acerca de los riesgos futuros en el ciberespacio basándose en los datos pasados y presentes para prever cuál será el próximo problema

Un motor dotado de IA podría teorizar sobre un ataque completo a una organización usando varias técnicas. Utilizando las fuentes OSINT podría averiguar el nombre de los máximos directivos y tenerlos como objetivo. Por medio de la rama de ciberinteligencia IMIT puede recabar información de los servidores o de la red de la organización objetivo analizando las fotografías que encontrase en la red y extrayendo información relevante de ellas, como el SO y versión. De este modo, el motor iría creando un escenario multidisciplinar y con altas posibilidades de que se hiciese real. Básicamente se crearía un sistema capaz de generar una inteligencia comparable con equipos de ciberdelincuentes, pero con la diferencia de que nos podría mostrar una gran variedad de escenarios posibles, algunos ni imaginables por nosotros en un espacio corto de tiempo. Nos daría multitud de información con la que dar seguridad a nuestros clientes.

De momento todo es teórico, hay mucho trabajo que hacer, pero no dudamos de que se lograrán muy buenos resultados con el tiempo aplicando estas técnicas.