Introducción
Seguramente alguien nos echaba de menos , así que hemos aprovechado uno de esos ratos libres que nos deja el trabajo y aprovechamos para dar unas pequeñas nociones acerca de la sinergia entre herramentas. En este caso en el mundo de la integración continúa y la seguridad ..usando un script de JMeter.
Objetivos.
La idea de este artículo es explicar uina manera de generar informes de seguridad con una herramienta integrable con un entorno de integración contínua como Jenkins, realizando navegaciones que puedan ser analizadas por dicha herramienta y generando un informe que pueda ser evaluado cuando se haga una nueva versión o implementación de una aplicación
Para ello vamos a trabajar usando las siguiente utilidades
- Herramienta de seguridad OWASP Zap. Es una evolución de Paros Proxy que es reconocida en el entorno de integración contínua Jenkins, bien como plugin o como herramienta que genera acciones.
- HTML Report. Es un plugin de Jenkins que permite publicar documentos en foprmato HTML o XML
- JMeter. La herramienta para pruebas de calidad, aunque centradas en el rendimiento, también usada para validaciones funcionales y demás
La herramienta realiza una serie de análisis de seguridad tanto pasivos como activos (modo spider, inyección SQL, cross-site scripting..etc) y permite generar un informe de seguridad con los principales fallos detectados.
Requerimientos
1º) Se ha instalado el plug-in de OWAS ZAP Zapproxy
2º) Se prepara un script JMX de Jmeter en el que se define
como proxy el definido por el OWAS ZAP Proxy (por defecto ,localhost puerto
9090)
3º) Se crea una secuencia de tareas de este modo
i.
Tarea inicial de arranque del OWAS Zaproxy en la
que quede en ejecución en estado de escucha en el puerto, almacenando los
resultados de dicha escucha en una sesión (parámetro –session de la invocación
por línea de comandos)
ii.
Se lanza una instancia de JMeter en la que haga
una navegación (con un usuario y una sola iteración a priori bastaría,
reutilizando alguno de los casos de las pruebas de rendimiento)
Incluir tarea de ejecución JMeter. Uso de línea de comandos windows |
iii.
Se lanza a continuación una parada controlada
del OWAS Zapproxy para que consolide lo monitorizado en la sesión definida como
repositorio
Tarea detención OWAS ZAPproxy: Ejecutando comandos shell |
iv.
Se lanza de nuevo el OWAS Zapproxy en modo
“generación de informes” , indicando como salida (parámetro de invocación
“-last_scan_report) un fichero .html que se genera automáticamente con los
resultados del análisis efectuado por la herramienta de seguridad.
v.
Por último , en la siguiente sección “Acciones a
ejecutar después” del menú de Jenkins correspondiente a la tarea de seguridad,
se puede incluir el plug-in HTML Report, que permite mostrar un enlace directo
desde la tarea al fichero generado
Acción post ejecución tarea seguridad: Plugin HTML Report |
El informe queda accesible desde el menú del marco izquierdo
O bien desde el propio pantalla de “Estado del proyecto”
,accediendo por el enlace de HTML Report o navegando en el directorio del
“Espacio de Trabajo” (WORKSPACE)
Esperamos que os sea útil esta información. Ya sabeis, comentarios, dudas y demás serán bien recibidos.