Outil de sécurité Azure extensible
L'outil de sécurité Azure extensible (ci-après dénommé E.A.S.T) est un outil pour évaluer les contrôles de sécurité d'Azure et, dans une certaine mesure, d'Azure AD. Le cas d'utilisation principal d'EAST est la collecte de données de sécurité pour évaluation dans les évaluations Azure. Ces informations (contenu JSON) peuvent ensuite être utilisées dans divers outils de rapport, que nous utilisons pour corréler et examiner davantage les données.
Cet outil est sous licence MIT.


Collaborateurs
Table des matières
Notes de version
v 0.5
- Refactorisations :
- Les rôles d'identité managée et les affectations Azure AD sont désormais effectués via un seul module, la version précédente montrait son âge et la logique n'était plus correcte. Le nouveau module est
miGeneral.js
- ASB n'est plus ASB, il s'agit maintenant de Microsoft cloud security benchmark, voir
query.js
v 0.4
-
Branche de prévisualisation introduite
Modifications :
-
L'installation prend désormais en compte l'utilisation de la version mise à jour d'Azure Cloud Shell en ce qui concerne les dépendances (Cloud Shell dispose désormais de Node.JS v 16 installé)
-
Vérification des types de clusters Databricks selon l'avis
- Audite les clusters Databricks pour une possible élévation de privilèges - Ce contrôle nécessite généralement des permissions sur le cluster Databricks
-
Content.json a désormais un tri basé sur la clé et le contenu. Cela permet d'effectuer des vérifications delta avec git diff HEAD^1 ¹ car content.json a un ordre prédéterminé des résultats

¹ ⚠️ Attention, si vous souhaitez vérifier les deltas de content.json, alors content.json devra être "désignoré" du fichier .gitignore exposant les résultats à tout amont que vous pourriez avoir configuré.
Utilisez cette fonctionnalité avec prudence et assurez-vous de ne pas avoir d'amont public défini pour la branche sur laquelle vous utilisez cette fonctionnalité
-
Changement de modèles de programmation pour éviter d'éventuelles conditions de concurrence avec des ensembles de données plus volumineux. Il s'agit principalement de changements de var à let dans les boucles de style for await
Important
⚠️ Le statut actuel de l'outil est bêta
- Les corrections, mises à jour, etc. sont effectuées sur la base du "meilleur effort", sans garantie de délai ou de qualité de la correction possible appliquée
- Nous effectuons quelques réglages supplémentaires avant d'utiliser EAST dans notre travail quotidien, comme l'application de diverses restrictions d'exécution et d'environnement, en plus de nous familiariser avec l'environnement en question. C'est pourquoi nous recommandons actuellement que EAST soit exécuté uniquement dans des environnements de test et avec des autorisations en lecture seule.
- Tous les appels dans le service sont principalement vers les IP d'Azure Cloud, il devrait donc bien fonctionner dans des environnements durcis où des restrictions IP sortantes sont appliquées. Cela réduit le risque que cet outil contienne des paquets malveillants qui pourraient "appeler la maison" sans avoir également un C2 dans Azure.
- Essentiellement, l'exécuter en mode lecture seule réduit considérablement le risque associé à d'éventuels paquets NPM compromis (Google compromised NPM)
- Bugs etc : Vous pouvez protéger votre environnement contre certaines erreurs dans ce code en exécutant l'outil avec des autorisations de lecture seule
- La majeure partie du code est "EN L'ÉTAT": Cela signifie qu'il a seulement servi à créer un certain résultat ; il reste beaucoup de nettoyage et de modularisation à terminer
- Il n'y a pas de tests pour le moment, à part certaines vérifications manuelles effectuées après des modifications de main.js et de divers contrôles plus avancés.
- Les descriptions des contrôles à ce stade ne sont pas le produit final, donc donner des commentaires à leur sujet, bien qu'apprécié, n'est pas l'objectif principal de l'outillage à ce stade
- Comme le nom l'indique, nous l'utilisons comme outil pour évaluer les environnements. Il n'est pas destiné à être exécuté sans surveillance pour le moment, et ne doit pas être exécuté dans un service exposé à Internet qui accepte les connexions entrantes.
- La documentation peut être décrite comme incomplète pour le moment
- EAST est principalement axé sur les ressources PaaS, car la plupart de nos évaluations Azure se concentrent sur ce type de ressource
- ⚠️ Aucune désinfection des entrées n'est effectuée sur les paramètres de lancement, car on suppose toujours que l'entrée de ces paramètres est contrôlée. Cela dit, l'outil utilise abondamment
exec() - Bien que je n'aie pas examiné tous les chemins, je crois qu'atteindre l'exécution de shellcode est trivial. Cet outil ne suppose pas d'entrée hostile, donc la recommandation est de ne pas coller d'arguments de lancement dans la ligne de commande sans les avoir examinés au préalable.