La Agencia DARPA de Estados Unidos ha desarrollado un método para probar las aplicaciones en búsqueda de errores mediante la resolución de puzzles y otros tipos de juegos online. Si bien el método se aplica a través de un sitio web disponible para cualquier usuario de Internet mayor de 18 años de edad, actualmente está en un período de prueba para demostrar si es realmente mejor que el testing formal de sistemas.
En general, todas las aplicaciones tienen bugs, sin importar en qué momento del proceso de desarrollo se encuentren. Estos errores de programación se traducen en vulnerabilidades que, al no ser corregidas, pueden ser explotadas por atacantes para la ejecución de acciones maliciosas, o el acceso a información confidencial. Luego, el proceso de probar las aplicaciones de manera formal para detectar este tipo de errores es sumamente necesario, pero altamente costoso. Las funcionalidades involucradas son probadas línea a línea por profesionales; es de entender entonces, que el proceso sea lento y costoso para las organizaciones. Por este motivo, la Agencia de Proyectos Avanzados de Investigación en Defensa (DARPA), perteneciente al Departamento de Defensa de Estados Unidos, ha llevado a cabo investigaciones de tal modo de aplicar el concepto de crowdsourcing a la prueba formal de sistemas. La idea detrás de crowdsourcing es sencilla pero efectiva: en lugar de contratar una pequeña cantidad de empleados para que realicen una tarea de programación o desarrollo de sistemas, la tarea es presentada a la comunidad online para su contribución.
Así, el método propuesto por DARPA consiste en poner a disposición de todo el mundo un sitio web con juegos online que permiten la verificación formal de aplicaciones. Pero, ¿cómo es posible hacer testing de aplicaciones jugando juegos online? La respuesta es que esta Agencia ha desarrollado un método automatizado para crear juegos que representen problemas matemáticos muy complejos. Mediante la interacción de los jugadores, estos problemas matemáticos podrían resolverse, verificando la presencia o ausencia de fallas importantes en las aplicaciones. Actualmente, el portal de juegos está disponible, y el método es aplicado para la verificación de aplicaciones desarrolladas en C y Java. Este periodo inicial desde el lanzamiento del juego servirá como punto de partida para evaluar la factibilidad del método. ¿Será la verificación realizada por miles de personas no expertas mucho más rápida y efectiva en costos que aquella realizada por un pequeño grupo de profesionales? Habrá que esperar un tiempo para conocer la respuesta.
Los juegos que se ofrecen por el momento son 5 pero, dada la capacidad de generar puzzles de manera automática, esta cantidad podría aumentar en el futuro. CircuitBot, uno de los juegos, convierte al jugador en un comandante que debe conectar robots para llevar a cabo misiones en el espacio. Ghost Map, por su parte, pone a prueba la habilidad del jugador para encontrar caminos a través de redes neuronales. En general, los juegos son similares: encontrar caminos, conectar nodos o identificar patrones, son las tareas más comunes. A continuación se observa una captura de pantalla del juego Flow Jam, en el cual se deben conectar nodos de red, maximizando el flujo y resolviendo los atascos:
Ver este tipo de avances en materia de seguridad siempre es una buena noticia. Por ello, recomendamos que prueben los juegos y nos dejen su opinión y comentarios.
Matías Porolli
Especialista de Awareness & Research