Extensible Azure Security Tool (successivamente indicato come E.A.S.T) è uno strumento per valutare i controlli di sicurezza di Azure e, in una certa misura, di Azure AD. Il caso d'uso principale di EAST è la raccolta di dati di sicurezza per la valutazione negli Azure Assessments. Queste informazioni (contenuti JSON) possono poi essere utilizzate in vari strumenti di reportistica, che usiamo per correlare e analizzare ulteriormente i dati.
Questo strumento è concesso in licenza sotto licenza MIT.


Collaboratori
Indice dei contenuti
Note di rilascio
v 0.5
- Refactoring:
- Il ruolo di Managed Identity e le assegnazioni di Azure AD sono ora gestiti tramite un unico modulo; la versione precedente mostrava i segni del tempo e la logica non era più corretta. Il nuovo modulo è
miGeneral.js
- ASB non è più ASB, ora è Microsoft cloud security benchmark, vedi
query.js
v 0.4
-
Rami di anteprima introdotti
Modifiche:
-
L'installazione ora tiene conto dell'uso della versione aggiornata di Azure Cloud Shell per quanto riguarda le dipendenze (Cloud Shell ora ha installato Node.JS v 16)
-
Controllo dei tipi di cluster Databricks come da advisory
- Verifica i cluster Databricks per potenziale elevazione dei privilegi - Questo controllo richiede tipicamente permessi sul cluster Databricks"
-
Content.json ora ha un ordinamento basato su chiave e contenuto. Ciò consente di eseguire controlli differenziali con git diff HEAD^1 ¹ poiché content.json ha un ordine predefinito dei risultati

¹ ⚠️ Un avvertimento, se si vogliono controllare i delta di content.json, allora content.json dovrà essere "non ignorato" da .gitignore esponendo i risultati a qualsiasi upstream che potresti aver configurato.
Usa questa funzionalità con cautela e assicurati di non avere un upstream pubblico impostato per il ramo in cui stai usando questa funzionalità
-
Cambiamento dei pattern di programmazione per evitare possibili race condition con set di dati più grandi. Si tratta principalmente di cambiamenti da var a let nei cicli for await
Importante
⚠️ Lo stato attuale dello strumento è beta
- Correzioni, aggiornamenti, ecc. sono effettuati su base "Best effort", senza garanzia di tempo o qualità della possibile correzione applicata
- Eseguiamo alcune regolazioni aggiuntive prima di usare EAST nel nostro lavoro quotidiano, come applicare varie restrizioni di esecuzione e ambiente, oltre a familiarizzare con l'ambiente in questione. Pertanto, al momento raccomandiamo che EAST venga eseguito solo in ambienti di test e con permessi di sola lettura.
- Tutte le chiamate nel servizio sono in gran parte verso IP di Azure Cloud, quindi dovrebbe funzionare bene in ambienti protetti dove sono applicate restrizioni di outbound IP. Ciò riduce il rischio che questo strumento contenga pacchetti dannosi che potrebbero "contattare casa" senza avere anche un C2 in Azure.
- In sostanza, eseguirlo in modalità sola lettura riduce molto il rischio associato a possibili pacchetti NPM compromessi (Google compromessi NPM)
- Bug ecc.: Puoi proteggere il tuo ambiente da certi errori in questo codice eseguendo lo strumento con permessi di sola lettura
- Gran parte del codice è "AS IS": Ciò significa che ha servito solo allo scopo di creare un certo risultato; rimane molto da pulire e modularizzare
- Al momento non ci sono test, a parte alcuni controlli manuali che vengono eseguiti dopo le modifiche a main.js e vari controlli più avanzati.
- Le descrizioni dei controlli in questa fase non sono il prodotto finale, quindi fornire feedback su di esse, anche se apprezzato, non è l'attenzione principale dello strumento in questa fase
- Come suggerisce il nome, lo usiamo come strumento per valutare gli ambienti. Non è destinato a essere eseguito senza supervisione per il momento, e non dovrebbe essere eseguito in alcun servizio esposto a Internet che accetti connessioni in entrata.
- La documentazione può essere descritta come incompleta per il momento
- EAST è principalmente focalizzato sulle risorse PaaS, poiché la maggior parte delle nostre valutazioni Azure si concentra su questo tipo di risorsa
- ⚠️ Non viene eseguita alcuna sanitizzazione degli input sui parametri di avvio, poiché si presume sempre che l'input di questi parametri sia controllato. Detto questo, lo strumento utilizza estesamente
exec() - Anche se non ho esaminato tutti i percorsi, credo che ottenere l'esecuzione di shellcode sia banale. Questo strumento non assume input ostili, quindi la raccomandazione è di non incollare argomenti di avvio nella riga di comando senza averli prima esaminati.