Las personas y las corporaciones gastan millones de dólares cada año en software que detecta errores potencialmente peligrosos en los programas de computadora. Y si el software encuentra 10 errores o 100, no hay forma de determinar cuántos pasan desapercibidos, ni medir la eficacia del error-herramientas de búsqueda.
Los investigadores de la Facultad de Ingeniería Tandon de la Universidad de Nueva York, en colaboración con el MIT Lincoln Laboratory y la Northeastern University, están adoptando un enfoque poco ortodoxo para abordar este problema: en lugar de encontrar y corregir errores, los están agregando por cientos demiles
Brendan Dolan-Gavitt, profesor asistente de ciencias de la computación e ingeniería en NYU Tandon, es co-creador de LAVA, o adición de vulnerabilidad automatizada a gran escala, una técnica de agregar intencionalmente vulnerabilidades al código fuente de un programa para probar los límitesde herramientas de búsqueda de errores y, en última instancia, ayudan a los desarrolladores a mejorarlas. En los experimentos con LAVA, demostraron que muchos buscadores de errores populares detectan solo el 2 por ciento de las vulnerabilidades.
Se presentó un documento que detalla la investigación en el Simposio IEEE sobre Seguridad y Privacidad y se publicó en las actas de la conferencia. Los miembros del personal técnico del MIT Lincoln Laboratory dirigieron la investigación técnica: Patrick Hulin, Tim Leek, Frederick Ulrich y Ryan WhelanLos colaboradores de la Northeastern University son Engin Kirda, profesor de informática y ciencias de la información; Wil Robertson, profesor asistente de informática y ciencias de la información; y la estudiante de doctorado Andrea Mambretti.
Dolan-Gavitt explicó que la eficacia de los programas de búsqueda de errores se basa en dos métricas: la tasa de falsos positivos y la tasa de falsos negativos, que son notoriamente difíciles de calcular. No es inusual que un programa detecte un erroreso luego demuestra que no está allí, un falso positivo, y que pasa por alto las vulnerabilidades que están realmente presentes, un falso negativo. Sin conocer el número total de errores reales, no hay forma de medir qué tan bien funcionan estas herramientas.
"La única forma de evaluar un buscador de errores es controlar la cantidad de errores en un programa, que es exactamente lo que hacemos con LAVA", dijo Dolan-Gavitt. El sistema automatizado inserta cantidades conocidas de nuevas vulnerabilidades que son sintéticas aúnposeen muchos de los mismos atributos que los errores informáticos en la naturaleza. Dolan-Gavitt y sus colegas esquivaron el precio típico de cinco cifras para las vulnerabilidades manuales, diseñadas a medida y en su lugar crearon un sistema automatizado que realiza ediciones juiciosas en el código fuente de programas reales.
El resultado: cientos de miles de vulnerabilidades no estudiadas y altamente realistas que son económicas, abarcan la vida útil de ejecución de un programa, están integradas en el control normal y el flujo de datos, y se manifiestan solo por una pequeña fracción de entradas para que no cierren todo el programaLos investigadores tuvieron que crear nuevos errores, y en cantidades significativas, para tener un cuerpo lo suficientemente grande como para estudiar las fortalezas y deficiencias del software de búsqueda de errores. Las vulnerabilidades previamente identificadas fácilmente tropezarían con los buscadores de errores actuales, sesgando los resultados.
El equipo probó el software de búsqueda de errores existente y descubrió que solo se detectó el 2 por ciento de los errores creados por LAVA. Dolan-Gavitt explicó que la identificación automatizada de errores es una tarea extremadamente compleja que los desarrolladores están mejorando constantemente. Los investigadores compartirán sus resultados paraayudar a estos esfuerzos.
Además, el equipo planea lanzar una competencia abierta este verano para permitir que los desarrolladores y otros investigadores soliciten una versión con errores de LAVA de un software, intenten encontrar los errores y reciban un puntaje basado en su precisión.
"Nunca ha habido un punto de referencia de rendimiento a esta escala en esta área, y ahora tenemos uno", dijo Dolan-Gavitt. "Los desarrolladores pueden competir por los derechos de fanfarronear sobre quién tiene la mayor tasa de éxito en la búsqueda de errores, y ellos programas que saldrán del proceso podrían ser más fuertes "
Fuente de la historia :
Materiales proporcionado por NYU Tandon School of Engineering . Nota: El contenido puede ser editado por estilo y longitud.
Cite esta página :