Herramienta de Seguridad Extensible de Azure
Herramienta de Seguridad Extensible de Azure (referida posteriormente como E.A.S.T) es una herramienta para evaluar controles de seguridad de Azure y, en cierta medida, de Azure AD. El caso de uso principal de EAST es la recopilación de datos de seguridad para su evaluación en Evaluaciones de Azure. Esta información (contenido JSON) puede luego utilizarse en diversas herramientas de informes, que usamos para correlacionar e investigar más a fondo los datos.
Esta herramienta está licenciada bajo la licencia MIT.


Colaboradores
Tabla de contenidos
Notas de la versión
v 0.5
- Refactorizaciones:
- La asignación de roles de Managed Identity y Azure AD ahora se realiza mediante un solo módulo, la versión anterior mostraba su antigüedad y la lógica ya no era correcta. El nuevo módulo es
miGeneral.js
- ASB ya no es ASB, ahora es el punto de referencia de seguridad en la nube de Microsoft, consulte
query.js
v 0.4
-
Rama de vista previa introducida
Cambios:
-
La instalación ahora tiene en cuenta el uso de la versión actualizada de Azure Cloud Shell en cuanto a dependencias (Cloud Shell ahora tiene instalada la versión Node.JS v 16)
-
Verificación de tipos de clúster de Databricks según aviso
- Audita los clústeres de Databricks por posible elevación de privilegios - Este control normalmente requiere permisos en el clúster de Databricks"
-
Content.json ahora tiene ordenación por clave y contenido. Esto permite realizar comprobaciones delta con git diff HEAD^1 ¹ ya que content.json tiene un orden predeterminado de resultados

¹ ⚠️ Palabra de precaución, si deseas comprobar deltas de content.json, entonces content.json deberá ser "designorado" del .gitignore exponiendo los resultados a cualquier repositorio upstream que puedas tener configurado.
Usa esta función con precaución y asegúrate de no tener un upstream público configurado para la rama en la que estás usando esta función
-
Cambio de patrones de programación para evitar posibles condiciones de carrera con conjuntos de datos más grandes. Esto es principalmente cambios de usar var a let en bucles de estilo for await
Importante
⚠️ El estado actual de la herramienta es beta
- Las correcciones, actualizaciones, etc. se realizan sobre la base de "Mejor esfuerzo", sin garantía de tiempo ni calidad de la posible corrección aplicada
- Realizamos algunos ajustes adicionales antes de usar EAST en nuestro trabajo diario, como aplicar varias restricciones de ejecución y entorno, además de familiarizarnos con el entorno en cuestión. Por lo tanto, actualmente recomendamos que EAST se ejecute solo en entornos de prueba y con permisos de solo lectura.
- Todas las llamadas en el servicio son en gran medida a IPs de Azure Cloud, por lo que debería funcionar bien en entornos endurecidos donde se aplican restricciones de IP salientes. Esto reduce el riesgo de que esta herramienta contenga paquetes maliciosos que podrían "llamar a casa" sin tener también C2 en Azure.
- Ejecutarlo en modo de solo lectura reduce gran parte del riesgo asociado con paquetes NPM posiblemente comprometidos (Google comprometió NPM)
- Errores, etc.: Puedes proteger tu entorno contra ciertos errores en este código ejecutando la herramienta con permisos de solo lectura
- Gran parte del código es "TAL CUAL": Es decir, ha servido solo para crear un resultado determinado; Queda mucho trabajo de limpieza y modularización por terminar
- Actualmente no hay pruebas, aparte de ciertas comprobaciones manuales que se ejecutan después de cambios en main.js y varios controles más avanzados.
- Las descripciones de controles en esta etapa no son el producto final, por lo que dar retroalimentación sobre ellas, aunque es apreciado, no es el enfoque de la herramienta en esta etapa
- Como su nombre indica, lo usamos como herramienta para evaluar entornos. No está destinado a ejecutarse sin supervisión por el momento, y no debe ejecutarse en ningún servicio expuesto a Internet que acepte conexiones entrantes.
- La documentación podría describirse como incompleta por el momento
- EAST se centra principalmente en recursos PaaS, ya que la mayoría de nuestras evaluaciones de Azure se centran en este tipo de recurso
- ⚠️ No se realiza sanitización de entrada en los parámetros de inicio, ya que siempre se asume que la entrada de estos parámetros está controlada. Dicho esto, la herramienta utiliza extensivamente
exec() - Aunque no he revisado todas las rutas, creo que lograr la ejecución de shellcode es trivial. Esta herramienta no asume entradas hostiles, por lo que se recomienda que no pegues argumentos de inicio en la línea de comandos sin revisarlos primero.
Operación de la herramienta
Dependencias
Para reducir la cantidad de código, utilizamos las siguientes dependencias para operación y estética (Kudos a los mantenedores de estos fantásticos paquetes)