En el ámbito de la ciber-seguridad, ¿qué es un canal lateral? Imaginemos que una persona se encuentra dentro de una habitación, sentada en un escritorio con una computadora delante. Imaginemos también que pretende loguearse a una aplicación y que, además, va a escribir un mensaje confidencial. Supongamos que la aplicación no tiene bugs de seguridad, que la comunicación viaja cifrada por un canal seguro y utilizando certificados digitales con el mayor grado de seguridad posible. Imaginemos también que no hay nadie en la habitación más que esa persona y ningún otro objeto más que el escritorio, la silla y la computadora. Seguro, ¿no? Todo prolijamente construido y configurado para darle un altísimo grado de seguridad.
La persona comienza a trabajar, pero hace algo más: cada tecla que oprime o cada función o botón sobre los que hace clic en la pantalla, los grita, fuertemente.
Parafraseando el famoso Koan del Budismo Zen: “¿qué es lo que grita si no hay nadie para escuchar?”. Sin embargo, supongamos que sí hay alguien cerca, fuera de la habitación. Y, aunque con dificultad, logra escuchar, entender y anotar todo lo que grita el usuario. ¿Cuál sería el resultado? Que al cabo de un tiempo, alguien ajeno a la comunicación logra obtener el mensaje secreto, o parte de él.
¿Y cómo es posible romper ese secreto? ¿Infiltrando un malware en la computadora? ¿Interceptando la comunicación? ¿Robando las credenciales? No, de ninguna de esas formas. El mensaje secreto se filtra porque algo en el proceso falla, y revela la información de una forma inesperada. El intruso logró hacerse del mensaje mediante la explotación de un “canal lateral”, en este caso, el sonido producido por el mismo usuario.
A muchos lectores esta figura les podrá parecer absurda, grotesca o hasta burda. Sin embargo es exactamente lo que pasa. Cuando se utilizan los dispositivos electrónicos para interactuar con aplicaciones y con la red, esos dispositivos (aunque no lo percibamos) “gritan”, todo el tiempo. Cambian sus patrones de consumo de energía, emiten sonidos, utilizan librerías o zonas de memoria accesibles por otros usuarios de forma totalmente diferente en función de las acciones que está realizando el usuario. Es por esto que, sabiendo “escuchar”, es posible descifrar el contenido de esos “gritos”.
El concepto de atacar canales laterales no es nuevo, solo que, como siempre ocurre, cuando estas ideas aparecen la tecnología no está suficientemente madura. Pero pasa el tiempo, la tecnología evoluciona, y el bíblico “nihil novum sub sole” (nada nuevo bajo el sol) se materializa.
Si bien hoy en día son muchos más los trabajos de investigación académica que los exploits concretos, éstos existen y se van sumando. Incluso existen varias pruebas de concepto públicas cuya utilidad es muy limitada, pero muestran que el camino a que cada vez aparezcan más ataques de este tipo es irreversible.
Una de las primeras muestras de ataques graves de Canales Laterales se pudieron ver muy a principio de este año con dos vulnerabilidades conocidas como Meltdown y Spectre. La primera permite “derretir” los límites de seguridad entre áreas de memoria del procesador, mientras que la otra permite engañar a los programas a que revelen sus datos. De esta forma, es posible obtener datos sensibles de otros programas que se están ejecutando en el mismo equipo, no importa a qué usuario correspondan.
Estos ataques de Canales Laterales ni siquiera utilizan sofisticados algoritmos de Machine Learning (ML), y sin embargo comprometen seriamente la seguridad de casi cualquier sistema.
El mayor peligro de estas técnicas, consiste en su principal ámbito de aplicación: la nube. Las técnicas de canales laterales se pueden utilizar en muchos ambientes, pero las mayores posibilidades se obtienen cuando el atacante está compartiendo el mismo hardware que la víctima, por extensión, cuando muchos usuarios sin relación ni conocimiento entre ellos utilizan las mismas plataformas. Esto es exactamente la nube. Los sistemas “IaaS” (infraestructure as a service) y “PaaS” (Platform as a service) son los más susceptibles. Este tipo de ataque se denomina Inter-Máquinas Virtuales o Cross-VM.
Estos ataques no son fáciles de llevar a cabo para los atacantes. Se deben hacer muchas pruebas, recolectar muchos datos y analizar esos datos con herramientas de clasificación muy sofisticadas para obtener resultados útiles. La tecnología que permite hacer esto es la de ML. Y no es necesario contar con el software de nombre del asistente de Sherlock Holmes desarrollado por la compañía de tres letras… cada vez más existen componentes y frameworks de ML open source que los usuarios pueden descargar y probar. Si se desean realizar algunas pruebas, se puede utilizar el framework de Deep Learning Kerashttps://keras.io/ basado en python, que se monta sobre las liberías Theano o el poderoso desarrollo de Google, Tensorflow que permite la realización de cálculos tensoriales complejos con unas pocas líneas de Python.
Tampoco es fácil detectar estos ataques, ya que estas técnicas no son invasivas como los ciber-ataques habituales. De hecho, hoy en día, podríamos tener nuestra infraestructura implementada en la nube, un atacante podría haber alquilado servidores o contenedores en el mismo servicio que nosotros, y estar tratando de atacarnos sin que podamos darnos cuenta. Todavía no existen herramientas de software que nos permitan esta detección. La única solución de defensa hasta el momento consiste en la utilización de dos estrategias tanto en forma individual como combinada. Una de ellas es monitorear en nuestros propios sistemas las mismas variables que monitorearía el atacante para ver si se comportan de manera anómala y pudiese significar un posible ataque (por favor, notar la cantidad de veces que utilicé el potencial). La otra es la de generar “ruido” aleatorio que tape los gritos. Es decir hacer que el hardware se comporte de forma lo más aleatoria (o también rítmica) posible para que a los sistemas de inteligencia artificial que utilice un atacante no les sea posible distinguir entre un comportamiento y otro de nuestros sistemas.
Una vieja idea que de pronto se convierte en una nueva ciber-amenaza, silenciosa, casi imperceptible, y muy peligrosa. Una vez más, nos toca prepararnos.
Nota por Carlos Benitez