
Pentesting, Pentester .... ¿Has oído hablar de estos términos? ¿Que es el Pentesting? Te has preguntado alguna vez quiénes son las personas que velan por la seguridad, tanto de las empresas como de la nuestra. Sabías qué actualmente es imprescindible para cualquier pequeña, mediana o gran empresa invertir en ciberseguridad que evite, o al menos contenga, los ciberataques.
Cierto es que en los últimos años el número de ciberataques han aumentado significativamente debido a la proliferación de virus, malwares y a la creación de nuevas técnicas cada vez más sofisticadas. Por eso, todas las empresas se enfrentan a riesgos que ponen en peligro su sistema y pueden dejar expuesta información confidencial. Ya que, según estudios recientes, no todas las organizaciones son conscientes de los riesgos a los que se enfrentan y por eso las brechas de seguridad siguen creciendo.
Vivimos en una época de constantes cambios tecnológicos y uno de los mayores retos de la seguridad informática son precisamente estos avances. Para evitar los ciberataques y proteger los sistemas, es clave que la ciberseguridad avance a la misma velocidad que lo hacen las nuevas tecnologías y aquí es donde entra en juego el Pentesting y el trabajo del Pentester.
¿Que es el Pentesting? y Como Podrias empezar
Es el proceso para identificar las vulnerabilidades de seguridad en una aplicación mediante la evaluación del sistema o la red con diversas técnicas maliciosas. En este proceso se explotan los puntos débiles de un sistema mediante un ataque simulado autorizado.
El objetivo de esta prueba es proteger los datos importantes de personas ajenas al sistema, como los hackers, que pueden tener acceso no autorizado al sistema. Una vez identificada la vulnerabilidad, se utiliza para explotar el sistema y obtener acceso a información sensible.
Una prueba de penetración también se conoce como la prueba de la pluma y un probador de penetración también se conoce como un hacker ético
Causas de las vulnerabilidades de seguridad
- Errores de diseño y desarrollo: Puede haber fallos en el diseño del hardware y del software. Estos fallos pueden poner en riesgo de exposición los datos críticos de la empresa.
- Mala configuración del sistema: Esta es otra causa de vulnerabilidad. Si el sistema está mal configurado, puede introducir loopholes a través de las cuales los atacantes pueden entrar en el sistema y robar la información.
- Errores humanos: Los factores humanos, como la eliminación inadecuada de documentos, el dejar los documentos desatendidos, los errores de codificación, las amenazas internas, el compartir contraseñas a través de sitios de suplantación de identidad, etc., pueden conducir a violaciones de la seguridad.
- Conectividad: Si el sistema se conecta a una red no segura (conexiones abiertas), queda al alcance de los hackers.
- Complejidad: La vulnerabilidad de la seguridad aumenta en proporción a la complejidad de un sistema. Cuantas más funciones tenga un sistema, más posibilidades de que sea atacado.
- Contraseñas: Las contraseñas se utilizan para evitar el acceso no autorizado. Deben ser lo suficientemente fuertes como para que nadie pueda adivinar su contraseña. Las contraseñas no deben compartirse con nadie bajo ningún concepto y deben cambiarse periódicamente. A pesar de estas instrucciones, a veces la gente revela sus contraseñas a otras personas, las anota en algún sitio y guarda contraseñas fáciles de adivinar.
- Entrada de usuarios: Seguro que has oído hablar de la inyección SQL, los desbordamientos de búfer, etc. Los datos recibidos electrónicamente a través de estos métodos pueden ser utilizados para atacar el sistema receptor.
- Gestión: La seguridad es difícil y costosa de gestionar. A veces, las organizaciones carecen de una gestión de riesgos adecuada y, por lo tanto, la vulnerabilidad se induce en el sistema.
- Falta de formación del personal: Esto conduce a errores humanos y otras vulnerabilidades.
- Comunicación: Canales como las redes móviles, Internet o el teléfono abren el abanico de robos de seguridad.
Tipos de Pentesting
Podemos clasificar las pruebas de penetración de 3 tipos:
- Tests de caja blanca: Se dispone de toda información de la aplicación, sistema y/o arquitectura.
- Tests de caja gris: Se dispone de información parcial de la aplicación, sistema y/o arquitectura.
- Tests de caja negra: No se dispone de ninguna información de la aplicación, sistema y/o arquitectura.
Cada tipo de pentesting normalmente va determinado en base a las condiciones que establece el cliente, donde esas condiciones suelen ir relacionadas con la visibilidad, como por ejemplo simular la visibilidad de un atacante de forma externa, un atacante de forma interna, etc. Como es lógico, en las pruebas de penetración cuanto menos información dispongamos del objetivo a testear, más complejo nos resultará inicialmente poder realizar el pentesting, dado que existe una fase de recopilación de información (fingerprinting y footprinting) que determinará la visibilidad que tenemos sobre esa aplicación, sistema y/o arquitectura a realizar los tests, por lo que sin información previa tendremos que realizar un esfuerzo grande y bastante meticuloso a la hora de recopilar estos datos si no
Como Crear un Laboratorio de Pruebas?
Aqui os Mostramos una lista de herramientas para Iniciarse En el Pentesting
1. Kali Linux
Una de las mejores opciones es Kali Linux. Se trata de una distribución completa de Linux especializada en la auditoría de seguridad de sistemas. Cuenta con 300 herramientas para realizar análisis de penetración, aunque están especializadas en la ofensiva. En cualquier caso, detectarás cualquier fallo de tu sistema en poco tiempo y sin apenas esfuerzo. Además, es el sistema operativo predeterminado que utiliza la mayoría de profesionales, por lo que no deberías subestimarlo.
2. Nessus
Se trata de una aplicación centrada en identificar vulnerabilidades en los servicios. Cuenta con una amplia base de datos y es muy sencilla de utilizar, lo que la hace ideal para iniciarse en el mundo de los análisis de penetración. Algo que se debe en gran parte a la sencillez de su interfaz, la cual resulta sumamente intuitiva. Es posible probar miles de vulnerabilidades sin establecer parámetro alguno, lo que mejora aún más la facilidad de uso de esta herramienta. Muy recomendable.
3. Metasploit
Mestasploit entra en juego cuando ya has descubierto las vulnerabilidades del sistema, pero no conoces cuál es el alcance de estas o el daño que pueden llegar a causarte. Asimismo, también permite saber qué contramedidas son las acertadas para detener una posible amenaza. Esta herramienta cuenta con una base de exploits de diferentes vulnerabilidades, lo que te permite conocer la gravedad del error. Sin duda, una de las más útiles que puedes encontrar.
5. Wireshark
Te permite comprender el estado del tráfico de la red de una empresa. Analiza cientos de protocolos, es capaz de capturar el tráfico en tiempo real y conocer lo que ocurre con gran detalle. Es utilizado para controlar las conexiones TCP/IP y en manos de un buen analista es realmente eficaz, ya que este podrá determinar desde dónde llegan las amenazas y actuar en consecuencia con rapidez. Es otra de las herramientas que deberías tener en cuenta.
6. Zed Attack Proxy
Esta herramienta actúa entre la página web y el navegador utilizado. Consigue captar todo el tráfico, inspeccionarlo y modificarlo para reconocer los fallos de la web. Es bastante sencillo de utilizar, gratuito y su código es abierto, por lo que puede modificarse para mejorarlo o añadirle nuevas funcionalidades. Es otra aplicación para principiantes que te revelará todas las vulnerabilidades relacionadas con el tráfico.
7. John the Ripper
John the Ripper está especializado en descifrar contraseñas sin conexión, lo que permite conocer la fiabilidad de las que has creado. Puede actuar de forma bruta recurriendo a la capacidad de procesamiento de un PC hasta encontrar la contraseña, lo cual puede llevarte literalmente millones de años, o alternar los signos de la base de datos de posibles contraseñas que contiene. Además, es capaz de desencriptar archivos, lo cual le otorga una nueva dimensión a este software de código libre.
8. Burp Suite
Estás ante uno de los analizadores más completos del mercado. Se centra en el análisis de vulnerabilidades de páginas web, lo que lo hace muy valioso. Lanza toda una serie de ataques contra la web seleccionada y en poco tiempo determina en qué falla. Es una herramienta utilizada solo por profesionales, pero ofrece unos resultados fuera de toda duda. Quizás su pega es el coste de la aplicación que ronda los 3.000€ por año la versión enterprise, por lo que solamente está al alcance de empresas especializadas en seguridad o profesionales que se dediquen en exclusiva a este tipo de análisis de seguridad.
A la hora de realizar pentesting disponemos de diversas metodologías las cuales podemos seguir o bien podemos tomar como referencia a la hora de realizar nosotros nuestras propias auditorías, esto ya es según las necesidades de cada uno, pues por requerimientos es posible que haya que cumplir algunas determinadas.
Algunas de las metodologías de pentesting serían:
- ISSAF
- PCI
- PTF
- PTES
- OWASP
- OSSTMM
Hablar en profundidad de todas ellas en un articulo es básicamente imposible, ya que por ejemplo ISSAF dispone de la friolera 845 páginas, OWASP 349 páginas, OSSTMM 213 páginas… si nos centraremos en algunas de ellas donde el objetivo sea recoger ideas interesantes de las mismas para comprender y estructurar como y en que se basa el pentesting.
PTES
Penetration Testing Execution Standard junto a OWASP (más adelante hablaremos de ella) ya han logrado definir y generar conciencia sobre lo que es realmente una prueba real de tests de penetración. PTES además de ser adoptada por múltiples profesionales altamente reconocidos en el sector ya es un referente inclusive en libros de aprendizaje de referencia de por ejemplo frameworks asociados al pentesting como el conocido Metasploit de Rapid7.
Si bien es cierto, anda algo desactualizada y no es la más utilizada, si dispone de meticulosidad, siendo la misma alta y llegando a tener niveles de detalle también altos como bien definidos, donde la facilidad de implementación de la misma es relativamente sencilla. La misma es aplicable a cualquier aplicativo, sistema y/o arquitectura y es aconsejable combinarla con otras como OWASP.
Dispone de 7 fases que enumeraremos de forma genérica y serían:
1. Fase de toma de requisitos y alcance
Básicamente es la típica toma de requisitos donde se define el alcance de lo que se va a hacer, es decir, las restricciones que habrán de cara a lo que se puede o no hacer durante la prueba del trabajo, ya vengan determinados por tiempos, objetivos, etc.
2. Capturar toda la información posible
Consiste en reunir la máxima información posible sobre lo que se está evaluando, siempre con carácter relativo a la seguridad donde nos pueda ser útil de cara a fases posteriores.
3. Modelando las posibles amenazas antes de atacar
Tras la adquisición de datos de la fase anterior, aquí se procede a realizar un modelado de las amenazas, determinando los posibles ataques que se utilizaran.
4. Analizando las vulnerabilidades de las posibles amenazas
Una vez definido los ataques a realizar, se analizarán en profundidad y correlacionarán con debilidades y/o vulnerabilidades para determinar los ataques finales.
5. Explotando las vulnerabilidades
La fase más “visual”, ya que aquí se lanzaran los ataques hacia el objetivo por medio de determinadas técnicas para lograr el éxito de la penetración.
6. Post-explotación determinando daños y como arreglarlos
Aquí determinaremos el valor y sensibilidad que pueda tener lo que hemos comprometido, así como su utilidad, identificando y documentando desde los datos sensibles, cualquier opción de configuración, relaciones con otros elementos (posibilidad de realizar pivoting), etc.
7. Informe
El informe es el documento que tiene por objetivo definir y dar visibilidad del estado de la seguridad en los elementos tratados en el pentesting. Básicamente es el resultado final, por lo que debe estar lo bien realizado como para darle la visibilidad real y exacta de lo que ha sucedido, como el estado actual de sus aplicaciones, sistemas y/o arquitectura a nivel de seguridad proponiendo las soluciones o medidas correctoras a aplicar.
Podemos encontrar información detallada sobre como aplicar PTES en http://www.pentest-standard.org/index.php/Main_Page.
OWASP
Enfocada a un contexto de “caja negra”, donde no se nos proporciona información sobre el aplicativo, sistema o arquitectura de la que debemos realizar el pentest. Muchas veces se proporciona un simple dominio donde deberemos ir tirando del hilo hasta conseguir encontrar debilidades y/o vulnerabilidades en todo lo que conforma a las aplicaciones web relacionadas con el propio dominio o cliente.
Bastante actualizada pero centrada principalmente en aplicativos web, dispone de meticulosidad, siendo la misma más alta que la de PTES y llegando a tener niveles de detalle también muy altos como bien definidos, donde la facilidad de implementación de la misma es relativamente sencilla a nivel técnico debido a la extensa documentación disponible.
OWASP está compuesta de 2 fases:
Pasiva: Realización de tests para la compresión de lógica de lo que se está analizando par determinar la operativa de la aplicación, sistema y/o arquitectura más los posibles vectores de ataques como debilidades y vulnerabilidades de la misma.
Activa: Realización de un número de procesos determinados por OWASP clasificados en las siguientes categorías:
Dentro de la fase activa disponemos de los siguientes 11 procesos:
1. Recopilación de información
Consiste en la recopilación relativa al objetivo que nos pueda proporcionar cualquier detalle para analizar y barajar la inclusión o utilización de esta información para la pruebas restantes.
2. Pruebas de la configuración y despliegue de la administración
Se trata de una serie de tests relativos a malas configuraciones de la propia aplicación o inclusive server donde está alojada.
3. Pruebas de la gestión de identificación
Son pruebas que determinan si existen fallos en el manejo y políticas de las identificaciones de los roles, cuentas, usuarios, etc.
4. Pruebas de autenticación
Aquí verificaremos la integridad de el role de cada usuario es quien dice ser durante el flujo de autenticación.
5. Pruebas de autorización
Cualquier autorización, es decir, determinar los recursos que podemos usar se tratará en esta categoría.
6. Pruebas de la gestión de sesiones
Se pretende testear que se controla correctamente las sesión durante todo el flujo.
7. Pruebas de validación de entrada
Las pruebas realizadas en este apartado tratan de validar el correcto tratamiento de los datos en la entrada de los mismos, por ejemplo realizando uso de diversas técnicas como XSS, SQL injection, LFI/RFI, etc
8. Pruebas de manejo de errores
En este apartado se provocan todo tipo de errores de aplicativo, sistema y/o arquitectura donde podamos determinar mediante un comportamiento adecuado el descubrimiento de alguna debilidad y/o vulnerabilidad en el objetivo.
9. Pruebas de cifrado
Aquí verificamos debilidades en todo lo relativo al cifrado, desde la implementación de algoritmos de cifrado hasta vulnerabilidades en los protocolos de capa de transmisión.
10. Pruebas de lógica de negocio
Se realizarán test relativos a un posible mal análisis de la lógica de negocio en la implementación de la aplicación, como podría ser por ejemplo insertar usuarios no validados, alteración de componentes en base a la no validación de campos, etc.
11. Pruebas del lado de cliente
La validación en esta parte irá más enfocada a tipos de ataque en la parte cliente, como podría ser DOM Based XSS, Clickjacking, Client Side URL Redirect, etc
Todos los procesos de cada categoría están definidos ampliamente en el site oficial de OWASP donde podremos ver con detalle de que se trata cada uno para poder realizar los pertinentes test de manera correcta.
Podemos encontrar información detallada sobre como aplicar OWASP en https://www.owasp.org/index.php/Main_Page.
OSSTMM
Es una metodología abierta orientada a la comprobación de seguridad de:
- Seguridad física
- Seguridad en redes de datos y telecomunicaciones
- Seguridad inalámbrica
- Seguridad de Procesos
- Ingeniería social
- Seguridad de Procesos
- Ingeniería social
- Cumplimiento
Esta metodología tiene gran similitud con la ISO 27001, aunque OSSTMM puede actuar de complemento sin ningún problema o inclusive de forma individual si lo que queremos obtener está más ligado a la obtención de detalles más técnicos y la verificación y prueba de los elementos analizados.
El focus del OSSTMM está más ligado a la rigurosidad de las pruebas, detección y eliminación de falsos positivos, cumplimiento de standards y regulaciones, cuantificación de los resultados obtenidos, capacidad de reproducción de los resultados y asegurar la calidad.
Dispone de varias fases:
- Identificación
- Revelación de datos sensibles
- Análisis de vulnerabilidades y debilidades criptológicas
- Análisis de vulnerabilidades y debilidades en accesos físicos, redes de datos, redes inlámbricas, sistemas, servicios y aplicaciones
- Validación de la confidencialidad en accesos físicos, redes de datos, redes inlámbricas, sistemas, servicios y aplicaciones
- Detalle técnico de los análisis
- Contramedidas
Cyber Kill Chain
Es una metodología de origen militar basado en Kill Chain e inventada por la compañía multinacional de la industria militar y aeroespacial.
Se tiene tiene como base los pasos seguidos para la ejecución de una amenaza persistente avanzada, por lo que se puede tener una visibilidad más puramente del lado más ofensivo, mostrando a las empresas qué medidas debería establecer en cada una de las fases para garantizar una seguridad.
Dispone de varias fases:
1. Reconocimiento
Se trata de identificar los posibles objetivos e investigarlos.
2. Creación del arma
Desarrollo del arma detonante de la futura explotación, por ejemplo el desarrollo de un troyano con un exploit incrustado sería de lo más común.
3. Entrega
Aqui se define el canal de entrega del posible malware desarrollado, desde un correo electronico, url hasta un simple dispositivo USB.
4. Explotación
En esta fase se buscará la forma de expotar el código malicioso ya sea vía software o por medio de ingeniería social.
5. Instalación
En esta parte generamos persistencia en los sistemas para poder volver entrar a los mismos una vez finalizada nuestra sesión, evitando repetir los pasos anteriores por simple complejidad.
6. C&C
Tras asegurar la fase de instalación, durante la misma se dejará preparada normalmente con funcionalidades de Command & Control, que no es más que capacidad de control remoto de nuestro malware donde podamos establecer comunicación con el mismo de forma remota y ejecutar las ordenes que deseemos, funcionalidad muy común en las botnets.
7. Acciones
Finalmente esta es la fase donde se produce el daño real, desde el cifrado de ficheros, borrado, exfiltración de datos, etc.