Artículo original
Recepción: 30 Junio 2021
Aprobación: 01 Octubre 2021
RESUMEN: En el presente trabajo se realiza una sistematización de los principales riesgos de seguridad que pueden estar asociados a las pruebas de penetración en aplicaciones web. Para la realización del estudio se consultaron fuentes bibliográficas y reportes de un alto nivel científico y técnico. Se identificaron y describieron 31 riesgos clasificados en dos grupos: los asociados a daños directos a la confidencialidad, integridad y disponibilidad de la información de la aplicación web y aquellos relacionados con la realización de una prueba de penetración deficiente y cuyos resultados parciales también afectan de manera indirecta la seguridad web; estos últimos fueron dividido en cuanto a riesgos de alcance y tiempo, infraestructura tecnológica y personal. Para el tratamiento de los riesgos descritos, se brinda un conjunto de 14 recomendaciones bases para la conformación de una estrategia de mitigación en función de los escenarios de pruebas. Se particulariza también en los modos de aplicación de las herramientas automatizadas de evaluación de vulnerabilidades para limitar los daños en las aplicaciones web. Los resultados alcanzados tienen una alta pertinencia dada por la necesidad de los implicados en los procesos de pruebas de penetración de contar con una base de partida conceptual que favorezca el tratamiento de riesgos y contextualice mejor las decisiones tomadas en función de solucionar las vulnerabilidades de seguridad halladas a través de este tipo de evaluación de seguridad.
Palabras clave: aplicaciones web, mitigación de riesgos, pruebas de penetración, riesgos de seguridad, seguridad web.
ABSTRACT: This paper systematizes the main security risks that may be associated with penetration testing in web applications. Bibliographic sources and reports of a high scientific and technical level were consulted for the study. Thirty-one risks were identified and described, classified into two groups: those associated with direct damage to the confidentiality, integrity and availability of web application information and those related to the performance of a deficient penetration test and whose partial results also indirectly affect the security of web portals, the latter were divided into risks of scope and time, technological infrastructure and personnel. For the treatment of the described risks, a set of 14 basic recommendations is provided for the conformation of a mitigation strategy according to the existing test scenarios. It also focuses on how to apply automated vulnerability assessment tools to limit damage to web applications. The results achieved are highly relevant given the need for those involved in penetration testing processes to have a conceptual starting point that favors the treatment of risks and better contextualizes the decisions taken in order to solve the security vulnerabilities found through this type of security assessment.
Keywords: penetration testing, risk mitigation, security risks, web applications, web security.
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:
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:



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:

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:

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
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):
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.
Agradecimientos
Esta investigación se llevó a cabo en el marco del proyecto de investigación institucional PI223LH001-11 Metodología Ágil para Pruebas de Penetración en Aplicaciones Web (MAPPAW)
REFERENCIAS
Alsmadi, I. (2019). The NICE Cyber Security Framework: Cyber Security Intelligence and Analytics. Gewerbestrasse (Suiza): Springer.
Antunes, N., & Vieira, M. (2017). Designing vulnerability testing tools for web services: approach, components, and tools. International Journal of Information Security, 16(4), 435-457. doi:10.1007/s10207-016-0334-0
Bari, M. A., & Ahamad, S.2021 Study of Ethical Hacking and Management of Associated Risks.
Blackwell, C. (2014). Towards a Penetration Testing Framework Using Attack Patterns. In Cyberpatterns (pp. 135-148). Switzerland: Springer.
Dalalana Bertoglio, D., & Zorzo, A. F. (2017). Overview and open issues on penetration test. Journal of the Brazilian Computer Society, 23(1), 1-16. doi:10.1186/s13173-017-0051-1
DeMarco, J. V. (2018). An approach to minimizing legal and reputational risk in Red Team hacking exercises. Computer Law and Security Review, 34(4), 908-911. doi:10.1016/j.clsr.2018.05.033
González Brito, H. R., & Montesino Perurena, R. (2018). Capacidades de las metodologías de pruebas de penetración para detectar vulnerabilidades frecuentes en aplicaciones web. Revista Cubana de Ciencias Informáticas,12(4), 52-65.
Hasan, A., & Meva, D. (2018). Web Application Safety by Penetration Testing. International Journal of Advanced Studies of Scientific Research, 3(9).
Jansen, S., Cusumano, M., & Popp, K. M. (2019). Managing Software Platforms and Ecosystems. IEEE Software, 36(3), 17-21. doi:10.1109/MS.2019.2891795
Kao, D., Wang, Y., Tsai, F., & Chen, C. (2018). Forensic analysis of network packets from penetration test toolkits. In 2018 20th International Conference on Advanced Communication Technology (ICACT) (pp. 363-368). Nueva York, EE.UU: IEEE.
Kettani, H., & Wainwright, P. (2019). On the top threats to cyber systems. Paper presented at the 2019 IEEE 2nd International Conference on Information and Computer Technologies, ICICT 2019.
Knowles, W., Baron, A., & McGarr, T. (2016). The simulated security assessment ecosystem: Does penetration testing need standardisation? Computers & Security, 62, 296-316. doi:10.1016/j.cose.2016.08.002
Kothia, A., Swar, B., & Jaafar, F. (2019). Knowledge Extraction and Integration for Information Gathering in Penetration Testing. Paper presented at the 2019 IEEE 19th International Conference on Software Quality, Reliability and Security Companion (QRS-C).
Kumar, R., & Tlhagadikgora, K. (2019). Internal Network Penetration Testing Using Free/Open Source Tools: Network and System Administration Approach, Singapore.
Laidlaw, G., & Shoemaker, D. (2020). Software assurance: the things a manager needs to know. EDPACS, 61(4), 1-8. doi:10.1080/07366981.2020.1753283
Manaseer, S., K.Al Hwaitat, A., & Jabri, R. (2018). Distributed Detection and prevention of Web Threats in Heterogeneous Environment. 12, 13. doi:10.5539/mas.v12n10p13
Mansfield-Devine, S. (2017). Open source software: determining the real risk posed by vulnerabilities. Network Security, 2017(1), 7-12. doi:10.1016/S1353-4858(17)30005-3
Mansfield-Devine, S. (2018). Friendly fire: how penetration testing can reduce your risk. Network Security, 2018(6), 16-19. doi:10.1016/S1353-4858(18)30058-8
Miaoui, Y., & Boudriga, N. (2019). Enterprise security investment through time when facing different types of vulnerabilities. Information Systems Frontiers, 21(2), 261-300. doi:10.1007/s10796-017-9745-3
Murthy, P., & Shilpa, R. (2018). Vulnerability Coverage Criteria for Security Testing of Web Applications. Paper presented at the 2018 International Conference on Advances in Computing, Communications and Informatics (ICACCI).
Negi, R., Kumar, P., Ghosh, S., Shukla, S. K., & Gahlot, A. (2019). Vulnerability Assessment and Mitigation for Industrial Critical Infrastructures with Cyber Physical Test Bed. In 2019IEEE International Conference on Industrial Cyber Physical Systems (ICPS) (pp. 145-152). Nueva York, EE.UU: IEEE.
Nieles, M., Dempsey, K., & Pillitteri, V. (2017). An introduction to information security. Retrieved from PMI. (2017). A Guide to the Project Management Body of Knowledge (PMBOK® Guide) (6 ed.). Pensilvania (EE.UU): Project Management Institute.
PTES.(2017). The Penetration Testing Execution Standard Documentation. Retrieved from http://bit.ly/3qmRJXY
Rahalkar, S. A. (2016). Certified Ethical Hacker (CEH) Foundation Guide. Pune (India): Springer.
Saha, S., Das, A., Kumar, A., Biswas, D., & Saha, S. (2020). Ethical Hacking: Redefining Security in Information System, Singapore.
Shah, M., Ahmed, S., Saeed, K., Junaid, M., Khan, H., & Ata Ur, R. (2019). Penetration testing active reconnaissance phase - Optimized port scanning with nmap tool. In 2019 2nd International Conference on Computing, Mathematics and Engineering Technologies, iCoMET 2019 (pp. 1-6). Nueva York, EE.UU: IEEE.
Shon, M. D. (2019, 2-5 July 2019). Information Security Analysis as Data Fusion. Paper presented at the 2019 22th International Conference on Information Fusion (FUSION).
Sina, B. J. (2019). Identifying the Efficacy of Various Penetration Testing Practices. Utica College,
Stallings, W., & Brown, L. (2018). Computer Security: Principles and Practice (4 ed.). New York (EE.UU): Pearson.
Such, J. M., Gouglidis, A., Knowles, W., Misra, G., & Rashid, A. (2016). Information assurance techniques: Perceived cost effectiveness. Computers & Security, 60, 117-133. doi:10.1016/j.cose.2016.03.009
Thakre, S., & Bojewar, S. (2018). Studying the Effectiveness of Various Tools in Detecting the Protecting Mechanisms Implemented in Web-Applications. In 2018 International Conference on Inventive Research in Computing Applications (ICIRCA) (pp. 1316-1321). Nueva York, EE.UU: IEEE.
Türpe, S., & Eichler, J. (2009, 4-6 Sept. 2009). Testing Production Systems Safely: Common Precautions in Penetration Testing. Paper presented at the 2009 Testing: Academic and Industrial Conference - Practice and Research Techniques.
Work, J. (2019, 3-4 June 2019). In wolf's clothing: Complications of threat emulation in contemporary cyber intelligence practice. Paper presented at the 2019 International Conference on Cyber Security and Protection of Digital Services (Cyber Security).
Wu, Y., Sun, Y., Huang, C., Jia, P., & Liu, L. (2019). Session-Based Webshell Detection Using Machine Learning in Web Logs. Security and Communication Networks, 2019, 11. doi:10.1155/2019/3093809
Yin, J., Lv, H., Zhang, F., Tian, Z., & Cui, X. (2018). Study on Advanced Botnet Based on Publicly Available Resources. Paper presented at the 20th International Conference, ICICS 2018, Lille, France.
Contribuciones de los autores
Notas de autor
*Autor para la correspondencia. (henryraul@uci.cu)
Declaración de intereses