Estudio de tipos de vulnerabilidades SQL Injection y protección contra los mismos

Proteger los datos de las personas es una prioridad hoy en día. Dentro de los ciberataques que afectan la integridad, confidencialidad y disponibilidad de los datos, uno de los más destacados es el SQL Injection. Para intentar mitigar este tipo de ataque, el programador debe hacer uso de buenas prácticas de desarrollo seguro y de medidas de seguridad. Por esta razón, es muy importante comprender en profundidad cómo se realizan dichos ataques y cómo pueden evitarse. La motivación principal del presente trabajo radica en la necesidad de estudiar en detalle este tipo de ciberataque y proporcionar herramientas educativas que faciliten el aprendizaje sobre el mismo. Para ello, se ha realizado un estudio exhaustivo de los ataques de SQL Injection, analizando sus diferentes tipos, técnicas empleadas y medidas de seguridad recomendadas para prevenirlos. Además, se ha desarrollado un entorno de pruebas seguro, diseñado específicamente para practicar y aprender a realizar estos ataques con fines educativos. Este entorno ha sido encapsulado en un contenedor Docker y publicado, permitiendo que otras personas puedan acceder y utilizarlo como una herramienta educativa. Para poner en práctica los conocimientos teóricos adquiridos, se llevaron a cabo cuatro iteraciones de ataques de SQL Injection de diferentes tipos en el entorno de pruebas. Cada iteración implementó diversas medidas de seguridad, lo que permitió evaluar la eficacia de cada una de ellas. Finalmente, se puede decir que este trabajo ha proporcionado un conocimiento teórico-práctico detallado sobre los ataques de SQL Injection y las medidas de seguridad correspondientes, una herramienta educativa accesible para la comunidad, y un análisis de la eficacia de las medidas de seguridad utilizadas. De esta forma la investigación contribuye a mejorar la formación en ciberseguridad y promover mejores prácticas en el desarrollo de software seguro.
ABSTRACT
Protecting people’s data is a priority today. Among the cyberattacks that affect the integrity, confidentiality, and availability of data, one of the most prominent is SQL Injection. To mitigate this type of attack, programmers must use secure development best practices and security measures. For this reason, it is very important to deeply understand how these attacks are carried out and how they can be prevented. The main motivation for this work lies in the need to study this type of cyberattack in detail and provide educational tools that facilitate learning about it. To this end, an exhaustive study of SQL Injection attacks has been conducted, analyzing their different types, techniques employed, and recommended security measures to prevent them. Additionally, a secure testing environment has been developed, specifically designed to practice and learn how to carry out these attacks for educational purposes. This environment has been encapsulated in a Docker container and published, allowing others to access and use it as an educational tool. To put the acquired theoretical knowledge into practice, four iterations of different types of SQL Injection attacks were carried out in the testing environment. Each iteration implemented various security measures, allowing the evaluation of the effectiveness of each one. In conclusion, this work has provided detailed theoretical and practical knowledge about SQL Injection attacks and corresponding security measures, an accessible educational tool for the community, and an analysis of the effectiveness of the security measures used. In this way, the research contributes to improving cybersecurity training and promoting better practices in secure software development.

​Proteger los datos de las personas es una prioridad hoy en día. Dentro de los ciberataques que afectan la integridad, confidencialidad y disponibilidad de los datos, uno de los más destacados es el SQL Injection. Para intentar mitigar este tipo de ataque, el programador debe hacer uso de buenas prácticas de desarrollo seguro y de medidas de seguridad. Por esta razón, es muy importante comprender en profundidad cómo se realizan dichos ataques y cómo pueden evitarse. La motivación principal del presente trabajo radica en la necesidad de estudiar en detalle este tipo de ciberataque y proporcionar herramientas educativas que faciliten el aprendizaje sobre el mismo. Para ello, se ha realizado un estudio exhaustivo de los ataques de SQL Injection, analizando sus diferentes tipos, técnicas empleadas y medidas de seguridad recomendadas para prevenirlos. Además, se ha desarrollado un entorno de pruebas seguro, diseñado específicamente para practicar y aprender a realizar estos ataques con fines educativos. Este entorno ha sido encapsulado en un contenedor Docker y publicado, permitiendo que otras personas puedan acceder y utilizarlo como una herramienta educativa. Para poner en práctica los conocimientos teóricos adquiridos, se llevaron a cabo cuatro iteraciones de ataques de SQL Injection de diferentes tipos en el entorno de pruebas. Cada iteración implementó diversas medidas de seguridad, lo que permitió evaluar la eficacia de cada una de ellas. Finalmente, se puede decir que este trabajo ha proporcionado un conocimiento teórico-práctico detallado sobre los ataques de SQL Injection y las medidas de seguridad correspondientes, una herramienta educativa accesible para la comunidad, y un análisis de la eficacia de las medidas de seguridad utilizadas. De esta forma la investigación contribuye a mejorar la formación en ciberseguridad y promover mejores prácticas en el desarrollo de software seguro.
ABSTRACT
Protecting people’s data is a priority today. Among the cyberattacks that affect the integrity, confidentiality, and availability of data, one of the most prominent is SQL Injection. To mitigate this type of attack, programmers must use secure development best practices and security measures. For this reason, it is very important to deeply understand how these attacks are carried out and how they can be prevented. The main motivation for this work lies in the need to study this type of cyberattack in detail and provide educational tools that facilitate learning about it. To this end, an exhaustive study of SQL Injection attacks has been conducted, analyzing their different types, techniques employed, and recommended security measures to prevent them. Additionally, a secure testing environment has been developed, specifically designed to practice and learn how to carry out these attacks for educational purposes. This environment has been encapsulated in a Docker container and published, allowing others to access and use it as an educational tool. To put the acquired theoretical knowledge into practice, four iterations of different types of SQL Injection attacks were carried out in the testing environment. Each iteration implemented various security measures, allowing the evaluation of the effectiveness of each one. In conclusion, this work has provided detailed theoretical and practical knowledge about SQL Injection attacks and corresponding security measures, an accessible educational tool for the community, and an analysis of the effectiveness of the security measures used. In this way, the research contributes to improving cybersecurity training and promoting better practices in secure software development. Read More