INTRODUCCIÓN
Las aplicaciones web representan una parte importante de los procesos de informatización y transformación digital. En la actualidad, su utilización abarca desde portales web desarrollados a la medida, basados en sistemas de gestión de contenidos de tipo general o especializados, redes sociales, hasta su funcionamiento en forma de paneles de administración de sensores industriales (Flaus, 2019), dispositivos de Internet de las Cosas (Anisetti et al., 2019), Computación en la Nube (Swathy Akshaya & Padmavathi, 2019) y API (Interfaz de Programación de Aplicaciones) para suministrar contenidos a dispositivos móviles (Papadopoulos et al., 2017).
La amplia difusión de las aplicaciones web, unido al valor de la información que gestionan, la han convertido en un objetivo permanente de los ciberataques desde Internet (Bartoli et al., 2018; Jamil, Asif, Ashraf, Mehmood, & Mustafa, 2018; Patel, 2019). Los reportes periódicos de organismos internacionales y de compañías líderes en el campo de la ciberseguridad muestran un crecimiento sostenido de incidentes de seguridad en los que se ven involucradas este tipo de aplicación (Kaspersky, 2020; Nguyen, Lin, & Hwang, 2019; Sucuri.net, 2020; Telefónica, 2020). Por ejemplo, los expertos de Positive Technologies encontraron en el 2019 que la mitad de las aplicaciones web tenían vulnerabilidades de alto riesgo y el 82% de las vulnerabilidades se localizaban en el código fuente (Positive_Technologies, 2020).
Estos resultados fueron confirmados por Acunetix, la cual encontró que el 46% de las aplicaciones web contenían vulnerabilidades de alto riesgo y que el 87% del total contenían vulnerabilidades de riesgo medio (Acunetix, 2019). Este alto porcentaje de errores en el código fuente sugiere que las revisiones realizadas no son suficientes para detectar vulnerabilidades durante el desarrollo de software (Bishop & Rowland, 2019; Horton, 2020; Mohammed, Niazi, Alshayeb, & Mahmood, 2017; Muniz et al., 2018; Venson, Guo, Yan, & Boehm, 2019).
Para identificar las vulnerabilidades y fortalecer la seguridad de las aplicaciones web se aplican diversos controles de seguridad (Montesino Perurena, Baluja García, & Porvén Rubier, 2013) dentro de los cuales se encuentran las pruebas de penetración (Casola, De Benedictis, Rak, & Villano, 2018; Haber & Hibbert, 2018).
A pesar de ser una práctica reconocida en el campo de la ciberseguridad, la aplicación de las pruebas de penetración tiene asociada un grupo de riesgos que pueden afectar tanto a los sistemas objetivos como el propio proceso de evaluación, lo que puede conllevar afectaciones debido a posibles daños provocados a la aplicación web o la obtención de resultados deficientes para la toma de decisiones en esta área.
Teniendo en cuenta lo anterior, en las secciones del presente trabajo se enuncian los principales elementos de las pruebas de penetración y se describen los entornos de despliegue en los que comúnmente se ejecutan. A partir de ello se formalizan los principales riesgos de seguridad que pueden afectar directamente a las aplicaciones web y también los que pueden dificultar el proceso de prueba de penetración. Se analiza la probabilidad de ocurrencia de los riesgos en los entornos planteados y finalmente se brindan estrategias para la mitigación de estos. De este modo, los implicados en procesos de pruebas de penetración podrán disponer de una base de partida suficiente para favorecer el tratamiento de riesgos y contextualizar mejor la toma de decisiones en función de solucionar las vulnerabilidades de seguridad halladas a través de este tipo de evaluación de seguridad.
MÉTODOS O METODOLOGÍA COMPUTACIONAL
Para la realización del estudio se establecieron tres preguntas de investigación:
¿Las pruebas de penetración pueden afectar la seguridad de las aplicaciones web?
¿Cuáles pueden ser los riesgos de seguridad que pueden estar presentes durante una prueba de penetración web?
¿Qué elementos pueden minimizar la ocurrencia de los riegos de seguridad durante una prueba de penetración web?
Para la realización de la investigación se consultaron diferentes fuentes de información, principalmente memorias de conferencias, simposios y artículos de revistas indexadas en bases de datos referenciadas tales como ACM Digital Library, IEEE Xplore, Scopus y Springer Link, así como reportes de seguridad de reconocidas compañías en el campo de la ciberseguridad a nivel mundial.
Para la selección de las fuentes bibliográficas se utilizaron diferentes combinaciones de las siguientes cadenas de búsqueda:
Pruebas de penetración: penetration test, pentesting, ethical hacking, ethical hacker, offensive security
Web: web, website
Evaluación de vulnerabilidades: vulnerability assessment, vulnerabilities testing, security assessment, security testing
Problemas: risks, issues, problems
A partir de estas búsquedas se aplicaron criterios de selectividad para utilizar solo documentos relevantes para la investigación.
RESULTADOS Y DISCUSIÓN
Pruebas de Penetración
Las pruebas de penetración constituyen un proceso realizado por especialistas de seguridad para garantizar que los sistemas, activos, servicios y otros elementos en redes de datos puedan responder ante los distintos tipos de ciberataques a los que pueden estar expuestos (Alsmadi, 2019). Es por ello que deben simular las acciones típicas que puede llevar a cabo un adversario para comprometer los sistemas (Kettani & Wainwright, 2019; Saha, Das, Kumar, Biswas, & Saha, 2020). La aplicación de las pruebas de penetración brinda ventajas para la organización como: la concienciación sobre los problemas de ciberseguridad existentes, la comprobación de las capacidades para la detección de intrusiones y el apoyo a la alta gerencia en los procesos de toma de decisiones en este campo (Kumar & Tlhagadikgora, 2019).
Las pruebas de penetración están compuestas por una fase de planificación donde se determinan los objetivos a alcanzar y se crean las condiciones técnicas y organizativas necesarias. A continuación, se desarrolla la fase de descubrimiento de vulnerabilidades mediante el escaneo y la recopilación de información sobre los sistemas. Posteriormente en la fase de ejecución se realiza la comprobación de las vulnerabilidades previamente descubiertas, incluyendo la explotación activa de estas. Por último, en la fase de documentación se emite un reporte con la caracterización de las vulnerabilidades encontradas, los riesgos que representan para la organización y posibles vías para su solución (Murthy & Shilpa, 2018).
La aplicación de las pruebas de penetración web puede desarrollarse básicamente en tres entornos de despliegue con características organizativas y tecnológicas diferenciadoras, a continuación, se describen los mismos.
Entorno de desarrollo
Se caracteriza por contar con las herramientas, servidores y servicios propios del proceso de desarrollo de software para la realización de la programación, integración y pruebas correspondientes. El producto de software no está terminado y por tanto no se aplican mecanismos de seguridad para proteger su ejecución y desempeño. El código fuente de la aplicación web sufre cambios continuos, ya sea por el proceso de codificación como por las probables modificaciones del alcance del producto acordado. Esta infraestructura, por norma general, no está diseñada para soportar cargas reales de uso intensivo.
Entorno de Prueba
Se caracteriza por contar con una infraestructura tecnológica que simula las condiciones de un despliegue en producción y presta especial atención a las medidas de configuración segura. Es el entorno ideal para hacer las pruebas de penetración debido a que un daño en las configuraciones, datos o código no debería afectar las operaciones de la organización. Sin embargo, es necesario señalar que no siempre es posible reproducir todas las situaciones reales que pueden presentarse debido a restricciones económicas para disponer del equipamiento y la integración con otros softwares necesarios.
Entorno de Producción
Es un entorno real de despliegue donde la aplicación web forma parte de un ecosistema de software (Jansen, Cusumano, & Popp, 2019) y está soportando procesos operacionales de la organización y cuyas fallas ocasionará afectaciones a su continuidad, provocando daños temporales o permanentes de diferentes tipos. Las pruebas de penetración deben planificarse cuidadosamente en todos los niveles y áreas involucradas, manteniéndose dentro de los límites de las regulaciones vigentes.
En los entornos de desarrollo, prueba y producción pueden encontrarse diferentes grupos de riesgos de seguridad y de procesos asociados a las pruebas de penetración los cuales son abordados en las siguientes secciones.
Riesgos en Pruebas de Penetración
Diversos autores han planteado los retos y deficiencias que se encuentran durante la utilización de las metodologías de pruebas de penetración en entornos reales y ante determinados productos de software como las aplicaciones web (Antunes & Vieira, 2017; Dalalana Bertoglio & Zorzo, 2017; DeMarco, 2018; González Brito & Montesino Perurena, 2018; Knowles, Baron, & McGarr, 2016; Mansfield-Devine, 2017; Rahalkar, 2016). Las pruebas de penetración engloban un conjunto de acciones sobre los sistemas y redes de datos, muchas de las cuales pueden generar efectos colaterales no deseados (Blackwell, 2014). El empleo de herramientas automatizadas también representa una sobrecarga anómala de tramas de red (Kao, Wang, Tsai, & Chen, 2018; Shah et al., 2019). Los contenidos de las peticiones por lo general, causan efecto en las aplicaciones web, en forma de adición, modificación o eliminación de los datos contenidos (Negi, Kumar, Ghosh, Shukla, & Gahlot, 2019; Thakre & Bojewar, 2018).
Las peticiones masivas sobre los sistemas sobrecargan los servidores de aplicaciones y sistemas de gestión de bases de datos, afectando tanto la continuidad operacional de los procesos que soporta la aplicación web sujeta a evaluación (Laidlaw & Shoemaker, 2020), como otras con las cuales pueda estar integrada en el ecosistema de software de la organización (Jansen et al., 2019) o comparta recursos comunes en la infraestructura tecnológica (Manaseer, K.Al Hwaitat, & Jabri, 2018; Mansfield-Devine, 2018; Türpe & Eichler, 2009).
Resulta evidente, por tanto, que los especialistas de seguridad, en muchos casos deben evitar realizar acciones que un adversario no tendría reparos en ejecutar, lo que puede provocar la distorsión del nivel de semejanza con la realidad que puede alcanzarse y, por ende, afectar la calidad de los resultados esperados para fortalecer eficazmente la seguridad de las aplicaciones web (Hasan & Meva, 2018). Los adversarios además no tienen limitaciones de tiempo para encontrar una vulnerabilidad (Miaoui & Boudriga, 2019), sin embargo, las pruebas de penetración tienen ventanas de tiempo reducidas y muchas veces insuficientes para analizar con suficiente nivel de detalles todos los problemas que pueden estar presente, y los reportes finales se hacen con los datos obtenidos en los escaneos automatizados de vulnerabilidades (Knowles et al., 2016).
Otro aspecto importante surge de la posibilidad de que la organización, debido a su objeto social, no cuente con personal capacitado para comprender el contexto en que se desarrolló la prueba de penetración y por tanto, pueden encontrarse deficiencias en la aplicación de las recomendaciones de los reportes emitidos (Sina, 2019). Por este motivo existen otros riesgos asociados al propio proceso de pruebas de penetración (Such, Gouglidis, Knowles, Misra, & Rashid, 2016; Work, 2019). A continuación, se profundiza en ambos grupos de riesgos.
Riesgos de seguridad en las aplicaciones web
Desde la dimensión de la aplicación web como producto de software, los riesgos de seguridad pueden agruparse según el nivel de afectación que pueden causar a la confidencialidad, integridad y disponibilidad en los datos y procesos relacionados con la aplicación web. En las Tabla 1, Tabla 2 y Tabla 3 se enuncian los principales riesgos de seguridad relacionados:
Tabla 1 Riesgos de seguridad a la confidencialidad que pueden afectar a la aplicación web durante una prueba de penetración.

Tabla 2 Riesgos de seguridad a la integridad que pueden afectar a la aplicación web durante una prueba de penetración.

Tabla 3 Riesgos de seguridad a la disponibilidad que pueden afectar a la aplicación web durante una prueba de penetración.

Riesgos que Afectan el Proceso de Pruebas de Penetración en las Aplicaciones Web
La gestión del proceso de pruebas de penetración también está sujeta a riesgos que pueden retrasar o impedir la ejecución normal de las actividades a realizar en cada fase, limitar el alcance y los resultados esperados o el tratamiento posterior de las vulnerabilidades detectadas; estos son descritos a continuación.
Riesgos de Alcance y Tiempo
El alcance, desde una visión de proyecto, consiste en el trabajo que debe realizarse para crear un producto o servicio con las prestaciones solicitadas (PMI, 2017; PTES, 2017). Su contextualización en la prueba de penetración estará definida por el conjunto de pruebas de seguridad y tareas de soporte a las mismas que deben realizarse. El tiempo, por consiguiente, abarca el plazo para conseguir dicho propósito. Partiendo de lo anterior, pueden identificarse varios riesgos que afectan el alcance y tiempo, los cuales se enumeran en la Tabla 4.
Riesgos de Infraestructura Tecnológica
Las características de la infraestructura tecnológica pueden generar riesgos que dificulten la ejecución de la prueba de penetración en aplicaciones web. Estos riesgos se enumeran en la Tabla 5:
Tabla 5 Riesgos de la infraestructura tecnológica que pueden afectar la ejecución de las pruebas de penetración.

Riesgos asociados al personal
Tener en cuenta el factor humano es esencial en cualquier proceso y por tanto en una prueba de penetración en aplicaciones web. En la Tabla 6 se enuncian los principales riesgos asociados:
Tabla 6 Riesgos asociados al personal que pueden afectar la ejecución de las pruebas de penetración.

Estrategia de Mitigación de Riesgos
Para el tratamiento de los riesgos descritos, la organización puede establecerse diferentes estrategias que pueden contribuir a minimizar los riesgos planteados.
Mitigación de Riesgos de Seguridad en Pruebas de Penetración en Aplicaciones Web
Establecimiento de acuerdos de confidencialidad: Como parte de los preparativos de la prueba de penetración los especialistas de seguridad firman acuerdos de confidencialidad alineados con las regulaciones y leyes vigentes, comprometiéndose a no divulgar ni conservar cualquier tipo de información obtenida.
Renovación de las credenciales de usuarios y servicios: La organización sustituye las credenciales de acceso y de conexión con otros servidores (ej. sistemas de gestión de bases de datos) en la aplicación web, para garantizar que esta información pierda validez.
Restricción de acceso desde Internet: Si es imprescindible comprobar la explotación de vulnerabilidades que puedan exponer información sensible de cara a Internet de una aplicación web desplegada en una infraestructura de producción, deben definirse mecanismos de restricción para evitar el acceso desde Internet de los motores de búsqueda e indexación.
Reforzamiento de la política de respaldo y recuperación de la información: Se ejecutan procedimientos reforzados de respaldo de la información durante la ejecución de las pruebas de seguridad, de manera que, ante la ocurrencia de algún daño, esta pueda ser recuperada rápidamente.
Ejecución de las pruebas de seguridad invasivas en periodos menos riesgosos para la organización: Estas pruebas se planifican para ser ejecutadas fuera del horario laboral, de este modo se evita afectar los procesos de la entidad y se establece un margen de tiempo para la recuperación a partir de los respaldos realizados si se produjera algún daño.
Mapeo de sistemas relacionados para minimizar daños colaterales: La organización realiza un análisis de las dependencias que tiene la aplicación web objeto de la prueba de penetración con otros sistemas y servicios que puedan sufrir efectos colaterales con las pruebas de seguridad, de forma tal que puedan diseñarse acciones para garantizar la continuidad de los procesos si esto ocurre.
Filtrado de trazas de seguridad: Se aplicarán configuraciones específicas durante el tiempo que dure la prueba de penetración para evitar contaminar el análisis continuo de las trazas de seguridad y los comportamientos anómalos con aquellas acciones propias de la prueba de penetración.
Establecimiento de condiciones tecnológicas en el entorno de pruebas: Debe asegurarse que el entorno donde está desplegada la aplicación web cumpla con los requerimientos necesarios para soportar de forma razonable las sobrecargas de peticiones que deben generarse y que no dificulten la ejecución de las pruebas de seguridad.
Completamiento de bases de datos de prueba y credenciales de acceso: En los entornos de desarrollo y de prueba deben garantizarse juegos de datos que permitan comprobar todas las funcionalidades de la aplicación para abarcar en un menor tiempo las funcionalidades existentes.
Establecimiento del contexto de utilización de los resultados: En la fase de preparación debe definirse el alcance de los resultados que se pueden obtener según el entorno de despliegue facilitado por la organización y de este modo contextualizar como puede utilizarse los resultados obtenidos.
Estabilización del entorno de despliegue: La prueba de penetración no debe realizarse hasta tanto no se hayan estabilizado todos los componentes en el entorno de despliegue y esto no debe variar hasta el fin del proceso de evaluación. Debe prohibirse cualquier actividad de mantenimiento.
Configuración de los mecanismos de seguridad externos: Los administradores de la infraestructura tecnológica establecen configuraciones permisivas que evitan ralentizar o impedir las pruebas de seguridad desde direcciones IP previamente convenidas.
Adhesión a una metodología de prueba de penetración: La prueba de penetración debe alinearse a una metodología descrita y que pueda ser de conocimiento de todos los implicados para lograr un entendimiento común de las acciones que serán llevadas a cabo, planificar mejor todas las condiciones organizativas y técnicas necesarias para ello, establecer un mecanismo de comunicación continuo, así como garantizar la auditabilidad de la prueba de penetración, aumentando la transparencia sobre las conclusiones reflejadas en el reporte final.
Utilización de consultores externos: La organización puede apoyarse en consultores externos para que le ayuden a evaluar el resultado de la prueba de penetración y puedan asesorar su traducción en políticas y controles técnicos efectivos para erradicar las vulnerabilidades encontradas.
Las herramientas automatizadas de seguridad desempeñan un papel importante durante una prueba de penetración, por este motivo, es necesario complementar estas medidas con el establecimiento de estrategias para focalizar su uso y ejecución (Bari & Ahamad; Hasan & Meva, 2018; Kothia et al., 2019; Manaseer et al., 2018; Mansfield-Devine, 2018; Miaoui & Boudriga, 2019; Nieles, Dempsey, & Pillitteri, 2017; PMI, 2017; Shon, 2019; Sina, 2019; Stallings & Brown, 2018; Such et al., 2016; Türpe & Eichler, 2009; Work,2019; Wu et al., 2019; Yin et al., 2018):
Inferencia de vulnerabilidades mediante interacciones de bajo impacto: Se extrae información de las peticiones HTTP resultantes de aplicar dinámicas similares a las realizadas por un usuario común. En caso de aplicaciones web publicadas en Internet se recolecta datos presentes en motores de búsqueda. A partir del conocimiento adquirido se infieren las vulnerabilidades presentes.
Secuenciación de las pruebas de seguridad: Las pruebas de seguridad son segmentadas para impedir que la ejecución paralela de las pruebas, ya sea realizadas por una herramienta o por varias al mismo tiempo, generen efectos no deseados en la aplicación web.
Disminución de la frecuencia de pruebas de seguridad por unidad de tiempo: Las herramientas de pruebas de seguridad son configuradas para emitir un menor número de peticiones que las habituales, de manera que no interfieran significativamente en el rendimiento de la aplicación web.
Explotación selectiva de vulnerabilidades: Los especialistas de seguridad se concentran en explotar vulnerabilidades teniendo en cuenta criterios específicos de selección.
Establecimiento de mecanismos de interrupción y reanudación de las pruebas de seguridad: Las ejecuciones de las pruebas de seguridad se diseñan para entrar en un estado de inactividad si es detectado algún comportamiento anómalo que pueda indicar afectaciones para luego reanudarse una vez que la situación haya sido resuelta.
Automatización de casos de pruebas de seguridad: Se diseñan y programan pruebas de seguridad mediante marcos de trabajo asociados a la tecnología utilizada. Estas acciones resultan muy efectivas en el entorno de desarrollo y pueden extenderse a los entornos de prueba y producción.
Evasión primaria de los mecanismos de bloqueo: La secuencia de pruebas de seguridad se adapta para dejar la evaluación de los mecanismos de bloqueos en un plano posterior y así impedir la inhabilitación de las credenciales de acceso o el bloqueo de las direcciones IP utilizadas.
CONCLUSIONES
Las pruebas de penetración constituyen un proceso importante para evaluar la seguridad de las aplicaciones web, pero existen diferentes riesgos que se deben tener en cuenta. En función de ello, en el presente trabajo se definieron 15 riesgos que pueden afectar la seguridad de las aplicaciones web y 16 riesgos que pueden retrasar o impedir la ejecución normal de las actividades a realizar en cada fase, limitar el alcance y los resultados esperados o el tratamiento posterior de las vulnerabilidades detectadas. Posteriormente se presentaron diferentes acciones y estrategias que pueden ser llevadas a cabo para mitigar estos riesgos.
A partir de los resultados aquí obtenidos, los implicados en procesos de pruebas de penetración podrán disponer de una base de partida que favorezca el tratamiento de riesgos y contextualizar mejor la toma de decisiones en función de solucionar las vulnerabilidades de seguridad halladas a través de este tipo de evaluación de seguridad.