El pentest es un conjunto de actividades que prueban las defensas informáticas de un sistema para comprender sus debilidades y hasta qué punto es posible explotarlas y con qué resultados. El pentest constituye, efectivamente, una herramienta preciosa para las organizaciones en su camino hacia la ciberseguridad.
Índice de temas
Qué es el pentest y cuál es su historia
Durante la década de 1970, se formaron los primeros equipos de hackers financiados por el gobierno y la industria para intentar romper las defensas de los sistemas informáticos en un intento de descubrir y corregir los agujeros de seguridad.
Los que realizan esta actividad se llaman testers de pentest o pentesters o auditores. Hoy en día, ellos también son definidos con el nombre más moderno de hacker ético o “equipo tigre”.
Durante más de 50 años, los hackers éticos han trabajado para garantizar que los sistemas informáticos permanezcan protegidos de los piratas informáticos que intentan socavar o incluso destruir las redes de información. Cabe recordar que el desafío de mantener la información segura surgió cuando las computadoras adquirieron la capacidad de compartir información a través de líneas de comunicación. Líneas que pueden ser pirateadas y cuyos datos pueden ser robados o comprometidos. Hoy en día, los miles de terabytes de datos que viajan por todo el mundo cada minuto presuponen mucha información que robar y, por lo tanto, mucha que proteger.
Desde los años 90, sin embargo, el trabajo de estos “equipos tigre” comenzó a ser instado como más importante para cualquier propietario de sistema. Fue en este momento que el trabajo se conocía comúnmente como “hacking ético”. En la década de 2000, las pruebas de penetración se han convertido en una disciplina generalizada. Cabe recordar que el Estándar de Ejecución de Pruebas de Penetración (PTES – Penetration Testing Execution Standard) fue el primer proveedor de servicios de pentest en 2003.
Con el pasar del tiempo, la práctica de pentest ha evolucionado pasando de ser un proceso completamente manual y tedioso – que solo unas pocas personas sabían cómo hacer – a un proceso más automatizado y altamente propagado, con la evolución de la tecnología.
En futuro el pentest utilizara cada vez más la inteligencia artificial para hacer que los resultados sean más precisos y las evaluaciones más eficientes. Pero también es importante entender que los pentesters aún necesitan usar su experiencia y conocimiento para decidir, en última instancia, cuál es el mejor curso de acción para realizar la evaluación.
Diferencia entre Pentest y Vulnerability Assessment
Se suele considerar el pentest como sinónimo de la evaluación de vulnerabilidades – o vulnerability assessment – pero, en realidad, se trata de dos conceptos bastante diferentes.
Aunque el pentest puede incluir actividades de evaluación de vulnerabilidades, siempre tiene como objetivo determinar hasta dónde puede penetrar las defensas de la organización y qué puede lograr con un ciberataque. Además de la detección de vulnerabilidades, los pentests se pueden utilizar para:
•Averiguar el cumplimiento de las normas de ciberseguridad.
• Evaluar la concienciación de los empleados sobre ciberseguridad.
• Averiguar la capacidad de respuesta de la organización a ataques cibernéticos o a problemas de ciberseguridad.
Los pentests se utilizan para analizar en profundidad el nivel de seguridad de un sistema informático; se trata de actividades largas, complicadas y costosas que deben implicar acciones correctivas y que deben repetirse al cabo de unos meses para comprobar la implementación de correcciones y la posible aparición de nuevos problemas.
La eficiencia de los pentests – que son cada día más automatizados – depende tanto de la cultura de ciberseguridad de la empresa como de la calidad de los testers o de las herramientas utilizadas. Además, hay que recordar que toda la información incluida en un informe de pentest sigue siendo inútil si la organización no comprende su importancia y no la explota para corregir las vulnerabilidades del sistema.
Normalmente, el escaneo de vulnerabilidades – o evaluación de vulnerabilidades o vulnerability assessment – detecta riesgos de brechas, puntos débiles o una vulnerabilidad en cualquier parte de los sistemas informáticos, de la red o de las aplicaciones web para revisar, clasificar y priorizar las vulnerabilidades antes de que los hackers las exploten.
Tipos de pentesting
El pentest puede ser realizado por personal interno de IT o testers externos. A segunda de la información de seguridad compartida con el equipo de testers, podemos distinguir tres tipos de pentest:
- Prueba de caja negra (Black box testing) – El tester en este caso no sabe nada sobre la empresa, aparte del nombre, simulando así la situación real de un cracker.
- Prueba de caja blanca (White box testing). Este tipo de prueba se realiza proporcionando a los testers una información precisa sobre el sistema informático y las medidas de seguridad.
- Prueba de caja gris (Grey box testing) – Esta es una solución híbrida, donde el tester tiene limitada información sobre el sistema.
El pentest de caja negra es el más realista, pero también es el más largo y caro; además los resultados dependen mucho de la habilidad del tester. Los hackers éticos son utilizados muy a menudo para este tipo de prueba.
Las pruebas de caja blanca y caja gris son muy específicas, efectivas, y más adecuadas para la mayoría de las empresas.
Cómo funciona el pentest
Un pentest se divide normalmente en 6 fases:
- Planificación y preparación – Resulta fundamental determinar y acordar el alcance de la prueba. El propósito de un pentest determina exactamente lo que se probará y los objetivos de esa prueba.
- Investigación: durante esta fase, se realiza un reconocimiento para recopilar la mayor cantidad de información posible sobre el objetivo sin explotarlo realmente. Esta información se puede utilizar para obtener acceso o lograr otros objetivos. El tipo de información necesaria depende del alcance de la asignación. Por ejemplo, un pentest externo requeriría una forma de obtener acceso inicial, mientras que un pentest interno podría buscar formas de aumentar los privilegios. La mayor parte de la recopilación de información incluye el uso de herramientas automatizadas para escanear los recursos de destino en busca de vulnerabilidades conocidas, que luego se pueden examinar en profundidad.
- Intento de penetración y explotación – Un pentest, para identificar un riesgo, intenta explotar las vulnerabilidades individuadas durante la fase de descubrimiento. A veces, no es posible explotar con éxito una vulnerabilidad aparentemente crítica. Por otro lado, una vulnerabilidad menos grave puede ser una parte crucial de una cadena de ataque que puede lanzar exploits posteriores en otros activos digitales internos. Este encadenamiento puede terminar con la obtención de acceso a datos confidenciales o la capacidad de interrumpir los sistemas. Los pentests no necesariamente desafían solo los activos digitales; de hecho, las campañas organizadas de ingeniería social con correos electrónicos de phishing también pueden ser efectivas para evaluar la conciencia cibernética de los empleados, el impacto de su comportamiento y el cumplimiento de los controles de seguridad existentes.
- Análisis y generación de informes – Al final del pentest, se necesita revisar los resultados y elaborar informes con las conclusiones proporcionando una visión general del proceso de pentests, seguido de un análisis de las vulnerabilidades de alto riesgo. Este análisis también determinará la priorización del riesgo y, además, las organizaciones, encontrando suficientes vulnerabilidades, serán obligadas aceptar el riesgo de vulnerabilidades menos graves para focalizarse en resolver las amenazas más críticas que podrían afectar negativamente a los procesos comerciales.
El informe debe también incluir los siguientes documentos:
- Resumen de escenarios de penetración exitosos
- Lista de información recopilada durante los pentests
- Lista y descripción de las vulnerabilidades encontradas
- Descripción detallada de los procedimientos
- Consejos y técnicas para resolver vulnerabilidades
- Limpieza – Los pentesters tiene que limpiar el entorno al final de la prueba y restaurar los hosts comprometidos a su estado original para que no afecten negativamente a las operaciones de la organización.
- Retesteo – Una vez completada la limpieza, una organización puede abordar las debilidades en función de la criticidad de la vulnerabilidad. Esto puede incluir parches, implementar controles compensatorios para proteger las vulnerabilidades que no se pueden corregir fácilmente o, incluso, invertir en nuevas soluciones que puedan simplificar la seguridad y mejorar la eficiencia. Se recomienda validar las vulnerabilidades que se han solucionado volviendo a realizar las pruebas para asegurarse de que se han mitigado adecuadamente.
Fases de pentests
Las principales fases de pentests son las siguientes:
- Prueba de penetración de servicios de red (Network Service Penetration Testing) – Se refiere a un tipo de pentest realizado para proteger la organización de ataques de red comunes. El objetivo de un pentest de servicios de red es descubrir las debilidades y vulnerabilidades de seguridad más expuestas en la red, antes de que los atacantes puedan explotar estos puntos ciegos. Un pentest de servicios de red normalmente comprueba varios componentes de infraestructura, incluidos servidores y firewalls, conmutadores y enrutadores, estaciones de trabajo e impresoras.
Idealmente, una prueba de servicios de red puede ayudar a proteger contra ataques de red comunes como: configuraciones erróneas de firewall, ataques de enrutador, ataques de conmutación o enrutamiento, ataques de bases de datos, ataques de hombre en el medio (Man-In-The-Middle – MITM), ataques de servidor proxy, etc. Además, hoy en día, resulta estratégico y fundamental para las organizaciones probar los servicios de red externos e internos al menos una vez al año ya que los sistemas de misión crítica dependen de la integridad de la red para una disponibilidad continua,
- Pruebas de penetración de aplicaciones web (Web Application Penetration Testing) – Se trata de identificar debilidades o vulnerabilidades de seguridad en aplicaciones web y sus componentes, incluido el código fuente, la base de datos y cualquier red de back-end relevante. Un proceso de pentest de aplicaciones web normalmente se compone de las siguientes tres fases:
- Reconocimiento: recopilación de información sobre la aplicación. Por ejemplo, el sistema operativo (Operative System- OS) y los recursos utilizados por la aplicación.
- Descubrimiento: detección de las vulnerabilidades.
- Explotación: utilización de vulnerabilidades detectadas para obtener acceso no autorizado a la aplicación y datos.
Los resultados de un pentest de una aplicación web deben proporcionar informaciones sobre las vulnerabilidades encontradas y cualquier explotación exitosa. Estas informaciones pueden ayudar la organización a priorizar las vulnerabilidades y determinar cómo aplicar correcciones.
- Prueba de penetración física (Physical Penetration Testing): se realiza con el propósito de descubrir cualquier vulnerabilidad y problema en los recursos físicos, como cerraduras, cámaras, sensores y barreras, que podrían conducir a una violación. Las pruebas de penetración física también pueden evaluar cómo la organización gestiona las amenazas de seguridad física como la ingeniería social, la clonación de tarjetas de identificación, el tail-gating (i.e. ataque en el que una persona busca obtener acceso a un área restringida en la que no puede estar), etc. Al final de este pentest, la organización recibe información sobre fallas de seguridad física detectadas y consejos de mitigación.
- Pruebas de penetración de ingeniería social (Social Engineering Penetration Testing): un ataque de ingeniería social se dirige a los empleados de la empresa con acceso a los activos de la empresa, tratando de persuadirlos, engañarlos o chantajearlos para que divulguen información y credenciales. Un pentest de ingeniería social tiene como objetivo determinar cómo la organización reacciona durante un ataque de ingeniería social. Al final de esta prueba, la organización recibe información que puede ayudar a crear o mejorar un programa de sensibilización sobre ingeniería social y protocolos de seguridad.
- Prueba de penetración del lado del cliente (Client Side Penetration Testing): se realiza con el fin de detectar vulnerabilidades de software que pueden explotarse fácilmente en un dispositivo cliente, como estaciones de trabajo y navegadores web. Un pentest del lado del cliente puede identificar ataques específicos, como: ataques de secuencias de comandos entre sitios (XSS), secuestro de formularios, inyecciones HTML, ataques de secuestro de clics (clickjacking) e infecciones de malware.
- Pruebas de penetración inalámbrica (Wireless Penetration Testing): las comunicaciones inalámbricas son servicios que permiten que los datos entren y salgan de las redes y se deben protegerlas del acceso no autorizado y de la exfiltración de datos.
Las pruebas de penetración inalámbrica se utilizan para identificar los riesgos asociados con las redes inalámbricas y evaluar tipologías de debilidades en términos de:
- Ataques de desautenticación
- Configuración incorrecta de routers inalámbricos
- Reutilización de sesiones
- Dispositivos inalámbricos no autorizados
- Pruebas de penetración de IoT (IoT Penetration Testing): las pruebas de penetración de IoT ayudan a los expertos a descubrir vulnerabilidades de seguridad en la superficie de ataque de IoT para garantizar la preparación de seguridad al identificar configuraciones erróneas y corregirlas para proteger el ecosistema de IoT. De esta manera la organización puede cumplir con las normativas y minimizar la interrupción operativa.
- Pruebas de penetración de Tecnología Operativa (OT Penetration Testing): los sistemas de tecnología operativa son cada día más conectados y, por lo tanto, resultan más expuestos a las amenazas cibernéticas. Los pentests detectan la resistencia de los sistemas de control industrial de tecnología operativa a los ciberataques, proporcionan visibilidad, identifican vulnerabilidades y priorizan áreas de mejora.
- Pruebas de penetración en la nube (Cloud Penetration Testing): El cloud computing es cada día más crucial para la escalabilidad empresarial, por lo tanto, las organizaciones deben fortalecer la seguridad de las tecnologías en la nube para mantenerse al día con los ataques cibernéticos. El pentest en la nube sirve para detectar vulnerabilidades, los puntos débiles y de fuerza de las soluciones basadas en la nube y mejorar los programas de respuesta a incidentes y prevención de incidentes externos.
- Pruebas de penetración de bases de datos (Database Penetration Testing): la seguridad de la base de datos es fundamental y estratégica para las organizaciones considerando que el objetivo final de un atacante es obtener acceso a las bases de datos y robar información confidencial. El pentest de base de datos comprueba el acceso a la base de datos a nivel de privilegios. Los pentesters intentan acceder a la base de datos, identificar puntos de acceso y luego discutir con la organización cómo protegerla en caso de una violación.
- Pruebas de penetración SCADA (SCADA Penetration Testing): los sistemas de control de supervisión y adquisición de datos (SCADA – Supervisory Control And Data Acquisition Control Supervisor y Adquisición de Datos) son una herramienta de automatización y control industrial utilizada en los procesos productivos que puede controlar, supervisar, recopilar datos, analizar datos y generar informes a distancia mediante una aplicación informática. El pentest SCADA resulta eficaz para proteger los sistemas SCADA de amenazas externas y obtener una comprensión integral de los riesgos potenciales y de las brechas de seguridad.
- Pruebas de penetración de aplicaciones móviles (Mobile App Penetration Testing): hay innumerables aplicaciones móviles disponibles en el mercado que resultan ser un objetivo lucrativo para los atacantes. Según el informe de 2021 la empresa estadounidense Synopsys (líder mundial en soluciones automatizadas) el 63% de 3.335 aplicaciones móviles analizada contenía vulnerabilidades de seguridad conocidas. Por lo tanto, el pentest de aplicaciones móviles resulta esencial para evaluar la seguridad de un dispositivo móvil y de sus aplicaciones, para descubrir vulnerabilidades y encontrar fallas en el código de la aplicación.
Las 10 mejores certificaciones de pentest para profesionales de seguridad [actualizado en 2022]
- EC-Council (Consejo Internacional de Consultores de Comercio Electrónico) Hacker Ético Certificado (CEH)
- Maestro de Probador de Penetración con Licencia (LPT) del Consejo de la CE
- Probador de penetración certificado por Infosec Institute (CPT)
- Experto certificado en probador de penetración (CEPT)
- Probador certificado de penetración de aplicaciones móviles y web (CMWAPT)
- Profesional Certificado de Operaciones del Equipo Rojo (CRTOP)
- CompTIA PenTest+
- Probador de penetración (GPEN) de certificación global de aseguramiento de la información (GIAC)
- Investigador de exploits GIAC y probador de penetración avanzado (GXPN)
- Profesional certificado en seguridad ofensiva (OSCP)
Principales metodologías y standards de pentest
1. OSSTMM – Uno de los standards más reconocidos en la industria, proporciona una metodología científica para la evaluación de la penetración del servicio de red y la vulnerabilidad. Este standard contiene una guía completa para que los testers identifiquen vulnerabilidades de seguridad dentro de una red (y sus componentes) desde varios ángulos potenciales de ataque. La mayoría de los desarrolladores y equipos de IT basan sus firewalls y redes en este manual y las pautas que proporciona.
2. OWASP (Open Web Application Security Project)- Es el standard más reconocido en la industria para todos los problemas de seguridad de aplicaciones, proporcionando una metodología para los pentests de aplicaciones web y móviles. La guía proporciona pautas completas para cada método de pentest, con más de 66 comprobaciones permitiendo a los testers identificar vulnerabilidades dentro de una amplia variedad de características que se encuentran en las aplicaciones modernas de hoy.
Con la ayuda de esta metodología, las organizaciones están mejor equipadas para proteger sus aplicaciones – tanto web como móviles – de errores comunes que pueden tener un impacto potencialmente crítico en su negocio. Las organizaciones que deseen desarrollar nuevas aplicaciones web y móviles también deben considerar la integración de estos standards durante su fase de desarrollo para evitar la introducción de agujeros de seguridad comunes.
3. NIST (Instituto Nacional de Estándares y Tecnología) – NIST ofrece pautas más específicas para que los pentesters proporcionando un manual que se adapta mejor a mejorar la ciberseguridad general de una organización. Además, la última versión pone más énfasis en la ciberseguridad de las infraestructuras críticas. Cabe recordar que el cumplimiento del marco NIST es a menudo un requisito reglamentario para varios proveedores y socios comerciales estadounidenses.
La mayoría de las organizaciones, para cumplir con los standards establecidos por el NIST, realizan pentests de aplicaciones y redes siguiendo un conjunto de pautas preestablecidas, cumpliendo con sus obligaciones de control y de ciberseguridad y, al mismo tiempo mitigando los riesgos de un ciberataque de todas las formas posibles.
4. PTES (Metodologías y estándares de pruebas de penetración): el marco PTES se destaca por provisionar el enfoque más recomendado para estructurar un pentest, guiando a los testers a través de las diversas etapas, cuales: la comunicación inicial, la recopilación de información y las simulaciones de las amenazas.
Los testers se familiarizan con la organización y su contexto tecnológico antes de explotar áreas potencialmente vulnerables, permitiéndoles identificar los escenarios de ataque más avanzados que podrían ocurrir. Los testers también reciben pautas para realizar pruebas posteriores a la explotación y averiguar que las vulnerabilidades previamente identificadas se hayan parcheado con éxito.
5.ISSAF (Information System Security Assessment Framework) – El estándar ISSAF contiene un enfoque aún más estructurado y especializado para pentests que el standard anterior, proporcionando un conjunto de standards que permiten a un tester planificar y documentar meticulosamente cada paso del procedimiento del pentest. Además, los pentesters que utilizan una combinación de diferentes herramientas consideran ISSAF particularmente crucial, ya que pueden vincular cada paso a un instrumento en particular.
ISSAF, para cada área vulnerable del sistema, ofrece información complementaria, varios vectores de ataque, así como posibles resultados cuando se explota una vulnerabilidad. En algunos casos, los testers también pueden encontrar información sobre las herramientas que los atacantes reales utilizan comúnmente para atacar estas áreas.
Conclusiones
A medida que las amenazas y las tecnologías de ciberpiratería continúan evolucionando en diversas industrias, las organizaciones urgen mejorar su enfoque sobre los pentests de ciberseguridad para garantizar que se mantengan actualizadas con las últimas tecnologías y posibles escenarios de ataques. De hecho, la resiliencia cibernética es la capacidad de una organización para anticipar, prepararse, responder, recuperarse y adaptarse a las amenazas cibernéticas. El pentest, por lo tanto, constituye una palanca estratégica adicional para la instalación e implementación de marcos de seguridad de IT actualizados y, al mismo tiempo, para garantizar la gestión estructurada de riesgos y la continuidad del negocio.
@RESERVADOS TODOS LOS DERECHOS