Clase 09

Este documento son los apuntes de la clase 09, una clase práctica donde se muestra una serie de herramientas útiles cuando se realizan auditorías de seguridad y algunas discusiones éticas sobre el tema.

Herramientas en el navegador

Si han tenido experiencia con aplicaciones web anteriormente, herramientas como Chrome DevTools o Firebug son fundamentales para resolver problemas en el desarrollo del frontend.

Dentro de las funcionalidades que estas herramientas proveen hay algunas que nos servirán desde el punto de vista de seguridad:

Estas últimas dos características son claves para guiar la explotación de vulnerabilidades en el manejo de datos a nivel del DOM (como por ejemplo, XSS basado en DOM.)

En los links anteriores se pueden ver ejemplos/videos/documentación de estas herramientas. Si gustan de la herramienta que viene con Chrome, podrían considerar este curso interactivo Discover DevTools creado por CodeSchool.

BurpSuite

BurpSuite es un conocido web proxy que puede ser bajado en su versión "Free" desde su página. Este software necesita la máquina virtual de Java como requisito antes de ser ejecutado. A continuación listo una serie de videos introductorios sobre el uso de esta herramienta y algunas explicaciones sobre posibles dudas.

Mutillidae: How to install and configure Burp-Suite with Firefox

Este video muestra como configurar Firefox para utilizarlo con BurpSuite. La forma de acoplar BurpSuite al navegador es a través de la configuración de proxy del navegador, para que el flujo de información sea el siguiente:

Navegador -> BurpSuite -> Aplicación en un servidor

En el video, el puerto en el cual está escuchando BurpSuite es el 8080 y como se está ejecutando el proxy localmente (caso de uso común), el proxy ingresado en Firefox corresponde a localhost:8080. Para otros navegadores, la configuración es realizada de forma similar.

Por defecto, BurpSuite intercepta solo las peticiones (no las respuestas) y hacia cualquier dominio. La persona que creó el video, si se dieron cuenta también intercepta las respuestas recibidas, lo cual puede ser configurado en Proxy/Options/Intercept Server Responses. Además, configuró BurpSuite para solo interceptar los dominios presentes en el "Scope", lo cual puede ser configurado en Proxy/Options/Intercept Client Requests y es una medida recomendada para mejorar la concentración en el flujo generado por la aplicación auditada.

Cosas a tener en cuenta:

Mutillidae: Basics of Web Request and Response Interception with Burp-Suite

Este video muestra las opciones seleccionadas en BurpSuite, algo de su funcionamiento básico y como este tipo de herramientas se usan para esquivar validaciones realizadas en el lado del cliente y que como vimos durante el curso, solo deben tener un fin estético/usabilidad.

Otros videos

Estos videos han sido seleccionados debido a que muestran otras características de BurpSuite que son necesarias de conocer, tales como la pestaña de objetivos, el modulo de intrusión, el comparador de peticiones/respuestas, etc.

Una amplia colección de videos si gustan seguir profundizando en el uso de esta herramienta se encuentra en el canal de youtube de Jeremy Druin.

Scanners de Vulnerabilidades

Algunos tipos de vulnerabilidades son fáciles de identificar por lo que su proceso de descubrimiento puede ser automatizado. Bajo este razonamiento los scanners de vulnerabilidades son de utilidad para realizar esta clase de tareas y proveernos de tiempo extra para el análisis manual de la aplicación.

Los scanners de vulnerabilidades actuales también proveen detección de otros tipos de vulnerabilidades como Cross Site Scripting, SQL Injection, etc, pero debido a la propia naturaleza de las aplicaciones web y su heterogeneidad estas herramientas automatizadas no siempre logran su cometido y las habilidades del auditor son necesarias para poder descubrir las vulnerabilidades más complejas de una aplicación y/o confirmar falsos positivos.

A continuación se listan los principales scanners de vulnerabilidades para aplicaciones web open-source. Su funcionamiento es el mismo: se seleccionan los diferentes tipos de vulnerabilidades que quieren ser descubiertos y se ejecuta contra el servidor donde reside la aplicación.

Hay scanners dedicados solo a ciertos tipos de vulnerabilidades, como por ejemplo SQLmap para inyección SQL. Debido a la frecuencia con que inyección SQL aparece en las diferentes aplicaciones web y la especialización de este software, debe ser considerado dentro de nuestro toolset. Aquí pueden ver un video de SQLmap en acción.

WhatWeb

Es una herramienta útil para identificar que software tiene instalado una aplicación web. De esta forma, es posible identificar versiones instaladas lo cual es un buen punto para iniciar una auditoría. Un buen primer paso es exigir que el software utilizado sea en sus últimas versiones estables, ya que eso posibilita la realización de un mejor trabajo.

Software

Luego de identificar el software utilizado por la aplicación, es recomendable revisar tres cosas:


Claudio Salazar