211service.com
Software que se corrige solo
Martín Rinard , profesor de informática en el MIT, no se avergüenza del objetivo final de la investigación de su grupo: ofrecer un programa inmortal e invulnerable. En el trabajo presentado este mes en el Simposio ACM sobre principios de sistemas operativos en Big Sky, MT, un grupo de investigadores del MIT, dirigido por Rinard y Michael Ernst, quien ahora es profesor asociado en la Universidad de Washington, desarrolló software que puede encontrar y corregir ciertos tipos de errores de software en cuestión de minutos.
Cuando se descubre una vulnerabilidad potencialmente dañina en un software, los ingenieros humanos tardan casi un mes en encontrar una solución y llevarla a los sistemas afectados, según un informe emitido por la empresa de seguridad Symantec en 2006. Los investigadores, que colaboraron con una startup llamada Determina en el trabajo, esperan que el nuevo software, llamado ClearView, acelere este proceso, haciendo que el software sea significativamente más resistente contra fallas o ataques.
ClearView funciona sin la ayuda de humanos y sin acceso al código fuente subyacente de un programa (un conjunto de instrucciones a menudo patentado que define cómo se comportará una pieza de software). En cambio, el sistema monitorea el comportamiento de un binario: la forma que toma el programa para ejecutar instrucciones en el hardware de una computadora.
Al observar el comportamiento normal de un programa y asignar un conjunto de reglas, ClearView detecta ciertos tipos de errores, en particular los que se producen cuando un atacante inyecta información maliciosa en un programa. Cuando algo sale mal, ClearView detecta la anomalía e identifica las reglas que se han violado. Luego, presenta varios parches potenciales diseñados para obligar al software a seguir las reglas violadas. (Los parches se aplican directamente al binario, sin pasar por el código fuente). ClearView analiza estas posibilidades para decidir cuáles tienen más probabilidades de funcionar, luego instala los mejores candidatos y prueba su efectividad. Si se violan reglas adicionales, o si un parche hace que el sistema se bloquee, ClearView lo rechaza y prueba con otro.
ClearView es particularmente eficaz cuando se instala en un grupo de máquinas que ejecutan el mismo software. En ese caso, lo que ClearView aprende de los errores en una máquina se usa para corregir todas las demás. Debido a que no requiere acceso al código fuente, Rinard dice que ClearView podría usarse para arreglar programas sin requerir la cooperación de la compañía que fabricó el software, o para reparar programas que ya no se mantienen. Espera que el sistema pueda extender la vida útil de las versiones anteriores de software, creadas por empresas que han cerrado, además de proteger el software actual.
Para probar el sistema, los investigadores instalaron ClearView en un grupo de computadoras con Firefox y contrataron a un equipo independiente para atacar el navegador web. El equipo hostil utilizó 10 métodos de ataque diferentes, cada uno de los cuales implicó inyectar un código malicioso en Firefox. ClearView bloqueó con éxito todos los posibles ataques al detectar el mal comportamiento y finalizar la aplicación antes de que el ataque pudiera tener el efecto deseado. La primera vez que ClearView encuentra un exploit, cierra el programa y comienza a analizar el binario, buscando un parche que pudiera haber detenido el error.
Para siete de los enfoques del equipo atacante, ClearView creó parches que corrigieron los errores subyacentes. En todos los casos, descartó las correcciones que tuvieron efectos secundarios negativos. En promedio, ClearView creó un parche exitoso en unos cinco minutos después de su primera exposición a un ataque.
Lo que esta investigación nos lleva a creer es que el software no es en sí mismo inherentemente frágil y quebradizo debido a errores, dice Rinard. Es frágil y quebradizo porque la gente tiene miedo de dejar que el software continúe si creen que hay algún problema con él. Algunos enfoques de ingeniería de software, como la informática ajena a los fallos o la informática aceptable, comparten esta filosofía.
ClearView es un punto de partida realmente bueno, dice Yuanyuan Zhou , profesor de informática de la Universidad de California en San Diego, que también investiga la confiabilidad del software. Zhou elogia el proceso de evaluación que los investigadores utilizaron para el proyecto, pero dice que quiere que ClearView se pruebe en una variedad más amplia de aplicaciones.
Mantener el sistema funcionando a toda costa parece tener mérito, agrega David Pearce , profesor titular de informática en la Universidad Victoria en Wellington, Nueva Zelanda. Señala que ClearView está diseñado para aplicar parches cada vez que detecta que algo ha salido mal. Algunos sistemas están diseñados para apagarse cuando se detecta un error, pero si el objetivo de un atacante es el sabotaje, dice Pearce, este enfoque les beneficia.
Pero el enfoque de ClearView podría resultar en algunos contratiempos para el usuario, agrega Pearce. Por ejemplo, si un navegador web tiene un error que lo hace incapaz de manejar URL que superan una determinada longitud, el parche de ClearView podría proteger el sistema recortando los extremos de las URL que eran demasiado largas, lo que evita que el programa falle, pero también lo impide. de trabajar completamente. Sin embargo, estos problemas probablemente no serían del todo dañinos. Por lo general, solo los piratas informáticos intentan explotar esas lagunas, dice Pearce, y serían ellos los que sufrirían.