Revista Científica y Tecnológica UPSE
Volumen 11 Nº 2, Edición Diciembre 2024, páginas 130- 144
http://doi.org/10.26423/rctu.v11i2.800
logo.png

Articulo de revisión

Modelos de Pruebas de Seguridad Estática en Reducción de Ineficiencia identificación de Inyección SQL en Aplicaciones Web

Static Security Testing Models in Inefficiency Reduction Identification of SQL Injection in Web Applications


1Facultad de Ingeniería de Sistemas e Informática - Unidad de Postgrado, Universidad Nacional Mayor de San Marcos UNMSM | Lima – Perú | CP 15730

armando.tipacti@unmsm.edu.pe

Resumen

La detección temprana de vulnerabilidades es crucial en el desarrollo de software para garantizar la seguridad de las aplicaciones web, especialmente frente a ataques de inyección SQL. Las pruebas de Seguridad Estática (SAST) permiten identificar vulnerabilidades desde las primeras etapas del ciclo de vida del desarrollo. Este artículo revisa sistemáticamente la literatura para identificar y analizar los modelos de SAST más eficaces en reducir ineficiencias en la detección de inyecciones SQL. Siguiendo las guías PRISMA 2020 y el enfoque de Kitchenham, se realizaron búsquedas exhaustivas en bases de datos como EBSCO y Scopus. Los resultados muestran que la integración temprana de SAST y el uso de inteligencia artificial mejoran la detección de vulnerabilidades, reduciendo falsos positivos y negativos. La implementación de modelos avanzados de SAST es esencial para mejorar la seguridad de las aplicaciones web, sugiriéndose investigaciones futuras en metodologías más integradas y nuevas herramientas.

Palabras clave: Pruebas Seguridad Estática, Desarrollo de Software Seguro, DevSecOps, Inyección SQL.

Abstract

Early detection of vulnerabilities is crucial in software development to ensure the security of web applications, especially against SQL injection attacks. Static Application Security Testing (SAST) allows for the identification of vulnerabilities from the early stages of the development lifecycle. This article systematically reviews the literature to identify and analyze the most effective SAST models in reducing inefficiencies in detecting SQL injections. Following PRISMA 2020 guidelines and Kitchenham’s approach, exhaustive searches were conducted in databases like EBSCO and Scopus. The results show that early integration of SAST and the use of artificial intelligence significantly improve vulnerability detection, reducing false positives and negatives. The implementation of advanced SAST models is essential for enhancing the security of web applications, with future research suggested to explore more integrated methodologies and new tools.

Keywords: Static application security testing, Secure software development, DevSecOps, SQL Inyection.

Recepción:25/06/2024
Aprobación:6/11/2024
Publicación:26/12/2024

1. Introducción

En la última década, el desarrollo de aplicaciones web ha experimentado un crecimiento exponencial, convirtiéndose en un pilar esencial de la economía digital y de la interacción social [1]. A medida que más empresas y organizaciones dependen de estas aplicaciones para realizar operaciones críticas, la seguridad de las mismas se ha convertido en una preocupación primordial [2]. Una de las amenazas más prevalentes en este ámbito es la inyección SQL, una vulnerabilidad que permite a los atacantes manipular consultas en bases de datos para obtener acceso no autorizado, comprometiendo así la integridad, disponibilidad y confidencialidad de la información [3].

La importancia de proteger las aplicaciones web de estas amenazas ha impulsado a la comunidad científica y a la industria a desarrollar diversas herramientas y métodos de pruebas de seguridad [4]. Entre ellas, las Pruebas de Seguridad Estática (SAST) se destacan por su capacidad para identificar vulnerabilidades en las primeras etapas del ciclo de vida del desarrollo de software [5]. A diferencia de las pruebas dinámicas, SAST analiza el código fuente sin ejecutarlo, lo que permite a los desarrolladores detectar y corregir errores de seguridad antes de que el software sea desplegado en un entorno de producción [3].

El desarrollo de métodos avanzados, como el uso de inteligencia artificial y aprendizaje automático en SAST, ha demostrado ser fundamental para mejorar la detección de vulnerabilidades [6]. Estudios recientes destacan cómo la integración de estos enfoques en SAST no solo aumenta la precisión de la detección de fallas de seguridad, sino que también reduce significativamente los falsos positivos y negativos [7]. Esta capacidad para mejorar la eficiencia en la identificación de vulnerabilidades es crucial en un entorno donde la seguridad del software es cada vez más amenazada por ataques sofisticados [2].

Sin embargo, aunque la combinación de estas técnicas ha mostrado mejoras, persisten desafíos significativos en la implementación práctica de SAST. La literatura destaca que, a pesar de las innovaciones, muchos equipos de desarrollo todavía luchan con la integración efectiva de SAST en sus flujos de trabajo, particularmente en entornos ágiles y DevSecOps [8]. Esto se debe en parte a la necesidad de una mayor personalización de las herramientas SAST para adaptarse a las especificidades de cada proyecto y al hecho de que las tecnologías emergentes a menudo superan la capacidad de las herramientas existentes para mantenerse al día con las nuevas amenazas y vulnerabilidades [1].

A pesar de estos avances, la literatura actual señala que las herramientas SAST aún enfrentan desafíos importantes [8]. Estos desafíos incluyen la falta de integración con otros procesos de desarrollo seguro y la adaptación a nuevas tecnologías y lenguajes de programación [5]. Además, existe un debate sobre la eficiencia y precisión de estas herramientas en comparación con otros enfoques, como las pruebas de seguridad dinámica (DAST) y las pruebas interactivas (IAST) [1].

Un aspecto no completamente abordado en la literatura es la identificación de los modelos de pruebas de seguridad estática más efectivos para la detección de inyecciones SQL en aplicaciones web [2]. Algunos estudios sugieren que la efectividad de SAST depende en gran medida de la configuración de la herramienta y del contexto en el que se aplique, lo que subraya la necesidad de investigaciones más detalladas y contextualizadas [3]. Además, es crucial entender los factores determinantes que influyen en la eficiencia de estas pruebas, como la calidad del código fuente, la experiencia del equipo de desarrollo y la capacidad de las herramientas SAST para adaptarse a metodologías ágiles o DevSecOps [6].

La reducción de falsos positivos y negativos es una de las áreas más investigadas en la mejora de SAST [5]. Varios estudios han demostrado cómo la aplicación de técnicas de aprendizaje automático y procesamiento del lenguaje natural puede mejorar la precisión de la detección de vulnerabilidades, reduciendo significativamente la tasa de falsos positivos [3]. Además, se ha identificado que la combinación de SAST con otros métodos, como el análisis dinámico y el modelado de amenazas, puede mejorar la cobertura y precisión de las pruebas, optimizando los recursos y el tiempo invertido en la seguridad del software [5].

Este estudio tiene como objetivo realizar una revisión sistemática de la literatura para identificar y analizar los modelos de pruebas de seguridad estática más adecuados para reducir la ineficiencia en la detección de vulnerabilidades de inyección SQL en aplicaciones web. A través de esta revisión, se busca:

El resultado de esta revisión no solo pretende llenar los vacíos de conocimiento existentes, sino también proporcionar una base sólida para futuras investigaciones y aplicaciones prácticas en el desarrollo seguro de software. Las conclusiones ofrecerán una orientación crítica sobre cómo mejorar la eficiencia y efectividad de las pruebas de seguridad estática, fortaleciendo la seguridad en el desarrollo de aplicaciones web en un entorno cada vez más amenazado por ataques sofisticados.

2. Metodología

En esta revisión sistemática, se empleó la guía PRISMA (2020) [9] junto con el enfoque sugerido por Barbara Kitchenham[10]. Este enfoque se centra en la minuciosidad y transparencia del proceso, asegurando una revisión imparcial y confiable al definir un protocolo detallado que establece los objetivos, las preguntas de investigación y los criterios de inclusión y exclusión de estudios. Después de esta etapa inicial, se procede con una exploración de la literatura en una amplia variedad de fuentes, seguida de una selección meticulosa de estudios pertinentes de acuerdo con los parámetros establecidos. Además, una vez que se eligen los estudios, se recopilan datos relevantes mediante un formulario estructurado. Se lleva a cabo una evaluación de la calidad metodológica de los estudios incluidos para garantizar la fiabilidad de la evidencia. Posteriormente, se sintetizan y presentan de manera coherente los resultados de los estudios, lo que facilita una comprensión profunda del tema de investigación.

La aplicación del enfoque de Kitchenham (2004) [10] proporciona un fundamento robusto para tomar decisiones informadas y para investigaciones posteriores en el ámbito de la ingeniería de software. En esta revisión sistemática, seguiremos este método para garantizar la imparcialidad y la fiabilidad de nuestros descubrimientos, lo que contribuirá al progreso del conocimiento en esta área. Las etapas detalladas se presentan en la Tabla 1.

Tabla 1: Método del proceso de revisión sistemática de Barbara Kitchenham
Método del proceso de revisión sistemática de Barbara Kitchenham

Fase I. Planificación de la Revisión

Identificación de la necesidad para la revisión:

La identificación de la necesidad marca el inicio en el enfoque presentado por Kitchenham [10], que implica la comprensión de la relevancia de llevar a cabo una revisión sistemática sobre un tema de investigación específico

En esta fase, el objetivo es aclarar y fundamentar la importancia y extensión de la revisión. Esto implica entender los motivos que respaldan la revisión de la literatura disponible, identificar las preguntas de investigación a tratar y evaluar cómo la revisión contribuirá al avance del conocimiento en el campo temático en cuestión. Como parte de la identificación de la necesidad, se formularon las siguientes interrogantes:

2.1.1 Desarrollo del protocolo de revisión:

A continuación, se detallarán los pasos definidos como parte del protocolo de la revisión sistemática, divididos en: identificación de palabras clave, bases de datos electrónicos y criterios de selección (inclusión y exclusión).

Para la identificación de palabras clave, se utilizó las frases: Static application security testing, Static code analysis, Source code security analysis, Static analysis tools, Static vulnerability analysis.

Asimismo, las bases de datos electrónicos elegidas para esta revisión son EBSCO y Scopus. Para los criterios de selección, se dividió en dos grupos: criterios de inclusión y exclusión. Para los criterios de inclusión se consideró que los artículos tengan como máximo 5 años de antigüedad, que estén en idioma inglés y español, que sean estudios primarios y revisiones publicados en revistas científicas e investigaciones que se centren específicamente en modelos de pruebas de seguridad estática, así como estar realizados en diferentes países y contextos geográficos. Por otro lado, para los criterios de exclusión se consideró que los artículos no estén disponibles como Acceso Abierto o en forma de texto completo, investigaciones duplicadas o redundantes.

Fase II. Realización de la Revisión

A continuación, se describirá a detalle los pasos realizados como parte del desarrollo de la revisión sistemática.

2.2.1 Identificación de los estudios:

Luego de aplicar los criterios de inclusión y exclusión, se obtuvieron 228 artículos, tal como se muestra en la Tabla 2:

Tabla 2: Primera selección de estudios.
Primera selección de estudios.

Selección de los estudios:

Luego de identificar los estudios, se realizó el procedimiento de selección (ver Fig. 1) considerando como guía el que se encuentra en el artículo “Gamificación en la enseñanza de las matemáticas: una revisión sistemática” de Holguín [11] y se obtuvo la lista final de 41 artículos, tal como se muestra en la Tabla 3.

Procedimiento de selección para la revisión sistemática
Fig 1: Procedimiento de selección para la revisión sistemática

Tabla 3: Selección final de estudios.
Selección final de estudios.

Evaluación de la calidad de los estudios:

Para obtener la lista final de artículos para la revisión mencionada que hace referencia a la tabla 3, se definió el instrumento de evaluación de calidad compuesto de 10.