.

Tecnología y Sociedad

Añadir errores de código para que los 'hackers' pierdan el tiempo

1

Investigadores de la Universidad de Nueva York (EE. UU.) han desarrollado un nuevo enfoque para garantizar la ciberseguridad de un software. Imitando una estrategia militar antirradar, proponen introducir errores de código benignos para impedir ataques dirigidos

  • por Emerging Technology From The Arxiv | traducido por Ana Milutinovic
  • 23 Agosto, 2018

Cuando se trata de seguimiento por radar, una de las contramedidas más efectivas consiste en lanzar una nube de tiras de aluminio o plástico metalizado, que crean un reflejo fuerte hacia el radar y generan miles de objetivos que saturan y confunden sus respuestas. Eso desconcierta a cualquier cosa que intente seguirle, como por ejemplo a un misil guiado por radar.

La mayoría de los aviones militares y buques de guerra, y muchos misiles balísticos, cuentan con medidas antirradar. Ahora los investigadores de ciberseguridad aplican la misma idea al software.

Resulta sencillo, en principio. Un software a menudo contiene errores, y la mayoría de ellos pasan desapercibidos para sus creadores y usuarios legítimos. Pero agentes maliciosos buscan activamente estos errores para aprovecharlos en ataques dirigidos. Su objetivo es tomar el control del ordenador o manipularlo.

Pero no todos los fallos son iguales. Algunos no se pueden explotar para fines malévolos, pero son capaces de provocar el desplome de un programa. Esto puede resultar grave, pero existe una gran variedad de software, como microservicios de fondo, diseñados para manejar desplomes reiniciando el software. Estos errores son mucho menos graves que los que permiten el control malintencionado.

Sin embargo, distinguirlos no siempre es sencillo. Cuando los programadores maliciosos encuentran los fallos, tienen que diferenciar los realmente peligrosos de aquellos relativamente benignos, y ese proceso generalmente resulta difícil y lleva mucho tiempo.

Eso representa la base de un nuevo enfoque desarrollado por Zhenghao Hu y sus colegas en la Universidad de Nueva York (EE. UU.). ¿Por qué no llenamos un código ordinario con errores benignos como una manera de engañar a los posibles atacantes?

Esta idea sugiere forzar a los asaltantes a agotar sus recursos encontrando y probando los fallos que no les servirían. Hu y sus compañeros llaman a estos señuelos "fallos antirradar", por analogía a las tiras de aluminio utilizadas para engañar a los operadores de radar.

Este plan es el último paso en el cada vez más complejo juego del gato y el ratón que enfrenta a los expertos en seguridad con los atacantes. En los últimos años, varios grupos han desarrollado programas que buscan a través de códigos las vulnerabilidades que un asaltante podría explotar (Ver El hacker que gana 250.000 dólares al año por encontrar errores de software) . Los técnicos de seguridad utilizan este enfoque para encontrar y eliminar estas debilidades antes de que el código se haga público, mientras que los hackers malintencionados usan el mismo enfoque para localizar los errores que quisieran aprovechar.

No obstante, el desarrollo de estos programas para los investigadores de seguridad resulta difícil y requiere que, en primer lugar, haya vulnerabilidades en el software. Por eso, han desarrollado otra herramienta que automáticamente agrega estos fallos al software para que luego sean "descubiertos" por el programa de detección de vulnerabilidades.

Resulta que añadir errores no es nada fácil. Los cambios aleatorios en el código suelen convertirlo en inservible, en vez de introducir anomalías interesantes. En cambio, el proceso implica ejecutar el código con diferentes entradas de datos y supervisar lo que ocurre con ellos a medida que el código avanza.

Este proceso busca puntos en el programa donde la entrada de datos ya no se usa para tomar decisiones. En ese caso, esta entrada inactiva se podría manipular maliciosamente para corromper o desbordar la memoria.

El programa de detección de vulnerabilidades señala dónde están estas zonas muertas para poder explotarlas más adelante.

Parece que estos posibles errores son comunes en el código escrito en lenguajes como C y C ++, que no disponen de sistemas de supervisión del uso de la memoria.

Hu y su equipo simplemente utilizan este enfoque para añadir los fallos de corrupción de memoria a través del código. En circunstancias normales, estos errores son benignos. Pero si un agente malicioso los encuentra, solo los podría explotar para bloquear el programa, no para algo más siniestro. Es por eso que actúan como contramedida.

"Los atacantes que intentan descubrir y aprovechar los errores en un software encontrarán, con alta probabilidad, alguno de ellos no explotable, intencionalmente colocado, y desperdiciarán valiosos recursos en tratar de construir algo que funcione", comentan Hu y sus compañeros.

El equipo continúa manifestando que este enfoque engaña a los procesos actuales de detección de posibles errores. "Señalamos que no se perjudica la funcionalidad del software y demostramos que nuestros fallos parecen aprovechables para las herramientas de triaje vigentes", sostienen.

Se trata de un enfoque interesante que tiene el potencial de frenar bastante a los atacantes maliciosos. "Creemos que los fallos antirradar pueden servir como un elemento de disuasión eficaz contra los asaltantes tanto humanos como automáticos de sistemas de razonamiento automático (Cyber Reasoning Systems)", cuentan Hu y sus colegas.

Pero también plantea algunas cuestiones curiosas. Por ejemplo, no existe una prueba real de que la búsqueda de errores para encontrar los aprovechables sea necesariamente difícil y lleve mucho tiempo. En teoría resulta posible que alguien, en alguna parte, haya encontrado una forma rápida de hacerlo.

Si existe una manera de distinguir fácilmente los fallos antirradar de los explotables, entonces este enfoque se vuelve menos valioso. De hecho, Hu y sus compañeros no intentan ocultar o disfrazar sus errores. "Esto significa que actualmente contienen muchos objetos que los atacantes podrían usar para identificarlos e ignorarlos", afirman.

Además, estos errores inyectados varían muy poco. "[Esto] permitiría a un atacante a identificar patrones en los errores que producimos y excluir aquellos que coinciden", mantienen.

Pero existe un gran potencial por delante. La idea de añadir los errores en lugar de eliminarlos es un enfoque atractivo contra los delitos cibernéticos, y que generará algunas interesantes posibilidades para futuras investigaciones.

Ref: arxiv.org/abs/1808.00659: Chaff Bugs: Deterring Attackers by Making Software Buggier

Tecnología y Sociedad

Los avances tecnológicos están cambiando la economía y proporcionando nuevas oportunidades en muchas industrias.

  1. El éxodo a Bluesky marca el inicio de la era de las redes sociales descentralizadas

    Bluesky ha ganado terreno como alternativa a X, especialmente tras las últimas elecciones en EE UU. Sin embargo, este fenómeno no refleja el ascenso de un servicio ni el declive de otro, sino una tendencia hacia la descentralización

    Una persona entra a Bluesky desde su teléfono móvil
  2. La herramienta de Google DeepMind para "leer la mente" de la inteligencia artificial

    Un equipo de Google DeepMind ha creado Gemma Scope, una herramienta diseñada para desentrañar los procesos internos de una IA y comprender cómo llega a sus conclusiones. Este avance abre la puerta a algoritmos más transparentes y alineados con las expectativas humanas

    Google DeepMind tiene una nueva herramienta para explorar la IA
  3. El fundador de Oculus habla sobre la apuesta de EE UU por la realidad mixta en el campo de batalla

    El proyecto norteamericano de gafas militares está cuestionado, pero Palmer Luckey cree que los cascos dotados con IA y realidad aumentada serán clave en los ejércitos del futuro