INFORME TÉCNICO DE AUDITORÍA DE SEGURIDAD
1. Introducción
El presente informe documenta los resultados de la auditoría técnica de seguridad realizada sobre el sistema que aloja la aplicación web «Web for pentester», la cual simula el entorno transaccional (marketplace) de la organización. Esta auditoría se efectúa de forma previa a las pruebas de aceptación del cliente, con la finalidad de identificar de manera temprana vulnerabilidades en la propia aplicación, así como posibles errores de configuración en su despliegue y arquitectura subyacente.
2. Objetivo
El objetivo de esta auditoría es doble:
- Identificar si el sistema cumple con la política de seguridad técnica de la organización, la cual estipula que un sistema informático únicamente debe ofrecer los servicios de red mínimos e imprescindibles para dar el servicio previsto a los usuarios.
- Verificar la existencia de vulnerabilidades en la aplicación web correspondientes al catálogo actualizado «OWASP Top 10 List – 2021», realizando un análisis de vulnerabilidades de los servicios detectados.
3. Alcance
El alcance de esta auditoría se limita a un único sistema o servidor en el que se ejecuta la totalidad de la arquitectura de la aplicación web. Dicho sistema comprende:
- La capa de presentación, operada por un servidor web Apache2.
- La lógica de negocio, implementada mediante el lenguaje PHP.
- El backend de datos, gestionado por MySQL Server.
Las pruebas de escaneo y evaluación se han focalizado sobre la dirección IP del objetivo (registrada en las pruebas como 192.168.137.131 y 192.168.92.128). Queda excluido de esta revisión cualquier otro sistema o segmento de red de la organización.
4. Limitaciones
Los resultados expuestos en este informe reflejan el estado de seguridad de la infraestructura y la aplicación web en el momento exacto de la ejecución de las pruebas. Dado que la evaluación se ha realizado predominantemente bajo un enfoque de Caja Negra, es posible que existan vulnerabilidades lógicas adicionales en el código fuente que no se hayan manifestado durante esta ventana de evaluación. Asimismo, las conclusiones se ciñen estrictamente a las evidencias documentales obtenidas mediante los escaneos automatizados y las verificaciones manuales proporcionadas (Anexos).
5. Metodología
La auditoría se ha ejecutado en modalidad de Caja Negra (Black Box), interactuando con el aplicativo únicamente a través de su interfaz web (HTTP) sin acceso ni revisión previa del código fuente de la aplicación. Las pruebas se han lanzado desde la misma red en la que se encuentra el sistema, sin dispositivos firewall intermedios.
Para permitir la valoración precisa del nivel de parcheo del servidor local, se ha empleado una aproximación mixta proporcionando al equipo auditor credenciales de sistema operativo.
El flujo de trabajo ha consistido en:
- Escaneo de red e identificación de puertos y servicios abiertos mediante NMAP.
- Escaneo automatizado de vulnerabilidades web, locales y remotas mediante NESSUS, utilizando políticas de escaneo rápido y exhaustivo.
- Verificación y explotación manual de vulnerabilidades en la aplicación web mediante la interceptación de peticiones HTTP.
6. Resultados
A modo de visión ejecutiva, se presenta la siguiente tabla resumen con los hallazgos identificados, su criticidad y su correspondencia normativa:
| ID | Descripción del Hallazgo | Nivel de Riesgo | Categoría OWASP Top 10 (2021) |
| [R-01] | Exposición de servicios no necesarios según política | Alto | A05: Security Misconfiguration |
| [R-02] | Obsolescencia crítica de sistema operativo y paquetes | Crítico | A06: Vulnerable and Outdated Components |
| [R-03] | Inyección SQL (SQLi) con evasión de filtros | Crítico | A03: Injection |
| [R-04] | Ejecución Remota de Comandos (RCE) vía File Upload | Crítico | A04: Insecure Design |
| [R-05] | Directory Traversal (LFI) con evasión de extensión | Alto | A01: Broken Access Control |
| [R-06] | Redirección No Validada (URL Redirection) | Medio | A04: Insecure Design |
De acuerdo con las pruebas documentadas en los anexos, se detalla a continuación la justificación de los resultados:
- [R-01] Exposición de servicios no necesarios según política interna: El escaneo de red realizado con NMAP (Anexo 1) muestra que el servidor expone directamente los siguientes puertos abiertos: 22 (SSH), 80 (HTTP), 389 (LDAP) y 3306 (MySQL). Considerando que la finalidad del sistema es proporcionar un servicio web (puerto 80), la exposición pública de los servicios de administración remota, directorio y base de datos incumple directamente la política de seguridad de la organización de ofrecer «únicamente los servicios de red mínimos e imprescindibles». (Clasificación OWASP 2021: A05: Security Misconfiguration).
- [R-02] Obsolescencia crítica del sistema operativo y componentes: Los análisis automatizados de Nessus reportan que el sistema opera bajo Debian 6.0 (Squeeze) con Kernel 2.6.32, una distribución obsoleta y sin soporte. Asimismo, se identifican múltiples paquetes locales sin actualizar con vulnerabilidades reportadas, tales como bash, openssh, gnutls26 y libgcrypt11. (Clasificación OWASP 2021: A06: Vulnerable and Outdated Components).
- [R-03] Inyección SQL (SQLi): Las pruebas manuales (Anexo 2) demuestran que los parámetros de la aplicación web no sanean correctamente la entrada. Aunque existe un filtro que bloquea el carácter de espacio, el equipo auditor logró evadirlo inyectando un carácter de tabulación codificado en URL (%09). Mediante la carga ?name=*%09OR%09’1’%3d’1, se logró extraer información de la base de datos. (Clasificación OWASP 2021: A03: Injection).
- [R-04] Ejecución Remota de Comandos (RCE) vía File Upload: El módulo de subida de archivos carece de validaciones robustas. Al concatenar una extensión adicional (ej. shell.php.test), se evadió el filtro de protección, logrando subir una webshell que Apache interpretó como código PHP. Esto permite ejecutar comandos del sistema a través del usuario web debido a una falla estructural en el control de subidas. (Clasificación OWASP 2021: A04: Insecure Design).
- [R-05] Directory Traversal (LFI): Modificando los parámetros de las URLs (ej. ?file=…), la aplicación permite saltar entre directorios mediante secuencias ../../. Para evadir filtros de extensión, se inyectó exitosamente un byte nulo (%00), consiguiendo evadir el control de acceso y leer ficheros críticos del sistema como /etc/passwd. (Clasificación OWASP 2021: A01: Broken Access Control).
- [R-06] URL Redirection: La aplicación acepta URLs externas introducidas por el usuario (ej. ?page=http://www.google.es) para forzar la redirección del navegador web sin validar si el dominio de destino es confiable, lo que habilita la realización de ataques de Phishing por una falta de diseño seguro. (Clasificación OWASP 2021: A04: Insecure Design).
7. Conclusiones
Tras el análisis de las evidencias, se concluye que el sistema auditado presenta un nivel de riesgo crítico y no es apto para su pase a producción. El sistema no cumple con la política interna de seguridad técnica de la organización, al exponer a la red servicios de administración y bases de datos que no son imprescindibles, evidenciando graves problemas de Security Misconfiguration.
Por otro lado, la aplicación web presenta múltiples vulnerabilidades críticas catalogadas en el estándar oficial OWASP 2021 (tales como Injection, Insecure Design y Broken Access Control) que permiten a un atacante ejecutar comandos en el servidor, extraer la base de datos y acceder a archivos sensibles. La explotación combinada de estas deficiencias compromete por completo la confidencialidad, integridad y disponibilidad de la plataforma.
8. Recomendaciones
Para mitigar los riesgos identificados y cumplir con los objetivos del cliente, se deben aplicar las siguientes medidas correctivas:
- Cumplimiento de Política de Red (Firewall): Implementar reglas de cortafuegos de host (ej. iptables) para bloquear el acceso externo a los puertos 22, 389 y 3306. Los servicios de MySQL y OpenLDAP deben configurarse para escuchar exclusivamente en la interfaz de loopback (localhost), y el servicio SSH debe restringirse a IPs de administración autorizadas.
- Actualización del Sistema: Migrar el servidor a una distribución de Linux moderna y con soporte activo, resolviendo de forma integral todas las vulnerabilidades críticas reportadas por Nessus sobre el Kernel y los paquetes locales (bash, openssh, gnutls26, etc.).
- Protección contra Inyecciones (SQLi): Reestructurar el código PHP de la aplicación para utilizar exclusivamente Consultas Preparadas (Prepared Statements), erradicando la concatenación directa de parámetros enviados por el usuario.
- Seguridad en la Subida de Archivos: Implementar una validación estricta de archivos basada en el tipo MIME y contenido real (Magic Numbers). Los ficheros deben renombrarse de forma aleatoria y almacenarse en un directorio sin permisos de ejecución para el servidor web.
- Control de Accesos (Directory Traversal): Aplicar listas blancas (allow-lists) para la inclusión de ficheros y utilizar funciones de validación como basename() para asegurar que se bloquean las secuencias de salto de directorio (../).
- Redirecciones Seguras: Modificar la lógica de redirección para emplear rutas relativas, o en su defecto, validar la entrada contra un listado estricto de dominios autorizados, bloqueando cualquier URL externa arbitraria.
