Una nueva forma de protegerse contra los ciberataques

Una nueva forma de protegerse contra los ciberataques
Este contenido ha sido traducido automáticamente con IA.

En los últimos 10 años, los investigadores de seguridad informática han demostrado que los hackers maliciosos no necesitan ver tus datos para robarlos. A partir del patrón con el que tu ordenador accede a sus bancos de memoria, los adversarios pueden inferir una cantidad sorprendente de información sobre lo que hay almacenado allí.

El riesgo de este tipo de ataques es especialmente agudo en la nube, donde no tienes control sobre las aplicaciones de quién comparten espacio en el servidor con las tuyas. Un adversario podría cargar varios servidores en la nube con pequeños programas que no hacen más que espiar los datos de otras personas.

Hace dos años, investigadores del grupo de Srini Devadas, del MIT, titular de la cátedra Edwin Sibley Webster en el Departamento de Ingeniería Eléctrica y Ciencias de la Computación del MIT, propusieron un método para frustrar este tipo de ataques mediante la ocultación de los patrones de acceso a la memoria. Ahora han comenzado a implementarlo en hardware.

En marzo, en la conferencia Architectural Support for Programming Languages and Operating Systems, presentaron el diseño de un chip de fabricación personalizada que utilizaría su método y que ahora está pasando a la fase de fabricación. Y en el IEEE International Symposium on Field-Programmable Custom Computing Machines, en mayo, describirán algunas mejoras adicionales del método, que han probado en chips reconfigurables.

El principio en que se basa el método es que, cada vez que un chip necesita obtener datos de una dirección de memoria concreta, también debe consultar un conjunto de otras direcciones, para que un adversario no pueda determinar cuál le interesa realmente. Naturalmente, esto requiere transferir entre el chip y la memoria muchos más datos de los que serían necesarios de otro modo.

Para minimizar la cantidad de datos adicionales necesarios, los investigadores almacenan las direcciones de memoria en una estructura de datos conocida como «árbol». Un árbol genealógico es un ejemplo familiar de árbol: cada «nodo» (el nombre de una persona) está conectado a un solo nodo situado por encima (el que representa a sus padres), pero puede estar conectado a varios nodos situados por debajo (los hijos de esa persona).

Cada dirección se asigna aleatoriamente a una ruta a través del árbol: una secuencia de nodos que se extiende desde la parte superior del árbol hasta la inferior, sin retroceder. Cuando el chip necesita los datos almacenados en una dirección concreta, también solicita los datos de todos los demás nodos de la misma ruta.

En trabajos anteriores, los investigadores del grupo de Devadas pudieron demostrar que obtener datos de una sola ruta confundía a un adversario tanto como si el chip hubiera obtenido datos de todas las direcciones de memoria en uso, es decir, de todos los nodos del árbol.

Desatascar el sistema

Sin embargo, después de leer los datos de una ruta, el chip también tiene que escribir datos en toda la ruta; de lo contrario, un adversario podría determinar cuál era el nodo de interés. Pero el chip rara vez almacena datos en el mismo nodo del que los leyó.

Los nodos suelen estar en varias rutas. Para dar el ejemplo más básico, el único nodo de la parte superior, o raíz, del árbol está en todas las rutas. Cuando el chip escribe un bloque de datos en la memoria, lo empuja lo más abajo posible en el árbol, lo que implica encontrar el último espacio libre antes de que la ruta asignada al bloque se bifurque de la ruta que se acaba de leer.

«La raíz del árbol es mucho más pequeña que la parte inferior», dice Albert Kwon, estudiante de posgrado del MIT en ingeniería eléctrica y ciencias de la computación y uno de los coautores de los artículos. «Así que, intuitivamente, quieres empujar los datos lo más abajo posible, para que no haya congestión en la parte superior».

Al escribir datos, el chip sigue teniendo que respetar la secuencia de nodos de la ruta; de lo contrario, un adversario podría, de nuevo, inferir algo sobre los datos que se están almacenando. En intentos anteriores de sistemas similares, eso implicaba ordenar las direcciones de memoria según su ubicación final en el árbol.

«Ordenar no es fácil de hacer en hardware», dice Chris Fletcher, otro estudiante de posgrado del grupo de Devadas y primer autor del nuevo artículo. «Así que, para cuando terminas de ordenar todo, ya has sufrido una pérdida real de rendimiento».

En el chip descrito en su artículo más reciente, Fletcher, Devadas, Kwon y sus coautores —Ling Ren, también estudiante de posgrado del MIT en ingeniería eléctrica y ciencias de la computación, y colegas de la Universidad de Connecticut, la Universidad de California en Berkeley y el Qatar Computing Research Institute— adoptaron un enfoque distinto. Añadieron al chip un circuito de memoria adicional con ranuras de almacenamiento que pueden asignarse a la secuencia de nodos de cualquier ruta del árbol. Una vez determinada la ubicación final de un bloque de datos, basta con almacenarlo en la ranura correspondiente del circuito. Después, todos los bloques se leen en orden.

Secretos acumulados

El nuevo chip incorpora otro truco para mejorar la eficiencia: en lugar de escribir datos cada vez que los lee, solo escribe una vez cada cinco lecturas. En las demás lecturas, simplemente descarta todos los datos señuelo. Cuando finalmente vuelve a escribir los datos, tendrá, en promedio, cinco bloques de datos adicionales que almacenar en la última ruta que leyó. Pero, por lo general, hay suficientes espacios libres en el árbol para acomodar los bloques adicionales. Y cuando no los hay, los protocolos habituales del sistema para empujar los datos lo más abajo posible en el árbol pueden gestionar los atascos ocasionales en la parte superior.

Los chips actuales tienen pequeños bancos de memoria locales llamados cachés, donde almacenan los datos que se utilizan con frecuencia; en las aplicaciones que usan la caché de forma eficiente, todas esas lecturas y escrituras adicionales suelen aumentar el tiempo de cálculo solo alrededor de un 20 por ciento. En las aplicaciones que no usan la caché de forma eficiente, el tiempo de cálculo puede multiplicarse por cinco o incluso más.

Sin embargo, según los investigadores, una de las ventajas de su método es que los circuitos que lo implementan pueden añadirse sin más a diseños de chips existentes, sin necesidad de grandes modificaciones. Así, la capa adicional de seguridad puede activarse y desactivarse según sea necesario. Algunas aplicaciones en la nube podrían usarla todo el tiempo; otras podrían prescindir por completo de ella; y otras podrían activarla solo al manejar información confidencial, como números de tarjetas de crédito.

«Este es un trabajo pionero», afirma Elaine Shi, profesora adjunta de informática en la Universidad de Maryland, que ha estudiado métodos de seguridad similares. «Durante muchos años, este tipo de algoritmo seguro resultaba prohibitivo. Básicamente, esta es la primera vez que han demostrado que se puede lograr una sobrecarga de 2x. Antes, la sobrecarga habría sido ridícula, quizá de decenas de miles. Construyeron esto y muestran que, para una clase de pruebas de rendimiento, la ralentización media es de solo 2x».

«Si piensas en Java frente a C, la ralentización probablemente sea superior a 2x», afirma. «2x no es nada. Además, solo tienes que asumirla en la parte del código que maneja datos confidenciales, como números de tarjetas de crédito o datos genómicos».

Este artículo se publica en colaboración con MIT News. La publicación no implica que el Foro Económico Mundial respalde estas opiniones.

Para mantenerte al día con la Agenda, suscríbete a nuestro boletín semanal.

Autor: Larry Hardesty es colaborador de MIT News.

Imagen: Una ilustración muestra la proyección de código binario sobre un hombre que sostiene un ordenador portátil en una oficina de Varsovia, el 24 de junio de 2013. REUTERS/Kacper Pempe.

Compartir:

Licencia y republicación
Los artículos del Foro Económico Mundial pueden volver a publicarse de acuerdo con la Licencia Pública Internacional Creative Commons Reconocimiento-NoComercial-SinObraDerivada 4.0, y de acuerdo con nuestras condiciones de uso. Las opiniones expresadas en este artículo son las del autor y no del Foro Económico Mundial.