Martes, 30 Octubre 2018 12:54

Chaff Bugs, ¿realmente harán el camino más difícil a la ciberdelincuencia?

Los delincuentes cibernéticos prefieren el camino de menor resistencia. Quieren acceso rápido y fácil a sus sistemas, y si no pueden encontrarlo, pasarán a un objetivo más vulnerable. Entonces, ¿qué pasa si hay una manera de hacer que sus aplicaciones consuman tanto tiempo que simplemente no valga la pena el esfuerzo?

En un nuevo artículo de investigación, Chaff Bugs: Deterring Attackers by Making Software Buggier, Brendan Dolan-Gavitt, profesor asistente de ciencias de la computación en la Tandon School of Engineering de la NYU, y dos estudiantes de doctorado, Zhenghao Hu y Yu Hu, sugieren un nuevo método para agregar intencionalmente bugs de software en el código para disuadir a los atacantes.

Conocida como “chaff bugs”, la idea es empaquetar aplicaciones con bugs aparentemente legítimos pero que en última instancia no se pueden explotar, que superan en número y oscurecen las vulnerabilidades reales.

“Tengo amigos que explotan el desarrollo profesionalmente, y una cosa que enfatizan es lo difícil que es pasar de descubrir un error a crear una explotación que funcione para éste”, afirmó Brendan Dolan-Gavitt. “Entonces, pensamos que esto era algo que podríamos aprovechar al crear miles de bugs no explotables”.

¿Hacer que el software tenga más bugs disuadirá a los criminales?

A pesar de los mejores esfuerzos de los desarrolladores y los equipos de seguridad, siempre habrá bugs legítimos y vulnerabilidades dentro del código. Con los chaff bugs, en lugar de encontrar una falla genuina, los atacantes descubrirán uno de los bugs intencionalmente ubicados, no explotables y desperdiciarán sus recursos tratando de construir una explotación que funcione. Después de encontrar repetidamente callejones sin salida, la esperanza es que los ataques se rindan y sigan adelante. El objetivo, como lo describe el artículo, es “ahogar a los atacantes en un mar de bugs atractivos; pero, en última instancia, no explotables”.

La investigación realizada por la Rand Corporation sugiere que la mayoría de las explotaciones tardan un promedio de veintidós días en desarrollarse, lo que significa que los atacantes gastan todo ese tiempo solo en algunos de los cientos o incluso miles de bugs teóricamente legítimos, solo para encontrar callejones sin salida bien podría hacer que una aplicación sea un objetivo menos atractivo o un mal uso de recursos.

La idea de dejar falsas migas de pan para engañar a los delincuentes no es nueva y está creciendo en popularidad. Los analistas pronostican que el mercado de la tecnología de engaño, como honeypots -donde las redes dejan blancos falsos para que los atacantes ataquen, desperdiciando su tiempo y dejando pistas alrededor de los métodos- podría valer más de mil millones de dólares en el 2020. La idea de los chaff bugs es similar en el sentido que está diseñado para crear señuelos que los atacantes encontrarán tentadores.

“Mientras que los honeypots suelen diseñarse para recopilar información sobre las capacidades de los atacantes, los chaff bugs están destinados a disuadir a los atacantes al hacer que les sea muy difícil encontrar bugs reales y explotables en un programa”, explicó Dolan-Gavitt.

Dolan-Gavitt y su equipo desarrollaron el concepto luego de haber trabajado previamente en un sistema llamado “Adición de Vulnerabilidad Automática a Gran Escala (LAVA, por sus siglas en inglés), que está diseñado para agregar vulnerabilidades a un programa con el objetivo de probar la efectividad del software de búsqueda de bugs. “LAVA funciona analizando un programa mientras procesa algunas entradas y luego busca lugares donde los datos de entrada del programa podrían usarse para desencadenar un bug como un desbordamiento de búfer u otra corrupción de memoria”, afirmó. “Una vez que tuvimos este sistema, comenzamos a pensar qué más podríamos hacer con él, y aprovechamos la idea de usarlo para fines defensivos.

En la investigación sobre los chaff bugs, el equipo reutilizó las partes de LAVA que analizan el programa y cómo maneja sus datos para localizar lugares donde agregar bugs. En el documento, el equipo sugiere que estas adiciones serían una etapa adicional en el proceso de construcción para evitar complicaciones adicionales para los codificadores durante el desarrollo de la aplicación.

“La parte difícil es crear los bugs para asegurarse de que no sean explotables. Como inicialmente trabajamos solo con desbordamientos de búfer, lo hacemos de dos formas: asegurándonos de que los datos sobrescritos por el desbordamiento no sean usados por el programa, o asegurándonos de que el contenido sobrescrito esté restringido a valores seguros”.

Los expertos en seguridad no están impresionados con Chaff

Si bien puede ser un concepto novedoso archivado como “lo suficientemente loco como para que funcione”, muchos desarrolladores y expertos en seguridad se burlarían de la idea de agregar intencionalmente vulnerabilidades incluso inertes en sus códigos. Dolan-Gavitt reconoce que la idea de los chaff bugs ha causado controversia en línea. “La reacción se ha dividido entre las personas que lo consideran hilarante y creen que podría funcionar, y las personas que lo encuentran hilarante y no lo quieren cerca de su código”.

Los debates en línea mencionaron preocupaciones sobre el aumento de la complejidad del código, añadiendo inadvertidamente bugs o bugs reales que podrían encadenarse para crear vulnerabilidades más críticas, dificultando la vida para las pruebas de penetración (así como encontrar una forma de compartir de forma segura el código descatalogado para tales propósitos), y el peligro de ingeniería inversa del proceso tiene posibles problemas.

“Si pasamos a un modelo en el que los defectos de seguridad son menos eficientes de identificar, no hemos hecho que el software sea más seguro; simplemente hemos disminuido la búsqueda de dónde existen los problemas”, afirmó Paul Farrington, director de arquitectura de soluciones de CA Veracode. “Si bien los chaff bugs pueden impedir un atacante determinado, no nos hemos acercado más a la eliminación del riesgo subyacente”.

“Creo que el uso de los chaff bugs tiene un lugar para el entrenamiento de investigadores de seguridad emergentes”, agregó Dennis Chow, CISO de la firma consultora SCIS Security. “Sin embargo, no creo que sean valiosos para el uso real del mundo real”.

Independientemente de la reacción de la comunidad, la investigación sobre el concepto y las técnicas continuará en un esfuerzo por eliminar algunas de las limitaciones actuales. LAVA ya es de código abierto y el equipo planea agregar al proyecto el código alrededor de los chaff bugs para fomentar un mayor desarrollo.

Los chaff bugs aún no están listos para su implementación

La investigación en torno a los chaff bugs todavía está en sus etapas iniciales, y Dolan-Gavitt admite que aún existen numerosos inconvenientes que los hacen actualmente inadecuados para el uso en producción, incluso si existe un potencial en la idea. “El inconveniente principal es que los bugs actualmente se ven muy artificiales; los atacantes podrían aprender a reconocer cómo se ven nuestros bugs y luego ignorarlos cuando buscan los reales”, afirmó.

El trabajo futuro incluye técnicas para hacer que los bugs falsos se mezclen con el código circundante, así como cambiar las condiciones de activación para que se vean más auténticos. Los tipos de bugs utilizados en la investigación se limitaron a desbordamientos de búfer; es decir, los atacantes simplemente podrían ignorar ciertas acumulaciones de desbordamientos. El documento identifica el uso después de la liberación, el tiempo de verificación al momento del uso, y el número entero desborda bugs como posibles candidatos para el futuro. “Asimismo, cómo esta técnica interactuaría con las nuevas versiones del software sigue siendo una pregunta abierta”, dijo Dolan-Gavitt. “Tendríamos que encontrar la forma de volver a inyectar los mismos bugs en los mismos lugares y asegurarnos de que aún no sean explotables”.

También está la cuestión de la compensación del rendimiento. Durante las pruebas con un servidor web Nginx, el equipo descubrió que la adición de dos mil bugs redujo aproximadamente el 30% del rendimiento en la cantidad de solicitudes atendidas por segundo. Dolan-Gavitt admitió que esto podría mejorarse con más trabajo, pero argumenta que hay casos de uso probables en los que la disuasión del atacante podría valer la pena.

El documento también reconoce que hacer que esas técnicas funcionen con código de fuente abierta también puede ser difícil. Es improbable que los desarrolladores quieran trabajar con un código fuente que contiene bugs intencionados. Asimismo, sería difícil encontrar una forma de agregar posteriormente el chaff bug sin darles a los atacantes acceso al código preinstalado.

“Creo que las personas tienen razón al ser escépticos sobre esto en esta etapa, todavía existen muchos desafíos de investigación por resolver”, mencionó Dolan-Gavitt. “Pero creemos que este es un área prometedora de investigación, y queríamos exponer la idea para obtener retroalimentación y permitir que otras personas construyan sobre nuestra investigación”.