Mejora de la seguridad con el principio de privilegios mínimos
El principio de seguridad de la información de privilegios mínimos establece que a los usuarios y las aplicaciones se les debe conceder acceso solo a los datos y las operaciones que necesitan para realizar sus trabajos. Siga esta guía para reducir la superficie de ataque de una aplicación y el impacto de una vulneración de seguridad (el radio de impacto) en caso de que se produjera en la aplicación integrada en la Plataforma de identidad de Microsoft.
Recomendaciones de un vistazo
- Evite las aplicaciones con demasiados privilegios revocando los permisos no usados y reducibles.
- Use el marco de consentimiento de la plataforma de identidad para que sea necesario que una persona dé su consentimiento a la solicitud de la aplicación de acceder a datos protegidos.
- Cree aplicaciones teniendo en cuenta los privilegios mínimos durante todas las fases de desarrollo.
- Audite periódicamente las aplicaciones implementadas para identificar las aplicaciones con demasiados privilegios.
Aplicaciones con demasiados privilegios
Cualquier aplicación a la que se le haya concedido un permiso no usado o reducible se considera que tiene "demasiados privilegios". Los permisos no usados y reducibles pueden proporcionar acceso no autorizado o no deseado a datos u operaciones que la aplicación o sus usuarios no necesitan para realizar sus tareas. Evite los riesgos de seguridad que suponen los permisos no usados y reducibles al conceder solo los permisos adecuados. Los permisos adecuados son los que tienen el acceso menos permisivo que una aplicación o usuario necesita para realizar sus tareas.
Permisos no usados
Un permiso que no se usa es un permiso que se ha concedido a una aplicación; aún así, cuando la aplicación se usa según lo previsto, no llama a la API ni a la operación que expone ese permiso.
Ejemplo: una aplicación muestra una lista de archivos almacenados en la cuenta de OneDrive del usuario que ha iniciado sesión mediante una llamada a Microsoft Graph API y utilizando el permiso Files.Read. Sin embargo, a la aplicación también se le ha concedido el permiso Calendars.Read, pero no proporciona características de calendario y no llama a Calendars API.
Riesgo de seguridad: los permisos sin usar suponen un riesgo de seguridad por elevación de privilegios horizontal. Una entidad que aproveche una vulnerabilidad de seguridad en la aplicación puede utilizar un permiso que no se use para obtener acceso a una API u operación que la aplicación normalmente no admite o no permite cuando esta se usa según lo previsto.
Mitigación: quite cualquier permiso que no se utilice en las llamadas API que realiza la aplicación.
Permisos reducibles
Un permiso reducible es un permiso que tiene un homólogo con menos privilegios que seguiría proporcionando a la aplicación y a sus usuarios el acceso que necesitan para realizar las tareas necesarias.
Ejemplo: una aplicación muestra la información del perfil del usuario que ha iniciado sesión llamando a Microsoft Graph API, pero no admite la edición de perfiles. Sin embargo, a la aplicación se le ha concedido el permiso User.ReadWrite.All. El permiso User.ReadWrite.All se considera reducible aquí porque el permiso User.Read.All menos permisivo concede acceso suficiente de solo lectura a los datos del perfil de usuario.
Riesgo de seguridad: los permisos reducibles suponen un riesgo de seguridad por elevación de privilegios vertical. Una entidad que aproveche una vulnerabilidad de seguridad en la aplicación podría usar el permiso reducible para acceder sin autorización a datos o para realizar operaciones que normalmente no admite el rol de esa entidad.
Mitigación: reemplace cada permiso reducible de la aplicación por su homólogo menos permisivo que sigue permitiendo la funcionalidad prevista de la aplicación.
Uso del consentimiento para controlar el acceso a datos
La mayoría de las aplicaciones que cree requerirán acceso a datos protegidos y el propietario de esos datos debe dar su consentimiento a ese acceso. El consentimiento se puede conceder de varias maneras, como a través de un administrador de inquilinos que puede dar su consentimiento para todos los usuarios de un inquilino de Microsoft Entra o por los propios usuarios de la aplicación que pueden conceder acceso.
Cada vez que una aplicación que se ejecuta en el dispositivo del usuario solicita acceso a los datos protegidos, la aplicación debe solicitar el consentimiento del usuario antes de conceder acceso a dichos datos. El usuario final debe conceder (o denegar) el consentimiento para el permiso solicitado antes de que la aplicación pueda avanzar.
Privilegios mínimos durante el desarrollo de aplicaciones
La seguridad de una aplicación y los datos de usuario a los que accede es responsabilidad del desarrollador.
Siga estas directrices durante el desarrollo de aplicaciones para evitar crear una aplicación con demasiados privilegios:
- Comprenda completamente los permisos necesarios para las llamadas API que la aplicación debe realizar.
- Comprenda el permiso con privilegios mínimos para cada llamada API que la aplicación necesite realizar mediante el Probador de Graph.
- Busque los permisos correspondientes desde los que tienen menos privilegios a los que tienen más.
- Quite los conjuntos de permisos duplicados en los casos en los que la aplicación realice llamadas API que tengan permisos superpuestos.
- Aplique solo el conjunto de permisos con privilegios mínimos a la aplicación eligiendo el permiso con privilegios mínimos en la lista de permisos.
Privilegios mínimos para aplicaciones implementadas
A menudo, las organizaciones dudan si modificar las aplicaciones en ejecución para evitar que sus operaciones empresariales normales se vean afectadas. Sin embargo, su organización debe considerar la posibilidad de mitigar el riesgo de que ocurra o se agrave un incidente de seguridad debido a que la aplicación tenga demasiados privilegios, de forma que resulte conveniente una actualización programada de la aplicación.
Establezca estas prácticas estándar en su organización para garantizar que las aplicaciones implementadas no tengan demasiados privilegios y no los obtengan con el tiempo:
- Evalúe las llamadas API que se realizan desde las aplicaciones.
- Use el Probador de Graph y la documentación de Microsoft Graph para los permisos necesarios y los privilegios mínimos.
- Audite los privilegios que se conceden a los usuarios o las aplicaciones.
- Actualice las aplicaciones con el conjunto de permisos con privilegios mínimos.
- Realice una revisión periódica de los permisos para asegurarse de que todos los que están autorizados siguen siendo pertinentes.