Penetration test (pentest): en qué consiste

Con los llamados penetration tests (también conocidos como pentests o pruebas de penetración), es posible determinar la vulnerabilidad de la red, de cada uno de los sistemas participantes o de una sola aplicación. Pero ¿cómo se llevan a cabo estas pruebas y qué representan exactamente para la red?

¿Qué es un pentest?

En el contexto de la informática, el penetration test hace referencia a una metodología que consiste en planificar un ataque a una red, independientemente de su tamaño, o sobre equipos individuales, con el fin de revelar vulnerabilidades en el objeto de prueba. Para este propósito se simulan diversos patrones de ataque utilizando herramientas creadas por métodos de ataque conocidos. Los componentes típicos de un pentest son:

  • Elementos de acoplamiento de red tales como routers, conmutadores o puertos
  • Puertos de seguridad tales como firewalls de hardware y software, filtros de paquetes o programas antivirus, balanceadores de carga, IDS e IPS, etc.
  • Servidores web, servidores de bases de datos, servidores de archivo, etc.
  • Equipos de telecomunicaciones
  • Cualquier tipo de aplicaciones web
  • Instalaciones de infraestructura como, por ejemplo, mecanismos de control de acceso
  • Redes inalámbricas implicadas tales como redes WLAN o Bluetooth

Por lo general, los pentests se clasifican en tres tipos de pruebas: pruebas de caja negra, pruebas de caja blanca y pruebas de caja gris. En las pruebas de caja negra, los pentesters solo tienen a su disposición la dirección de la red (sistema de destino). En las pruebas de caja blanca, se parte de un amplio conocimiento de los sistemas puestos a prueba, incluyendo su dirección IP, el software utilizado y sus componentes de hardware. Por último, las pruebas de caja gris, el tipo de prueba usada con mayor asiduidad, combinan las características de las pruebas de caja negra y las de caja blanca. En ellas, se analizan escenarios que no pueden ser considerados por las pruebas de caja negra como, por ejemplo, un ataque impulsado por alguien de la misma empresa con información suficiente sobre la red. En las pruebas de caja gris se ha de conocer la infraestructura informática, lo que implica, por ejemplo, tener información sobre el uso que se hace de los sistemas y de sus características principales.

Cómo llevar a cabo un pentest

¿Cómo sacarles provecho a las pruebas de penetración? A continuación, se presentan los aspectos más importantes para que puedas desarrollar tu penetration test.

Requisitos de los pentests

Para poder llevar a cabo un penetration test adecuadamente, es necesario definir un concepto claro. Establece los componentes que se van a probar, cuánto tiempo debe durar una prueba individual o la revisión completa de la red, y comprueba si cuentas con todas las herramientas necesarias.

Esta fase de preparación cobra aún más importancia si es una persona externa la que va a llevar a cabo el pentest mediante una prueba de caja blanca. En este caso, es necesario que ofrezcas información sobre la red y los sistemas participantes, así como la documentación disponible. En el caso de las pruebas de caja negra, el proceder cambia, pues solo tendrás que comunicar la dirección de destino de los objetos de prueba.

Las mejores herramientas para un pentest

La diversidad de tipos de ataque a una red implica que los pentesters tengan una variada serie de herramientas a su disposición. Entre las más importantes, se encuentran, por ejemplo:

  • Escaneo de puertos: en el escaneo de puertos se utilizan herramientas especiales para encontrar puertos abiertos en un sistema informático.
  • Escáner de vulnerabilidades: los escáneres de vulnerabilidades comprueban los sistemas en busca de brechas de seguridad existentes, configuraciones incorrectas y políticas de contraseñas y usuarios insuficientes.
  • Sniffer: un sniffer puede utilizarse para analizar el tráfico de datos de una red. Cuanto mejor sea el cifrado, menor será la información obtenida.
  • Generadores de paquetes: los generadores de paquetes son herramientas que permiten generar o simular el tráfico de datos de la red. De este modo, se imita el tráfico de datos real de la red como parte de un penetration test.
  • Descifradores de contraseñas: con los descifradores de contraseñas, los pentesters tratan de obtener contraseñas inseguras.

Muchas de las herramientas se desarrollan de forma específica para pruebas de seguridad en redes y se limitan a un área de prueba muy específica. Aunque la mayoría sean de código abierto, también hay disponibles algunas aplicaciones de seguridad comerciales. Estas últimas suelen contar con una documentación más detallada y ofrecen un soporte más amplio.

Consejo

En la actualidad, hay numerosas colecciones de herramientas para penetration tests que han sido compiladas por expertos en seguridad y que a menudo funcionan sobre la base de una distribución estable de Linux. Una de las soluciones más populares es Kali Linux, publicada en 2007.

Proceso de un pentest

El procedimiento de los penetration tests se puede dividir en:

Verificación del concepto de red

Ya en la fase de preparación, un pentest identifica inconsistencias o vulnerabilidades específicas en el diseño de la red o de sus componentes individuales. El hecho de que, por ejemplo, las aplicaciones hayan sido configuradas con derechos de acceso diferentes, generará complicaciones rápidamente y planteará un riesgo de seguridad para la totalidad de la red, incluso si esta y los programas individuales alojados están protegidos adecuadamente. Algunos de estos casos pueden aclararse preliminarmente, mientras que otros solo son comprobables por medio de una prueba práctica.

Prueba de las medidas de hardening

El eje de una red informática corporativa segura es que los sistemas implicados estén lo mejor reforzados posible. En parte, el pentest también consiste en comprobar la efectividad de las medidas de hardening aplicadas. Esto implica que tanto el software instalado como el sistema operativo, los servicios del sistema y las aplicaciones utilizadas por el usuario han de actualizarse de forma continua. En caso de que se utilicen versiones antiguas para algunas aplicaciones por cuestiones de compatibilidad, será necesario valerse de otros medios de protección.

Además, los requisitos de acceso y autenticación juegan un papel importante para los sistemas y programas individuales. En este caso, el pentest se ocupa de temas como:

  • los derechos de acceso
  • el uso de contraseñas y el cifrado
  • el uso de las interfaces existentes y puertos abiertos
  • el uso de instrumentos reguladores como, por ejemplo, el cortafuegos

Búsqueda de vulnerabilidades conocidas

Por lo general, descubrir las vulnerabilidades de un software no toma mucho tiempo, ya que, en la mayoría de los casos, los pentesters están familiarizados con los puntos débiles de los objetos de prueba. Estos pueden identificar rápidamente qué aplicaciones representan un riesgo para la seguridad, gracias a sus investigaciones sobre el nivel de hardening de los componentes de las redes y sobre el estado de sus parches y versiones. En caso de que se tengan que examinar muchos sistemas en un corto período de tiempo, vale la pena utilizar escáneres de vulnerabilidad, aunque algunas veces estos pueden arrojar resultados inexactos.

El uso selectivo de exploits

La certeza de que las vulnerabilidades encontradas también pueden ser explotadas solo se consigue si el pentester utiliza el exploit apropiado. Los exploits son secuencias de comandos que, por lo general, provienen de diferentes fuentes en Internet y no siempre están programadas de forma segura. Así, si se ejecuta uno de estos exploits inseguros, se corre el riesgo de bloquear las aplicaciones o el sistema probados y, en el peor de los casos, se pueden incluso sobrescribir zonas de memoria importantes. En este caso, solo se deben utilizar scripts procedentes de fuentes fiables para los pentests o abstenerse completamente de probar dichas vulnerabilidades.

Nota

Todos los pasos y resultados de los pentests deben registrarse por escrito. De esta forma, se fijan las bases ideales para el seguimiento de los pasos individuales y de la evaluación final de los resultados. Por lo general, puedes utilizar listas de prioridades para optimizar paso a paso la protección de tu sistema.

Las ventajas y desventajas de las pruebas complejas de seguridad

Las estructuras homogéneas de grandes ordenadores son parte del pasado. Las estructuras informáticas descentralizadas actuales cuentan con nuevas vulnerabilidades y fallos de funcionamiento que son reparados, con más o menos rapidez, por los fabricantes de software. Los pentests se presentan aquí con las siguientes ventajas:

  • Revisa los sistemas con mayor dedicación que una comprobación de seguridad común
  • El objetivo fundamental de una prueba de este tipo es comprobar la interacción de los componentes individuales
  • Si incluyes un pentester externo, obtendrás un punto de vista adicional y una perspectiva diferente acerca del concepto de seguridad subyacente
  • Los pentesters profesionales están especialmente capacitados y proceden de manera similar a como lo haría un atacante

Sin embargo, el penetration test, asociado especialmente con la cooperación con un comprobador externo, también presenta algunas desventajas:

  • El tester externo obtendrá una visión de tu red interna durante la ejecución del test
  • Siempre existe la posibilidad de que la prueba de penetración cause daños irreparables
  • Los pentests solo proporcionan una impresión instantánea de tus sistemas de red y, por tanto, nunca deben utilizarse como sustitución de las medidas de seguridad habituales

La llamada ingeniería social no forma parte de los riesgos que comprobaría un pentest clásico. No obstante, muchos proveedores de servicios ofrecen de forma opcional la verificación de las vulnerabilidades humanas en las empresas, incluyendo, formación especializada.

¿Le ha resultado útil este artículo?
Page top