Pentester: ¿a qué se dedica?
El Penetration Tester o Pentester es un experto quien, a través de un acuerdo legal, intencionalmente ataca una aplicación o red para verificar, de manera realista, sus estándares de seguridad. Este profesional usa su experiencia y herramientas adecuadas para detectar vulnerabilidades, ajustes incorrectos y otras debilidades.
Contratar un Pentester posee muchas ventajas, tales como:
- Descubrir vulnerabilidades a través de una Prueba de Concepto (PoC), la cual muestra su existencia, magnitud y cómo pueden ser explotadas, yendo más allá de las teorías, falsos positivos y rastreos relacionados;
- Prevenir futuros ataques, sugiriendo la implementación de controles de seguridad actualizados para contrarrestar las referidas vulnerabilidades;
- Evaluar el desempeño de las defensas del sistema durante el pentesting;
- Simular un escenario realista donde una compañía aprenda cómo actuaría un cibercriminal;
- Lograr un mapeo de la perspectiva del cibercriminal cuando irrumpa en el sistema.
Los pentests no son procedimientos de una sola vez. Realizarlos debe ser un ejercicio constante debido a que todo el tiempo surgen nuevas vulnerabilidades en el mundo tech, exponiendo a todas las aplicaciones y sistemas a nuevas amenazas y ciberataques.
Así que quieres ser pentester… Hablemos de ello
Dependiendo del propósito del análisis de seguridad, el pentester profesional recibirá cierto nivel de información para acceder al sistema objetivo. En algunos casos, se adopta el mismo enfoque de principio a fin, mientras que en otros la estrategia evoluciona a medida que se incrementa el conocimiento sobre el sistema.
Los pentesters se mueven en tres niveles de acceso de información:
Caja Negra (Black-Box)
No hay información sobre el sistema más allá del nombre de la compañía o el host objetivo. Es el escenario más realista para simular un ciberataque auténtico, donde el perpetrador suele comenzar sin información. No obstante, el factor tiempo para black-boxing es importante, esto porque el atacante real tiene todo el tiempo del mundo, mientras que un pentester no.
Caja Gris (Gray-Box)
En este escenario, se garantiza un set de información sobre la estructura sujeto de la prueba, que incluye credenciales, hosts sensibles, flujos de negocio y documentación. Lo anterior brinda información básica al pesterter, dándole más posibilidades de encontrar vulnerabilidades, según el acceso ampliado.
Caja Blanca (White-Box)
Los Pentesters tienen acceso a la información más sensible y confidencial, como códigos fuente, códigos binarios y, algunas veces, incluso hasta servidores administrativos. Este enfoque representa el nivel más alto de confianza entre las partes, únicamente con el propósito de incrementar la posibilidad de hallar vulnerabilidades en el menor tiempo posible.
Tipos de tecnología analizados por un Pentester
Los ciberataques son factibles en múltiples escenarios, tales como Internet de las Cosas, Docker, Cloud, Wi-Fi, BlockChain, Social Engineering, etc. Todos ellos pueden categorizarse en tres segmentos específicos: hardware, software y humano. Sin embargo, resaltaremos los más comunes, al menos en el mercado actual. Ellos son:
Pentest en aplicaciones Web
El más popular entre firmas de consultoría. Este proceso determina la efectividad de los controles de seguridad, buscando vulnerabilidades ocultas, patrones de ataque y cualquier otra configuración errónea que pudiera comprometer a la aplicación web.
OWASP Top 10, el documento más confiable entre las principales vulnerabilidades de la web, es un gran aliado en esta categoría. Aquí podemos ver una vulnerabilidad de tipo LFI (Local File Include), la cual muestra archivos de acceso impropio a servidores (Test Environment):
Pentest en aplicaciones móviles (Android/iOS)
En esta modalidad, el objetivo es hallar vulnerabilidades mediante tres pasos importantes:
Análisis del código fuente y binario descompilado: Como regla, en cada pentest de aplicaciones móviles, se dispondrá de un archivo binario referido a la aplicación misma. Éste es sometido a ingeniería inversa, lo que significa que podemos ver un supuesto código fuente, dependiendo de la existencia de ofuscación de código. Las principales herramientas de descompilación son:
- IDA Pro: El Disassembler y Debugger más completo del mercado;
- apktool: Una gran herramienta de descompilación para Android;
- Radare2: Un marco de ingeniería inversa de amplio espectro;
- Ghidra: Herramienta open-source de ingeniería inversa, desarrollada por la Agencia Nacional de Seguridad de EE. UU. (NSA), ideal para quienes no pueden costear IDA.
Y, para análisis binario, una de las herramientas más utilizadas es el Mobile Security Framework (MobSF), un software open-source que realiza un análisis completo de forma automatizada. Adicionalmente, si el pentest es White-Box, entonces también puede analizarse el código fuente disponible.
Análisis de seguridad de la app en el dispositivo
Antes de este paso, necesitas verificar la existencia de protecciones Anti-Root o Certificate Pinning y, si existen, es necesario realizar un bypass, el cual depende siempre de cómo se hizo la aplicación.
Después de la verificación, se realiza el análisis de seguridad, basado en investigar si el dispositivo almacena información de manera impropia como datos financieros o personales, direcciones y demás elementos sensibles.
Búsqueda de vulnerabilidades en solicitudes
En este proceso, el pentester interceptará tráfico de la red del dispositivo y hará pruebas de vulnerabilidad en las solicitudes de la aplicación. Un detalle de este paso es que, en la mayoría de los casos, el análisis del código fuente es concomitante para verificar el comportamiento de la aplicación.
Pentests en APIs
Este enfoque es muy similar al de aplicaciones web, pero sin ninguna interfaz gráfica. Aquí se brinda, por lo general, información estilo Swagger, tal como una colección Postman. En el escenario ideal, el pentester tiene a la mano todos los Endpoints de la aplicación CRUD/REST.
Vale mencionar que, cuando un pestest es Black-Box, la principal estrategia es enumerar los directorios con fuerza bruta, usando alguna herramienta automatizada, como Ffuf. Adicionalmente, se sugiere leer el siguiente artículo que aborda este contexto: Tips and tricks for Pentest in API.
Al igual que el Web, el pentest API también apunta a cubrir OWASP API Security Top 10 list. Aquí un ejemplo de ejecución Ffuf:
Pentest de red interna
Puede realizarse en persona o de manera remota a través de un VPN/VPS. En esta modalidad, hay un mayor rango de elementos para validar, principalmente debido a la variedad de servicios que pueden estar en los host que serán evaluados, tales como impresoras, cámaras de seguridad, puntos electrónicos o cualquier otro dispositivo conectado a la red que contiene información sensible.
Es esencial mapear la red al comenzar y Nmap es la mejor herramienta para hacerlo. Con ella, es posible descubrir todos los hosts y puertos del sistema entero, incluyendo información adicional para cada servicio.
Muchos sistemas tienen integración con Active Directory (plataforma administrativa), donde estar comprometidos se convierte en el punto más crítico en el análisis. Una sugerencia para hacer este rastreo de servicios integrados es usar la Pentest Guide in AD (HackTricks), donde se enlistan las mejores recomendaciones sobre lo que puede hacerse en cada protocolo y servicio/puerto, tales como SMB, LDAP, Kerberos, RDP, SSH , FTP, etc…
En este tipo de pentest está muy presente la escalabilidad en privilegios, porque en muchos casos es posible ganar acceso a un user/host común e intentar obtener acceso administrativo usando herramientas como:
- BloodHound: Mapeo AD,
- WinPEAS: Herramienta completa y automatizada para escalabilidad de privilegio en Windows,
- LinPEAS: Herramienta completa y automatizada para escalabilidad de privilegio en Linux.
Pentest de red externa
Es el tipo más común de pentests Black-Box, donde básicamente hay un nombre de empresa o una lista de IPs. Es similar a la red interna, pero aquí el pentest siempre se realiza desde fuera de la red.
Lo mejor de este enfoque es la gran diversidad y libertad que se da al analista. Considerando la enorme cantidad de verificaciones, el resultado del pentest variará en gran medida, dependiendo de la creatividad de cada profesional.
Vale recordar que el reconocimiento es uno de los pasos principales en este análisis, el cual se describirá en el siguiente artículo.
¿Quieres saber más sobre lo que conlleva una carrera de pentester? Mantente pendiente de próximos escritos.
Revelo Content Network da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.