También conocido como PenTest, Pruebas de Penetración o simplemente pruebas de seguridad, son test de seguridad lanzados contra servidores para evaluar sus posibles riesgos contra ataques de terceros. Suelen servir para evaluar no solo las debilidades de nuestro sistema, sino también las fortalezas que tienen.
Las metas de las pruebas de penetración dependen del tipo de actividad de nuestro negocio, pero debemos emplear nuestros esfuerzos en encontrar vulnerabilidades que puedan ser explotadas por usuarios mal intencionados.
Este tipo de pruebas es tan importante como cualquier otras que podamos hacer dentro del ciclo de vida del software, ya que está pensado para ayudarnos a hacer más seguras nuestras aplicaciones.
Por ejemplo, es posible que nuestra aplicación no mande ciertas cabeceras HTTP a nuestros clientes (ya sea por desconocimiento o error de los programadores), de tal manera que puedan hacer que algún usuario mal intencionado se aproveche de ello para intentar inyectar XSS y robar los datos de nuestra aplicación.
¿Cómo ejecutamos estos test de penetración?
Como en casi todas las pruebas, no vamos a necesitar reinventar la rueda. Hay una fuerte predisposición en la industria a evitar todo tipo de “hackeos” o de usuarios que intentan buscar vulnerabilidades en nuestros sistemas. Así pues, contamos con diferentes tipos de herramientas, tanto open source como de pago, para lanzar nuestros test.
Dentro de estas herramientas, podemos encontrar dos tipos principalmente, distribuciones de sistemas operativos especializados en test de penetración o software dedicado al “pentesting”.
- Distribuciones de SO especializados, aquí nos encontramos con sistemas operativos totalmente preparados y “tuneados” para lanzar nuestras pruebas. Como pros, podemos decir que no hay que preocuparse por qué hay que instalar, ya que lo tendremos todo; como contras, que posiblemente necesitemos máquinas virtuales u otras máquinas físicas para instalar el SO.
- Software dedicado, aquí tenemos todos los programas que nos pueden ayudar a pasar nuestras pruebas, normalmente tendremos para todos los sistemas operativos.
Herramientas PenTest
Aquí vamos a proponer ciertas herramientas PenTest que son más populares entre la comunidad. Dentro de las Distribuciones de SO especializados podemos encontrar (toda son distribuciones Linux):
- Kali, SO basado en Debian y con más de 500 programas de seguridad, incluyendo un scanner de puertos (Nmap), un sniffer (Wireshark) o un “crackeador” de passwords (John the Ripper). Es completamente libre y totalmente personalizable. Cuenta con una gran documentación multilenguaje y puede verse su código fuente en un proyecto GIT.
- Pentoo, SO basado en Gentoo con una capa personalizada por encima. No tiene tantas opciones como Kali, pero como punto fuerte es que puede ser ejecutado desde una memoria USB ya que está basado en Slax. Otra baza que juega en su contra es la de que su documentación no es tan extensa y está solamente en inglés.
- Whoppix o Whax, SO basado en KNOPPIX. Muy parecido a los anteriores. Cuenta también con muchas herramientas tipo:
- Monitorización de red.
- Monitorizaciones en tiempo real.
- Monitorización de software.
- Monitorización de tráfico de internet.
Dentro de las herramientas software, de las más famosas podemos encontrar:
- OWASP ZAP, herramienta mantenida por la organización OWASP. Principalmente usada para descubrir vulnerabilidades en nuestras aplicaciones web. Sencilla de usar y con un gran soporte.
- Wireshark, posiblemente la herramienta de análisis de protocolo de red más famosa. Su utilidad consiste en ver todo el tráfico de red que hay a muy bajo nivel.
- Nmap, muy útil para hacer inventario de red. Sirve para monitorizar en una red todos los host y servicios, así como sus puertos. Tiene diferentes premios de seguridad.
- SQLmap, herramienta muy útil para detectar inyecciones SQL en nuestras aplicaciones.
Conclusión
La seguridad web es un tema que las empresas comienzan a tomarse cada vez más en serio, ya que los riesgos a los que se exponen son muy altos. Hay que entender que el mundo web es relativamente joven, pero debemos de evitar todo riesgo que pueda suponer a nuestros clientes el que les puedan robar información. Este tipo de test es básico para toda empresa que esté iniciando su andadura en el comercio electrónico o para aquellas empresas que trabajen con información sensible de sus clientes.