Extensible Azure Security Tool (später als E.A.S.T. bezeichnet) ist ein Werkzeug zur Bewertung von Azure und in gewissem Umfang von Azure AD-Sicherheitskontrollen. Der primäre Anwendungsfall von EAST ist die Sammlung von Sicherheitsdaten zur Bewertung in Azure Assessments. Diese Informationen (JSON-Inhalt) können dann in verschiedenen Berichtswerkzeugen verwendet werden, mit denen wir die Daten weiter korrelieren und untersuchen.
Dieses Tool ist unter der MIT-Lizenz lizenziert.


Mitwirkende
Inhaltsverzeichnis
Versionshinweise
v 0.5
- Refaktorierungen:
- Managed Identity-Rolle und Azure AD-Zuweisungen werden jetzt über ein einziges Modul erledigt, die vorherige Version zeigte ihr Alter und die Logik war nicht mehr korrekt. Neues Modul ist
miGeneral.js
- ASB ist nicht mehr ASB, sondern jetzt Microsoft Cloud Security Benchmark, siehe
query.js
v 0.4
-
Preview-Branch eingeführt
Änderungen:
-
Die Installation berücksichtigt jetzt die aktualisierte Version von Azure Cloud Shell hinsichtlich der Abhängigkeiten (Cloud Shell hat jetzt Node.JS v 16 installiert)
-
Überprüfung von Databricks-Cluster-Typen gemäß Advisory
- Prüft Databricks-Cluster auf mögliche Rechteausweitung – Diese Kontrolle erfordert normalerweise Berechtigungen auf dem Databricks-Cluster
-
Content.json hat jetzt eine schlüssel- und inhaltsbasierte Sortierung. Dies ermöglicht Delta-Prüfungen mit git diff HEAD^1 ¹, da content.json eine vorgegebene Ergebnisreihenfolge hat

¹ ⚠️ Vorsichtshinweis: Wenn Sie Deltas von content.json überprüfen möchten, muss content.json in .gitignore „unignoriert“ werden, wodurch Ergebnisse für jeden von Ihnen konfigurierten Upstream offengelegt werden.
Verwenden Sie diese Funktion mit Vorsicht und stellen Sie sicher, dass Sie für den Branch, für den Sie diese Funktion verwenden, keinen öffentlichen Upstream eingerichtet haben
-
Wechsel von Programmiermustern, um mögliche Race Conditions mit größeren Datensätzen zu vermeiden. Dies betrifft hauptsächlich Änderungen von var zu let in for await-Schleifen
Wichtig
⚠️ Der aktuelle Status des Tools ist Beta
- Fehlerbehebungen, Updates usw. werden auf „Best-Effort“-Basis durchgeführt, ohne Garantie auf Zeit oder Qualität der möglichen Korrektur
- Wir führen vor der Verwendung von EAST in unserer täglichen Arbeit einige zusätzliche Anpassungen durch, wie z.B. verschiedene Laufzeit- und Umgebungsbeschränkungen, zusätzlich zur Einarbeitung in die jeweilige Umgebung. Daher empfehlen wir derzeit, EAST nur in Testumgebungen und mit Leseberechtigung auszuführen.
- Alle Aufrufe im Dienst richten sich größtenteils an Azure-Cloud-IPs, daher sollte es in gehärteten Umgebungen mit ausgehenden IP-Beschränkungen gut funktionieren. Dies verringert das Risiko, dass dieses Tool bösartige Pakete enthält, die „nach Hause telefonieren“ könnten, ohne auch C2 in Azure zu haben.
- Die Ausführung im schreibgeschützten Modus reduziert einen Großteil des Risikos, das mit möglicherweise kompromittierten NPM-Paketen verbunden ist (Google kompromittierte NPM-Pakete)
- Fehler usw.: Sie können Ihre Umgebung vor bestimmten Fehlern in diesem Code schützen, indem Sie das Tool mit Leser-Berechtigungen ausführen
- Ein Großteil des Codes ist „WIE BESEHEN“: Das bedeutet, er diente nur dem Zweck, ein bestimmtes Ergebnis zu erzeugen; viel Bereinigung und Modularisierung bleibt noch zu erledigen
- Derzeit gibt es keine Tests, abgesehen von manuellen Prüfungen, die nach Änderungen an main.js und verschiedenen fortgeschrittenen Kontrollen durchgeführt werden.
- Die Kontrollbeschreibungen sind zu diesem Zeitpunkt nicht das Endprodukt, daher ist Feedback dazu zwar willkommen, aber nicht der Fokus des Tools in dieser Phase
- Wie der Name andeutet, verwenden wir es als Werkzeug zur Bewertung von Umgebungen. Es ist derzeit nicht für den unbeaufsichtigten Betrieb gedacht und sollte nicht in einem internetexponierten Dienst ausgeführt werden, der eingehende Verbindungen akzeptiert.
- Die Dokumentation könnte derzeit als unvollständig beschrieben werden
- EAST konzentriert sich hauptsächlich auf PaaS-Ressourcen, da sich die meisten unserer Azure-Bewertungen auf diesen Ressourcentyp konzentrieren
- ⚠️ Es wird keine Eingabebereinigung für Startparameter durchgeführt, da stets angenommen wird, dass die Eingabe dieser Parameter kontrolliert wird. Das Tool verwendet jedoch umfangreich
exec() – Obwohl ich nicht alle Pfade überprüft habe, glaube ich, dass Shellcode-Ausführung trivial zu erreichen ist. Dieses Tool geht nicht von feindseliger Eingabe aus, daher die Empfehlung, Startargumente nicht ohne vorherige Überprüfung in die Befehlszeile einzufügen.