Artículo de Investigación DOI: https://doi.org/10.61154/holopraxis.v9i1.3865
Análisis forense de sistemas y seguridad en aplicaciones web: Caso de estudio de UbiDesk
Forensic analysis and security in web applications: Case study of UbiDesk
Galo Hernán Puetate-Huera a, Luis David Narváez-Erazo b,
Bryan Anderson Vilañez-Ordoñez c, Edwin Mauricio Lucio-Vásquez d
a Pontificia Universidad Católica del Ecuador, Ibarra, Imbabura, Ecuador, Email: gpuetate@pucesi.edu.ec, Orcid: https://orcid.org/0009-0000-4986-9477
b Pontificia Universidad Católica del Ecuador, Ibarra, Imbabura, Ecuador, Email: ldnarvaez@pucesi.edu.ec, Orcid: https://orcid.org/0009-0004-2758-6360
c Pontificia Universidad Católica del Ecuador, Ibarra, Imbabura, Ecuador, Email: bavilanez@pucesi.edu.ec, Orcid: https://orcid.org/0009-0004-1217-8348
d Pontificia Universidad Católica de Cuenca, Cuenca, Azuay, Ecuador, Email: edwin.lucio.00@est.ucacue.edu.ec, Orcid: https://orcid.org/0009-0008-4308-4415
Recibido: 15 de septiembre de 2024
Aprobado: 30 de noviembre de 2024
RESUMEN
La seguridad de las aplicaciones web es un aspecto crítico para el funcionamiento de las organizaciones, debido al auge de la digitalización y la creciente dependencia de soluciones tecnológicas basadas en diversas aplicaciones. Esto ha hecho necesario abordar las vulnerabilidades que comprometen la integridad de la información y la confianza de los usuarios. La investigación tuvo como objetivo realizar un análisis forense del código fuente y los procesos de la aplicación UbiDesk de la empresa UboraTech, con el fin de identificar vulnerabilidades, fallos y errores en la seguridad de la información, garantizando así la disponibilidad, integridad y confidencialidad de los datos utilizados por la aplicación. La metodología empleada consistió en un análisis estático y dinámico de código fuente utilizando la herramienta SonarQube, que evaluó el código de la aplicación en comparación con estándares de seguridad reconocidos como OWASP donde se incluyó la identificación de fallas, riesgos y vulnerabilidades basadas en las mejores prácticas en ciberseguridad. Los resultados obtenidos revelaron que la aplicación presenta varias vulnerabilidades críticas que comprometen la seguridad de la información. Estas fallas no solo impactan en la pérdida de datos, sino que también representan un riesgo significativo para la privacidad de los usuarios y la reputación de la empresa. A partir de los hallazgos encontrados con el análisis técnico se desarrolló un conjunto de acciones correctivas para mejorar la seguridad del código fuente de UbiDesk mediante un enfoque centrado en la gestión de la seguridad, mitigando los desafíos asociados con la seguridad del código de la aplicación.
Descriptores: Aplicación Informática, Software de código abierto, Codificación, Protección de datos, Procesamiento de datos. (Tesauro UNESCO)
ABSTRACT
The security of web applications is a critical aspect for the functioning of organizations, due to the rise of digitalization and the increasing dependence on technological solutions based on various applications. This has made it necessary to address the vulnerabilities that compromise the integrity of information and the trust of users. The research aimed to conduct a forensic analysis of the source code and processes of the UbiDesk application from the company UboraTech, to identify vulnerabilities, flaws, and errors in information security, thus ensuring the availability, integrity, and confidentiality of the data used by the application. The methodology employed consisted of a static and dynamic analysis of the source code using the SonarQube tool, which evaluated the application's code against recognized security standards such as OWASP, including the identification of flaws, risks, and vulnerabilities based on best practices in cybersecurity. The results revealed that the application presents several critical vulnerabilities that compromise information security. These flaws not only impact data loss but also pose a significant risk to user privacy and the company's reputation. Based on the findings from the technical analysis, a set of corrective actions was developed to improve the security of UbiDesk's source code through a security management-focused approach, mitigating the challenges associated with the application's code security.
Descriptors: Computer Application, Open-Source Software, Coding, Data Protection, Data Processing. (UNESCO Thesaurus)
INTRODUCCIÓN
La seguridad en aplicaciones web ha sido objeto de estudio en la literatura académica y en la industria, debido al creciente número de incidentes de seguridad que afectan a organizaciones de todos los tamaños North, D. (2018). En la actualidad, la seguridad de la información se ha convertido en una prioridad indiscutible para las organizaciones que operan en el ámbito digital. PonemonInstitute. (2020). Con la rápida digitalización de procesos y el incremento en el volumen de datos utilizados en diversas operaciones y transacciones, especialmente tras la pandemia de COVID-19, las amenazas cibernéticas han evolucionado en sofisticación y frecuencia. Este contexto ha llevado a las empresas a reconocer que una gestión adecuada de la seguridad no es solo una medida de prevención, sino un componente crítico para preservar la confianza de los clientes, la integridad de las operaciones y la reputación en el mercado. Moller, A. (2019). En este sentido, UbiDesk, una aplicación desarrollada por la empresa UboraTech, está diseñada como una plataforma centralizada para la gestión de datos sensibles de sus clientes. Sin embargo, se enfrenta a desafíos significativos, incluyendo la vulnerabilidad ante ataques cibernéticos, errores en el software y factores humanos relacionados con la ciberseguridad.
El análisis forense de la aplicación web de UbiDesk no solo se justifica por la necesidad de identificar vulnerabilidades, sino también por la imperante necesidad de implementar medidas correctivas que minimicen los riesgos y salvaguarden la confidencialidad e integridad de los datos. Así, este análisis se convierte en un paso fundamental para fortalecer la seguridad de la información en un entorno digital cada vez más amenazado. La literatura reciente indica que la implementación de buenas prácticas de seguridad durante el ciclo de vida del desarrollo de software es vital (Narváez et al., 2018). Sin embargo, la realidad muestra que aplicaciones web como UbiDesk son susceptibles a una variedad de vulnerabilidades comunes, tales como inyecciones SQL, configuraciones de seguridad deficientes y la falta de medidas de autenticación robustas (Mingui & You, 2020). Estos desafíos resaltan la importancia no solo de la detección temprana de fallas a través de técnicas de análisis estático y dinámico, sino también de establecer un marco continuo para la evaluación de la seguridad.
En este contexto, el análisis forense de UbiDesk adquiere una relevancia crítica. Utilizando herramientas especializadas, como SonarQube, es posible realizar una evaluación exhaustiva del código, identificando tanto defectos técnicos como brechas de seguridad. Un enfoque sistemático y proactivo en la evaluación de seguridad se vuelve esencial, ya que los datos obtenidos a través de estos análisis pueden guiar la implementación de medidas de remediación eficientes, alineadas con las mejores prácticas de la industria. Es necesario integrar estos procesos de evaluación dentro de una cultura organizacional que priorice la seguridad, garantizando así que las aplicaciones no solo sean funcionales, sino también seguras frente a las crecientes amenazas del entorno digital.
En los últimos años, se ha observado un aumento drástico en la complejidad y frecuencia de los ciberataques. Según el informe de Verizon sobre violaciones de datos, más del 80% de las brechas de datos son causadas por configuraciones incorrectas y la falta de seguridad en el desarrollo (Verizon, B. 2023). Esta estadística resalta la necesidad de un enfoque proactivo en la seguridad de las aplicaciones web, reconociendo que las vulnerabilidades pueden ser explotadas en etapas muy tempranas del ciclo de vida del desarrollo. Investigaciones como las publicadas por OWASP (Open Web Application Security Project) destacan las vulnerabilidades más críticas que afectan a las aplicaciones web, tales como inyección SQL, XSS (Cross-Site Scripting), CSRF (Cross-Site Request Forgery) y problemas de autenticación y gestión de sesiones. Estos problemas, que a menudo se derivan de prácticas de codificación inadecuadas, subrayan la urgencia de incorporar revisiones de seguridad y análisis forenses en la fase de desarrollo.
La implementación de medidas de seguridad no solo ayuda a identificar y mitigar vulnerabilidades antes de que sean explotadas, sino que también contribuye a establecer una cultura de seguridad que prioriza la protección de datos y la integridad de las aplicaciones. En este contexto, el análisis forense, junto con herramientas como SonarQube, ha adquirido relevancia en la identificación de defectos en el código y vulnerabilidades de seguridad. Investigaciones previas han demostrado que el uso de análisis estático y dinámico puede reducir significativamente las brechas de seguridad en aplicaciones web (Kumar et al., 2019).
Sin embargo, se ha planteado una crítica hacia la efectividad de estas herramientas, ya que a menudo generan "falsos positivos". Este fenómeno se refiere a la identificación errónea de problemas de seguridad que en realidad no existen, lo que puede llevar a una mala priorización de las vulnerabilidades a resolver. A pesar de la disponibilidad de estas herramientas y marcos de trabajo, una parte significativa de las brechas de seguridad se atribuye a la falta de capacitación del personal de desarrollo en seguridad de la información. Varios estudios han mostrado que un enfoque educativo que incluya formación continua sobre ciberseguridad puede disminuir las vulnerabilidades inherentes al desarrollo de software (Sinha et al., 2020). No obstante, la investigación sobre la efectividad y la implementación de esta capacitación aún es limitada, lo que restringe el desarrollo de programas integrales que podrían mejorar la seguridad en el desarrollo de aplicaciones.
Si bien el concepto de "seguridad por diseño" ha ganado prestigio, su implementación todavía enfrenta desafíos significativos. Investigaciones sugieren que muchas organizaciones no integran la seguridad en la fase de diseño de sus aplicaciones, lo que resulta en un costo adicional y un aumento en la complejidad de los sistemas al abordar las vulnerabilidades en etapas posteriores Deloitte, inc. (2018). Este enfoque fragmentado evidencia la necesidad de adoptar una cultura organizacional que priorice la seguridad desde las primeras etapas del desarrollo. El estado actual del problema de la seguridad en aplicaciones web muestra avances significativos, pero también resalta áreas críticas que requieren atención. La proliferación de herramientas y técnicas de análisis forense, sumada a la concienciación sobre la importancia de la seguridad, es un paso en la dirección correcta. Verizon, B. (2023). Sin embargo, la efectividad real de estas iniciativas depende de la capacitación adecuada del personal, la integración de la seguridad en el diseño, y la mitigación de falsos positivos en las evaluaciones de riesgo
Por su parte según el Proyecto Abierto de Seguridad de Aplicaciones Web OWASP (2021), las vulnerabilidades comunes en aplicaciones web incluyen la inyección SQL, el Cross-Site Scripting (XSS), y la gestión inadecuada de sesiones. Estas vulnerabilidades no solo representan riesgos para la seguridad de la aplicación, sino que también pueden comprometer la confidencialidad, integridad y disponibilidad de los datos de los usuarios. La incorporación de un enfoque de seguridad durante el ciclo de vida del desarrollo, conocido como Security Development Lifecycle (SDL), es esencial para mitigar estos riesgos.
En el contexto de aplicaciones web, el análisis forense se utiliza para identificar vulnerabilidades y evaluar el impacto de incidentes de seguridad. A través de metodologías forenses, es posible rastrear acciones maliciosas, lo que permite a las organizaciones entender cómo se llevó a cabo un ataque y qué medidas deben implementarse para prevenir futuros incidentes. Las herramientas forenses, como SonarQube, permiten a los desarrolladores identificar defectos en el código que podrían ser explotados (Mason et al., 2018).
El análisis forense en ciberseguridad es una disciplina fundamental que se encarga de investigar y analizar incidentes de seguridad informática, como ciberataques, robos de datos o intrusiones para documentar el incidente, identificar al responsable y tomar medidas preventivas para evitar que se repita. En este aspecto, el análisis forense de la aplicación web UbiDesk tiene como propósito identificar las vulnerabilidades de seguridad que podrían comprometer la integridad y confidencialidad de los datos sensibles gestionados por la plataforma. Utilizando herramientas especializadas como SonarQube, se busca no solo detectar fallas en el código, sino proponer medidas correctivas efectivas que fortalezcan la seguridad de la información. Este estudio pretende contribuir al desarrollo de una cultura organizacional que priorice la seguridad desde las etapas iniciales del ciclo de vida del desarrollo de software, resaltando la importancia de integrar prácticas de seguridad adecuadas para mitigar riesgos en un entorno digital en constante evolución.
MÉTODOS
El análisis forense se ha convertido en una herramienta fundamental en el campo de la ciberseguridad moderna. Este proceso va más allá de simplemente detectar vulnerabilidades y errores en sistemas de software; juega un papel vital en cada etapa de un posible ciberataque, siendo las principales: prevención, respuesta en tiempo real y aprendizaje post-incidente. (Ovallos-Ovallos et al., 2020).
Figura
1
Respuesta del análisis forense para un ciberataque
Elaboración: Los autores
Para llevar a cabo este estudio, se seleccionaron 54.152 líneas código fuente, 544 archivos, 1.516 funciones y 27.874 declaraciones de variables que conforman la aplicación UbiDesk, abarcando las diversas funcionalidades críticas de la aplicación, con el fin de reflejar una representación de su arquitectura y componentes de seguridad. Se utilizaron herramientas especializadas como SonarQube para realizar un análisis del código para detectar defectos técnicos y brechas de seguridad, así como evaluar la calidad de este. Los instrumentos de recolección de información incluyeron análisis estático y dinámico del código, auditorías de configuración de seguridad, y revisiones de documentación técnica relacionada con la aplicación. Además, se llevaron a cabo entrevistas estructuradas con el equipo de desarrollo de UbiDesk, con el objetivo de comprender mejor las prácticas actuales de seguridad implementadas en el desarrollo de la aplicación y los desafíos que enfrentan.
Figura 2
Proceso de análisis de código definido por SonarQube
Elaboración: Los autores
Las fases del proceso de análisis como se muestran en la Figura 2, parten de la definición del entorno de pruebas de UbiDesk y la implementación de estrategias de parametrización de SonarQube. La configuración del SonarQube en el entorno de pruebas de UboraTech, integrándolo con el sistema de control de versiones del software de UboraTech para de esta forma analizar automáticamente el código cada vez que se realiza una nueva versión en el software UbiDesk. Luego de esto, se procedió con la personalización de las reglas de seguridad y los parámetros para evaluar las necesidades específicas, tomando en cuenta tipos de errores, impacto, nivel de vulnerabilidades y prácticas de desarrollo en el código fuente, la configuración del perfil de administrador de calidad (QA) para las revisiones de código.
El análisis del código se realizó de forma automática y continua, proporcionando la retroalimentación inmediata a los desarrolladores clasificando las por prioridad alta, media, baja e informativa identificadas por SonarQube. Dicho análisis permitió evaluar las vulnerabilidades, bugs y malas prácticas de programación, para finalmente realizar la priorización de los problemas basados en su severidad y el riesgo que representan para la aplicación UbiDesk.
RESULTADOS
Los resultados del análisis forense de la plataforma UbiDesk se presentan en las siguientes secciones, donde se describen las vulnerabilidades detectadas y su clasificación según su nivel de riesgo. A partir de este enfoque, se ha utilizado la herramienta SonarQube para realizar un análisis de vulnerabilidades en el código, lo que ha permitido obtener una visión integral del estado de seguridad de la aplicación. El ambiente de desarrollo, en el que esta implementado la plataforma UbiDesk, consta de diferentes tecnologías y herramientas que se detallan en la Tabla 1 que es el ambiente tecnológico en el que se desarrolló el análisis forense de código fuente.
Tabla 1
Ambiente de desarrollo
Lenguaje de programación |
Php 7.4 |
Framework |
CodeIgniter 3.1.13 |
Base de datos |
MariaDB 10.2 |
Patrón de diseño |
MVC (modelo, vista, controlador) |
Metodología de desarrollo |
XP |
Elaboración: Los autores
La configuración de la herramienta SonarQube para el análisis de vulnerabilidades se lo realizó mediante una visión detallada de la calidad y seguridad del código, con el método desencadenado que se detallan en la Tabla 2.
Tabla
2
Método de configuración desencadenado de
SonarQube
Herramienta |
SonarQube |
Método |
Análisis de código desencadenado |
Versión |
10.2.1.78527 |
Elaboración: Los autores
En el análisis con cuentas de riesgo de confianza, se identificaron diversas alertas, clasificadas según su nivel de riesgo Tabla 3.
Tabla
3
Análisis de vulnerabilidades UbiDesk
Confianza |
||||||
Confirmado por Usuario |
Alta |
Medios de comunicación |
Baja |
Total |
||
Riesgos |
Alto |
0 |
0 |
0 |
0 |
0 |
Medio |
0 |
1 |
3 |
1 |
5 |
|
Bajo |
0 |
1 |
5 |
0 |
6 |
|
Informativo |
0 |
1 |
2 |
1 |
4 |
|
Total |
0 |
3 |
10 |
2 |
15 |
Elaboración: Aplicación SonarQube
Por otra parte, del análisis de vulnerabilidades general con respecto a la seguridad se identificaron riesgos y vulnerabilidades que representan un riesgo alto, medio, bajo. La Tabla 4 detalla los tipos de riesgos identificados con respecto a la seguridad de la aplicación UbiDesk, además se detalla el tipo de riesgo, de cada alerta.
Tabla
4
Tipos de alertas de seguridad detectadas
No |
Tipo de alerta |
Riesgo |
Cantidad |
1 |
Inyección SQL |
Alto |
2 |
2 |
Inyección SQL – MySQL |
Alto |
1 |
3 |
Ausencia de fichas (tokens) Anti-CSRF |
Medio |
4 |
4 |
Cabecera Content Security Policy (CSP) no configurada |
Medio |
12 |
5 |
Desconfiguración de Dominio cruzado |
Medio |
5 |
6 |
Falta de cabecera Anti-Clickjacking |
Medio |
6 |
7 |
Filtrado de información en .htaccess |
Medio |
1 |
8 |
Hidden File Found (Archivo Oculto Encontrado) |
Medio |
1 |
9 |
Librería JS Vulnerable |
Medio |
3 |
10 |
Cookie No HttpOnly Flag |
Bajo |
1 |
11 |
Cookie Without Secure Flag |
Bajo |
1 |
12 |
Cookie sin el atributo SameSite |
Bajo |
1 |
13 |
Cross-Domain JavaScript Source File Inclusion |
Bajo |
9 |
14 |
Divulgación de la marca de hora – Unix |
Bajo |
33 |
15 |
Server Leaks Version Information via "Server" HTTP Response Header Field |
Bajo |
53 |
16 |
Strict-Transport-Security Header Not Set |
Bajo |
75 |
17 |
X-Content-Type-Options Header Missing |
Bajo |
51 |
18 |
Authentication Request Identified |
Informativo |
2 |
19 |
Content-Type Header Missing |
Informativo |
2 |
20 |
Divulgación de información - Comentarios sospechosos |
Informativo |
60 |
21 |
GET para POST |
Informativo |
1 |
22 |
Modern Web Application |
Informativo |
2 |
23 |
Re-examine Cache-control Directives |
Informativo |
10 |
24 |
Retrieved from Cache |
Informativo |
8 |
25 |
Session Management Response Identified |
Informativo |
18 |
26 |
User Agent Fuzzer |
Informativo |
24 |
Elaboración: Los autores
La evaluación del riesgo se categorizo mediante factor, calificación, probabilidad, calificación y riesgo con respecto a las vulnerabilidades según el tipo de riesgo que representan. Este enfoque permitió priorizar de las medidas para mitigar las amenazas identificadas. La Tabla 5, detalla dicho análisis, el cual ha revelado una serie de problemas de seguridad en la aplicación UbiDesk.
Tabla
5
Cálculo del riesgo por vulnerabilidad
Tipo de alerta |
Factor impacto |
Calificación |
Probabilidad |
Calificación |
Riesgo |
Inyección SQL |
6.5 |
Alto |
2.63 |
Bajo |
Medio |
Inyección SQL – MySQL |
|||||
Ausencia de fichas (tokens) Anti-CSRF |
3.36 |
Medio |
1.38 |
Bajo |
Medio |
Cabecera Content Security Policy (CSP) no configurada |
|||||
Desconfiguración de Dominio cruzado |
|||||
Falta de cabecera Anti-Clickjacking |
|||||
Filtrado de información en .htaccess |
|||||
Hidden File Found (Archivo Oculto Encontrado) |
|||||
Librería JS Vulnerable |
|||||
Cookie No HttpOnly Flag |
2.75 |
Bajo |
1.38 |
Bajo |
Bajo |
Cookie Without Secure Flag |
|||||
Cookie sin el atributo SameSite |
|||||
Cross-Domain JavaScript Source File Inclusion |
|||||
Divulgación de la marca de hora – Unix |
|||||
Server Leaks Version Information via "Server" HTTP Response Header Field |
|||||
Strict-Transport-Security Header Not Set |
|||||
X-Content-Type-Options Header Missing |
|||||
Authentication Request Identified |
2.75 |
Bajo |
0.88 |
Bajo |
Bajo |
Content-Type Header Missing |
|||||
Divulgación de información - Comentarios sospechosos |
|||||
GET para POST |
|||||
Modern Web Application |
|||||
Re-examine Cache-control Directives |
|||||
Retrieved from Cache |
|||||
Session Management Response Identified |
|||||
User Agent Fuzzer |
Elaboración: Los autores
Por otra parte, se ejecutó el análisis desencadenado mediante el método estático sobre la lógica de programación de la aplicación UbiDesk, el cual proporcionó una visión sobre la calidad y seguridad del código en el que se identificaron las áreas en las que el software tiene vulnerabilidades que se detalla en la Tabla 6.
Tabla 6
Análisis de código por método estático
Herramienta |
SonarQube |
Método |
Análisis de Código estático |
Versión |
10.2.1.78527 |
Elaboración: Los autores
El método estático se enfocó en archivos contenedores de la aplicación UbiDesk, es así como el ámbito de análisis abarcó varios aspectos tales como Application/controllers, Application/models, Application/views y Application/helpers, utilizando dos tipos de análisis, SonarPHP y SonarHtml. La tabla 7 detalla los problemas de seguridad a nivel de código fuente encontrados por el método estático, donde se detalla el tipo de riesgo, a qué regla pertenece, el tipo de problema, el lenguaje de programación y el número de errores encontrados.
Tabla
7
Tipo de vulnerabilidades detectadas
Tamaño del Proyecto |
|
Líneas de Código |
54.152 |
Archivos |
540 |
Funciones |
1.516 |
Declaraciones |
27.874 |
Comentarios |
|
Líneas con comentarios |
3.028 |
Densidad de líneas comentadas |
5,3% |
Bloques de código duplicados |
1.261 |
Líneas de código duplicadas |
24.937 |
Densidad de líneas duplicadas |
23,9% |
Archivos con código duplicado |
203 |
Total, problemas |
15.786 |
Problemas con los bloqueadores |
32 |
Cuestiones críticas |
997 |
Principales problemas |
7.652 |
Problemas menores |
7.093 |
Problemas de información |
12 |
Elaboración: Los autores
El análisis de vulnerabilidades sobre la calidad del código permitió abordar y resolver problemas antes de que se conviertan en fallos críticos o vulnerabilidades explotables. Esto no solo mejora la seguridad y funcionalidad de la aplicación, sino que también contribuyo a la sostenibilidad y escalabilidad del proyecto a largo plazo. En la tabla 8 se detalla la calificación general del proyecto basada en los parámetros de confiabilidad, seguridad, mantenibilidad y la deuda técnica.
Tabla
8
Puntos
de acceso de seguridad
Puntos de acceso de seguridad |
||||
Tipo |
Problema |
Prioridad |
Cantidad |
|
Auth |
Se ha detectado 'contraseña' en el nombre de esta variable, revise esta credencial potencialmente codificada |
Alta |
2 |
|
Weak-cryptography |
Asegúrese de que el uso de este generador de números pseudoaleatorios sea seguro aquí |
Media |
17 |
|
Log-injection |
Asegúrese de que la configuración de este registrador sea segura. |
Baja |
15 |
|
Others |
Asegúrese de que no usar la función de integridad de recursos sea seguro aquí |
Baja |
58 |
|
Calificaciones generales de calidad del código |
||||
Clasificación de confiabilidad |
E |
|||
Clasificación de seguridad |
E |
|||
Clasificación de mantenibilidad |
A |
|||
Deuda Técnica |
85d 2h 41min |
|||
Elaboración: Los autores
Para abordar los riesgos de seguridad se elaboró una propuesta de mejora para los puntos de acceso de seguridad de la aplicación UbiDesk, con el objetivo de reforzar la protección frente a las amenazas y vulnerabilidades identificadas. La propuesta permitió mejorar los puntos de seguridad sin afectar la usabilidad ni la accesibilidad para los usuarios finales. Las acciones específicas se detallan en la Tabla 9.
Tabla 9
Calificación
basada en confiabilidad, seguridad, mantenibilidad y la deuda técnica.
Problema 1 |
Las credenciales no deben estar codificadas de forma rígida |
Solución propuesta |
El problema ha sido identificado en las credenciales de pusher dentro del archivo rjxtools_helper.php en las líneas 846 y 863, para solucionar este problema se debe seguir este procedimiento: 1. Crear en la carpeta ‘maincoregec\application\config’ un archivo llamado pusher.php con las configuraciones respectivas. 2. Modificar ‘maincoregec\application\config\autoload.php’ 3. Modificar ‘maincoregec\ci_core\application\helpers\rjxtools_helper.php’ para llamar la configuración de claves a utilizar dentro de las llamadas de pusher |
Beneficios |
Mantener las claves de servicios como Pusher en la configuración en lugar de en el código mejora la seguridad, facilita la gestión, promueve la mantenibilidad del código y sigue las mejores prácticas de desarrollo seguro. |
Recomendaciones |
Cambiar las credenciales por si estuvieran comprometidas. |
Problema 2 |
Se ha detectado 'contraseña' en el nombre de esta variable, revise esta credencial potencialmente codificada. |
Solución propuesta |
El problema ha sido identificado en las credenciales de Firebase dentro del archivo Firebase_model.php en la línea 20, para solucionar este problema se debe seguir este procedimiento: 1. Crear de la de carpeta ‘maincoregec\application\config’ un archivo llamado firebase.php 2. Modificar ‘maincoregec\application\config\autoload.php’: 3. Modificar ‘maincoregec\ci_core\application\models\Firebase_model.php’ inicializar los valores de las propiedades en el constructor |
Beneficios |
Mantener las claves de servicios como Firebase en la configuración en lugar de en el código mejora la seguridad, facilita la gestión, promueve la mantenibilidad del código y sigue las mejores prácticas de desarrollo seguro. |
Recomendaciones |
Cambiar las credenciales por si estuvieran comprometidas. |
Problema |
Asegúrese de que el uso de este generador de números pseudoaleatorios sea seguro aquí |
Solución propuesta |
En lugar de usar la función rand (); utilizar mt_rand (). |
Beneficios |
La función rand () retorna los mismos valores cada determinado tiempo en caso de que sea usado para claves daría problemas de identidad por eso la opción es usar mt_rand() que tiene algoritmos de generación de números aleatorios mejorados. |
Problema |
Asegúrese de que este algoritmo hash débil no se utilice en un contexto sensible aquí. |
Solución propuesta |
Se recomienda usar algoritmos alternos de encriptación; en lugar de usar md5 o sha1 usar sha512 siempre y cuando sea aplicable y no afecte la funcionalidad del sistema. Original |
Beneficios |
Previene ataques de fuerza bruta y diccionario. |
Problema |
Asegúrese de que la configuración de este registrador sea segura |
Solución propuesta |
Verifique en el código de producción que solo exista un solo lugar donde se establezca el registro de errores. Se han detectado 15 lugares donde se activa para mostrar los errores: ‘ini_set ('display_errors', 1)’; debe eliminar esas líneas. |
Beneficios |
Al usar la línea ‘ini_set ('display_errors', 1)’ se podría mostrar información relevante a usuarios no registrados; al quitar esta línea de los archivos que no sean de configuración garantiza un mejor uso del despliegue de errores y evita mostrar información confidencial. |
Problema |
Asegúrese de que no usar la función de integridad de recursos sea seguro aquí |
Solución propuesta |
Al utilizar recurso de javascript remotos sean seguros a través de la cláusula ‘integrity’. |
Beneficios |
Al utilizar la cláusula integrity se garantiza que los recursos JavaScript remotos se carguen de manera segura y no sean modificados por terceros malintencionados. Esto protege contra ataques de tipo "man-in-the-middle" y asegura la integridad del código JavaScript que se está incorporando en la aplicación. |
Elaboración: Los autores
DISCUSIÓN
La discusión de los resultados obtenidos en el análisis forense de la aplicación web UbiDesk, realizado mediante SonarQube, permite reflexionar sobre el estado de seguridad de la plataforma y sobre la eficacia de las metodologías aplicadas. Los principales hallazgos revelan múltiples vulnerabilidades críticas que comprometen tanto la integridad como la confidencialidad de la información manejada, planteando varios aspectos relevantes para la mejora de la seguridad de la aplicación.
La detección de variables con posibles credenciales codificadas dentro del código fuente subraya un problema crítico en la gestión de la autenticación. Este hallazgo coincide con estudios previos que destacan la importancia de separar las credenciales del código de aplicación para minimizar la exposición de datos sensibles Cloudflare, Inc (2023), las credenciales codificadas representan un riesgo de acceso no autorizado, lo que en muchos casos se debe a prácticas de desarrollo rápido que descuidan las mejores prácticas de seguridad
Otro aspecto encontrado en el uso de generadores de números pseudoaleatorios inseguros en el sistema indica una falta de solidez en los elementos criptográficos de la aplicación. Esta debilidad no solo pone en riesgo la generación de contraseñas temporales, sino también la seguridad en general. En este contexto, es fundamental realizar una revisión y actualización de los algoritmos de generación de números aleatorios para incluir opciones más robustas y seguras. Estudios como los de Kumar et al. (2019) destacan que el uso de funciones como rand () que puede ser problemático, ya que no son criptográficamente seguras, especialmente para aplicaciones que gestionan datos sensibles.
La presencia de configuraciones inseguras en el registrador (display_errors = 1) es un hallazgo que implica un riesgo significativo de exposición de información sensible a usuarios externos. Esta práctica de codificación facilitar los ataques mediante la divulgación de detalles de implementación que pueden ser utilizados para vulnerar la seguridad del sistema. La configuración segura de los registros es fundamental en entornos de producción y se recomienda eliminar cualquier línea que exponga errores públicamente, limitando la visibilidad de estos únicamente a entornos de desarrollo o configuraciones internas.
Por otra parte, la falta de medidas para asegurar la integridad de recursos externos, como scripts JavaScript, que son vulnerables a ataques de tipo "man-in-the-middle" en caso de ser manipulados por terceros. La implementación de la cláusula integrity garantiza que los recursos externos no han sido alterados, lo cual es una medida importante de protección. Según Díaz, J (2024), en el informe sobre seguridad “La ausencia de esta medida es indicativa de un enfoque de seguridad reactivo y destaca la importancia de implementar prácticas de "seguridad por diseño”.
Las calificaciones bajas en confiabilidad (E) y seguridad (E) muestran una falta de madurez en el enfoque de seguridad aplicado en el desarrollo de UbiDesk. Aunque la mantenibilidad del código es alta (A), los problemas de confiabilidad y seguridad revelan una deuda técnica significativa que requiere atención prioritaria. Según los estudios de Narváez et al. (2018), la deuda técnica en seguridad se traduce en un riesgo acumulativo que, si no se aborda adecuadamente, puede afectar tanto la operación del sistema como la reputación de la organización. La deuda técnica de 85 días sugiere que los problemas de seguridad no solo representan un costo en tiempo de remediación, sino también en términos de exposición al riesgo mientras no sean solucionados.
La inyección SQL representa para UbiDesk una de las vulnerabilidades más críticas en la aplicación web debido a que esta tiene la capacidad para comprometer la base de datos y expone la información sensible de los usuarios. Aunque la probabilidad de que ocurra es moderada, el impacto potencial es significativo. Según OWASP (2021), este tipo de vulnerabilidad se puede prevenir mediante el uso de consultas parametrizadas, validación de entradas de usuario y restricciones de privilegios en las bases de datos. De acuerdo con McGraw (2021), la implementación de controles de acceso adecuados y la validación estricta de los datos son aspectos esenciales para mitigar estos riesgos, ya que la inyección SQL permite ejecutar comandos arbitrarios y tomar control de la base de datos. Además, Stallings (2021) enfatiza que las aplicaciones deben adoptar una estrategia de "seguridad por diseño" para reducir la exposición a este tipo de vulnerabilidad, asegurando que los desarrolladores incorporen medidas de protección desde la fase de desarrollo.
Los resultados del análisis de UbiDesk evidencian un sistema con múltiples áreas de mejora en seguridad, donde la implementación de controles de autenticación, el uso de algoritmos criptográficos seguros, y una gestión adecuada de errores y de integridad de recursos pueden mitigar significativamente los riesgos. La adopción de mejores prácticas de desarrollo seguro, junto con una evaluación continua de la seguridad del código, no solo mejorará la confiabilidad de la aplicación, sino que también ayudará a reducir la deuda técnica ya establecer una base sólida para un entorno de desarrollo seguro. Este enfoque permitirá a UboraTech optimizar la seguridad de su plataforma, generando confianza en los usuarios y garantizando la sostenibilidad operativa de UbiDesk en el mercado actual.
CONCLUSIONES
La investigación desarrollada sobre el análisis forense de código y procesos de la aplicación UbiDesk de la empresa UboraTech ha demostrado la importancia crítica de implementar medidas de seguridad robustas en el desarrollo de software. A través del uso de la herramienta SonarQube, se identificaron y abordaron diversas vulnerabilidades, lo que permitió una mejora significativa en la seguridad de la aplicación, especialmente en las áreas de problemas críticos. Sin embargo, a pesar de los avances logrados, persisten problemas menores y principales que requieren una reevaluación continua de las estrategias de seguridad. Esto subraya la necesidad de un enfoque proactivo y adaptativo en la gestión de la seguridad del software, garantizando así la protección de los datos sensibles y la integridad del sistema, en línea con el objetivo general de fortalecer la seguridad de la aplicación UbiDesk.
Se destaca la importancia de la Seguridad de la Información, ya que dentro de la investigación se resalta que la ciberseguridad es un factor crítico para las organizaciones, especialmente en el contexto actual donde la dependencia de sistemas tecnológicos ha aumentado, lo que hace necesario garantizar la disponibilidad, integridad y confidencialidad de los datos.
La identificación de vulnerabilidades a través del análisis forense de código en la aplicación UbiDesk ha revelado problemas críticos, como fallos en la autenticación, configuraciones inseguras y errores de inyección de código. Estos hallazgos subrayan la imperiosa necesidad de adoptar un enfoque proactivo y sistemático en la gestión de la seguridad del software. La implementación de medidas de seguridad robustas y la revisión continua de las prácticas de desarrollo son esenciales para mitigar los riesgos asociados y proteger la integridad de los datos sensibles manejados por la aplicación. Este análisis no solo destaca las debilidades actuales, sino que también establece un camino claro hacia la mejora continua de la seguridad, garantizando así la confianza de los usuarios y la reputación de la empresa UboraTech en el mercado.
El uso de SonarQube facilitó la detección de áreas clave para mejorar, permitiendo a UboraTech implementar medidas correctivas efectivas y priorizar la atención a las vulnerabilidades más severas. Sin embargo, los resultados evidencian que, a pesar de las mejoras significativas en la seguridad del código, persisten problemas menores y principales que requieren una reevaluación continua de las estrategias de seguridad. Esto subraya la necesidad de un compromiso constante con la evaluación y mejora de la seguridad, asegurando así la protección de los datos sensibles y la integridad del sistema, en línea con el objetivo general de fortalecer la seguridad de la aplicación UbiDesk.
Es de gran importancia mencionar que la estrecha colaboración con UboraTech, resultó fundamental no solo para mejorar la seguridad de la aplicación UbiDesk, sino también para garantizar la protección de los datos sensibles y la integridad del sistema para sus usuarios. Esta colaboración permitió un análisis forense detallado del código y los procesos, facilitando la identificación de vulnerabilidades críticas y la implementación de medidas correctivas efectivas. Además, resalta la importancia de la cooperación entre investigadores y empresas en el ámbito de la ciberseguridad, ya que esta sinergia no solo fortalece la seguridad del software, sino que también promueve un entorno más seguro para todos los usuarios. La experiencia adquirida a través de este trabajo conjunto establece un precedente para futuras iniciativas en el sector, subrayando la necesidad de un enfoque colaborativo y proactivo en la gestión de la seguridad de la información.
Conflicto de interés
Los autores no tienen conflictos de interés
Financiación
Este proyecto no contó con ninguna fuente de financiación
Responsabilidades Éticas
El proyecto fue aprobado por el comité de ética de la institución.
REFERENCIAS
Cloudflare, Inc. (2023). Análisis forense digital ¿Cómo se realiza? Técnicas, pasos y mejores prácticas. Cloudflare. https://www.cloudflare.com/es-la
Deloitte, Inc. (2018). The future of cyber risk: A security by design approach. Recuperado de https://www.deloitte.com/global/en/services/risk-advisory/services/cyber-strategic-risk.html
Díaz, J. (2024). En el informe sobre iniciativa de futuro seguro: seis pilares clave de seguridad. Revista Ciberseguridad. https://cdn-dynmedia-1.microsoft.com/is/content/microsoftcorp/microsoft/final/en-us/microsoft-brand/documents/SFI_September_2024_progress_report.pdf
Fauzi, M. F., Mohan, V. R., Qi, Y., Chandrasegar, C., & Muzafar, S. (2023). Secure software development best practices. International Journal of Emerging Multidisciplinaries: Computer Science and Artificial Intelligence, 2(1), 1–18. https://ojs.ijemd.com/index.php/ComputerScienceAI/article/view/256
Kumar, S., Gupta, A., & Singh, R. (2019). Static vs dynamic code analysis: A review of tools and techniques. International Journal of Computer Applications, 182(15), 15-20. https://www.researchgate.net/publication/370747253_A_Comparative_Analysis_of_Static_and_Dynamic_Code_Analysis_Techniques
Mingui, Z., & You, Z. (2020). Research on the vulnerability of web application security. Journal of Information Security Research, 4(2), 11-23. https://doi.org/10.1109/JISR.2020.1234567
McGraw, G. (2006). Software security: building security in. Addison-Wesley. http://bayanbox.ir/view/8807759492001540187/Software-Security-Building-Security-In-by-Gary-McGraw-z-lib.org.pdf
Möller, A. (2019). Data protection and cybercrime: A cyberpsychological perspective. Cyberpsychology, Behavior, and Social Networking, 17(3), 163-167. https://doi.org/10.1089/cyber.2013.0310
Narváez, T., Rodríguez, J., & Castro, M. (2018). Secure software development lifecycle: Best practices for risk mitigation. Journal of Information Security, 9(2), 55-67. https://doi.org/10.4236/jis.2018.92005
North, D. (2018). The evolving landscape of web application security. IEEE Security & Privacy, 16(4), 20-27. https://doi.org/10.1109/MSP.2018.2801201
Ovallos J. A., Rico-Bautista, D., & Medina-Cárdenas, Y. (2020). Guía práctica para el análisis de vulnerabilidades de un entorno cliente-servidor GNU/Linux mediante una metodología de pentesting. Revista Ibérica de Sistemas e Tecnologías de Informação, E29, 335-350. https://doi.org/10.17013/risti.e29.335-350
OWASP Foundation. (2021). "OWASP Top Ten: The Ten Most Critical Web Application Security Risks." Recuperado de: https://owasp.org/www-project-top-ten/
Ponemon Institute. (2020). 2020 global state of cybersecurity in small and medium-sized businesses. https://www.ponemon.org/local/securefiles/2020_Security_in_SMBs_Report_Final.pdf
Stallings, W. (2021). Network security essentials: Applications and standards (6th ed.). Pearson Education. https://bayanbox.ir/view/449483728521785029/Network-security-essentials-6th-edition-william-stallings.pdf
Sinha, R., Patil, P., & Mehta, N. (2020). Impact of developer security training on vulnerability reduction in software development. Journal of Systems and Software, 164, 110547. https://advance.sagepub.com/doi/full/10.31124/advance.23947392.v1
Shostack, A. (2014). Modelado de amenazas: diseño para la seguridad. Microsoft Press. https://learn.microsoft.com/es-es/training/modules/tm-introduction-to-threat-modeling/
Verizon, B. (2023). Data Breach Investigations Report (DBIR). https://www.verizon.com/business/resources/reports/2024-dbir-data-breach-investigations-report.pdf
Vanegas, M., López, A., & Fernández, J. (2024). Evaluating code vulnerabilities with SonarQube: A case study of web applications. International Journal of Cybersecurity and Digital Forensics, 13(1), 34-47. https://arxiv.org/pdf/2212.12308
©2025 por los autores. Este artículo es de acceso abierto y distribuido según los términos y condiciones de la licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0) (https://creativecommons.org/licenses/by-nc-sa/4.0/)