Pentesting
Unidad 1
Tipos de pentesting
- Pentesting de caja blanca: También conocido como pentesting de "caja transparente", en este enfoque el pentester tiene conocimiento completo y acceso a la infraestructura y sistemas que serán evaluados. Esto permite una evaluación exhaustiva y detallada de vulnerabilidades y riesgos potenciales.
- Pentesting de caja negra: También conocido como pentesting de "caja opaca", en este enfoque el pentester tiene un conocimiento limitado o nulo de la infraestructura y sistemas que serán evaluados. Esto simula un escenario real en el que un atacante externo intenta comprometer los sistemas sin información privilegiada. Esto ayuda a identificar vulnerabilidades y brechas de seguridad que podrían ser explotadas por atacantes externos.
- Pentesting de caja gris: En este enfoque, el pentester tiene un conocimiento parcial de la infraestructura y sistemas que serán evaluados. Esto significa que el pentester puede tener acceso a cierta información privilegiada o limitada sobre los sistemas, lo que permite una evaluación más realista de las vulnerabilidades y riesgos potenciales.
Fases o metodos de pentesting
ISSAF (Information Systems Security Assestment Framework)
organiza la informacion alrededor de los criterios de evaluacion escritos y revisados x expertos
PCI DSS (Payment Card Industry Data Security Standard)
procesos para almacenamiento y transmision de los titulares de las tarjetas de credito y debito
PTES (Penetration Testing Execution Standard)
Proporciona una guía para la ejecución de pruebas de penetración de manera estandarizada.
¿Que es el pentesting?
El pentesting, o prueba de penetración, es un proceso de evaluación de la seguridad de sistemas informáticos y redes. Consiste en simular ataques cibernéticos para identificar vulnerabilidades y brechas de seguridad en un sistema. El objetivo es ayudar a las organizaciones a fortalecer sus medidas de seguridad y protegerse contra posibles ataques. Se realizan diferentes tipos de pentesting, como el de caja blanca, caja negra y caja gris, cada uno con enfoques y niveles de conocimiento diferentes sobre la infraestructura a evaluar. Además, existen diferentes métodos o marcos de referencia, como ISSAF, PCI DSS y PTES, que proporcionan guías y estándares para llevar a cabo pruebas de penetración de manera efectiva.
Diferencias entre Pentesting y Auditoría de Vulnerabilidades
El Pentesting y la Auditoría de Vulnerabilidades son dos enfoques diferentes para evaluar la seguridad de sistemas informáticos y redes. Aquí hay un resumen de las diferencias clave entre ambos:
- Pentesting (Prueba de Penetración): Es un proceso de evaluación de seguridad que simula ataques cibernéticos para identificar vulnerabilidades y brechas de seguridad en un sistema. Los pentesters utilizan diferentes enfoques (caja blanca, caja negra, caja gris) para evaluar la seguridad y determinar el nivel de riesgo y las posibles consecuencias de un ataque. El objetivo principal del pentesting es ayudar a las organizaciones a fortalecer sus medidas de seguridad y protegerse contra posibles ataques.
- Auditoría de Vulnerabilidades: Es un proceso más amplio que implica identificar y evaluar las vulnerabilidades en un sistema o red. A diferencia del pentesting, la auditoría de vulnerabilidades se centra principalmente en identificar y documentar las vulnerabilidades existentes, sin simular ataques reales. Su objetivo principal es proporcionar una visión clara de las debilidades de seguridad de un sistema y recomendar medidas correctivas para mitigar los riesgos.
En resumen, mientras que el Pentesting se enfoca en simular ataques y evaluar la seguridad global de un sistema, la Auditoría de Vulnerabilidades se centra en identificar y documentar las vulnerabilidades existentes sin simular ataques reales.
Tipos de pruebas 1
Pruebas activas
Las pruebas activas son un tipo de prueba de penetración en la que se realizan intentos reales de explotar las vulnerabilidades de un sistema o red. Estas pruebas implican ataques activos y en tiempo real para evaluar la resistencia de los sistemas y la capacidad de detección y respuesta a los ataques. Algunos ejemplos de pruebas activas incluyen:
- Escaneo de puertos y servicios para identificar vulnerabilidades expuestas.
- Intentos de acceso no autorizado a sistemas y redes.
- Explotación de vulnerabilidades conocidas para obtener acceso no autorizado.
- Pruebas de denegación de servicio para evaluar la capacidad de resistencia del sistema.
Las pruebas activas son una parte crucial de la evaluación de la seguridad de un sistema, ya que permiten identificar las debilidades y evaluar la eficacia de las medidas de seguridad implementadas.
Pruebas pasivas
Las pruebas pasivas son un tipo de prueba de penetración en la que se observa y analiza el tráfico de red y los sistemas sin realizar intentos activos de explotar vulnerabilidades. Estas pruebas se centran en la recopilación de información y el análisis de la configuración de seguridad existente. Algunos ejemplos de pruebas pasivas incluyen:
- Análisis de tráfico de red para identificar información confidencial transmitida sin cifrar.
- Inspección de la configuración de seguridad de los sistemas y dispositivos para identificar configuraciones débiles o incorrectas.
- Análisis de registros y registros de eventos en busca de posibles problemas de seguridad.
- Evaluación de políticas y procedimientos de seguridad para identificar posibles brechas o debilidades.
Las pruebas pasivas son una forma efectiva de evaluar la postura de seguridad de un sistema sin generar tráfico de red adicional ni realizar cambios en la infraestructura. Ayudan a identificar riesgos y recomendaciones para mejorar la seguridad del sistema.
Tipos de pruebas 2
Pruebas externas
Las pruebas externas, también conocidas como pruebas externas de penetración, son un tipo de prueba de penetración en la que se evalúan los sistemas y redes desde la perspectiva de un atacante externo. Estas pruebas simulan los posibles ataques que podrían ser llevados a cabo por personas no autorizadas que intentan comprometer la seguridad de una organización.
El objetivo de las pruebas externas es identificar y evaluar las vulnerabilidades y brechas de seguridad que podrían ser explotadas por un atacante externo. Estas pruebas ayudan a las organizaciones a fortalecer sus medidas de seguridad externas y protegerse contra posibles amenazas externas. Algunas de las áreas que se evalúan en las pruebas externas incluyen:
- Escaneo de puertos y servicios para identificar vulnerabilidades expuestas.
- Intentos de acceso no autorizado a sistemas y redes desde el exterior.
- Explotación de vulnerabilidades conocidas para obtener acceso no autorizado.
- Pruebas de denegación de servicio para evaluar la capacidad de resistencia del sistema.
Pruebas internas
Las pruebas internas, también conocidas como pruebas internas de penetración, son un tipo de prueba de penetración en la que se evalúan los sistemas y redes desde la perspectiva de un usuario interno o autorizado. Estas pruebas simulan los posibles ataques que podrían ser llevados a cabo por empleados o usuarios internos con acceso privilegiado.
El objetivo de las pruebas internas es identificar y evaluar las vulnerabilidades y brechas de seguridad que podrían ser aprovechadas por usuarios internos malintencionados o descuidados. Estas pruebas ayudan a las organizaciones a fortalecer sus medidas de seguridad internas y protegerse contra posibles amenazas internas. Algunas de las áreas que se evalúan en las pruebas internas incluyen:
- Evaluación de los controles de acceso y autenticación para prevenir accesos no autorizados internos.
- Prueba de la efectividad de los controles de seguridad implementados para proteger los datos y sistemas internos.
- Evaluación de la separación de roles y privilegios para evitar abusos internos.
- Pruebas de ingeniería social dirigidas a empleados para evaluar la conciencia de seguridad y la resistencia a la manipulación.
¿Donde se aplican los test?
Capa de aplicación
Los tests de penetración se aplican en la capa de aplicación para evaluar la seguridad de las aplicaciones web y móviles. Esta capa incluye todas las funcionalidades y componentes específicos de la aplicación, como la lógica de negocio, la interfaz de usuario y las interacciones con las bases de datos y otros sistemas.
En los tests de penetración de la capa de aplicación se buscan vulnerabilidades como:
- Inyección de código SQL
- Cross-Site Scripting (XSS)
- Cross-Site Request Forgery (CSRF)
- Acceso no autorizado a funciones o datos sensibles
- Manipulación de parámetros de la aplicación
- Vulnerabilidades en la autenticación y autorización
- Exposición de información confidencial
- Entre otros.
Capa de comunicación
Los tests de penetración se aplican en la capa de comunicación para evaluar la seguridad de los sistemas de comunicación y redes utilizados por la organización. Esta capa incluye todos los protocolos, dispositivos y servicios de red que permiten la comunicación entre los sistemas y usuarios.
En los tests de penetración de la capa de comunicación se buscan vulnerabilidades como:
- Escaneo de puertos y servicios para identificar puertas traseras o servicios no seguros.
- Ataques de denegación de servicio (DoS) para evaluar la capacidad de resistencia de la red.
- Exposición de información confidencial a través de canales inseguros.
- Vulnerabilidades en los protocolos de comunicación utilizados.
- Acceso no autorizado a sistemas y servicios de red.
- Entre otros.
Capa física
Los tests de penetración también se pueden aplicar en la capa física para evaluar la seguridad de los dispositivos físicos y las instalaciones utilizadas por la organización. Esta capa incluye todos los dispositivos físicos, como servidores, routers, switches, y las medidas de seguridad física implementadas, como cámaras de seguridad, sistemas de acceso, y protección contra incendios.
En los tests de penetración de la capa física se buscan vulnerabilidades como:
- Acceso físico no autorizado a las instalaciones o dispositivos.
- Manipulación de dispositivos físicos para obtener acceso no autorizado.
- Detección de debilidades en las medidas de seguridad física implementadas.
- Evaluación de la protección contra incendios y medidas de recuperación ante desastres.
- Entre otros.
Fases de pentesting
Fase 0: Inicio de Proyecto: En esta fase, se establecen los objetivos del proyecto, se define el alcance, se acuerdan los términos del contrato y se reúnen los recursos necesarios, incluyendo el personal y las herramientas de pentesting. También se identifican las restricciones y los requisitos específicos del cliente.
Fase 1: Test de Intrusión Externo: En esta etapa, el equipo de pentesting se enfoca en evaluar la seguridad desde fuera de la red o el sistema objetivo. Esto puede incluir pruebas como la identificación de puertos abiertos, escaneo de vulnerabilidades, intentos de explotación desde el exterior y otros métodos para evaluar la resistencia del sistema a ataques desde el exterior.
Fase 2: Test de Intrusión Interno: En esta fase, el equipo de pentesting se enfoca en evaluar la seguridad desde dentro del sistema o red. Esto puede incluir pruebas más avanzadas, como la escalada de privilegios, el movimiento lateral a través de la red y la exploración de vulnerabilidades internas. El objetivo es evaluar cómo un atacante podría comprometer el sistema una vez que ha ganado acceso desde el exterior.
Fase 3: Resultados: En esta etapa, se recopilan y analizan los resultados de las pruebas de pentesting. Se identifican y documentan las vulnerabilidades y debilidades encontradas, se evalúa su impacto y se proporcionan recomendaciones para la mitigación. Se genera un informe detallado que se entrega al cliente.
Fase 4: Cierre de Proyecto: En esta fase, se cierra formalmente el proyecto de pentesting. Esto puede incluir la revisión de los resultados con el cliente, la discusión de las medidas de mitigación recomendadas, la eliminación de cualquier acceso o actividad relacionada con el proyecto y la entrega final de los informes y documentos al cliente. También se puede llevar a cabo una evaluación post-proyecto para garantizar que se hayan tomado las medidas necesarias para abordar las vulnerabilidades identificadas.
Estas fases proporcionan una estructura general para un proyecto de pentesting, pero es importante adaptarlas a las necesidades y circunstancias específicas de cada proyecto y cliente. Además, es fundamental realizar las pruebas de penetración de manera ética y de acuerdo con las leyes y regulaciones aplicables.
Fases de pruebas
- Reconocimiento (Reconnaissance): En esta fase, se recopila información sobre el objetivo del pentesting, como direcciones IP, nombres de dominio, tecnologías utilizadas y otros detalles relevantes. Esta información se obtiene de fuentes públicas y abiertas, como motores de búsqueda y redes sociales.
- Escaneo (Scanning): En esta etapa, se realiza un escaneo de la infraestructura objetivo para identificar puertos abiertos, servicios en ejecución y posibles vulnerabilidades. Se utilizan herramientas como escáneres de vulnerabilidades y escáneres de puertos para esta tarea.
- Enumeración (Enumeration): En esta fase, se recopila información adicional sobre el sistema o la red, como usuarios, grupos, políticas de seguridad y configuraciones. Esto se hace para preparar los siguientes pasos del pentesting.
- Ganar Acceso (Gaining Access): En esta etapa, el equipo de pentesting intenta explotar las vulnerabilidades identificadas para obtener acceso al sistema objetivo. Esto puede incluir la explotación de fallos de seguridad, la búsqueda de contraseñas débiles o la inyección de código malicioso.
- Mantenimiento del Acceso (Maintaining Access): Una vez que se ha ganado acceso al sistema, el equipo puede tomar medidas para mantener ese acceso, lo que permite un análisis más profundo y la recopilación de información adicional.
- Movimiento Lateral (Lateral Movement): En esta fase, si es relevante, se busca expandir el acceso dentro de la red objetivo. Esto implica moverse de un sistema comprometido a otro y explorar otras partes de la infraestructura.
- Documentación (Reporting): Después de completar las pruebas, se genera un informe detallado que documenta todas las vulnerabilidades identificadas, el riesgo asociado, las pruebas realizadas y las recomendaciones para mitigar las vulnerabilidades. Este informe se entrega al cliente.
- Limpieza de Rastros (Covering Tracks): En algunas pruebas de pentesting ético, es importante eliminar cualquier rastro de la actividad del equipo de pentesting en el sistema objetivo para evitar alarmas de seguridad y mantener la confidencialidad de la prueba.
- Análisis Post-Prueba (Post-Testing Analysis): Después de completar el informe y las recomendaciones, se puede realizar un análisis posterior a la prueba para evaluar el éxito de las medidas de mitigación implementadas y asegurarse de que se hayan corregido las vulnerabilidades identificadas.
- Cierre de Proyecto (Project Closure): En esta fase, se cierra formalmente el proyecto de pentesting. Esto puede incluir la revisión de los resultados con el cliente, la discusión de las medidas de mitigación recomendadas y la entrega final de los informes y documentos al cliente.