Ridurre le autorizzazioni e le app con privilegi eccessivo
Gli sviluppatori che vogliono progettare e implementare applicazioni che seguono i principi guida di Zero Trust consentono di aumentare la sicurezza delle applicazioni con privilegi minimi. È fondamentale ridurre la superficie di attacco dell'applicazione e l'effetto di una violazione della sicurezza.
Questo articolo illustra perché le applicazioni non devono richiedere più autorizzazioni di quelle necessarie. Si comprende il termine overprivileged e si individuano raccomandazioni e procedure consigliate per limitare i privilegi nelle applicazioni per gestire l'accesso e migliorare la sicurezza.
Che cos'è overprivileged?
L'overprivileged si verifica quando un'applicazione richiede o riceve più autorizzazioni di quelle necessarie per il corretto funzionamento. Migliorare la comprensione dell'overprivileged con esempi di autorizzazioni inutilizzate e reducibili nella parte restante di questo articolo.
Autorizzazioni inutilizzate
Per questo esempio di chiave inutilizzata, si supponga che siano presenti tre porte bloccate (blu, giallo e verde), come illustrato nel diagramma seguente.
Le tue risorse sono dietro le porte. Si hanno tre tasti (blu, giallo e verde) che consentono di aprire la porta corrispondente. Ad esempio, la chiave blu può aprire la porta blu. Quando è sufficiente accedere alla porta gialla, si porta solo la chiave gialla.
Per proteggere al meglio gli asset, è sufficiente trasportare le chiavi necessarie quando sono necessarie e mantenere le chiavi inutilizzate in una posizione sicura.
Autorizzazioni reducibili
L'esempio di chiavi reducibili è più complesso dell'esempio di chiave inutilizzata a cui ora si aggiungono due chiavi speciali, come illustrato nel diagramma seguente.
Il primo tasto nero è un tasto pass che può aprire tutte le porte. La seconda chiave nera può aprire il giallo e le porte verdi. Quando è sufficiente accedere al giallo e alle porte verdi, si porta solo la seconda chiave nera. Mantenere la chiave pass in una posizione sicura con la chiave verde ridondante.
Nel mondo delle identità Microsoft, le chiavi sono autorizzazioni di accesso. Le risorse e l'utente, il titolare della chiave, sono applicazioni. Se si comprende il rischio di trasportare chiavi non necessarie, si è consapevoli del rischio che le applicazioni presentino autorizzazioni non necessarie.
Gap di autorizzazione e rischio
In che modo le porte e le chiavi possono aiutare a capire come si verifica un sovraccarico? Perché l'applicazione può avere le autorizzazioni appropriate per eseguire un'attività, ma è comunque eccessiva? Si esaminerà ora il gap di autorizzazione che potrebbe causare la discrepanza nel diagramma seguente.
L'asse X rappresenta l'ora e l'asse Y rappresenta Le autorizzazioni. All'inizio dell'ora misurata, si richiede e si riceve l'autorizzazione per l'applicazione. Man mano che l'azienda cresce e cambia nel tempo, si aggiungono nuove autorizzazioni per supportare le proprie esigenze e aumenta la pendenza delle autorizzazioni concesse. Le autorizzazioni usate potrebbero essere inferiori a quelle concesse quando si dimentica di rimuovere autorizzazioni non necessarie (ad esempio, se l'applicazione non si interrompe) con conseguente gap di autorizzazione.
Di seguito sono riportate osservazioni interessanti in Microsoft Identity Platform.
- In Microsoft Graph sono disponibili più di 4.000 API.
- In Microsoft Identity Platform sono disponibili più di 200 autorizzazioni di Microsoft Graph.
- Gli sviluppatori hanno accesso a un'ampia gamma di dati e la possibilità di applicare granularità alle autorizzazioni richieste dalle app.
- Nelle indagini è stato rilevato che le app hanno solo il 10% delle autorizzazioni completamente usate per i relativi scenari.
Valutare attentamente le autorizzazioni effettivamente richieste dall'app. Tenere presente il gap di autorizzazione e controllare regolarmente le autorizzazioni dell'applicazione.
Sicurezza compromessa per l'overprivileged
Verranno ora approfonditi i rischi che derivano da gap di autorizzazione con un esempio. Questo scenario di compromissione comprende due ruoli: amministratore IT e sviluppatore.
- Amministratore IT: Jeff è un amministratore tenant che garantisce che le applicazioni in Microsoft Entra ID siano attendibili e sicure. Parte del processo di Jeff consiste nel concedere il consenso alle autorizzazioni richieste agli sviluppatori di app.
- Sviluppatore: Kelly è uno sviluppatore di app che usa Microsoft Identity Platform e possiede app. Il compito di Kelly è garantire che le applicazioni dispongano delle autorizzazioni appropriate per eseguire le attività necessarie.
Lo scenario comune di compromissione della sicurezza seguente per l'overprivileged ha in genere quattro fasi.
- Prima di tutto, lo sviluppatore inizia a configurare l'applicazione e ad aggiungere le autorizzazioni necessarie.
- In secondo luogo, l'amministratore IT esamina le autorizzazioni necessarie e concede il consenso.
- Terzo, l'attore malintenzionato inizia a violare le credenziali utente e viola correttamente l'identità dell'utente.
- Se l'utente è proprietario di più applicazioni, è anche eccessivamente privilegiato. L'attore non valido può usare rapidamente il token dell'autorizzazione concessa per recuperare i dati sensibili.
Applicazioni privilegiate
Un'entità è priva di privilegi quando richiede o riceve più autorizzazioni di quelle necessarie. La definizione di un'applicazione priva di privilegi in Microsoft Identity Platform è "qualsiasi applicazione con autorizzazioni inutilizzate o reducibili".
Si userà Microsoft Graph come parte di Microsoft Identity Platform in un esempio reale per comprendere meglio le autorizzazioni inutilizzate e le autorizzazioni reducibili.
L'autorizzazione inutilizzata si verifica quando l'applicazione riceve autorizzazioni non necessarie per le attività desiderate. Ad esempio, si sta creando un'app del calendario. L'app calendario richiede e riceve l'autorizzazione Files.ReadWrite.All
. L'app non si integra con le API dei file. Pertanto, l'applicazione dispone di un'autorizzazione inutilizzata Files.ReadWrite.All
.
L'autorizzazione reducibile è più difficile da individuare. Si verifica quando l'applicazione riceve poche autorizzazioni, ma ha un'alternativa con privilegi inferiore che fornisce un accesso sufficiente per le attività necessarie. Nell'esempio dell'app calendario l'app richiede e riceve l'autorizzazione Files.ReadWrite.All
. Tuttavia, deve solo leggere i file da OneDrive dell'utente connesso e non deve mai creare nuovi file o modificarli esistenti. In questo caso, l'applicazione usa Files.ReadWrite.All
solo parzialmente, quindi è necessario effettuare il downgrade a Files.Read.All
.
Consigli per ridurre gli scenari senza privilegi
La sicurezza è un percorso, non una destinazione. Esistono tre fasi distinte nel ciclo di vita della sicurezza:
- Prevenzione
- Controllo
- Correzione
Il diagramma seguente illustra le raccomandazioni per ridurre gli scenari senza privilegi.
- Impedisci: quando si compila un'applicazione, è necessario comprendere completamente l'autorizzazione necessaria per le chiamate API che l'applicazione deve effettuare e richiedere solo gli elementi necessari per abilitare lo scenario. La documentazione di Microsoft Graph include riferimenti chiari per le autorizzazioni con privilegi minimi per l'autorizzazione con privilegi più elevati per tutti gli endpoint. Tenere presente gli scenari con privilegi eccessivo durante la determinazione delle autorizzazioni necessarie.
- Controllo: l'utente e gli amministratori IT devono esaminare regolarmente i privilegi precedentemente concessi alle applicazioni esistenti.
- Correzione: se l'utente o gli amministratori IT notano un'applicazione eccessivamente privilegiata nell'ecosistema, è consigliabile interrompere la richiesta di token per l'autorizzazione sovraprivata. Gli amministratori IT devono revocare i consenso concessi. Questo passaggio richiede in genere una modifica del codice.
Procedure consigliate per mantenere l'autorizzazione con privilegi minimi
Due importanti incentivi per mantenere l'autorizzazione con privilegi minimi con le applicazioni sono la guida all'adozione delle applicazioni e l'arresto della diffusione.
- Favorire l'adozione creando un'app affidabile per i clienti che evitano richieste di autorizzazione eccessive. Limitare le autorizzazioni dell'applicazione solo a ciò che deve completare l'attività. Questa procedura riduce il potenziale raggio di attacco e aumenta l'adozione dei clienti delle app. Applicare un maggior controllo quando si esaminano le autorizzazioni richieste dall'applicazione e si decide se concedere le autorizzazioni dell'app.
- Arrestare la diffusione assicurando che gli utenti malintenzionati non siano in grado di usare privilegi eccessivi per ottenere ulteriore accesso. Quando crei un'app che richiede autorizzazioni non necessarie, è meno probabile che riceva l'approvazione o ne venga negata del tutto. Il modo migliore per controllare i danni consiste nel impedire agli utenti malintenzionati di ottenere privilegi elevati che aumentano l'ambito della compromissione. Ad esempio, se l'applicazione deve
User.ReadBasic.All
leggere solo le informazioni di base dell'utente, OneDrive, Outlook, Teams e tutti i dati riservati sono sicuri se un'app viene compromessa.
Passaggi successivi
- Acquisire l'autorizzazione per accedere alle risorse consente di comprendere come garantire al meglio Zero Trust durante l'acquisizione delle autorizzazioni di accesso alle risorse per l'applicazione.
- La creazione di app con un approccio Zero Trust all'identità offre una panoramica delle autorizzazioni e delle procedure consigliate per l'accesso.
- Personalizzare i token descrive le informazioni che è possibile ricevere nei token di Microsoft Entra. Spiega come personalizzare i token per migliorare la flessibilità e il controllo aumentando al contempo la sicurezza senza attendibilità delle applicazioni con privilegi minimi.
- Configurare le attestazioni di gruppo e i ruoli dell'app nei token illustra come configurare le app con definizioni di ruolo dell'app e assegnare gruppi di sicurezza ai ruoli dell'app. Questi metodi consentono di migliorare la flessibilità e il controllo aumentando la sicurezza senza attendibilità delle applicazioni con privilegi minimi.
- Ottenere l'idoneità Zero Trust nelle app: la progettazione di privilegi minimi consente di progettare app usando il principio dell'accesso con privilegi minimi con Microsoft Identity Platform.
- Aumentare la sicurezza delle applicazioni con il principio dei privilegi minimi consente di ridurre la superficie di attacco di un'applicazione e l'effetto di una violazione della sicurezza (il raggio di esplosione) dovrebbe verificarsi in un'applicazione integrata di Microsoft Identity Platform.
- Informazioni di riferimento sulle autorizzazioni di Graph Explorer e Microsoft Graph consentono di selezionare le chiamate API Microsoft Graph per abilitare lo scenario dell'app e trovare le autorizzazioni corrispondenti da meno a quelle con privilegi più elevati.