Migliorare la sicurezza con il principio dei privilegi minimi
Il principio di sicurezza delle informazioni con privilegi minimi afferma che agli utenti e alle applicazioni deve essere concesso l'accesso solo ai dati e alle operazioni necessarie per eseguire i processi. Seguire le indicazioni riportate qui per ridurre la superficie di attacco di un'applicazione e l'impatto di una violazione della sicurezza (il raggio di esplosione) in un'applicazione integrata in Microsoft Identity Platform.
Consigli a colpo d'occhio
- Impedire le applicazioni con privilegi eccessivo revocando le autorizzazioni inutilizzate e reducibili .
- Usare il framework di consenso di Identity Platform per richiedere il consenso dell'utente alla richiesta dell'applicazione per accedere ai dati protetti.
- Creare applicazioni con privilegi minimi durante tutte le fasi di sviluppo.
- Controllare periodicamente le applicazioni distribuite per identificare quelle sovraprivate.
Applicazioni privilegiate
Tutte le applicazioni a cui è stata concessa un'autorizzazione inutilizzata o reducibile vengono considerate eccessivamente privilegiate . Le autorizzazioni inutilizzate e reducibili possono fornire l'accesso non autorizzato o non intenzionale ai dati o alle operazioni non richieste dall'applicazione o dai relativi utenti per eseguire i propri lavori. Evitare rischi per la sicurezza rappresentati da autorizzazioni inutilizzate e reducibili concedendo solo le autorizzazioni appropriate. Le autorizzazioni appropriate sono quelle con l'accesso meno permissivo richiesto da un'applicazione o da un utente per eseguire le attività necessarie.
Autorizzazioni inutilizzate
Un'autorizzazione inutilizzata è un'autorizzazione concessa a un'applicazione, ma la cui API o operazione esposta da tale autorizzazione non viene chiamata dall'applicazione se usata come previsto.
Esempio: un'applicazione visualizza un elenco di file archiviati in OneDrive dell'utente connesso chiamando l'API Microsoft Graph usando l'autorizzazione Files.Read . Tuttavia, all'applicazione è stata concessa anche l'autorizzazione Calendars.Read , ma non fornisce funzionalità del calendario e non chiama l'API Calendars.
Rischio di sicurezza: le autorizzazioni inutilizzate rappresentano un rischio di sicurezza orizzontale per l'escalation dei privilegi. Un'entità che sfrutta una vulnerabilità di sicurezza nell'applicazione potrebbe usare un'autorizzazione inutilizzata per ottenere l'accesso a un'API o a un'operazione normalmente supportata o consentita dall'applicazione quando viene usata come previsto.
Mitigazione: rimuovere qualsiasi autorizzazione non usata nelle chiamate API effettuate dall'applicazione.
Autorizzazioni reducibili
Un'autorizzazione reducibile è un'autorizzazione con una controparte con privilegi inferiori che fornisce comunque all'applicazione e ai suoi utenti l'accesso necessario per eseguire le attività necessarie.
Esempio: un'applicazione visualizza le informazioni sul profilo dell'utente connesso chiamando l'API Microsoft Graph, ma non supporta la modifica del profilo. Tuttavia, all'applicazione è stata concessa l'autorizzazione User.ReadWrite.All . L'autorizzazione User.ReadWrite.All viene considerata reducibile perché l'autorizzazione User.Read.All meno permissiva concede un accesso di sola lettura sufficiente ai dati del profilo utente.
Rischio di sicurezza: le autorizzazioni reducibili rappresentano un rischio di sicurezza per l'escalation dei privilegi verticali. Un'entità che sfrutta una vulnerabilità di sicurezza nell'applicazione potrebbe usare l'autorizzazione reducibile per l'accesso non autorizzato ai dati o per eseguire operazioni normalmente non consentite da quel ruolo dell'entità.
Mitigazione: sostituire ogni autorizzazione reducibile nell'applicazione con la controparte meno permissiva ancora abilitando la funzionalità prevista dell'applicazione.
Usare il consenso per controllare l'accesso ai dati
La maggior parte delle applicazioni richiede l'accesso ai dati protetti e il proprietario di tali dati deve fornire il consenso a tale accesso. Il consenso può essere concesso in diversi modi, ad esempio da un amministratore tenant che può fornire il consenso per tutti gli utenti di un tenant di Microsoft Entra o dagli utenti dell'applicazione stessi che possono concedere l'accesso.
Ogni volta che un'applicazione eseguita in un dispositivo richiede l'accesso ai dati protetti, l'applicazione deve chiedere il consenso dell'utente prima di concedere l'accesso ai dati protetti. L'utente deve concedere (o negare) il consenso per l'autorizzazione richiesta prima che l'applicazione possa procedere.
Privilegi minimi durante lo sviluppo di applicazioni
La sicurezza di un'applicazione e dei dati utente a cui accede è responsabilità dello sviluppatore.
Attenersi a queste linee guida durante lo sviluppo di applicazioni per evitare di renderlo eccessivamente privilegiato:
- Comprendere appieno le autorizzazioni necessarie per le chiamate API che l'applicazione deve effettuare.
- Comprendere l'autorizzazione con privilegi minimi per ogni chiamata API necessaria all'applicazione tramite Graph Explorer.
- Trovare le autorizzazioni corrispondenti dal livello minimo alla maggior parte dei privilegi.
- Rimuovere tutti i set duplicati di autorizzazioni nei casi in cui l'applicazione effettua chiamate API con autorizzazioni sovrapposte.
- Applicare solo il set di autorizzazioni con privilegi minimi all'applicazione scegliendo l'autorizzazione con privilegi minimi nell'elenco di autorizzazioni.
Privilegio minimo per le applicazioni distribuite
Le organizzazioni spesso esitano a modificare le applicazioni in esecuzione per evitare di influire sulle normali operazioni aziendali. Tuttavia, un'organizzazione deve prendere in considerazione la possibilità di ridurre il rischio di un evento imprevisto di sicurezza reso possibile o più grave usando autorizzazioni eccessivamente privilegiate per essere degne di un aggiornamento pianificato dell'applicazione.
Fare in modo che queste procedure standard in un'organizzazione consentano di assicurarsi che le applicazioni distribuite non siano troppo privilegiate e non diventino eccessivamente privilegiate nel tempo:
- Valutare le chiamate API effettuate dalle applicazioni.
- Usare Graph Explorer e la documentazione di Microsoft Graph per le autorizzazioni necessarie e con privilegi minimi.
- Privilegi di controllo concessi a utenti o applicazioni.
- Aggiornare le applicazioni con il set di autorizzazioni con privilegi minimi.
- Esaminare regolarmente le autorizzazioni per assicurarsi che tutte le autorizzazioni autorizzate siano ancora rilevanti.