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 implementar esta
tecnología es muy bajo. A nivel de rendimiento, la sobrecarga que
suponen las comprobaciones adicionales disminuyen el rendimiento del
software entre un 10% y un 60%, 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.

Más Información:

CCured Documentation
ju.cs.berkeley.edu/ccured/

Fuente: www.hispasec.com