Pruebas de seguridad en Continuous Integration con Vaddy

En este post voy a compartir parte del trabajo de los alumnos del curso de testing de la UCU en 2017, que expliqué el objetivo en este otro post. Esta vez comparto la sección dedicada a pruebas de seguridad en Continuous Integration, para lo cual utilizaron una herramienta llamada Vaddy.


Para los test de seguridad se utilizó la herramienta Vaddy la cual nos permite automatizar las siguientes pruebas de seguridad:

  • XSS
  • SQL Injection
  • Remote File Inclusion
  • Directory Traversal
  • Command Injection

Una vez creada la cuenta en Vaddy, es necesario agregar la aplicación a la cual le vamos a correr los test. Para eso se debe agregar un nuevo server dentro de la consola de administración de Vaddy. Una vez hecho esto, se necesita verificar que somos dueños de dicho server para que no cualquiera pueda escanear nuestro sitio. Para esto, Vaddy nos provee de un archivo de verificación que se debe agregar al web root de la aplicación web que queremos escanear. Luego, si entramos a nuestra consola de administración podemos apreciar que el server se encuentra ahora verificado.

Una vez que tengamos el server verificado, debemos definir que deseamos escanear dentro del servidor. En primer lugar se debe definir si se quiere hacer un full scan del sitio o si queremos chequear solo algunos recursos. Para ello, existe una sección en Vaddy denominada Proxy Crawling en donde podremos realizar dicha tarea.

Existen dos modos de definición del set de URL’s a escanear:

Full Scan

  1. Configurar nuestro navegador para que utilice el siguiente proxy:  54.92.84.100:10080.
  2. Ir a http://open-cart.azurewebsites.net/vaddy-8fb49ee5d563c66.html?action=begin para empezar a grabar la “Crawl Data”.
  3. Acceder a las URL que deseamos testear de nuestro sitio, por ejemplo: http://open-cart.azurewebsites.net
  4. Ir a  http://open-cart.azurewebsites.net/vaddy-8fb49ee5d563c66.html?action=commit para parar de grabar la “Crawl Data”.

Simple Scan

Vaddy permite ingresar manualmente hasta 3 URLs definidas por el usuario desde su interfaz, tal como se aprecia en la siguiente imagen.

Luego de definidas las URL’s a testear, se generarán registros en Vaddy con los set de URL’s definidos (Crawl Data) ya sea por cualquiera de los dos métodos anteriores indicados.

Para correr el escaneo del sitio desde la interfaz de Vaddy deberemos indicar el Crawl ID sobre el cual queremos testear. Podemos indicar opcionalmente una etiqueta (Label) para no tener que recordar qué ID está relacionado con qué set de URLs.

Vaddy correrá los test automatizados y dentro de la consola podremos apreciar cuando finalicen, observando los test que pasaron el chequeo de seguridad y los que no.

Integración con Travis-CI

Para poder integrarlo con Travis-CI, el primer paso es generar una API Key, que se realiza desde la interfaz de Vaddy desde la opción de menú Usuario -> WebAPI. Luego, se debe copiar el repositorio de la API de Vaddy (https://github.com/vaddy/vaddy-api-ruby) al GitHub asociado a Travis y crear los siguientes archivos:

  • Rakefile
  • Gemfile
  • travis.yml

En dichos archivos se indicará qué gemas son necesarias para correr la API (dado que está realizada en código Ruby) y cuál será el archivo .rb que ejecuta el escaneo.

Luego de este paso se deben crear en Travis las siguientes variables de entorno, accediendo a las configuraciones del repositorio de Vaddy desde Travis:

  • VADDY_CRAWL_ID = ID o etiqueta del set de URLs a escanear, dicho parámetro es opcional, si no se indica se utilizará el último Crawl ID definido.
  • VADDY_HOST = URL del servidor a escanear.
  • VADDY_TOKEN  = APIKey generada anteriormente.
  • VADDY_USER = usuario de Vaddy.

Realizando todos los pasos anteriores debería ser suficiente para la correcta ejecución del escaneo desde Travis-CI.

Leave a Reply

Your email address will not be published. Required fields are marked *