Aumente a segurança com o princípio de privilégios mínimos
O princípio de segurança de informações de privilégios mínimos declara que os usuários e os aplicativos devem receber acesso apenas aos dados e às operações de que precisam para executar seus trabalhos. Siga as diretrizes descritas aqui para ajudar a reduzir a superfície de ataque de um aplicativo e o impacto de uma violação de segurança (o raio dos danos), caso um ocorra em um aplicativo integrado à plataforma de identidade da Microsoft.
Recomendações rápidas
- Evitar aplicativos com excesso de privilégios revogando permissões não utilizadas e reduzíveis.
- Use a estrutura de consentimento da plataforma de identidade para exigir que uma pessoa dê consentimento à solicitação do aplicativo para acessar dados protegidos.
- Crie aplicativos com privilégios mínimos em mente durante todos os estágios de desenvolvimento.
- Audite os aplicativos implantados periodicamente para identificar os que estão com excesso de privilégios.
Aplicativos com excesso de privilégios
Qualquer aplicativo que tenha recebido uma permissão não utilizada ou reduzível é considerado como tendo excesso de privilégios. As permissões não utilizadas e reduzíveis têm o potencial de fornecer acesso não autorizado ou indesejado a dados ou operações não exigidas pelo aplicativo ou pelos usuários para realizar o trabalho. Evite riscos de segurança representados por permissões não utilizadas e reduzíveis concedendo apenas as permissões apropriadas. As permissões apropriadas são as que têm o acesso menos permissivo necessário para um aplicativo ou um usuário para executar as tarefas necessárias.
Permissões não utilizadas
Uma permissão não utilizada é uma permissão que foi concedida a um aplicativo, mas cuja API ou operação exposta por essa permissão não é chamada pelo aplicativo quando usada da forma pretendida.
Exemplo: um aplicativo exibe uma lista de arquivos armazenados no OneDrive do usuário conectado chamando a API do Microsoft Graph por meio da permissão Files.Read. No entanto, o aplicativo também recebeu a permissão Calendars.Read, ainda que ela não forneça recursos de calendário e não chame a API de Calendários.
Risco de segurança: as permissões não utilizadas representam um risco de segurança de elevação de privilégio horizontal. Uma entidade que explora uma vulnerabilidade de segurança no aplicativo pode usar uma permissão não utilizada para obter acesso a uma API ou a uma operação normalmente sem suporte ou permitida pelo aplicativo quando usada da forma pretendida.
Mitigação: remova qualquer permissão que não seja utilizada em chamadas à API feitas pelo aplicativo.
Permissões reduzíveis
Uma permissão reduzível é uma permissão que tem uma contraparte com privilégios inferiores que ainda forneceria ao aplicativo e aos seus usuários o acesso necessário para executar suas tarefas necessárias.
Exemplo: um aplicativo exibe as informações de perfil do usuário conectado chamando a API do Microsoft Graph, mas não dá suporte à edição de perfil. No entanto, o aplicativo recebeu a permissão User.ReadWrite.All. A permissão User.ReadWrite.All é considerada reduzível neste caso porque a permissão de usuário menos permissiva User.Read.All concede acesso somente leitura suficiente aos dados de perfil do usuário.
Risco de segurança: as permissões reduzíveis representam um risco de segurança de elevação de privilégio vertical. Uma entidade que explora uma vulnerabilidade de segurança no aplicativo pode usar a permissão reduzível para acesso não autorizado a dados ou para executar operações normalmente não permitidas pela função da entidade.
Mitigação: substitua cada uma das permissões reduzíveis no aplicativo pelo equivalente menos permissivo que ainda habilita a funcionalidade desejada do aplicativo.
Usar consentimento para controlar acesso a dados
A maioria dos aplicativos exige o acesso a dados protegidos, e o proprietário desses dados precisa consentir esse acesso. O consentimento pode ser dado de várias maneiras, incluindo por um administrador de locatários que pode dar consentimento para todos os usuários em um locatário do Microsoft Entra ou pelos próprios usuários do aplicativo que podem conceder acesso.
Sempre que um aplicativo que é executado em um dispositivo solicita o acesso a dados protegidos, o aplicativo deve solicitar o consentimento do usuário antes de permitir acesso aos dados protegidos. Para que o aplicativo possa prosseguir, o usuário precisa conceder (ou negar) consentimento para a permissão solicitada.
Privilégios mínimos durante o desenvolvimento de aplicativos
A segurança de um aplicativo e dos dados do usuário acessados é responsabilidade do desenvolvedor.
Siga estas diretrizes durante o desenvolvimento de aplicativos para ajudar a evitar fazer com que ele tenha excesso de privilégios:
- Entenda totalmente as permissões necessárias para as chamadas à API que o aplicativo precisa fazer.
- Entenda a permissão de privilégios mínimos para cada chamada à API que o aplicativo precisa fazer usando o Graph Explorer.
- Localize as permissões correspondentes, do menos ao mais privilegiado.
- Remova todos os conjuntos de permissões duplicados nos casos em que seu aplicativo faz chamadas à API com permissões de sobreposição.
- Aplique ao aplicativo somente o conjunto de permissões com privilégios mínimos escolhendo a permissão menos privilegiada na lista de permissões.
Privilégios mínimos para aplicativos implantados
Muitas vezes, as organizações hesitam em modificar aplicativos em execução para evitar afetar suas operações normais de negócios. No entanto, uma organização deve considerar a mitigação do risco de um incidente de segurança possibilitado ou mais grave com o uso de permissões com excesso de privilégios para justificar uma atualização de aplicativo agendada.
Torne essas práticas um padrão em uma organização para ajudar a garantir que os aplicativos implantados não tenham nem obtenham excesso de privilégios com o passar do tempo:
- Avalie as chamadas à API que estão sendo feitas dos aplicativos.
- Use o Gerenciador de gráficos e a documentação do Microsoft Graph para obter as permissões necessárias e com privilégios mínimos.
- Revise os privilégios concedidos aos usuários ou aplicativos.
- Atualize os aplicativos com o conjunto de permissões com privilégios mínimos.
- Revise as permissões regularmente para verificar se todas as permissões autorizadas ainda são relevantes.