Skip to main content
European Commission logo print header

A Source code analysis Toolbox for software security AssuraNCE

Article Category

Article available in the following languages:

Un nuevo herramental de seguridad para software aumenta la fiabilidad de los procesos

Investigadores de la Unión Europea han desarrollado un conjunto de herramientas para el análisis del código fuente capaces de verificar las propiedades de seguridad de aplicaciones escritas en C, C++ y Java.

Economía digital icon Economía digital

En una sociedad que avanza al compás de las tecnologías de la información y la comunicación, la seguridad y la protección del software se han convertido en retos fundamentales. Para responder a esta necesidad, se puso en marcha el proyecto STANCE. Financiado por la Unión Europea, se trata de una iniciativa multidisciplinar que ha dado lugar a numerosos avances científicos y tecnológicos en el campo de la seguridad del software. En este proyecto, que se desarrolló a lo largo de tres años y medio, se definió, creó y distribuyó un conjunto de herramientas para el análisis del código fuente que es capaz, en concreto, de verificar las propiedades de seguridad de aplicaciones escritas en C, C++ y Java. Básicamente, este herramental reúne y coordina el trabajo de herramientas de análisis existentes, incluida la plataforma Frama-C, el verificador VeriFast y una herramienta de prueba de software mediante datos aleatorios («fuzzing»). Frama-C es una plataforma de análisis de software que permite diseñar, realizar y difundir soluciones de verificación formales. VeriFast, por su parte, es un analizador para código fuente C y Java que incluye anotaciones con predicados escritos en lógica de separación. «La arquitectura de STANCE se basa en las herramientas de análisis anteriormente mencionadas», afirma Armand Puccetti, investigador del proyecto. «En el marco de este proyecto se desarrollaron numerosos complementos para dichas herramientas que les permitían realizar análisis de seguridad específicos como, por ejemplo, análisis de código modular». Según Puccetti, son herramientas potentes para verificar de un modo formal la robustez de aplicaciones sensibles desde el punto de vista de la seguridad. «El proyecto STANCE acentuó su utilidad por medio de la creación de metodologías dirigidas a combinar estas herramientas con la finalidad de utilizarlas en análisis de casos reales y en el contexto de los certificados de criterios comunes», añade. Cómo funciona La herramienta STANCE especifica algoritmos para detectar clases bien definidas de amenazas a la seguridad presentes en el código fuente. Para ello, utiliza y amplía técnicas conocidas de análisis de código abierto orientado a la seguridad que incluyen interpretaciones abstractas, verificaciones deductivas y comprobación de modelos. Posteriormente, estos análisis se amplían por medio de funcionalidades de diagnóstico así como diagnósticos basados en modelos y contraejemplos. Los análisis también se pueden realizar utilizando el análisis dinámico con inyección de fallos y generación automática de casos de prueba. Concluida la fase inicial, la herramienta proporciona al usuario una base teórica que garantiza formalmente que determinado programa de software no contiene ningún defecto de seguridad. Más fiabilidad Con este herramental y sus métodos de apoyo, el proyecto STANCE ha logrado aumentar la fiabilidad y la rentabilidad de los procesos actuales orientados a la seguridad. «Fruto del trabajo realizado, el proyecto ha provocado un cambio positivo en el ámbito del control de la seguridad del software, con importantes repercusiones en los aspectos jurídico, social y económico», afirma Puccetti. «Además, algunas de las nuevas herramientas desarrolladas en las plataformas Frama-C y Verifast se distribuirán como código abierto, mientras que otras se mantendrán como prototipos a medida que discurra la investigación». Desde un punto de vista económico, los hallazgos del proyecto STANCE aportarán un factor de diferenciación de mercado estratégico para las empresas que utilicen su herramienta y sus métodos, con ventajas a largo plazo en cuanto a costes de desarrollo y mantenimiento. En un sentido más amplio, el proyecto ha dado a la sociedad un nuevo estándar de confianza, un impulso muy necesario para el desarrollo de las cibertecnologías. «El proyecto STANCE ha contribuido a materializar las estrategias políticas de la Unión Europea al aportar un modo de detectar las vulnerabilidades de seguridad en aplicaciones de software críticas, lo que se traduce en que los ciudadanos de la Unión Europea pueden confiar en que sus aplicaciones de software son seguras», concluye Puccetti.

Palabras clave

STANCE, herramental, código fuente, C++, java, ciberseguridad, frama-c, verifast, análisis de código, amenazas, diagnóstico, software, mantenimiento, vulnerabilidad

Descubra otros artículos del mismo campo de aplicación