Herramienta Proxy de ataques Zed OWASP

Una visión general de los componentes automáticos y manuales proporcionados por OWASP Zed Attack Proxy (ZAP) que se recomiendan para probar cada uno de los riesgos de OWASP Top Ten Project.

Para los Diez Mejores anteriores, consulte ZAPping el Top 10 de OWASP

Tenga en cuenta que el OWASP Top Ten Proyecto los riesgos cubren una amplia gama de vulnerabilidades subyacentes, algunas de las cuales no son realmente posibles de probar de una manera completamente automatizada.

OWASP (Open Worldwide Application Security Project)

¡Si una herramienta completamente automatizada afirma protegerlo contra el Top Ten completo de OWASP, entonces puede estar seguro de que están siendo ‘económicos con el truth’!

Los enlaces de componentes lo llevan a los lugares relevantes en una versión en línea de la Guía del usuario de ZAP desde la cual puede obtener más información.

Zed Attack Proxy (ZAP)

Conceptos Básicos de Pruebas de Seguridad 

Las pruebas de seguridad de software son el proceso de evaluar y probar un sistema para descubrir los riesgos de seguridad y las vulnerabilidades del sistema y sus datos.

No existe una terminología universal, pero para nuestros propósitos, definimos las evaluaciones como el análisis y el descubrimiento de vulnerabilidades sin intentar explotar realmente esas vulnerabilidades.

Definimos las pruebas como el descubrimiento e intento de explotación de vulnerabilidades.

Las pruebas de seguridad a menudo se realizan, de manera algo arbitraria, de acuerdo con el tipo de vulnerabilidad que se está probando o el tipo de prueba que se está realizando.

Una ruptura común es:

  • Evaluación de Vulnerabilidad – El sistema se escanea y analiza por problemas de seguridad.
  • Pruebas de Penetración – El sistema se somete a análisis y ataque de atacantes maliciosos simulados.
  • Pruebas de Tiempo de ejecución – El sistema se somete a análisis y pruebas de seguridad de un usuario final.
  • Revisión de Código – El código del sistema se somete a una revisión y análisis detallados que buscan específicamente vulnerabilidades de seguridad.

Tenga en cuenta que la evaluación de riesgos, que comúnmente se enumera como parte de las pruebas de seguridad, no se incluye en esta lista.

Esto se debe a que una evaluación de riesgos no es en realidad una prueba, sino más bien el análisis de la gravedad percibida de los diferentes riesgos (seguridad del software, seguridad del personal, seguridad del hardware, etc.) y cualquier paso de mitigación para esos riesgos.

Más sobre Pruebas de Penetración 

Las pruebas de penetración (pentesting) se llevan a cabo como si el probador fuera un atacante externo malicioso con el objetivo de entrar en el sistema y robar datos o llevar a cabo algún tipo de ataque de denegación de servicio.

Pentesting tiene la ventaja de ser más preciso porque tiene menos falsos positivos (resultados que informan una vulnerabilidad que no está realmente presente), pero puede llevar mucho tiempo ejecutarla.

Pentesting también se utiliza para probar los mecanismos de defensa, verificar los planes de respuesta y confirmar el cumplimiento de la política de seguridad.

El pentesting automatizado es una parte importante de la validación de integración continua.

Ayuda a descubrir nuevas vulnerabilidades, así como regresiones de vulnerabilidades anteriores en un entorno que cambia rápidamente y para el cual el desarrollo puede ser altamente colaborativo y distribuido.

El Proceso de Pentesting 

Tanto el pentesting manual como el automatizado se utilizan, a menudo en conjunto, para probar todo, desde servidores, redes, dispositivos y puntos finales.

Este documento se centra en la aplicación web o pentesting del sitio web.

El pentesting generalmente sigue estas etapas:

  • Explorar – El probador intenta aprender sobre el sistema que se está probando. Esto incluye tratar de determinar qué software está en uso, qué puntos finales existen, qué parches están instalados, etc. También incluye buscar en el sitio contenido oculto, vulnerabilidades conocidas y otros indicios de debilidad.
  • Ataque – El probador intenta explotar las vulnerabilidades conocidas o sospechadas para demostrar que existen.
  • Informe – El probador informa los resultados de sus pruebas, incluidas las vulnerabilidades, cómo las explotaron y cuán difíciles fueron las hazañas, y la gravedad de la explotación.
Objetivos de Pentesting

El objetivo final de pentesting es buscar vulnerabilidades para que estas vulnerabilidades puedan ser abordadas.

También puede verificar que un sistema no es vulnerable a una clase conocida o defecto específico; o, en el caso de vulnerabilidades que han sido reportadas como fijas, verificar que el sistema ya no es vulnerable a ese defecto.

Presentamos ZAP 

Zed Attack Proxy (ZAP) de Checkmarx es una herramienta gratuita de prueba de penetración de código abierto.

ZAP está diseñado específicamente para probar aplicaciones web y es flexible y extensible.

En esencia, ZAP es lo que se conoce como un “manipulador en el medio proxy.”

Se interpone entre el navegador de pruebas y la aplicación web para que pueda interceptar e inspeccionar los mensajes enviados entre el navegador y la aplicación web, modificar el contenido si es necesario y luego reenviar esos paquetes al destino.

Se puede usar como una aplicación independiente y como un proceso de demonio.

Si ya hay otro proxy de red en uso, como en muchos entornos corporativos, ZAP se puede configurar para conectarse a ese proxy.

ZAP proporciona funcionalidad para una variedad de niveles de habilidad – desde desarrolladores, hasta probadores nuevos en pruebas de seguridad y especialistas en pruebas de seguridad.

ZAP tiene versiones para cada OS principal y Docker, por lo que no está vinculado a un solo OS.

La funcionalidad adicional está disponible gratuitamente en una variedad de complementos en ZAP Marketplace, accesibles desde el cliente ZAP.

Debido a que ZAP es de código abierto, el código fuente se puede examinar para ver exactamente cómo se implementa la funcionalidad.

Cualquiera puede ser voluntario para trabajar en ZAP, corregir errores, agregar funciones, crear solicitudes de extracción para extraer correcciones en el proyecto y complementos de autor para respaldar situaciones especializadas.

Instalar y Configurar ZAP 

ZAP tiene instaladores para Windows, Linux y macOS.

También hay imágenes de Docker disponibles en el sitio de descarga que se enumeran a continuación.

Instalar ZAP

Lo primero que debe hacer es instalar ZAP en el sistema en el que pretende realizar pentesting.

Descargue el instalador apropiado del Descargar página.

Tenga en cuenta que ZAP requiere Java 11+ para ejecutarse.

El instalador de macOS incluye una versión adecuada de Java, pero debe instalar Java 11+ por separado para las versiones de Windows, Linux y Cross-Platform.

Las versiones de Docker no requieren que instale Java.

Una vez completada la instalación, inicie ZAP y lea los términos de la licencia.

Haga clic De acuerdo si acepta los términos y ZAP terminará de instalarse, ZAP se iniciará automáticamente.

macOS

ZAP actualmente no es un desarrollador verificado con Apple.

En macOS, verá un mensaje como:

“ZAP.app” no se puede abrir porque el desarrollador no se puede verificar.

Para eludir esta advertencia, deberá ir a Preferencias del Sistema > Seguridad y Privacidad en la parte inferior del cuadro de diálogo.

Verá un mensaje que dice que “ZAP” fue bloqueado.

Junto a él, si confía en el instalador descargado, puede hacer clic Abierto de todos modos.

Persistiendo una Sesión

Cuando inicie ZAP por primera vez, se le preguntará si desea persistir en la sesión de ZAP.

De forma predeterminada, las sesiones ZAP siempre se graban en disco en una base de datos HSQLDB con un nombre y una ubicación predeterminados.

Si no persiste la sesión, esos archivos se eliminan cuando sale de ZAP.

Si elige persistir en una sesión, la información de la sesión se guardará en la base de datos local para que pueda acceder a ella más tarde, y podrá proporcionar nombres y ubicaciones personalizados para guardar los archivos.

Por ahora, seleccione No, no quiero persistir esta sesión en este momento, luego haga clic en Empezar.

Las sesiones de ZAP no persistirán por ahora.

UI de escritorio ZAP 

La interfaz de usuario de ZAP Desktop se compone de los siguientes elementos:

  1. Barra de Menú – Proporciona acceso a muchas de las herramientas automatizadas y manuales.
  2. Barra de herramientas – Incluye botones que proporcionan un fácil acceso a las funciones más utilizadas.
  3. Ventana de Árbol – Muestra el árbol Sitios y el árbol Scripts.
  4. Ventana del espacio de trabajo – Muestra solicitudes, respuestas y scripts y te permite editarlos.
  5. Ventana de Información – Muestra detalles de las herramientas automatizadas y manuales.
  6. Pie de página – Muestra un resumen de las alertas encontradas y el estado de las principales herramientas automatizadas.

Mientras usa ZAP, puede hacer clic en Ayuda en la Barra de Menú o presione F1 para acceder a la ayuda sensible al contexto de la Guía del usuario de ZAP Desktop.

También está disponible en línea.

Para obtener más información sobre la UI, consulte Descripción general de ZAP UI en la documentación en línea de ZAP.

ZAP también admite una potente API y funcionalidad de línea de comandos, que están más allá del alcance de esta guía.

IMPORTANTE: Solo debe usar ZAP para atacar una aplicación que tenga permiso para probar con un ataque activo.

Debido a que esta es una simulación que actúa como un ataque real, se puede hacer daño real a la funcionalidad, los datos, etc.

Si le preocupa el uso de ZAP, puede evitar que cause daños (aunque la funcionalidad de ZAPra se reducirá significativamente) cambiando al modo seguro.

Para cambiar ZAP al modo seguro, haga clic en la flecha en el menú desplegable de modo en la barra de herramientas principal para expandir la lista desplegable y seleccionar Modo Seguro.

Ejecución de un Escaneo Automatizado

La forma más fácil de comenzar a usar ZAP es a través de la pestaña Inicio rápido.

Quick Start es un complemento ZAP que se incluye automáticamente cuando instaló ZAP.

Para ejecutar un Escaneo Automatizado de Inicio Rápido :

  1. Inicie ZAP y haga clic en Inicio Rápido pestaña de la Ventana del espacio de trabajo.
  2. Haga clic en el botón grande Escaneo automatizado.
  3. En el URL para atacar cuadro de texto, ingrese la URL completa de la aplicación web que desea atacar.
  4. Haga clic en el Ataque

ZAP procederá a rastrear la aplicación web con su araña y escanear pasivamente cada página que encuentre.

Luego, ZAP usará el escáner activo para atacar todas las páginas, funcionalidades y parámetros descubiertos.

ZAP proporciona 2 arañas para rastrear aplicaciones web, puede usar una o ambas desde esta pantalla.

La araña ZAP tradicional que descubre enlaces examinando el HTML en las respuestas de la aplicación web.

Esta araña es rápida, pero no siempre es efectiva cuando se explora una aplicación web AJAX que genera enlaces usando JavaScript.

Para aplicaciones AJAX, es probable que la araña AJAX de ZAPag sea más efectiva.

Esta araña explora la aplicación web invocando navegadores que luego siguen los enlaces que se han generado.

La araña AJAX es más lenta que la araña tradicional y requiere una configuración adicional para su uso en un entorno “headless”.

ZAP escaneará pasivamente todas las solicitudes y respuestas proxied a través de él.

Hasta ahora, ZAP solo ha realizado escaneos pasivos de su aplicación web.

El escaneo pasivo no cambia las respuestas de ninguna manera y se considera seguro.

El escaneo también se realiza en un hilo de fondo para no ralentizar la exploración.

El escaneo pasivo es bueno para encontrar algunas vulnerabilidades y como una forma de tener una idea del estado de seguridad básico de una aplicación web y localizar dónde se puede justificar más investigación.

El escaneo activo, sin embargo, intenta encontrar otras vulnerabilidades mediante el uso de ataques conocidos contra los objetivos seleccionados.

El escaneo activo es un ataque real a esos objetivos y puede poner en riesgo a los objetivos, así que no use el escaneo activo contra objetivos que no tiene permiso para probar.

Interprete los Resultados de su Prueba

A medida que ZAP araña su aplicación web, construye un mapa de sus páginas web applications’ y los recursos utilizados para renderizar esas páginas.

Luego registra las solicitudes y respuestas enviadas a cada página y crea alertas si hay algo potencialmente incorrecto con una solicitud o respuesta.

Ver Páginas Exploradas

Para examinar una vista de árbol de las páginas exploradas, haga clic en Sitios pestaña en la Ventana del Árbol.

Puede expandir los nodos para ver las URL individuales a las que se accede.

Ver Alertas y Detalles de Alerta

El lado izquierdo del pie de página contiene un recuento de las Alertas encontradas durante su prueba, desglosadas en categorías de riesgo.

Estas categorías de riesgo son:

Para ver las alertas creadas durante su prueba:

  1. Haga clic en el Alertas pestaña en la Ventana de Información.
  2. Haga clic en cada alerta que se muestra en esa ventana para mostrar la URL y la vulnerabilidad detectada en el lado derecho de la Ventana de información.
  3. En el espacio de trabajo de Windows, haga clic en Respuesta pestaña para ver el contenido del encabezado y el cuerpo de la respuesta. Se resaltará la parte de la respuesta que generó la alerta.

Explorando una Aplicación Manualmente 

La funcionalidad de escaneo pasivo y ataque automatizado es una excelente manera de comenzar una evaluación de vulnerabilidad de su aplicación web, pero tiene algunas limitaciones.

Entre estos están:

  • Cualquier página protegida por una página de inicio de sesión no se puede descubrir durante un escaneo pasivo porque, a menos que haya configurado la funcionalidad de autenticación de ZAPa, ZAP no manejará la autenticación requerida.
  • No tienes mucho control sobre la secuencia de exploración en un escaneo pasivo o los tipos de ataques llevados a cabo en un ataque automatizado. ZAP proporciona muchas opciones adicionales para la exploración y los ataques fuera del escaneo pasivo.

Las arañas son una excelente manera de explorar su sitio básico, pero deben combinarse con la exploración manual para ser más efectivas.

Las arañas, por ejemplo, solo ingresarán datos predeterminados básicos en formularios en su aplicación web, pero un usuario puede ingresar información más relevante que, a su vez, puede exponer más de la aplicación web a ZAP.

Esto es especialmente cierto con cosas como formularios de registro donde se requiere una dirección de correo electrónico válida.

La araña puede ingresar una cadena aleatoria, lo que causará un error.

Un usuario podrá reaccionar a ese error y proporcionar una cadena correctamente formateada, lo que puede hacer que se exponga más de la aplicación cuando se envía y acepta el formulario.

Debe explorar toda su aplicación web con un proxy de navegador a través de ZAP.

Al hacer esto, ZAP escanea pasivamente todas las solicitudes y respuestas realizadas durante su exploración en busca de vulnerabilidades, continúa construyendo el árbol del sitio y registra alertas de posibles vulnerabilidades encontradas durante la exploración.

Es importante que ZAP explore cada página de su aplicación web, ya sea vinculada a otra página o no, en busca de vulnerabilidades.

La oscuridad no es seguridad, y las páginas ocultas a veces se activan sin previo aviso.

Así que sea lo más minucioso posible al explorar su sitio.

Puede iniciar rápida y fácilmente navegadores que están preconfigurados para proxy a través de ZAP a través de la pestaña Inicio rápido.

Los navegadores lanzados de esta manera también ignorarán cualquier advertencia de validación de certificado que de otro modo se informaría.

Para Explorar Manualmente su aplicación:

  1. Inicie ZAP y haga clic en Inicio Rápido pestaña de la Ventana del espacio de trabajo.
  2. Haga clic en el botón grande Explorar manual.
  3. En el URL para explorar cuadro de texto, ingrese la URL completa de la aplicación web que desea explorar.
  4. Seleccione el navegador que desea utilizar
  5. Haga clic en el Iniciar Navegador

Esta opción lanzará cualquiera de los navegadores más comunes que haya instalado con nuevos perfiles.

Si desea utilizar cualquiera de sus navegadores con un perfil existente, por ejemplo, con otros complementos del navegador instalados, deberá configurar manualmente su navegador para proxy a través de ZAP e importar y confiar en el certificado ZAP Root CA.

Consulte la Guía del usuario de ZAP Desktop para obtener más detalles.

De forma predeterminada, se habilitará la pantalla ZAP Heads Up Display (HUD). Desmarcar la opción relevante en esta pantalla antes de iniciar un navegador deshabilitará el HUD.

La Pantalla de Heads Up 

Heads Up Display (HUD) es una interfaz innovadora que proporciona acceso a la funcionalidad ZAP directamente en el navegador.

Es ideal para personas nuevas en seguridad web y también permite que los probadores de penetración experimentados se centren en la funcionalidad de una aplicación al tiempo que proporcionan información y funcionalidad de seguridad clave.

El HUD se superpone en la parte superior de la aplicación de destino en su navegador cuando está habilitado a través de la opción ‘Manual Explore’ pantalla o barra de herramientas.

Solo se admiten navegadores modernos como Firefox y Chrome. Los usuarios de Firefox pueden necesitar deshabilitar “Protección de Seguimiento Mejorada” para poder ver la interfaz HUD.

Esto se puede hacer haciendo clic en el icono del escudo en la barra de URL.

De forma predeterminada, se muestra una pantalla de bienvenida para el HUD, que incluye un enlace a un tutorial que lo llevará a través de las funciones de HUD y le explicará cómo puede usarlas.

Características Avanzadas de ZAP 

Características Avanzadas de Escritorio 

El escritorio tiene una gran cantidad de características que no son evidentes de inmediato para que los nuevos usuarios no se vean abrumados.

Hay muchas pestañas que no se muestran de forma predeterminada. Se puede acceder a ellos a través de las pestañas de la mano derecha con ‘+’ iconos verdes.

Puede fijar cualquier pestaña que desee que aparezca siempre haciendo clic derecho en ellas.

Muchas de las pestañas ocultas de forma predeterminada aparecerán cuando sea relevante.

Por ejemplo, la pestaña Websockets aparecerá si una aplicación que está proxyando a través de ZAP comienza a usar Websockets.

El escritorio también hace un uso intensivo de las opciones de clic derecho sensibles al contexto, así que haga clic derecho en todas partes mientras se acostumbra a la interfaz de usuario.

El Mercado ZAP 

El escritorio ZAP tiene una arquitectura de plugin, lo que significa que se pueden agregar nuevas funcionalidades dinámicamente.

An mercado en línea proporciona una amplia gama de complementos ZAP que agregan muchas características adicionales a ZAP.

Se puede acceder al mercado desde ZAP mediante el botón ‘Manage Add-ons’ en la barra de herramientas:

Todos los complementos en el mercado son completamente gratuitos.

Automatización 

ZAP es una herramienta ideal para usar en automatización y admite una variedad de opciones:

Más información sobre ZAP 

Ahora que está familiarizado con algunas capacidades básicas de ZAP, puede obtener más información sobre las capacidades de ZAPina y cómo usarlas de ZAPa Guía del usuario de Escritorio.

La Guía del usuario proporciona instrucciones paso a paso, referencias para la API y la programación de línea de comandos, videos instructivos y consejos y trucos para usar ZAP.

También hay enlaces adicionales disponibles a través del botón ‘Learn More’ en la pantalla superior de Inicio rápido:

La pantalla se vincula tanto a los recursos locales (si están disponibles) como al contenido en línea.

Compartir:

error: