.

Computación

Un software que se repara a si mismo

1

Una nueva herramienta tiene como objetivo arreglar los programas defectuosos sin tener que cerrarlos.

  • por Erica Naone | traducido por Francisco Reyes (Opinno)
  • 29 Octubre, 2009

Martin Rinard, profesor de ciencias informáticas en MIT, no tiene reparo a la hora de proclamar el objetivo final de la investigación de su grupo: “crear un programa inmortal e invulnerable.” En un trabajo presentado este mes durante el ACM Symposium on Operating Systems Principles, en Big Sky, Montana, su grupo ha desarrollado un software capaz de encontrar y arreglar ciertos tipos de errores de software en cuestión de minutos.

Cuando se descubre una vulnerabilidad potencialmente dañina en un programa de software, los ingenieros suelen tardar alrededor de un mes antes de encontrar la solución y hacerla llegar a los sistemas afectados, según un informe elaborado por la compañía de seguridad Symantec en 2006. El grupo de Richard espera que su nuevo software, llamado ClearView, pueda acelerar este proceso, haciendo que el software sea significativamente más resistente ante los fallos o ataques.

ClearView funciona sin necesidad de asistencia humana y sin acceso al código fuente que sustenta los programas (una serie de instrucciones, a menudo propiedad de la compañía en cuestión, y que define cómo se comporta un programa de forma específica). En vez de eso, el sistema hace un seguimiento del comportamiento de una binaria: la forma que toma el programa para ejecutar las instrucciones en el hardware de un ordenador.

Mediante la observación del comportamiento normal del programa y la asignación de una serie de reglas, ClearView detecta ciertos tipos de errores, particularmente aquellos originados cuando un atacante inyecta datos maliciosos en un programa. Cuando algo empieza a ir mal, ClearView detecta la anomalía e identifica las reglas que han sido violadas. Después crea una serie de parches potenciales diseñados para obligar al software a seguir las reglas que han sido violadas. (Los parches se aplican directamente a la binaria, pasando por encima del código fuente.) ClearView analiza estas posibilidades para decidir cuáles son las que tienen más probabilidades de funcionar, después instala las mejores candidatas y pone a prueba su efectividad. Si se violan más reglas, o si un parche hace que el sistema se cuelgue, ClearView lo rechaza y prueba con otro distinto.

ClearView es particularmente efectivo cuando se instala en un grupo de máquinas que ejecuten el mismo software. En ese caso, ClearView aprende de los errores de una máquina y lo usa para arreglar todas las otras máquinas. Debido a que no necesita acceder el código fuente, Rinard afirma que ClearView podría utilizarse para arreglar programas sin necesidad de cooperar con la compañía que lo creó, o para reparar programas que ya no posean servicios de mantenimiento. Espera que el sistema pueda alargar la vida a las versiones de software más antiguas, creadas por compañías que ya han cerrado sus puertas, además de proteger a los programas actuales.

Para poner a prueba el sistema, los investigadores instalaron ClearView en un grupo de ordenadores con FireFox y contrataron a un equipo independiente para atacar a dicho navegador. El equipo hostil utilizó 10 métodos de ataque distintos, y cada uno de los cuales consistía en introducir código malicioso en Firefox. ClearView bloqueó con éxito todos los ataques mediante la detección del comportamiento erróneo y cerró la aplicación antes de que el ataque hubiese podido lograr el efecto deseado. La primera vez que ClearView encuentra una situación como ésta cierra el programa y empieza a analizar la binaria, a la búsqueda de un parche que hubiese podido detener el error.

Para siete de los métodos que utilizó el equipo atacante, ClearView creó parches que corrigieron los errores subyacentes. En todos los casos, descartó las correcciones que tuviesen efectos secundarios negativos. De media, ClearView logró crear un parche exitoso a los cinco minutos del inicio del ataque.

“Lo que esta investigación nos está haciendo creer es que el software no es frágil y quebradizo de forma inherente por culpa de los errores,” afirma Rinard. “Es frágil y quebradizo porque la gente tiene miedo de dejar que el software siga funcionando si creen que hay algo que no funciona bien.” Algunos métodos de ingeniería de software, tales como la "failure-oblivious computing" (computación ajena a los fallos) o la "acceptable computing” (computación aceptable), comparten esta filosofía.

ClearView es “un muy buen punto de partida,” afirma Yuanyuan Zhou, profesor de ciencias informáticas en la Universidad de California, San Diego, quien también se dedica a la investigación de la dependencia del software. Zhou alaba el proceso de evaluación que utilizaron los investigadores para el proyecto, pero afirma que quiere ver cómo se pone a prueba ClearView en una variedad de aplicaciones más amplia.

“Hacer que el sistema siga funcionando a toda costa es algo que parece tener mérito,” añade David Pearce, conferenciante senior sobre ciencias informáticas en la Universidad de Victoria en Wellington, Nueva Zelanda. Señala que ClearView está diseñado para aplicar parches allí donde detecta que algo ha ido mal. Algunos sistemas están diseñados para apagarse cuando se detecta un error, pero si el objetivo del atacante es el sabotaje, afirma Pearce, entonces ese método les viene como anillo al dedo.

Sin embargo el método de ClearView podría resultar en ciertos problemas para el usuario, añade Pearce. Por ejemplo, si el navegador web tuviese un error que le incapacitase para trabajar con URLs que sobrepasen una longitud determinada, el parche de ClearView podría proteger al sistema mediante el corte de los finales de las URLs que fuesen demasiado largas—evitando que el programa falle, pero también evitando que funcione del todo. Sin embargo, estos problemas probablemente no sean del todo dañinos. “Generalmente sólo son los hackers los que intentan aprovecharse de este tipo de circunstancias,” afirma Pearce, “y son ellos los que acabarían sufriendo las consecuencias.”

Computación

Las máquinas cada vez más potentes están acelerando los avances científicos, los negocios y la vida.

  1. La desconexión de Tonga expone la debilidad de internet en el mundo

    La explosión de un volcán submarino ha incomunicado digitalmente al pequeño estado, y pueden pasar semanas hasta que el problema se arregle. Aunque, gracias a la redundancia, Occidente resistiría ante una situación similar, el desastre refleja la fragilidad de algunas de las partes más externas de la red

  2. Cómo convertir el cálculo vectorial en simples diagramas tipo Feynman

    El científico revolucionó la física de partículas con sus representaciones gráficas. Ahora los matemáticos quieren hacer lo mismo para el cálculo vectorial, y parece que lo han conseguido

  3. El 'big data' puede ayudar a resolver el problema del agua en Pakistán

    La ciudad más poblada del país, Karachi, pierde miles de millones de litros diarios por una mala gestión del recurso. Ayudar a los agricultores a ahorrar el agua en los alrededores podría mejorar la producción y salvar a los ciudadanos