Condividi tramite


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.

Il diagramma mostra tre porte con le chiavi corrispondenti per illustrare le autorizzazioni inutilizzate.

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 diagramma mostra tre porte con le chiavi corrispondenti per illustrare le autorizzazioni reducibili.

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.

Grafico a destra: asse Y - Autorizzazioni, asse X - Tempo; Curva superiore - Autorizzazioni concesse, curva inferiore - Autorizzazioni usate; Statistiche a destra descritte nel contenuto dell'articolo.

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.

Diagramma descritto nel contenuto dell'articolo : quattro fasi di uno scenario di compromissione della sicurezza.

  1. Prima di tutto, lo sviluppatore inizia a configurare l'applicazione e ad aggiungere le autorizzazioni necessarie.
  2. In secondo luogo, l'amministratore IT esamina le autorizzazioni necessarie e concede il consenso.
  3. Terzo, l'attore malintenzionato inizia a violare le credenziali utente e viola correttamente l'identità dell'utente.
  4. 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.

Colonna a sinistra: non usata: viene concessa una o più autorizzazioni non necessarie per la chiamata API in corso di esecuzione. Colonna destra: reducible - Autorizzazione con un'alternativa con privilegi inferiori che fornisce comunque l'accesso per le attività necessarie.

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.

Diagramma descritto nel contenuto dell'articolo: raccomandazioni per evitare, controllare e correggere scenari con privilegi eccessivo.

  • 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.

Colonna sinistra: promuovere l'adozione : creare un'app affidabile per i clienti evitando richieste di autorizzazione eccessive. Colonna destra: arrestare la distribuzione - Gli utenti malintenzionati non sono in grado di usare privilegi eccessivi per ottenere ulteriore accesso.

  • 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