Por Sebastián Passaro.
¿Qué es una prueba de penetración o pentesting?
La prueba de penetración es una actividad metódica que a nivel general busca identificar desde la perspectiva de un atacante, es decir con enfoque ofensivo, cuáles son los puntos de entrada a los activos de la organización que interesa analizar y qué impacto posterior conlleva.
Esto implica una retroalimentación durante el proceso donde se determina una “superficie de ataque” inicial y se expande progresivamente a medida que se obtienen nuevos accesos, “penetrando” en las capas que impiden al agente de amenaza llegar a su objetivo final. Tal objetivo es definido desde el inicio, pudiendo ser desde el acceso a información sensible específica hasta tomar control de la organización, implicando activos digitales y/o físicos.
Así como existe la abreviación “pentesting” para referirse a “penetration testing”, es común llamarle “pentester” a el o la profesional que ejecuta la tarea, que debe contar con conocimientos específicos de ciberseguridad e inventiva para desempeñar las tareas.
Estas prácticas se engloban dentro de lo que se considera hackeo ético, tema que profundizamos en el blog post Todo sobre hacking ético: qué es, tipos, mejores herramientas y sus beneficios. Allí se aborda el concepto, se responde a preguntas como “¿De quién querría protegerme?” y se mencionan algunas herramientas, mejores prácticas y beneficios.
Es una lectura complementaria y recomendada, dado que en su mayoría aplica a las pruebas de penetración.
¿Para qué sirven las pruebas de penetración?
https://unsplash.com/es/fotos/camara-cctv-negra-en-la-pared-LkD_IH8_K8k
Si bien las ventajas a nivel general se tratan en el artículo mencionado, las pruebas de penetración tienen beneficios específicos.
Evaluación de registro y monitoreo
El pentester intentará evadir controles para acceder a los sistemas dentro del alcance del trabajo con maniobras que en menor o mayor medida generarán trazas y registros de actividad. Esta instancia es sumamente útil para evaluar las capacidades de monitoreo, y disparo de alertas y respuesta. Independientemente de la identificación en tiempo real de actividad maliciosa, también debe quedar registro en distintos dispositivos de tales eventos, de forma que ante cualquier eventualidad puedan ser analizados fácilmente. Esta información es vital para comprender en términos de línea de tiempo el orden de los sucesos que dieron lugar al compromiso y además, es evidencia en el caso de recurrir a procesos judiciales ante un ataque fuera del contexto del trabajo.
Cumplimiento de políticas
Cuanto más grande es una organización, se convierte en necesario establecer políticas y procedimientos que contemplen la ciberseguridad, como lo son políticas de contraseñas, gestión de un incidente de seguridad, protección de datos sensibles propios o de terceros, restricciones sobre la infraestructura informática, entre otras. Si bien estas políticas pueden existir, no necesariamente se cumplirán en todos los escenarios. Un pentesting exitoso comprobará si estas se aplican, resultando en hallazgos cuando no sea así.
Profundidad más que amplitud
Lo habitual en un pentest es, dentro del tiempo establecido, llegar lo más lejos o profundo posible. Cuando de pentest de organizaciones se trata, un pentester no siempre analizará cada punto de entrada posible para “explotarlo”, sino que tendrá tendencia a encontrar el camino más corto hasta el objetivo y evidenciará los motivos que lo hicieron posible. Esto es porque el tiempo de trabajo es finito y porque el criterio que le da nombre a este punto es prioritario en esta modalidad de trabajo.
Normativa
Si la organización está regulada por entidades internacionales mediante certificaciones, es común que el pentest sea un requerimiento periódico obligatorio. Cada certificación puede exigir distintos requisitos con enfoque especializado, como sucede por ejemplo con las certificaciones de Payment Card Industry (PCI) Security Standards Council, aplicables al ámbito financiero.
¿Cuáles son las fases del pentesting?
No hay fases únicas dado que existen múltiples metodologías reconocidas internacionalmente para pruebas de penetración. Algunos ejemplos son la guía NIST 800-115, el Penetration Testing Execution Standard (PTES) o el Open Source Security Testing Methodology Manual (OSSTMM) a nivel general. En contextos específicos como sucede con PCI, podrá haber otra metodología puntual (por ejemplo, PCI Penetration Testing Guide). Si el pentest estuviese enfocado únicamente en aplicaciones web o móviles y no en infraestructura/organización, la metodología de la OWASP Testing Guide es un recurso acorde.
https://www.pexels.com/es-es/foto/manos-comienzo-comenzar-empezar-9035000
Sin embargo, todas las metodologías tienen fases macro si se abstraen lo suficiente. Habrá un procedimiento de recolección de información, descubrimiento o reconocimiento, explotación, acciones pos-explotación para avanzar o pivotar (enfoque de penetración) y reportar. Incluso dentro de esta linealidad se da un ciclo, dado que un ataque exitoso implica automáticamente una extensión de la superficie de ataque inicial, donde se vuelve a la fase de reconocimiento. Si bien los estándares tienen más fases y difieren en nombres, a continuación, se describen brevemente las antes mencionadas con un ejemplo simplificado que aporta a un ataque hipotético exitoso.
Recolección de información
Puede verse como un procedimiento de inteligencia. Se busca obtener de Internet toda la información posible sobre el objetivo que en pasos posteriores sea útil. Como puede ser nombres de empleados, cargos empresariales, direcciones de correo, documentos públicos (por accidente o no), contraseñas expuestas en ataques pasados a la organización o a otros sitios donde los empleados tuvieran cuentas de usuario, y demás, en un proceso popularmente denominado como open-source intelligence (OSINT). Las fuentes serán redes sociales, sitios web de la organización, motores de búsqueda, entre otras. Ninguna de estas acciones implica contacto directo con el objetivo de análisis y es considerado como recolección pasiva.
Ejemplo: En LinkedIn figura un empleado de la organización objetivo, encargado de servicios internos informáticos. Su correo electrónico se encuentra en una brecha de contraseñas públicamente accesible en Internet.
Reconocimiento sobre el objetivo
El pentester analiza todo recurso parte de la superficie de ataque para identificar las tecnologías presentes: bloques de direcciones IP, dominios y subdominios, sistemas operativos y servicios, sus versiones, información automáticamente provista al iniciar una comunicación, accesos anónimos en los servicios que lo proveen, etc.
Ejemplo: El pentester escanea la superficie. Una de las direcciones IP expone el puerto 3389, revelando el servicio de escritorio remoto, sistema operativo Windows y nombre del equipo.
Explotación
Luego de suficiente investigación, el pentester intenta validar y explotar las vulnerabilidades detectadas, ya sea por encontrar técnicas públicas para versiones específicas de los servicios, accesos con credenciales robadas (o sin credenciales), correos engañosos con malware (phishing) u otro medio. Una explotación exitosa puede implicar, como no, poner un pie en la organización. En ocasiones, más de una vulnerabilidad debe ser explotada para lograrlo.
Ejemplo: Probando credenciales robadas, el usuario y contraseña del encargado son admitidos en el servicio de escritorio remoto, permitiendo al pentester ingresar como dicho empleado en el equipo Windows.
Pos-explotación
Si es parte del alcance seguir avanzando, se recaba información situacional. El pentester debe poder responder a varias preguntas para determinar qué dirección seguir, como: ¿qué usuario soy?, ¿qué permisos tengo en este equipo?, ¿cuáles son las especificaciones técnicas del sistema?, ¿puedo asegurar mi acceso para volver a ingresar ante eventualidades?, ¿para qué se utiliza el equipo?, ¿tengo acceso a otras redes?, ¿hay otros servicios en este equipo que no fueron expuestos a Internet?, ¿hay más credenciales u otra información valiosa que me permita avanzar?, ¿el equipo está protegido por antivirus u otro software de protección?, ¿puedo deshabilitarlo?.
Existe gran variedad de herramientas que facilitan al pentester incurrir en el pivot hacia otros equipos o escalar privilegios dentro de uno. Aquí se vuelve a la fase de reconocimiento para entender qué más hay a disposición.
Ejemplo: El pentester descubre que el equipo está conectado a una red interna y a su vez está unido a un dominio de Active Directory de Windows. Además, el usuario actual es administrador del equipo con poder para deshabilitar el antivirus y ejecutar una herramienta que obtiene contraseñas de otros usuarios que hayan accedido a él previamente. Se obtiene la contraseña de un usuario administrador del dominio, se accede al controlador de dominio directamente accesible en la red interna. El pentester tiene permisos totales sobre los usuarios, grupos y equipos de la organización conectados al dominio.
Reportar
Se debe recopilar evidencia de todos los pasos y sus resultados. Se construye al menos un reporte con varias secciones que describe las debilidades y vulnerabilidades encontradas y cómo fueron abusadas en el contexto del trabajo, con riesgos asociados que permitan priorizarlos. Es pertinente incluir recomendaciones con el mayor detalle posible dentro de lo que el pentester pueda ofrecer, siendo que no siempre se tiene información completa sobre la implementación de los controles existentes, para que la organización remedie los hallazgos.
Es recomendable que el informe no sea exclusivamente técnico, sino que además tenga un resumen ejecutivo para que otros roles de la organización puedan interpretar el nivel de riesgo al que se exponen, cuál es el potencial impacto al negocio y con qué criterio priorizar las remediaciones.
¿Cuándo realizar un pentest?
https://www.pexels.com/es-es/foto/mujer-de-cultivo-tomando-notas-en-el-calendario-5239917
Los escenarios comunes en los que las organizaciones buscan realizar un pentest son, por lo general, después de haber sufrido un incidente de ciberseguridad o debido a regulaciones. Estos casos representan enfoques totalmente opuestos, con una naturaleza reactiva en el primer caso y proactiva en el segundo
Cuando de aplicaciones se trata, es ideal realizar un pentest antes de la liberación de una versión, especialmente si es la primera vez, dado que se cuenta con un servicio consolidado y pronto para desplegarse oficialmente y se aprovecha del beneficio asociado a evaluación de registro y monitoreo que fue mencionado anteriormente. Sin embargo, no significa que pruebas de seguridad con otras modalidades no deban realizarse a lo largo del ciclo de desarrollo, no es dejar la seguridad para el final del ciclo.
Todo esto no aplica de la misma forma tratándose de una organización o sección de infraestructura informática ya que no existe un ciclo de desarrollo con etapas. En estos casos la organización debe decidir si cree acorde la revisión de seguridad puntual ante cambios significativos de la infraestructura, o periódica independientemente del nivel de cambios.
Sobre cada cuánto tiempo se debe realizar un pentest, existen normativas que obligan la revisión de ciberseguridad al menos una vez al año, pero dependiendo de la entidad se solicitan o recomiendan cada 6 meses o incluso cada 3. Si no está regulado, la decisión debe estar basada en costos y gestión de la evolución tecnológica. La realidad es que a mayor frecuencia se reduce el riesgo pero también debe ser rentable para la organización.
A modo de conclusión, las pruebas de penetración son una herramienta valiosa en la evaluación de ciberseguridad de la organización con una visión que el personal no acostumbra a tener. Contratar hackers éticos implica arrendar conocimientos y técnicas especializadas para potencialmente romper nuestras protecciones en un contexto controlado y seguro, previendo las acciones de agentes de amenaza que arrasan con el Internet sin discriminar o de actores que tienen como objetivo específico nuestra organización.
En GeneXus Consulting te ayudamos a evaluar el estado de ciberseguridad de tu organización, analizando activos específicos como subredes, IPs, aplicaciones o toda la organización. Entregamos un informe con hallazgos y soluciones para mejorar la seguridad de forma proactiva y minimizar riesgos.
Este servicio permite a las empresas fortalecer su ciberseguridad de manera proactiva, minimizando riesgos antes de que ocurra un incidente. Conoce más.