Proyecto CCured

CortafuegosSeguridad

El proyecto CCured permite reducir e incluso eliminar los riesgos de seguridad que suponen los desbordamientos de búfer, plaga de nuestros días.

El proyecto CCured, desarrollado en la universidad de Berkeley, se basa en la traducción automática de un código fuente en lenguaje C en otra versión del programa que contiene las comprobaciones de seguridad necesarias para evitar los desbordamientos de búfer. Ese segundo programa será el que se compile para obtener el producto final.

Dado que la traducción es automática, el coste de implantar esta tecnología es muy bajo. A nivel de rendimiento, la sobrecarga que suponen las comprobaciones adicionales disminuye el rendimiento del software entre un 10 por ciento y un 60 por ciento, dependiendo de la aplicación concreta. Adicionalmente, el programador puede alterar el código original para facilitar el trabajo a CCured y mejorar el rendimiento.

Existen proyectos similares desde hace tiempo, como la comprobación del tamaño de las matrices en el compilador GCC, pero éste parece ser el primer intento serio, sistemático y multiplataforma por reducir el problema genérico de desbordamiento de búfer. CCured, en realidad, protege contra otros usos incorrectos de punteros, como intentar acceder a través de un “NULL”, usar punteros para acceder a objetos incompatibles, etc.

Lamentablemente estos problemas de seguridad son inherentes al diseño del lenguaje C. Considerando que existen otros lenguajes bastante difundidos, más productivos e igualmente eficientes para el desarrollo de aplicaciones informáticas, el problema -en última instancia- es cultural y de inercia tecnológica.

En cualquier caso, proyectos como CCured son muy interesantes, por ejemplo, para proteger la gran cantidad de código C actualmente en uso en el mundo de la informática.