Crédito:whiteMocca / Shutterstock / N.Hanacek / NIST
Confiamos nuestras vidas al software cada vez que subimos a bordo de un avión de alta tecnología o un automóvil moderno. Un esfuerzo de investigación a largo plazo guiado por dos investigadores del Instituto Nacional de Estándares y Tecnología (NIST) y sus colaboradores ha desarrollado nuevas herramientas para hacer que este tipo de software crítico para la seguridad sea aún más seguro.
Aumento de un conjunto de herramientas de software existente, La nueva creación del equipo de investigación puede fortalecer las pruebas de seguridad que las empresas de software realizan en los programas que ayudan a controlar nuestros vehículos. operar nuestras plantas de energía y administrar otras tecnologías exigentes. Si bien estas pruebas a menudo son costosas y requieren mucho tiempo, reducen la probabilidad de que este código complejo falle porque recibió alguna combinación inesperada de datos de entrada. Esta fuente de problemas puede afectar a cualquier paquete de software sofisticado que deba monitorear y responder de manera confiable a múltiples flujos de datos que fluyen desde sensores y operadores humanos en todo momento.
Con el conjunto de herramientas de investigación denominado Pruebas combinatorias automatizadas para software, o ACTOS, Las empresas de software pueden asegurarse de que no existan combinaciones de entrada simultáneas que puedan provocar inadvertidamente un error peligroso. Como un paralelo aproximado, piensa en un atajo de teclado, como presionar CTRL-ALT-DELETE para reiniciar un sistema intencionalmente. El riesgo con el software crítico para la seguridad es que pueden existir combinaciones que crean consecuencias no intencionales.
Hasta ahora, No había forma de estar seguro de que se habían probado todas las combinaciones significativas en sistemas muy grandes:una situación de riesgo. Ahora, con la ayuda de los avances realizados por el equipo de investigación, incluso software que tiene miles de variables de entrada, cada uno de los cuales puede tener un rango de valores, se puede probar a fondo.
El kit de herramientas ACTS del NIST ahora incluye una versión actualizada de Medición de cobertura combinatoria (CCM), una herramienta que debería ayudar a mejorar la seguridad y reducir los costos de software. La industria del software a menudo gasta de siete a 20 veces más dinero en hacer que el software crítico para la seguridad sea confiable que en un código más convencional.
Los hallazgos revisados por pares del equipo de investigación aparecen en dos artículos que el equipo presentará el 23 de abril en la Conferencia Internacional IEEE sobre Pruebas de Software de 2019, Verificación y validación en Xi'an, Porcelana. La investigación incluye colaboradores de la Universidad de Texas en Arlington, Adobe Systems Inc. y SBA Research de Austria.
El matemático del NIST Raghu Kacker dijo que CCM representa una mejora sustancial para el conjunto de herramientas de ACTS desde su última incorporación importante en 2015.
"Antes de revisar CCM, fue difícil probar el software que maneja miles de variables a fondo, ", Dijo Kacker." Esa limitación es un problema para el software moderno complejo del tipo que se utiliza en aviones de pasajeros y plantas de energía nuclear, porque no solo es altamente configurable, también es fundamental para la vida. La vida y la salud de las personas dependen de ello ".
Los desarrolladores de software se han enfrentado a errores que se derivan de combinaciones de entrada inesperadas durante décadas, por lo que NIST comenzó a buscar las causas de las fallas de software en la década de 1990 para ayudar a la industria. Resultó que la mayoría de las fallas involucraron un solo factor o una combinación de dos variables de entrada:la temperatura y la presión de un dispositivo médico, por ejemplo, provocando un reinicio del sistema en el momento equivocado. Algunos involucraron hasta seis variables de entrada.
Debido a que una sola variable de entrada puede tener un rango de valores potenciales y un programa puede tener muchas de esas variables, puede ser una imposibilidad práctica probar todas las combinaciones imaginables, por lo que los evaluadores confían en la estrategia matemática para eliminar grandes franjas de posibilidades. A mediados de la década de 2000, el kit de herramientas del NIST podría verificar las entradas en combinaciones de hasta seis vías, eliminando muchos riesgos de error.
"Nuestras herramientas se pusieron de moda, pero al final, todavía te preguntas qué tan bien te ha ido, qué tan exhaustivas fueron sus pruebas, "dijo el científico informático del NIST Richard Kuhn, que trabajó con Kacker en el proyecto. "Actualizamos CCM para que pudiera responder esas preguntas".
Las propias herramientas del NIST podían manejar software que tenía unos cientos de variables de entrada, pero SBA Research desarrolló otra nueva herramienta que puede examinar software que tiene hasta 2, 000, generando un conjunto de pruebas para combinaciones de hasta cinco vías de variables de entrada. Las dos herramientas se pueden utilizar de forma complementaria:mientras que el software NIST puede medir la cobertura de combinaciones de entrada, el algoritmo SBA puede extender la cobertura a miles de variables.
Recientemente, Adobe Systems Inc. se puso en contacto con NIST y solicitó ayuda con la prueba de cinco vías de uno de sus paquetes de software. NIST proporcionó a la empresa los algoritmos desarrollados por CCM y SBA, que en conjunto permitieron a Adobe ejecutar pruebas de confiabilidad en su código que demostraron ser exitosas y completas.
Si bien el algoritmo de investigación de la SBA no es una parte oficial del conjunto de pruebas de ACTS, el equipo tiene planes para incluirlo en el futuro. Mientras tanto, Kuhn dijo que NIST pondrá el algoritmo a disposición de cualquier desarrollador que lo solicite.
"La colaboración ha demostrado que ahora podemos manejar clases más grandes de problemas, ", Dijo Kuhn." Podemos aplicar este método a más aplicaciones y sistemas que anteriormente eran demasiado difíciles de manejar. Invitamos a cualquier empresa que esté interesada en expandir su software a contactarnos, y compartiremos cualquier información que puedan necesitar ".