Algoritmo de verificacion automatica de software
Loading...
Official URL
Full text at PDC
Publication date
2025
Authors
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citation
Abstract
Con el paso de los a ̃nos, la ciberseguridad (que al principio jugaba un papel menos relevante en el mundo tecnol ́ogico) ha ido adquiriendo importancia en nuestro día a día y se ha expandido en todos los sectores con tecnología de por medio. Por esta razón, la elaboración e implementación de c ́odigo seguro juega un papel fundamental para mantener el correcto funcionamiento de las aplicaciones, programas y servicios tecnológicos del momento. El principal objetivo de este proyecto es conseguir detectar posibles vulnerabilidades de desbordamiento de búfer en codigos fuente implementados en C y reportar un riesgo asociado. Para ello, se ha desarrollado una herramienta en Python que, recorriendo el árbol de sintaxis abstracta del codigo fuente en C a analizar y haciendo uso de lógica difusa, permite extraer una serie de características asociadas a un nivel de riesgo de desbordamiento de búfer. Estas características son procesadas por diferentes unidades de lógica difusa permitiendo reportar el nivel general de desbordamiento de bufer asociado al programa. Ademas, la herramienta ha sido integrada en un contenedor Docker para poder incluirla posteriormente en una interfaz de programación de aplicaciones. Los resultados obtenidos con diferentes programas C muestran que la lógica difusa puede llegar a ser una potente herramienta en el análisis de codigo estatico. Sin embargo, tiene asociadas algunas limitaciones que podrían entorpecer su aplicación en entornos reales.
Over the years, cybersecurity (which initially played a less relevant role in the techworld) has gradually gained importance in our daily lives and has expanded across all sectors involving technology. For this reason, the development and implementation of secure code plays a fundamental role in maintaining the proper functioning of current applications, programs, and technological services. The main objective with this project is to detect potential buffer overflow vulnerabilities in C code and report an associated risk. To achieve this, we have developed a Python tool that, by traversing the C code’s abstract syntax tree and using fuzzy logic, extracts a set of features associated with a buffer overflow risk level. These features are processed by different fuzzy logic units, allowing us to report the overall buffer overflow level associated with the evaluated C program. Additionally, the tool has been integrated into a Docker container to enable its later inclusion in an application program interface. The results obtained from different C programs show that Fuzzy Logic can be a powerful tool in static code analysis. However, it has some limitations that could hinder its application in real-world environments.
Over the years, cybersecurity (which initially played a less relevant role in the techworld) has gradually gained importance in our daily lives and has expanded across all sectors involving technology. For this reason, the development and implementation of secure code plays a fundamental role in maintaining the proper functioning of current applications, programs, and technological services. The main objective with this project is to detect potential buffer overflow vulnerabilities in C code and report an associated risk. To achieve this, we have developed a Python tool that, by traversing the C code’s abstract syntax tree and using fuzzy logic, extracts a set of features associated with a buffer overflow risk level. These features are processed by different fuzzy logic units, allowing us to report the overall buffer overflow level associated with the evaluated C program. Additionally, the tool has been integrated into a Docker container to enable its later inclusion in an application program interface. The results obtained from different C programs show that Fuzzy Logic can be a powerful tool in static code analysis. However, it has some limitations that could hinder its application in real-world environments.
Description
Trabajo de Fin de Grado en Ingeniería Informática, Facultad Informática UCM, Dpto. de Ingeniería del Software e Inteligencia Artificial, Curso 2024/2025












