Unas herramientas dedicadas a encontrar errores graves automáticamente podrían ayudar a crear un software más seguro y estable.
Varias conversaciones durante la conferencia de seguridad Black Hat esta semana en Las Vegas se centrarán en un tipo de herramientas que podrían hacer que el software fuera más seguro gracias a la búsqueda automática de errores—identificando aquellos que pudieran ser más peligrosos.
La caza de errores solía ser un proceso muy laborioso. Los investigadores solían encontrar uno a la vez, descubrían qué era lo que lo provocaba y qué peligros planteaba. Después lo revelaban, a un proveedor de software o de forma pública, para que así pudiera arreglarse. Sin embargo, durante los últimos años, el software popular ha mejorado, y los errores no son tan fáciles de encontrar. Además, los programas comerciales son cada vez más grandes y complejos, haciendo que se tarde mucho tiempo en buscar manualmente los errores potenciales. No obstante, una nuevas herramientas de software están ayudando a automatizar el proceso, lo que podría significar que los programas funcionen de forma más fiable y sean más seguros para los usuarios.
El desarrollo de una técnica conocida como "fuzzing" ha logrado producir un cambio en la forma en que los errores de software son descubiertos. El "fuzzing" consiste alimentar a un programa con entradas de datos alteradas, en repetidas ocasiones y al azar, para hacer que el programa se bloquee (o se "cuelgue"). Aquellos datos que provoquen el bloqueo podrían revelar un error importante.
Charlie Miller, un investigador de seguridad en Independent Security Evaluators, con sede en Baltimore, discutirá el fuzzing durante Black Hat, una conferencia que logra reunir a investigadores del gobierno, académicos, a la industria y a las capas más soterradas de hackers. Miller explica que sólo algunos de los bloqueos provocados por el fuzzing tienen implicaciones de seguridad importantes. El trabajo necesario para identificar bloqueos importantes se ve acrecentado por un nuevo método más intensivo llamado "fuzzing industrial". En la actualidad, los investigadores están recurriendo a nuevas herramientas para rápidamente ayudar a clasificar estos errores.
Ben Nagy, investigador senior de seguridad en COSEINC, con sede en Singapur, es uno de los investigadores a los que se atribuye la invención del fuzzing industrial. Está desarrollando una herramienta que podría ayudar a los investigadores a determinar con precisión dónde ha fallado un programa después de un bloqueo. Ha estado trabajando con sus colegas para extraer datos sobre cientos de miles de bloqueos, en busca de patrones que se puedan utilizar para predecir con certeza la causa de un bloqueo.
Miller también presentará una posible solución para el análisis de bloqueos—una plataforma conocida como BitBlaze, creada por investigadores de la Universidad de California, en Berkeley, entre los que se incluye Dawn Song. BitBlaze es un conjunto de herramientas que pueden hacer un seguimiento exacto de lo que ocurre dentro de un programa, por lo que es más fácil analizar los posibles fallos de seguridad encontrados a través del fuzzing industrial. Miller señala que BitBlaze puede trazar la ruta de un solo byte de información, y hacer el seguimiento de cada instrucción que ejecuta el programa, así como detectar dónde se diferenció de la función normal.
Miller utilizó BitBlaze para analizar bloqueos relacionados con Adobe Reader y Open Office. Antes de usar el software, señala que pasó hasta una semana analizando la causa de algunos bloqueos de software. Con BitBlaze, Miller afirma que es capaz de analizar algunos bloqueos casi instantáneamente, mientras que otros tardan hasta un día.
Si el fuzzing industrial acaba funcionando con todo tipo de software, podría cambiar la forma en que las empresas hacen sus pruebas para asegurarse de que su código funciona y es seguro, asegura Vincenzo Iozzo, ingeniero de Zynamics, una empresa de seguridad con sede en Bochum, Alemania. En lugar de contratar a expertos para que revisen el software a mano, las empresas de software podrían automatizar el proceso de revisión, señala Iozzo. Sin embargo, esto sólo se limita a solucionar el problema del análisis de errores y la búsqueda de la forma de solucionarlos. "No hay manera de estar 100 por cien seguros de que un error se pueda explotar o no sin hacer uso de la intervención humana", afirma.