Contáctenos

Cómo Proteger Azure con CloudWatcher, la Herramienta de Código Abierto de Keytos

Proteja Azure con CloudWatcher
28 Sep 2021

Protege su instancia de Azure siguiendo las mejores prácticas, pero ¿alguna vez se queda despierto por la noche preguntándose si alguien cambió sus recursos de Azure y agregó una puerta trasera? ¡Lo hicimos! Siguiendo la mentalidad de Microsoft de asumir ataques, no podíamos sentirnos cómodos con las soluciones de monitoreo actuales para Azure. ¡Es por eso que creamos CloudWatcher! CloudWatcher, como su nombre lo indica, es una solución que vigila sus recursos en la nube en busca de cambios y le avisa si hay algún cambio.

Cómo Funciona CloudWatcher

CloudWatcher es un PowerShell diseñado para ejecutarse utilizando la cuenta RunAs en una cuenta de Azure Automation. Aprovecha los módulos de Azure PowerShell para escanear sus recursos y compararlos con una línea de base. Si el estado actual de los recursos no coincide con la línea base, la ejecución fallará.

CloudWatcher tiene dos modos, “configuración” y “monitoreo”. El modo de configuración examinará las suscripciones a las que tiene acceso la entidad de servicio y guardará una línea base en un almacenamiento de blobs. El modo de supervisión descargará la línea base del almacenamiento de blobs y escaneará la suscripción para encontrar cualquier cambio en el RBAC o los recursos de la suscripción.

Cobertura Defcon

Blue Team Village

Cloud Village

¿Por Qué Necesitamos CloudWatcher?

Después de muchos años de proteger los recursos de Azure, descubrimos que los piratas informáticos tienen formas furtivas de ocultar puertas traseras en las implementaciones de Azure. Por eso, hemos creado una herramienta para ayudar a detectar algunos de los más comunes y la hemos hecho de código abierto para que otras personas puedan agregar más detecciones.

Vectores de Ataque Comunes

¿Qué Escanea CloudWatcher?

Qué cubre

1) Cambios de RBAC: Si se agrega o elimina una identidad en el RBAC de la suscripción.

2) Cambios en los Administradores Clásicos: Si se agrega o elimina un administrador clásico.

3) Cambios en los Proveedores de Recursos de Azure: Si se agrega o elimina un proveedor de recursos de Azure de la suscripción.

4) Creación/Eliminación de Recursos: Si se crean o eliminan recursos.

5) Cambio de Membresía de Grupo: Al escanear la suscripción, CloudWatcher mantendrá una lista de los grupos que tienen acceso a la suscripción y escaneará esos grupos en busca de cambios en la membresía (no escaneará grupos anidados).

6) Cambios en el Firewall SQL: Si se detecta un cambio en el firewall SQL (dirección IP agregada o eliminada).

7) Cambios en el Administrador de AAD de SQL Server: Esto verifica el estado del administrador de AAD de SQL Server, si el servidor tiene un administrador, se asegura de que el administrador no haya cambiado y también verifica si el requisito de identidades de AAD está marcado o no.

8) Cambios en la Política de Acceso de AKV: Comprueba si los derechos de acceso de una política de acceso han cambiado (los permisos agregados, por ejemplo, una identidad existente obtiene el permiso de “eliminar”). También detecta altas o bajas de políticas de acceso.

9) Cambios en el Firewall de AKV: Si se detecta un cambio en el firewall de AKV (dirección IP agregada o eliminada).

Cómo Configuramos CloudWatcher

En Keytos queríamos garantizar la seguridad de nuestra implementación de CloudWatcher. Para ello utilizamos 3 suscripciones diferentes, y todas apuntan entre sí con CloudWatchers.

Para simplificarlo, solo mostraré uno de los CloudWatchers en el diagrama.



Configuración



La idea es que tengas la suscripción que quieres monitorear (Suscripción A). Luego, en una suscripción diferente (Suscripción B) que idealmente no comparte ninguna de las mismas identidades de administrador con la suscripción que desea monitorear, crea la cuenta de automatización de CloudWatcher. Luego en otra Suscripción (Suscripción C) (en Keytos lo hacemos en otro Tenant) tienes una cuenta de almacenamiento con la línea base. El token otorgado a CloudWatcher en la Suscripción B solo tiene acceso de lectura al blob de referencia, lo que significa que un compromiso de esa cuenta no permite realizar cambios en la línea de base.

Instrucciones de Configuración

El README del repositorio tiene instrucciones detalladas sobre cómo configurar CloudWatcher en su instancia de Azure.

También te Puede Interesar