Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
EAST — Erweiterbares Azure-Sicherheitstool - Dokumentation | Kitploit
Tools/GitHubGitHub/jsa2/east
Cloud-Infrastruktur-SicherheitSchwachstellenscannerKonfigurationsprüfungPenetrationstestsCloud-SicherheitIdentitäts- & Zugriffsmanagement (IAM)Log-AnalyseArchived
GitHubjsa2/east

EAST

Erweiterbares Azure-Sicherheitstool - Dokumentation

Repository anzeigen
841112vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Erweiterbares Azure-Sicherheitstool

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.

img

image

Mitwirkende

  • Ich persönlich
  • Nixu Cloud-Sicherheitsteam

Inhaltsverzeichnis

  • Extensible Azure Security Tool
  • Collaborators
  • Release notes
  • Important
  • Tool operation
    • Depedencies
    • Controls
      • Basic
      • Advanced
      • Composite
    • Reporting
      • Running EAST scan
        • Detailed Prerequisites (This is if you opted no to do the "fire and forget version")
        • Login Az CLI and run the scan
Tool herunterladen
  • Licensing
  • Tool operation documentation
    • Principles
      • AZCLI USE
      • Speedup
    • Parameters reference
    • (Highly experimental) Running in restricted environments where only browser use is available
    • Developing controls
    • Updates and examples
      • Auditing Microsoft.Web provider (Functions and web apps)
      • Azure RBAC baseline authorization
    • Contributing
      • Other

  • 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

        image

      ¹ ⚠️ 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.

    Tool-Betrieb

    Abhängigkeiten

    Um die Menge an Code zu reduzieren, werden die folgenden Abhängigkeiten für Betrieb und Ästhetik verwendet (Dank an die Betreuer dieser fantastischen Pakete)

    PaketÄsthetikBetriebLizenz
    axios✅MIT
    yargs✅MIT
    jsonwebtoken✅MIT
    chalk✅MIT
    js-beautify ✅MIT

    Weitere Abhängigkeiten für den Betrieb des Tools: Wenn Sie dies in Azure Cloud Shell ausführen möchten, müssen Sie Azure CLI nicht installieren:

    • Dieses Tool enthält oder verteilt keine Microsoft Azure CLI, sondern verwendet sie, wenn sie auf dem Quellsystem installiert ist (wie Azure Cloud Shell, der primären Plattform für EAST)

    Azure Cloud Shell (BASH) oder entsprechendes Linux-Distro / WSL

    AnforderungBeschreibungInstallation
    ✅ AZ CLIAZCLI USEcurl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
    ✅ Node.js Laufzeit 14Node.js Laufzeit für EASTInstallation mit NVM

    Kontrollen

    EAST bietet drei Kategorien von Kontrollen: Basic, Advanced und Composite

    Die maschinenlesbare Kontrolle sieht wie folgt aus, unabhängig vom Typ (Basic/Advanced/Composite):```json { "name": "fn-sql-2079", "resource": "/subscriptions/6193053b-408b-44d0-b20f-4e29b9b67394/resourcegroups/rg-fn-2079/providers/microsoft.web/sites/fn-sql-2079", "controlId": "managedIdentity", "isHealthy": true, "id": "/subscriptions/6193053b-408b-44d0-b20f-4e29b9b67394/resourcegroups/rg-fn-2079/providers/microsoft.web/sites/fn-sql-2079", "Description": "\r\n Ensure The Service calls downstream resources with managed identity", "metadata": { "principalId": { "type": "SystemAssigned", "tenantId": "033794f5-7c9d-4e98-923d-7b49114b7ac3", "principalId": "cb073f1e-03bc-440e-874d-5ed3ce6df7f8" }, "roles": [{ "role": [{ "properties": { "roleDefinitionId": "/subscriptions/6193053b-408b-44d0-b20f-4e29b9b67394/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", "principalId": "cb073f1e-03bc-440e-874d-5ed3ce6df7f8", "scope": "/subscriptions/6193053b-408b-44d0-b20f-4e29b9b67394/resourceGroups/RG-FN-2079", "createdOn": "2021-12-27T06:03:09.7052113Z", "updatedOn": "2021-12-27T06:03:09.7052113Z", "createdBy": "4257db31-3f22-4c0f-bd57-26cbbd4f5851", "updatedBy": "4257db31-3f22-4c0f-bd57-26cbbd4f5851" }, "id": "/subscriptions/6193053b-408b-44d0-b20f-4e29b9b67394/resourceGroups/RG-FN-2079/providers/Microsoft.Authorization/roleAssignments/ada69f21-790e-4386-9f47-c9b8a8c15674", "type": "Microsoft.Authorization/roleAssignments", "name": "ada69f21-790e-4386-9f47-c9b8a8c15674", "RoleName": "Contributor" }] }] }, "category": "Access" },

    root@kitploit:~
    ### Einfach
    
    Einfache Steuerungen beinhalten Prüfungen auf dem anfänglichen ARM-Objekt für einfache "Ein/Aus"-Boolesche Einstellungen des genannten Dienstes.
    
    **Beispiel: Azure Container Registry adminUser**
    
    [acr_adminUser](https://github.com/jsa2/east/blob/public/providers/microsoft.containerregistry/functions/acr_adminUser.js)
    
    Portal|EAST
    -|-
      ![image](https://assets.kitploit.com/production/public/readmes/5701/955386627eceb05ef02ac4f9aed2c6671397ff9f86946fab1422f65c40510e5d.png) | ``if (item.properties?.adminUserEnabled == false ){returnObject.isHealthy = true }``
    
    
    
    ### Erweitert
    
    Erweiterte Steuerungen beinhalten Prüfungen, die über das anfängliche ARM-Objekt hinausgehen. Oft werden neue Anfragen gestellt, um weitere Informationen über die betreffende Ressource und ihre Beziehung zu anderen Diensten zu erhalten.
    
    
    **Beispiel: Rollenzuweisungen**
    
    Neben der Überprüfung der Rollenzuweisungen des Abonnements wird eine zusätzliche Prüfung über Azure AD Conditional Access Reporting für MFA durchgeführt, und dass privilegierte Konten nicht nur durch Passwörter (SPNs mit Client-Geheimnissen) geschützt sind.
    
    **Beispiel: Azure Data Factory**
    
    [ADF_pipeLineRuns](https://github.com/jsa2/east/blob/public/providers/microsoft.datafactory/functions/ADF_pipeLineRuns.js)
    
    Das Pipeline-Mapping von Azure Data Factory kombiniert Pipelines -> Aktivitäten -> und Datenziele und prüft dann auf im Log durchgeführte Aktivitäten durchgesickerte Geheimnisse anhand des Ausführungsverlaufs der genannten Aktivitäten.
    
    ![img](https://assets.kitploit.com/production/public/readmes/5701/bceb35d6b891df36e341228206a02952c46b7a271be23b40d9a72ff76a0c357f.png)
    
    ---
    
    ### Zusammengesetzt
    
    Zusammengesetzte Steuerungen kombinieren zwei oder mehr Steuerungsergebnisse aus der Pipeline, um eine oder mehrere neue Steuerungen zu bilden. Die Verwendung von Zusammensetzungen löst zwei Anwendungsfälle für EAST:
    1. Sie können keine Reihenfolge der in der Pipeline zurückgegebenen Steuerungsergebnisse garantieren
    2. Sie müssen mehr als ein Steuerungsergebnis aus einer einzigen Prüfung zurückgeben
    
    **Beispiel: [composite_resolve_alerts](https://github.com/jsa2/east/blob/public/composites/composite_resolve_alerts.js)**
    
    1. Alarme von Microsoft Cloud Defender bei der Abonnementprüfung abrufen
    2. Neue Steuerungen pro resourceProvider für Alarme erstellen
    
    ## Berichterstattung
    
    EAST konzentriert sich nicht auf die automatisierte Berichterstellung, da es hauptsächlich JSON-Dateien mit Steuerungs- und Bewertungsstatus bereitstellt. Die Idee ist, separate Tools zur Erstellung von Berichten zu verwenden, die recht trivial über Markdown-Erstellungsskripte und Tools wie [Pandoc](https://github.com/jgm/pandoc#the-universal-markup-converter) automatisiert werden können.
    
    - Obwohl der Fokus nicht auf der Berichterstattung liegt, enthält dieses Repository Beispielautomatisierung für die Berichterstellung mit Pandoc, um das Lesen der Ergebnisse in einem einzigen Dokumentformat zu erleichtern.
    
    
    Obwohl dieses Tool Pandoc nicht vertreibt, kann es bei der Erstellung der Berichte verwendet werden, daher wird der folgende Zitierungsnachweis hinzugefügt: https://github.com/jgm/pandoc/blob/master/CITATION.cff```
    cff-version: 1.2.0
    title: Pandoc
    message: "If you use this software, please cite it as below."
    type: software
    url: "https://github.com/jgm/pandoc"
    authors:
      - given-names: John
        family-names: MacFarlane
        email: [email protected]
        orcid: 'https://orcid.org/0000-0003-2557-9090'
      - given-names: Albert
        family-names: Krewinkel
        email: [email protected]
        orcid: '0000-0002-9455-0796'
      - given-names: Jesse
        family-names: Rosenthal
        email: [email protected]
    

    EAST-Scan ausführen

    Dieser Teil enthält eine Anleitung, wie Sie dies entweder auf BASH@linux oder BASH in der Azure Cloud Shell ausführen können (Cloud Shell ist offensichtlich auch Linux, erfordert jedoch nicht, dass Sie eine eigene Linux-Box besitzen).

    ⚠️ Wenn Sie das Tool in der Cloud Shell ausführen, müssen Sie möglicherweise einige der Installationen erneut anwenden, da die Cloud Shell verschiedene Sitzungseinstellungen nicht beibehält.

    Voraussetzungen auf der Cloud Shell installieren und danach vergessen```bash curl -o- https://raw.githubusercontent.com/jsa2/EAST/preview/sh/initForuse.sh | bash;

    root@kitploit:~
    [Weiter zum nächsten Schritt](#login-az-cli-and-run-the-scan)
    
    #### Detaillierte Voraussetzungen (Dies gilt, wenn Sie sich gegen die "Fire and Forget"-Version entschieden haben)
    
    **Voraussetzungen**```bash
    
    git clone https://github.com/jsa2/EAST --branch preview
    cd EAST;
    npm install
    
    

    Pandoc-Installation in der Cloud Shell```bash

    Get pandoc for reporting (first time only)

    wget "https://github.com/jgm/pandoc/releases/download/2.17.1.1/pandoc-2.17.1.1-linux-amd64.tar.gz"; tar xvzf "pandoc-2.17.1.1-linux-amd64.tar.gz" --strip-components 1 -C ~

    root@kitploit:~
    **Installieren von pandoc auf Distributionen, die APT unterstützen**```bash
    # Get pandoc for reporting (first time only)
    sudo apt install pandoc
    

    Bei Az CLI anmelden und den Scan ausführen```bash

    Relogin is required to ensure token cache is placed on session on cloud shell

    az account clear az login

    cd EAST

    replace the subid below with your subscription ID!

    subId=6193053b-408b-44d0-b20f-4e29b9b67394

    node ./plugins/main.js --batch=10 --nativescope=true --roleAssignments=true --helperTexts=true --checkAad=true --scanAuditLogs --composites --subInclude=$subId

    root@kitploit:~
    ![img](https://assets.kitploit.com/production/public/readmes/5701/e85a6607ac555d9bbde7a179042df2a344b0a9f004e99f27ade78e0bc20af5b5.gif)
    
    
    
    
    
    **Bericht erstellen**
    
    ``cd EAST; node templatehelpers/eastReports.js --doc`` 
    
    - Wenn Sie alle Ergebnisse des Azure Security Benchmark in den Bericht aufnehmen möchten
    
    ``cd EAST; node templatehelpers/eastReports.js --doc --asb`` 
    
    **Bericht aus der Cloud Shell exportieren**
    
    `` pandoc -s fullReport2.md -f markdown -t docx --reference-doc=pandoc-template.docx -o fullReport2.docx `` 
    
    ![image](https://assets.kitploit.com/production/public/readmes/5701/503e773de2e18294b3d74101d8c2eb6f675e1057c838e89703b440650450c374.png)
    
    **Azure Devops (Experimentell)**
    Es gibt eine Azure Devops-Steuerung zum Ausgeben von Pipeline-Logs. Sie können den Steuerungslauf wie folgt angeben:``` node ./plugins/main.js --batch=10 --nativescope=true --roleAssignments=true --helperTexts=true --checkAad=true --scanAuditLogs --composites --subInclude=$subId --azdevops "organizationName" ```
    
    --- 
    ## Licensing
    
    **Community use**
    - Share relevant controls across multiple environments as community effort
    
    **Company use**
    - Companies have possibility to develop company specific controls which apply to company specific work. Companies can then control these implementations by decision to share, or not share them based on the operating principle of that company. 
    
    **Non IPR components**
    - Code logic and functions are under MIT license. since code logic and functions are alredy based on open-source components & vendor API's, it does not make sense to restrict something that is already based on open source
    
    If you use this tool as part of your commercial effort we only require, that you follow the very relaxed terms of [MIT license](https://github.com/jsa2/east/blob/public/LICENSE)
    
    [Read license](https://github.com/jsa2/EAST/blob/public/LICENSE)
    
    ---
    
    # Tool operation documentation
    
    ## Principles
    
    
    ### AZCLI USE
    **Existing tooling enhanced with Node.js runtime**
    
    Use rich and maintained context of [Microsoft Azure CLI](https://github.com/Azure/azure-cli#microsoft-azure-cli) ``login & commands``  with Node.js control flow which supplies enhanced rest-requests and maps results to schema.
     - This tool does not include or distribute Microsoft Azure CLI, but rather uses it when it has been installed on the source system (Such as Azure Cloud Shell, which is primary platform for running EAST)
    
    ### Speedup
    
    View more [details](https://github.com/jsa2/east/blob/public/speedup.md)
    
    ✅ Using Node.js runtime as orchestrator utilises Nodes asynchronous nature allowing batching of requests. Batching of requests utilizes the full extent of Azure Resource Managers incredible speed. 
    
    ✅ Compared to running requests one-by-one, the speedup can be up to 10x, when Node executes the batch of requests instead of single request at time
    
    ## Parameters reference
    
    
    **Example:**
    ```shell
    

    node ./plugins/main.js --batch=10 --nativescope --roleAssignments --helperTexts=true --checkAad --scanAuditLogs --composites --shuffle --clearTokens

    root@kitploit:~
    
    Param| Description | Default if undefined
    -|-|-
    `` --nativescope `` | Currently mandatory parameter | no values
    `` --shuffle `` | Can help with throttling. Shuffles the resource list to reduce the possibility of resource provider throttling threshold being met  | no values 
    `` --roleAssignments `` | Checks controls as per [microsoft.authorization](https://github.com/jsa2/east/blob/public/providers/microsoft.authorization/controls) | no values
    `` --includeRG `` | Checks controls with ResourceGroups as per [microsoft.authorization](https://github.com/jsa2/east/blob/public/providers/microsoft.authorization/controls) | no values
    `` --checkAad `` | Checks controls as per [microsoft.azureactivedirectory](https://github.com/jsa2/east/blob/public/providers/microsoft.azureactivedirectory/controls) | no values
    `` --subInclude `` | Defines subscription scope | no default, requires subscriptionID/s, if not defined will enumerate all subscriptions the user have access to
    `` --namespace `` | text filter which matches full, or part of the resource ID <br> **example** `` /microsoft.storage/storageaccounts`` all storage accounts in the scope| optional parameter
    `` --notIncludes `` | text filter which matches full, or part of the resource ID <br> **example** `` /microsoft.storage/storageaccounts`` all storage accounts in the scope are **excluded**| optional parameter
    `` --batch `` | size of batch interval between throttles |5
    `` --wait `` | size of batch interval between throttles | 1500
    `` --scanAuditLogs `` | optional parameter. When defined in hours will toggle Azure Activity Log scanning for weak authentication events <br> **defined in:** [scanAuditLogs](https://github.com/jsa2/east/blob/public/providers/microsoft.authorization/functions/scanAuditLogs.js) | 24h
    `` --composites `` | read [composite](#composite)| no values
    `` --clearTokens `` | clears tokens in session folder, use this if you get authorization errors, or have just changed to other `` az login `` account <br> use `` az account clear`` if you want to clear AZ CLI cache too | no values
    `` --tag `` | Filter all results in the end based on single tag``--tag=svc=aksdev``  | no values
    ``--ignorePreCheck``  | use this option when used with browser delegated tokens| no values
    ``--helperTexts``  | Will append text descriptions from [general](https://github.com/jsa2/east/blob/public/providers/microsoft.general/controls) to manual controls| no values
    ``--reprocess``  | Will update results to existing content.json. Useful for incremental runs| no values
    
    
    **Parameters reference for example report:**
    ```shell
    node templatehelpers/eastReports.js --asb``` 
    
    Param| Description | Default if undefined
    -|-|-
    `` --asb `` | gets all ASB results available to users | no values
    `` --policy `` | gets all Policy results available to users | no values
    ``  --doc`` | prints pandoc string for export to console | no values
    
    ## (Highly experimental) Running in restricted environments where only browser use is available
    
    Read here [Running in restricted environments](https://github.com/jsa2/EAST/tree/DelegationToken#highly-experimental---bypassing-trusted-device-requirements-for-azure-cli-in-highly-restricted-environments-where-apis-are-available-for-browser-sessions)
    
    ## Developing controls 
    Developer guide including control flow description is here [``dev-guide.md``](https://github.com/jsa2/east/blob/public/dev-guide.md)
    
            
    ## Updates and examples
    ### Auditing Microsoft.Web provider (Functions and web apps)
    
    ✅ Check roles that are assigned to function managed identity in Azure AD and all Azure Subscriptions the audit account has access to <br>
    ✅ Relation mapping, check which keyVaults the function uses across all subs the audit account has access to<br>
    ✅ Check if Azure AD authentication is enabled
    ✅ Check that generation of access tokens to the api requires assigment ``.appRoleAssignmentRequired`` <br>
    ✅ Audit bindings <br>
      - Function or Azure AD Authentication enabled
      - Count and type of triggers
    <br>
    
    ✅ Check if [SCM](https://docs.microsoft.com/en-us/azure/azure-functions/security-concepts#secure-the-scm-endpoint) and [FTP](https://docs.microsoft.com/en-us/azure/azure-functions/security-concepts#disable-ftp) endpoints are secured 
    
    
    ![image](https://assets.kitploit.com/production/public/readmes/5701/b074ecdbe5d910c416ad2bbc5b5c57295c3f61348d5a8bb35146112959a15be8.png)
    
    
    ### Azure RBAC baseline authorization 
    
    ⚠️ Detect principals in privileged subscriptions roles protected only by password-based single factor authentication. 
    -  Checks for users without MFA policies applied for set of conditions
    -  Checks for ServicePrincipals protected only by password (as opposed to using Certificate Credential, workload federation and or workload identity CA policy)
      
      Maps to [App Registration Best Practices](https://docs.microsoft.com/en-us/azure/active-directory/develop/security-best-practices-for-app-registration#credential-configuration)
    - *An unused credential on an application can result in security breach. While it's convenient to use  <span style="color:red">password</span>. secrets as a credential, we strongly recommend that you use x509 certificates as the only credential type for getting tokens for your application*
    
    ``✅State healthy`` - **User result example**  
    ```JSON
    { 
      "subscriptionName": "EAST -msdn",
      "friendlyName": "[email protected]",
        "mfaResults": {
          "oid": "138ac68f-d8a7-4000-8d41-c10ff26a9097",
          "appliedPol": [{
            "GrantConditions": "challengeWithMfa",
            "policy": "baseline",
            "oid": "138ac68f-d8a7-4000-8d41-c10ff26a9097"
          }],
          "checkType": "mfa"
        },
        "basicAuthResults": {
          "oid": "138ac68f-d8a7-4000-8d41-c10aa26a9097",
          "appliedPol": [{
            "GrantConditions": "challengeWithMfa",
            "policy": "baseline",
            "oid": "138ac68f-d8a7-4000-8d41-c10aa26a9097"
          }],
          "checkType": "basicAuth"
          },
        }
    ```
    ``⚠️State unHealthy`` - **Application principal example**  
    
    ```json
    { 
      "subscriptionName": "EAST - HoneyPot",
          "friendlyName": "thx138-kvref-6193053b-408b-44d0-b20f-4e29b9b67394",
          "creds": {
            "@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals(id,displayName,appId,keyCredentials,passwordCredentials,servicePrincipalType)/$entity",
            "id": "babec804-037d-4caf-946e-7a2b6de3a45f",
            "displayName": "thx138-kvref-6193053b-408b-44d0-b20f-4e29b9b67394",
            "appId": "5af1760e-89ff-46e4-a968-0ac36a7b7b69",
            "servicePrincipalType": "Application",
            "keyCredentials": [],
            "passwordCredentials": [],
            "OnlySingleFactor": [{
              "customKeyIdentifier": null,
              "endDateTime": "2023-10-20T06:54:59.2014093Z",
              "keyId": "7df44f81-a52c-4fd6-b704-4b046771f85a",
              "startDateTime": "2021-10-20T06:54:59.2014093Z",
              "secretText": null,
              "hint": null,
              "displayName": null
            }],
            "StrongSingleFactor": []
            }
    }
    
    ```
    
    
    ## Contributing
    
    Following methods work for contributing for the time being:
    
    1. Submit a pull request with code / documentation change
    2. Submit a issue 
       - issue can be a:
       - ⚠️ Problem (issue)
       - 📝 Feature request
       - ❔Question
    
    ### Other
    1. By default EAST tries to work with the current depedencies - Introducing new (direct) depedencies is not directly encouraged with EAST. If such vital depedency is introduced, then review licensing of such depedency, and update [readme.md - depedencies](#depedencies) 
       - There is nothing to prevent you from creating your own fork of EAST with your own depedencies