Поделиться через


Повышение безопасности с помощью принципа наименьших привилегий

Принцип информационной безопасности наименьшей привилегии утверждает, что пользователям и приложениям следует предоставлять доступ только к данным и операциям, которым они требуются для выполнения своих заданий. Следуйте инструкциям здесь, чтобы уменьшить область атаки приложения и влияние нарушения безопасности ( радиус взрыва) в приложении, интегрированном с платформой удостоверений Майкрософт.

Рекомендации на первый взгляд

  • Предотвращать чрезмерное использование приложений, отменяя неиспользуемые и редуцируемые разрешения.
  • Используйте механизм согласия платформы удостоверений, чтобы требовать согласия пользователя для выполнения запроса от приложения на доступ к защищённым данным.
  • Создавайте приложения с минимальными привилегиями во время всех этапов разработки.
  • Периодически проверяйте развернутые приложения, чтобы определить те, которые обладают избыточными привилегиями.

Чрезмерное использование приложений

Любое приложение, которое было предоставлено неиспользуемое или редуцируемое разрешение, считается избыточно привилегированным. Неиспользуемые и редуцируемые разрешения могут предоставлять несанкционированный или непреднамерованный доступ к данным или операциям, которые не требуются приложению или его пользователям для выполнения своих заданий. Избегайте рисков безопасности, вызванных неиспользуемыми и редуцируемыми разрешениями, предоставив только соответствующие разрешения. Соответствующие разрешения — это те, которые имеют наименьший доступ, необходимый приложению или пользователю для выполнения необходимых задач.

Неиспользуемые разрешения

Неиспользуемое разрешение — это разрешение, которое было предоставлено приложению, но его API или операция, связанные с этим разрешением, не вызываются приложением при его использовании по назначению.

  • Пример. Приложение отображает список файлов, хранящихся в OneDrive вошедшего пользователя, вызвав API Microsoft Graph с помощью разрешения Files.Read . Однако приложение также было предоставлено разрешение Calendars.Read , но оно не предоставляет возможности календаря и не вызывает API календарей.

  • Риск безопасности: ненужные разрешения представляют угрозу горизонтальной эскалации привилегий. Сущность, которая использует уязвимость безопасности в приложении, может использовать неиспользуемое разрешение для получения доступа к API или операции, которая обычно не поддерживается или разрешена приложением, когда оно используется как предполагаемое.

  • Устранение рисков. Удалите все разрешения, которые не используются в вызовах API, сделанных приложением.

Редуцируемые разрешения

Сокращаемое разрешение — это разрешение, имеющее аналог с более низким уровнем привилегий, которое всё равно обеспечивает приложению и его пользователям доступ, необходимый для выполнения необходимых задач.

  • Пример. Приложение отображает сведения о профиле вошедшего пользователя, вызвав API Microsoft Graph, но не поддерживает редактирование профиля. Однако приложению предоставлено разрешение User.ReadWrite.All . Разрешение User.ReadWrite.All считается редуцируемым, поскольку менее привилегированное разрешение User.Read.All предоставляет достаточный доступ только для чтения к данным профиля пользователя.

  • Риск безопасности: редуцируемые разрешения представляют собой риск вертикальной эскалации привилегий . Сущность, которая использует уязвимость безопасности в приложении, может использовать редуцируемые разрешения для несанкционированного доступа к данным или выполнения операций, которые обычно не допускаются этой ролью сущности.

  • Устранение рисков. Замените каждое редуцируемые разрешения в приложении минимальными разрешениями, которые по-прежнему позволяют использовать предполагаемые функциональные возможности приложения.

Большинству приложений требуется доступ к защищенным данным, а владельцу этих данных требуется согласие на доступ. Согласие может предоставляться несколькими способами, включая администратора клиента, который может предоставить согласие для всех пользователей в клиенте Microsoft Entra, или пользователями приложения, которые могут предоставить доступ.

Всякий раз, когда приложение, работающее на устройстве, запрашивает доступ к защищенным данным, приложение должно запрашивать согласие пользователя перед предоставлением доступа к защищенным данным. Пользователь должен предоставить (или запретить) согласие на запрошенное разрешение, прежде чем приложение сможет выполнить работу.

Наименьшие привилегии во время разработки приложений

Безопасность приложения и пользовательских данных, к которым он обращается, является ответственностью разработчика.

Соблюдайте эти рекомендации во время разработки приложений, чтобы помочь избежать чрезмерного предоставления привилегий:

  • Полностью разберитесь в разрешениях, необходимых для вызовов API, которые должно выполнять приложение.
  • Изучите наименее привилегированное разрешение для каждого вызова API, которое приложение должно сделать с помощью обозревателя Graph.
  • Найдите соответствующие разрешения от наименьшего до большинства привилегированных.
  • Удалите все повторяющиеся наборы разрешений в случаях, когда приложение выполняет вызовы API с перекрывающимися разрешениями.
  • Примените к приложению только наименее привилегированный набор разрешений, выбрав наименее привилегированное разрешение в списке разрешений.

Минимальные привилегии для развернутых приложений

Организации часто стесняются изменять работающие приложения, чтобы избежать влияния на их обычные бизнес-операции. Однако организация должна учитывать целесообразность снижения риска инцидента безопасности, который может возникнуть или усугубиться из-за использования избыточных разрешений, через плановые обновления приложения.

Сделайте эти методики стандартными в организации, чтобы убедиться, что развернутые приложения не являются слишком привилегированными и со временем не становятся такими.

  • Оцените вызовы API, выполняемые из приложений.
  • Используйте Обозреватель Graph и документацию Microsoft Graph, чтобы узнать о необходимых и наименее привилегированных разрешениях.
  • Аудит привилегий, предоставляемых пользователям или приложениям.
  • Обновите приложения с наименьшим привилегированным набором разрешений.
  • Регулярно просматривайте разрешения, чтобы убедиться, что все авторизованные разрешения по-прежнему актуальны.

Дальнейшие шаги