De la reparación a la mitigación: Solución de fallos de diseño inseguro

11 de diciembre de 2024
Kat Traxler
Principal Security Researcher
De la reparación a la mitigación: Solución de fallos de diseño inseguro

Olvídese de las oscuras clases de errores: algunas de las vulnerabilidades más furtivas se esconden a plena vista. 

Se trata de los problemas de seguridad de diseño, es decir, las vulnerabilidades inherentes a la funcionalidad de un sistema. A menudo pueden ser "rarezas" bien conocidas del sistema, pero su impacto total está poco explorado. Mientras que las vulnerabilidades tradicionales requieren correcciones de código, estos problemas de diseño exigen a menudo un replanteamiento completo del sistema y una revisión total de su funcionalidad.

Cuando la funcionalidad de un servicio cloud se desvía de las normas del sector o de las expectativas del cliente, el "fallo" descrito puede ser inherente a su diseño, pero puede tener profundas implicaciones para la seguridad.

Este artículo profundiza en estas vulnerabilidades de impacto, a menudo estructurales, cloud , y explora por qué la corrección de los fallos de seguridad de diseño requiere algo más que un simple parche.

Abuso de funciones frente a vulnerabilidades de diseño en la seguridad de Cloud

Tomémonos un momento para definir las aristas de las vulnerabilidades Insecure-by-Design contrastándolas con el Abuso de Características, o más bien el mal uso intencionado de una característica, otro problema de seguridad común en la cloud.

Abuso de funciones: un riesgo reconocido en los entornos Cloud

El abuso de características describe a un actor que utiliza una característica de cloud para conseguir un objetivo malicioso. No indica una vulnerabilidad o un fallo, sino que representa la mala intención de utilizar una función legítima de cloud . 

Destaquemos la funcionalidad estándar en los sistemas IAM que permite generar credenciales para un usuario distinto de uno mismo. Esta capacidad define el movimiento lateral (y probablemente la escalada de privilegios) con el riesgo reconocido de mal uso intencionado. Sin embargo, no existe ninguna vulnerabilidad en un sistema IAM que permita a un usuario generar credenciales para otro. En su lugar, la industria trabaja para prevenir y detectar el abuso de esta función con los controles de mitigación disponibles.

Insecure-by Design - Una clase de vulnerabilidad Cloud

Las expectativas y normas del sector se extienden a los controles de seguridad que rodean a las funciones cloud. Las vulnerabilidades de diseño inseguro pueden incluir un control insuficiente por parte del proveedor de cloud . 

En el escenario de generación de credenciales descrito anteriormente, los consumidores del servicio esperarían controles de autorización antes de emitir credenciales y registrar dichos eventos. La ausencia de estos controles expondría a los clientes a un riesgo significativo, lo que indicaría un fallo de diseño en el servicio. 

Un ejemplo más tangible de una vulnerabilidad insegura por diseño ocurrió recientemente en el servicio DocumentAI de Google. Un usuario de Document AI podía mover objetos de almacenamiento Cloud fuera del proyecto utilizando los privilegios del agente del servicio DocumentAI sin que el sistema IAM verificara que el usuario final tenía acceso a los objetos.

La ausencia de las comprobaciones de autorización previstas representaba una desviación considerable de los principios de diseño seguro. 

Vulnerabilidades de diseño inseguro y responsabilidad compartida

Como podemos ver, algunos de los riesgos de seguridad más insidiosos están integrados directamente en el diseño de un sistema. Estos fallos de inseguridad en el diseño se ponen de manifiesto cuando la funcionalidad de un servicio o los controles disponibles se desvían de las normas establecidas y de las expectativas del cliente. 

Los fallos de diseño pueden ser especialmente frustrantes en la cloud, donde la prevención del abuso del servicio es responsabilidad del cliente. Sin embargo, debido a la delimitación de funciones en el modelo de responsabilidad compartida, el proveedor de servicios es responsable de poner a disposición los controles necesarios, proporcionar documentación precisa y educación para implementar un servicio de forma segura.

Mitigación del impacto de las vulnerabilidades de diseño inseguro en los servicios Cloud

La corrección tradicional de vulnerabilidades suele implicar un enfoque sencillo: identificar el código defectuoso, aplicar el parche y desplegar la actualización. Pero esta mentalidad de "arréglalo y olvídalo" se queda corta cuando se trata de vulnerabilidades de diseño inseguro en servicios cloud . ¿Por qué? Porque hay dos características que distinguen estas vulnerabilidades de las clásicas en un paquete de software. 

  1. A menudo, estas vulnerabilidades están profundamente entrelazadas con la funcionalidad del servicio o incluso apuntalan sus principios fundamentales, lo que hace inviable una simple "solución". Desactivar o alterar significativamente la función podría interrumpir innumerables cargas de trabajo.
  2. Con las API siempre disponibles, la funcionalidad con potencial de abuso afecta no sólo a quienes aprovechan el servicio, sino a todos los clientes, independientemente de que utilicen o no la API.

Una mentalidad de suma cero que se centre únicamente en "arreglar" el servicio limita las opciones de reducción eficaz del riesgo. En cambio, quienes se centran en la seguridad de cloud necesitan una estrategia más holística. Esto implica aplicar controles preventivos y detectivos para mitigar los riesgos, al tiempo que se exploran posibles soluciones a largo plazo para el defecto de diseño subyacente. Una poderosa herramienta de esta estrategia es el uso de barandillas.

Controles de mitigación: Barandillas

En la seguridad cloud , los guardarraíles son controles preventivos que hacen cumplir las políticas y normas de seguridad en todo el entorno cloud de una organización. Actúan como topes a lo largo de una pista de bolos, garantizando al administrador de seguridad que el uso no se desviará demasiado de un patrón prescrito. 

Proporcionar guardarraíles preestablecidos puede ayudar a mitigar las vulnerabilidades de cloud . Son especialmente útiles para desactivar o eliminar por completo comportamientos indeseables. Sin embargo, la eficacia de las barandillas disminuye cuando las funciones inseguras están profundamente integradas en procesos críticos. En estos casos, bloquear el acceso a la función puede no ser factible. 

Controles de mitigación: Detección y respuesta

Aunque los controles preventivos como los quitamiedos son valiosos, no siempre son suficientes. Su aplicación puede ser compleja, y a menudo son necesarias excepciones para dar cabida a casos de uso legítimos. Además, se necesita algo más que barandillas y controles preventivos para ayudar a los clientes que ya confían en funcionalidades inseguras. 

Por eso, la detección y la creación de una respuesta ágil suelen ser las actividades de corrección más valiosas cuando se identifica una funcionalidad insegura.

Cuando considere la detección y la respuesta como controles de mitigación de las vulnerabilidades de cloud , hágase estas preguntas:

  • ¿Reciben los clientes una señal de alta fidelidad del comportamiento infractor o se necesitan registros adicionales?
  • ¿Los registros están activados por defecto, o es necesario notificar al cliente para permitir registros adicionales?
  • ¿Puede actuar rápidamente sobre el resultado de la detección para reducir y eliminar los daños?

Poner fin a la funcionalidad insegura Cloud : El largo adiós

Introducir funciones de diseño inseguro con potencial de abuso puede resultar costoso para los proveedores de servicios. Una vez integradas en los flujos de trabajo de los clientes, estas funciones pueden ser difíciles de eliminar o modificar debido a las dependencias y suposiciones posteriores en las cargas de trabajo del producto y del cliente. 

Aunque a menudo es posible eliminar o corregir estas vulnerabilidades, especialmente con un enfoque gradual y la introducción de alternativas más seguras, el proceso no suele ser rápido. Por eso son cruciales los guardarraíles y los controles detectivescos. Actúan como vendas muy necesarias, dando a las organizaciones y a sus clientes un tiempo valioso para alejarse de la funcionalidad insegura sin interrumpir los procesos empresariales. 

Detectar abusos e implantar barreras de seguridad: 

  • Conceda a sus equipos de desarrollo el tiempo que necesiten para abandonar las funciones inseguras de forma ordenada utilizando las dos palancas de los controles detectivescos y preventivos. 

Funcionalidad Sunset:

  • Migrar las cargas de trabajo existentes que dependen de funcionalidades inseguras a patrones más seguros. Deje de utilizar las funciones vulnerables y, por último, elimine las API infractoras.

Enfoque de destino compartido para la corrección de vulnerabilidades Cloud

En última instancia, abordar las vulnerabilidades de diseño inseguro requiere un enfoque de destino compartido. Los proveedores de Cloud y sus clientes deben trabajar juntos, reconociendo la naturaleza entrelazada de sus responsabilidades. 

Los proveedores deben ser transparentes cuando los controles de seguridad no cumplan las expectativas y creen vulnerabilidades inseguras por diseño. Los clientes, por su parte, deben aprovechar las herramientas disponibles para prevenir y detectar el uso indebido de las funciones y alejar sus entornos de patrones heredados inseguros. 

Este enfoque colaborativo ayudará a garantizar que la cloud siga evolucionando hacia un sistema más resistente y seguro desde el diseño.

Preguntas frecuentes