OWASP (Open Worldwide Application Security Project) es una fundación sin fines de lucro y una comunidad global dedicada a mejorar la seguridad del software. Su proyecto más célebre, el OWASP Top 10, documenta periódicamente las diez vulnerabilidades web más críticas del mundo, sirviendo como estándar de auditoría global.
Antes de realizar pruebas dinámicas, se suelen emplear analizadores estáticos de código para identificar malas prácticas o contraseñas expuestas en el código fuente.
Bandit encuentra fallos comunes de seguridad en proyectos Python. Para instalarlo y escanear un directorio de forma recursiva, se ejecuta:
pip install bandit bandit -r .
django-check: Sistema nativo para comprobar configuraciones del framework.django-secure: Valida las directivas críticas de seguridad en producción.django-debug-toolbar: Herramientas en interfaz gráfica para auditar peticiones y consultas SQL
en desarrollo (¡nunca debe activarse en producción!).OWASP ZAP (Zed Attack Proxy) es una herramienta de código abierto para pruebas de seguridad dinámica (DAST). Funciona como un Proxy Interceptor situado entre el navegador web del auditor y el servidor de la aplicación.
Para comprobar que ZAP escucha correctamente el tráfico de la máquina anfitriona, se debe validar en el menú superior:
Tools -> Options -> Network (o Red) -> Local Servers/Proxies
La dirección IP predeterminada debe apuntar a localhost (o 127.0.0.1) en el puerto
8080.
Dado que la mayoría de los sitios web modernos viajan cifrados bajo HTTPS, ZAP necesita un certificado SSL/TLS intermedio para descifrar, inspeccionar y volver a cifrar los paquetes de datos sin que el navegador bloquee la conexión.
Tools -> Options -> Dynamic SSL Certificates.
Haz clic en Generate e importa o guarda el archivo con extensión .cer o
.crt en tu equipo.localhost puerto 8080.ZAP dispone de cuatro modalidades de operación que restringen la agresividad de las herramientas en función del entorno:
El Scope define las fronteras físicas de la auditoría de seguridad para evitar ramificaciones legales por atacar servidores ajenos. Para configurarlo:
Crear un Contexto Nuevo -> Clic derecho sobre la URL raíz en la pestaña 'Sites' -> Incluir en el Contexto
A partir de ese instante, se pueden aplicar filtros para excluir subdirectorios pesados o pasarelas de pago de terceros que no deben auditarse.
El Fuzzing consiste en enviar de forma masiva datos de entrada inesperados, aleatorios o maliciosos (cargas útiles o payloads) hacia un parámetro de una petición HTTP (como campos de texto o parámetros URL) para verificar si la aplicación se rompe o expone fallos del sistema.
.txt que contenga un diccionario de ataques
(por ejemplo: inyecciones SQL comunes como ' OR '1'='1 o scripts XSS).POST de inicio de sesión o un GET de búsqueda) y haz clic derecho ->
Fuzz....200 OK renderizando la base de datos o el
script, el sistema es vulnerable. Una aplicación robusta debe atrapar la anomalía devolviendo errores
controlados del cliente como 400 Bad Request.Muchas vulnerabilidades críticas se esconden detrás de los paneles de acceso restringido. Para que ZAP evalúe estas zonas de forma automática, se debe configurar una sesión autenticada:
logout o tokens de
autenticación dentro del cuerpo de la respuesta HTML).Permite compilar planes de pruebas de seguridad completos dentro de un único archivo de configuración
estructurado en formato YAML (zap.yaml), facilitando que el flujo se ejecute mediante
consolas de comandos sin interacción humana.
ZAP expone una API REST nativa completa que permite manipular cualquier funcionalidad de la herramienta (iniciar escaneos, consultar alertas, exportar reportes) utilizando lenguajes como Python o JavaScript. Por defecto, una vez que ZAP se está ejecutando, se puede acceder a la interfaz interactiva de la API desde el navegador local en:
http://localhost:8080/
Al integrarse en orquestadores como Jenkins, GitLab CI o GitHub Actions, ZAP realiza escaneos dinámicos automatizados ante cada nueva confirmación de código (push). Si el análisis detecta vulnerabilidades con severidad alta, se puede configurar para romper el pipeline e impedir el despliegue a producción de código vulnerable.