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

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

Краткие рекомендации

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

Приложения с избыточными привилегиями

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

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

Неиспользуемое разрешение — это разрешение, которое было предоставлено приложению, но 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 определите набор минимальных привилегий.
  • Выполните аудит привилегий, предоставленных пользователям и приложениям.
  • Обновите приложения с учетом определенного набора минимально необходимых привилегий.
  • Регулярно проводите пересмотр привилегий, чтобы поддерживать актуальность всех предоставленных привилегий.

Следующие шаги