«Los defensores piensan en listas, los atacantes piensan en gráficos», dijo John Lambert de Microsoft, resumiendo la diferencia fundamental de mentalidad entre quienes defienden los sistemas de TI y quienes intentan comprometerlos.
El enfoque tradicional de los defensores es enumerar las brechas de seguridad directamente relacionadas con sus activos en la red y eliminar tantas como sea posible, comenzando por las más críticas. Los adversarios, por el contrario, comienzan con el objetivo final en mente y se concentran en trazar el camino hacia una brecha. Por lo general, buscarán el eslabón más débil de la cadena de seguridad para entrar y hacer avanzar el ataque desde allí hasta llegar a las joyas de la corona.
Los equipos de seguridad deben adoptar la perspectiva del atacante para garantizar que las defensas de ciberseguridad de su organización sean adecuadas. Haciendo una analogía con un ejemplo de la vida diaria, la forma estándar de defender nuestra casa de una intrusión es asegurarse de que todas las puertas estén cerradas con llave. Pero para validar que su casa está protegida es necesario probar su seguridad como un ladrón: intentar forzar las cerraduras, trepar por las ventanas y buscar lugares donde las llaves de la casa puedan guardarse «de forma segura».
Las pruebas de penetración satisfacen precisamente esta necesidad: proporcionan al atacante una visión de lo que puede verse comprometido. La práctica de las pruebas de penetración existe desde hace décadas y ayuda a revelar cuán resistentes son nuestras redes contra ataques maliciosos. Sin embargo, dado que las empresas modernas aumentan su uso de servicios en la nube, es igualmente necesario aplicar el concepto de pruebas de penetración tradicionales a la nube.
La nube no es un refugio seguro: sepa lo que necesita proteger
Las arquitecturas de nube comprenden recursos, identidades y configuraciones que se definen mediante programación y cambian a un ritmo rápido. Como resultado, la nube puede ser una caja de pandora de mayor complejidad en materia de ciberseguridad. Si bien los principales proveedores de servicios en la nube implementan prácticas de seguridad rigurosas, esto puede generar una falsa sensación de seguridad para las organizaciones, que pueden no ser conscientes de su responsabilidad de proteger sus activos en la nube, tal como lo define la modelo de responsabilidad compartida en la nube. Por estas razones, el pentesting en la nube es tan importante como las pruebas de penetración de red tradicionales; en algunos casos, incluso más.
En esta publicación de blog, exploramos los componentes básicos del pentesting en la nube, centrándonos en cómo los atacantes buscan y explotan las brechas de seguridad en su nube.
Lo que debe cubrir su Pentest en la nube
Dependiendo del modelo de prestación de servicios en la nube que haya elegido, los límites de su responsabilidad en materia de seguridad pueden variar. En términos generales, la responsabilidad de los proveedores de servicios en la nube termina donde comienza tu responsabilidad. El proveedor de la nube es responsable de proteger el hardware y el software subyacente que permite sus servicios. Usted es responsable de proteger todo lo que crea en la nube: sus datos, claves, activos, servicios, aplicaciones y configuraciones. Considere un ejemplo del uso de funciones Lambda para desarrollar aplicaciones nativas de la nube en Amazon Web Services (AWS). Si bien AWS se ocupa de la seguridad de la infraestructura informática y de almacenamiento y del servicio Lambda en sí, es su responsabilidad garantizar que el acceso al código y a los recursos de su organización sea seguro. Por lo tanto, depende de usted asegurarse de que sus desarrolladores no almacenen credenciales en el código de funciones o variables de entorno que podrían usarse para comprometer datos confidenciales o moverse lateralmente en la red si son interceptados por actores maliciosos.
Para prepararse para diversos escenarios de infracción, las pruebas de penetración deben utilizar diferentes puntos de partida:
- Black Box: el evaluador no tiene acceso inicial dentro del entorno de la nube.
- Cuadro gris: el evaluador tiene las credenciales de un usuario o rol seleccionado como entrada inicial para mostrar el impacto potencial (también conocido como «radio de explosión») si una identidad se ve comprometida.
Para las organizaciones con nube híbrida y redes locales, solo se puede lograr una comprensión completa y precisa de la exposición al riesgo con la capacidad de probar rutas de ataque que cruzan entre estos entornos. Por ejemplo, una máquina local está comprometida y el atacante ejecuta un RCE para recopilar credenciales de la máquina. Al utilizar la extracción de contraseñas del navegador, el atacante obtiene las credenciales de un desarrollador con privilegios en una máquina virtual de Azure. A partir de ahí, se allana el camino para penetrar la nube, y este proceso se repite en diferentes máquinas hasta que el atacante obtiene los privilegios más altos del entorno y puede aprovechar cualquier recurso a voluntad. Por lo tanto, las pruebas de penetración de la nube deben cubrir escenarios en los que el acceso inicial en las instalaciones podría llevar a un atacante a comprometer los recursos de la nube y viceversa.
A continuación se presentan cinco elementos clave para las pruebas de penetración en la nube:
1. Reconocimiento y descubrimiento
Este primer paso implica mapear todos los activos dentro del entorno de nube de su organización; cargas de trabajo, almacenamiento, bases de datos e identidades. La información recopilada en esta fase proporciona el alcance de los activos que se pueden utilizar o atacar dentro de una prueba y una línea de base para iniciar acciones de ataque.
En el pentesting de red tradicional, el alcance de la prueba generalmente se define mediante las direcciones IP de los puntos finales que se incluirán en la prueba. Los recursos de la nube, por el contrario, se identifican mediante identificadores únicos y el acceso a ellos se habilita a través de API. Por lo tanto, el enfoque típico para el reconocimiento en pentests en la nube es recopilar la información de los activos al comienzo de una prueba conectándose a la API en la nube de la organización.
2. Evaluación de vulnerabilidad
Se deben realizar revisiones de la configuración de la nube y análisis de vulnerabilidades para descubrir configuraciones erróneas y vulnerabilidades de software conocidas en todos sus activos de la nube. Por ejemplo, la seguridad de la red en la nube debe evaluarse evaluando la configuración de controles como firewalls, redes privadas virtuales (VPN), acceso y configuraciones de segmentación de red. Este proceso es necesario para identificar debilidades como recursos de acceso público o conexiones de peering de nube privada virtual (VPC) inseguras, que podrían permitir el acceso no autorizado, el movimiento lateral, la escalada de privilegios y la filtración de datos.
Otro recurso de alto riesgo son las aplicaciones web, que suelen ser el objetivo de los piratas informáticos porque, por diseño, están abiertas a Internet. Para validar que los controles de seguridad y las implementaciones de seguridad del software no permitan el acceso no autorizado a servicios y datos confidenciales, las pruebas de penetración deben cubrir las aplicaciones web alojadas en la nube. Las pruebas deben incluir Top 10 de OWASP riesgos de seguridad, como validación de entradas, inyección SQL, secuencias de comandos entre sitios (XSS) y falsificación de solicitudes del lado del servidor (SSRF).
Sin embargo, los análisis de vulnerabilidades son sólo el comienzo. Es necesario probar las configuraciones erróneas y las vulnerabilidades detectadas para determinar su explotabilidad, con el objetivo de propagar un ataque exactamente como lo haría un adversario. Por ejemplo, si se detecta un depósito de almacenamiento en la nube de acceso público, se puede probar escaneando su contenido en busca de secretos valiosos o intentando extraer datos.
3. Escalada de privilegios
Los métodos de escalada de privilegios pueden otorgar a los adversarios acceso a datos, aplicaciones y servicios más confidenciales. Los atacantes intentan obtener mayores privilegios mediante:
- Explotar vulnerabilidades y configuraciones erróneas diseñadas para obtener mayores privilegios en la red.
- Brechas en la gestión de identidad y acceso (IAM), como usuarios que están en grupos en los que no deberían estar y roles que son demasiado permisivos
- Comprometer identidades con mayores privilegios mediante la recolección de credenciales: un conjunto de técnicas que implica localizar y exponer credenciales, claves y tokens de sesión almacenados incorrectamente en varias fuentes, incluidos, entre otros, archivos, historial de shell, registro, variables de entorno, herramientas de implementación y navegadores.
Si bien la escalada de privilegios es una técnica de ataque común utilizada en las redes tradicionales, el desafío de proteger las identidades y el acceso para evitar este tipo de ataques en la nube es exponencialmente mayor.
En primer lugar, la complejidad de las arquitecturas IAM en la nube es mucho mayor. Es probable que la abundancia de identidades humanas y de máquinas y las intrincadas políticas de control de acceso implementadas para respaldar la orquestación automatizada de los recursos de la nube introduzcan riesgos que los atacantes pueden explotar fácilmente. No solo eso, sino que la combinación de controles de acceso en la nube y en las instalaciones puede generar un sistema de reglas muy complejo, y los atacantes prosperan gracias a la complejidad.
En segundo lugar, los desarrolladores que utilizan la infraestructura de la nube para crear sus aplicaciones a menudo colocan secretos codificados en su código y pueden olvidarse o no eliminarlos, exponiéndolos a actores maliciosos.
4. Movimiento lateral
Las pruebas deben identificar posibles caminos entre los recursos de la nube, que los adversarios pueden aprovechar para recopilar datos confidenciales o secretos adicionales y avanzar en sus ataques.
En escenarios de prueba de entornos híbridos, se pueden intentar técnicas de movimiento lateral como medio para pasar del entorno local a la nube o viceversa. Por lo tanto, proteger el entorno de la nube como un silo no funcionará. Las organizaciones pueden verse afectadas por ataques que se propagan por toda la superficie de ataque: la red interna, los activos externos y los entornos de nube. Los adversarios no ven las superficies de ataque de la organización como entidades desconectadas sino más bien como una sola superficie, por lo que los defensores deben adoptar un enfoque similar, trabajando en todos los dominios para interceptar los ataques. Para proteger la nube, es necesario validar todos los avances que conducen a ella.
5. Recopilación y exfiltración de datos
La recopilación de datos en la computación en la nube se refiere a la recopilación de datos de múltiples recursos, principalmente de naturaleza confidencial, como tarjetas de crédito, información personal, contraseñas, etc. Esta es la razón principal por la que los atacantes irrumpen en una red para obtener información confidencial. A veces, los adversarios almacenarán los datos en una ubicación centralizada, como paso preliminar para concentrar los datos que les gustaría exfiltrar.
A pentest en la nube debe evaluar la capacidad de recopilar y luego exfiltrar datos a una ubicación externa y validar los controles de seguridad de la red para probar si evitan la exfiltración a IOC conocidas.
Pentesting en la nube: claves del éxito
Al comenzar el recorrido de las pruebas de penetración en la nube, es crucial que dedique algún tiempo a comprender el alcance de sus servicios y activos en la nube, y qué partes de la superficie de ataque están en sus manos para proteger de acuerdo con el modelo de responsabilidad compartida. Entonces es posible tomar decisiones informadas sobre inversiones en pruebas de nube dentro del contexto de la exposición al riesgo de su organización.
Como nota final, la efectividad de un programa de pentesting en la nube no solo está determinada por la profundidad y amplitud de las pruebas, sino también por la frecuencia de las pruebas. El ritmo del cambio en las redes locales está suponiendo un duro golpe para la eficacia de los largos ciclos manuales de pruebas de penetración. En la nube, es un golpe de gracia. Así como los equipos de nube e I+D están automatizando sus operaciones e implementaciones en la nube, los equipos de seguridad deben cambiar de marcha para automatizar sus actividades de pruebas de penetración en la nube y, en última instancia, complementar el ciclo de integración continua/implementación continua con validación continua.
Para validar con confianza la resistencia de su empresa a los ataques nativos de la nube, obtenga más información sobre Nube Penteray escuche la grabación bajo demanda sobre Poniendo la seguridad en la nube a prueba de estrés.