권한 초과 사용 권한 및 앱 줄이기

제로 트러스트 지침 원칙을 따르는 애플리케이션을 디자인하고 구현하려는 개발자는 최소한의 권한으로 애플리케이션 보안을 강화하려고 합니다. 애플리케이션의 공격 표면과 보안 위반의 영향을 줄이는 것이 중요합니다.

이 문서에서는 애플리케이션이 필요한 것보다 더 많은 권한을 요청하지 않아야 하는 이유를 알아봅니다. 권한 없는 용어를 이해하고 액세스를 관리하고 보안을 개선하기 위해 애플리케이션의 권한을 제한하기 위한 권장 사항 및 모범 사례를 검색합니다.

과민한 것은 무엇입니까?

애플리케이션이 제대로 작동하는 데 필요한 것보다 더 많은 권한을 요청하거나 받을 때 초과 권한이 발생합니다. 이 문서의 re기본der에서 사용하지 않고 축소할 수 있는 권한의 예제를 사용하여 권한 초과에 대한 이해를 향상시킵니다.

사용하지 않는 권한

사용하지 않는 이 주요 예제의 경우 다음 다이어그램과 같이 세 개의 잠긴 문(파란색, 노란색 및 녹색)이 있다고 상상해 보세요.

다이어그램은 사용되지 않는 권한을 보여 주는 해당 키가 있는 세 개의 문을 보여 줍니다.

자산은 문 뒤에 있습니다. 해당 문을 열 수 있는 세 개의 키(파란색, 노란색 및 녹색)가 있습니다. 예를 들어 파란색 키는 파란색 문을 열 수 있습니다. 노란색 문에만 액세스해야 하는 경우 노란색 키만 전달합니다.

자산을 가장 잘 보호하기 위해 필요한 키만 가지고 다니며 사용하지 않은 키를 안전한 위치에 보관합니다.

줄일 수 있는 권한

환원 키 예제는 다음 다이어그램과 같이 두 개의 특수 키를 추가하는 사용되지 않는 키 예제보다 더 복잡합니다.

다이어그램은 환원 가능한 권한을 설명하기 위해 해당 키가 있는 세 개의 문을 보여 줍니다.

첫 번째 검은색 키는 모든 문을 열 수 있는 패스 키입니다. 두 번째 검은색 키는 노란색과 녹색 문을 열 수 있습니다. 노란색과 녹색 문에만 액세스해야 하는 경우 두 번째 검은색 키만 휴대합니다. 중복 녹색 키를 사용하여 안전한 위치에 패스 키를 유지합니다.

Microsoft ID 세계에서 키는 액세스 권한입니다. 리소스와 키 보유자는 애플리케이션입니다. 불필요한 키를 전달할 위험을 이해하면 불필요한 권한이 있는 애플리케이션의 위험을 알고 있을 것입니다.

권한 격차 및 위험

문과 열쇠는 어떻게 과민한 일이 발생하는지 이해하는 데 도움이 될 수 있습니까? 애플리케이션에 작업을 수행할 수 있는 올바른 권한이 있지만 여전히 권한이 초과되는 이유는 무엇인가요? 다음 다이어그램에서 불일치를 일으킬 수 있는 권한 간격을 살펴보겠습니다.

오른쪽 그래프: Y축 - 사용 권한, X축 - 시간; 상한 곡선 - 권한 부여, 낮은 곡선 - 사용 권한; 아티클 콘텐츠에 설명된 오른쪽에 대한 통계입니다.

X축은 시간을 나타내고 Y축은 사용 권한을 나타냅니다. 측정 된 시간이 시작될 때 애플리케이션에 대한 권한을 요청하고 받습니다. 비즈니스가 성장하고 시간이 지남에 따라 변경됨에 따라 요구 사항을 지원하기 위한 새 권한을 추가하고 부여된 사용 권한의 기울기를 증가합니다 . 불필요한 사용 권한(예: 애플리케이션이 중단되지 않는 경우)을 제거하지 않으면 사용 권한이 부여된 사용 권한보다 낮을 수 있습니다.

다음은 Microsoft ID 플랫폼 흥미로운 관찰입니다.

  • Microsoft Graph에는 4,000개 이상의 API가 있습니다.
  • Microsoft ID 플랫폼 200개 이상의 Microsoft Graph 권한을 사용할 수 있습니다.
  • 개발자는 광범위한 데이터에 액세스할 수 있으며 앱이 요청하는 사용 권한에 세분성을 적용할 수 있습니다.
  • 조사 결과, 앱은 해당 시나리오에 대해 10%의 사용 권한만 완전히 활용한 것으로 나타났습니다.

앱에 실제로 필요한 사용 권한에 대해 신중하게 생각해 보세요. 권한 간격을 주의하고 애플리케이션 권한을 정기적으로 검사.

과도한 권한으로 보안이 손상됨

예를 들어 사용 권한 격차로 인해 발생하는 위험을 자세히 살펴보겠습니다. 이 손상 시나리오는 IT 관리자와 개발자의 두 가지 역할로 구성됩니다.

  • IT 관리자: Jeff는 Microsoft Entra ID의 애플리케이션이 신뢰할 수 있고 안전한지 확인하는 테넌트 관리자입니다. Jeff의 작업 중 하나는 앱 개발자에게 필요한 권한에 대한 동의를 부여하는 것입니다.
  • 개발자: Kelly는 Microsoft ID 플랫폼 사용하고 앱을 소유하는 앱 개발자입니다. Kelly의 작업은 애플리케이션이 필요한 작업을 수행할 수 있는 올바른 권한을 갖도록 하는 것입니다.

과잉 사용에 대한 다음과 같은 일반적인 보안 손상 시나리오에는 일반적으로 4단계가 있습니다.

문서 콘텐츠에 설명된 다이어그램 - 보안 손상 시나리오의 4단계.

  1. 먼저 개발자는 애플리케이션을 구성하고 필요한 권한을 추가하기 시작합니다.
  2. 둘째, IT 관리자는 필요한 권한을 검토하고 동의를 부여합니다.
  3. 셋째, 악의적인 행위자가 사용자 자격 증명을 해독하기 시작하고 사용자 ID를 성공적으로 해킹합니다.
  4. 사용자가 여러 애플리케이션을 소유하는 경우 권한도 초과됩니다. 잘못된 행위자가 부여된 권한의 토큰을 빠르게 사용하여 중요한 데이터를 검색할 수 있습니다.

과도한 권한이 부여된 애플리케이션

엔터티는 필요한 것보다 더 많은 권한을 요청하거나 받을 때 권한이 초과됩니다. Microsoft ID 플랫폼 권한 없는 애플리케이션정의는 "사용되지 않거나 축소 가능한 권한이 있는 모든 애플리케이션"입니다.

Microsoft Graph를 실제 예제에서 Microsoft ID 플랫폼 일부로 사용하여 사용되지 않는 권한과 축소 가능한 권한을 더 잘 이해해 보겠습니다.

왼쪽 열: 사용되지 않음 - API 호출에 전혀 필요하지 않은 하나 이상의 권한이 부여됩니다. 오른쪽 열: 환원 가능 - 필요한 작업에 대한 액세스를 제공하는 낮은 권한의 대안이 있는 권한입니다.

사용하지 않는 권한은 애플리케이션이 원하는 작업에 필요하지 않은 권한을 받을 때 발생합니다. 예를 들어 일정 앱을 빌드합니다. 일정 앱이 사용 권한을 요청하고 받습니다 Files.ReadWrite.All . 앱은 파일의 API와 통합되지 않습니다. 따라서 애플리케이션에는 사용되지 Files.ReadWrite.All 않는 권한이 있습니다.

축소 가능한 권한은 검색하기가 더 어렵습니다. 애플리케이션이 몇 가지 권한을 받지만 필요한 작업에 충분한 액세스 권한을 제공하는 더 낮은 권한의 대안이 있는 경우에 발생합니다. 일정 앱 예제에서 앱은 권한을 요청하고 받습니다 Files.ReadWrite.All . 그러나 로그인한 사용자의 OneDrive에서만 파일을 읽어야 하며 새 파일을 만들거나 기존 파일을 수정할 필요가 없습니다. 이 경우 애플리케이션은 부분적으로만 사용 Files.ReadWrite.All 하므로 다운그레이드해야 합니다 Files.Read.All.

과민한 시나리오를 줄이기 위한 권장 사항

보안은 목적지가 아닌 여정입니다. 보안 수명 주기에는 다음과 같은 세 가지 개별 단계가 있습니다.

  • 방지
  • 감사
  • 수정

다음 다이어그램에서는 권한 없는 시나리오를 줄이기 위한 권장 사항을 보여 줍니다.

문서 콘텐츠에 설명된 다이어그램 - 권한 없는 시나리오를 방지, 감사 및 수정하기 위한 권장 사항입니다.

  • 방지: 애플리케이션을 빌드할 때 애플리케이션이 수행해야 하는 API 호출에 필요한 권한을 완전히 이해하고 시나리오를 사용하도록 설정하는 데 필요한 권한만 요청해야 합니다. Microsoft Graph 설명서에는 모든 엔드포인트에 대한 대부분의 권한 있는 권한에 대한 최소 권한 권한에 대한 명확한 참조가 있습니다. 필요한 권한을 결정할 때 과도한 시나리오를 염두에 두어야 합니다.
  • 감사: 사용자와 IT 관리자는 기존 애플리케이션의 이전에 부여된 권한을 정기적으로 검토해야 합니다.
  • 수정: 사용자 또는 IT 관리자가 에코시스템에서 권한 없는 애플리케이션을 발견한 경우 권한 초과 권한에 대한 토큰 요청을 중지해야 합니다. IT 관리자는 승인된 동의를 취소해야 합니다. 이 단계에서는 일반적으로 코드를 변경해야 합니다.

기본 최소 권한 획득에 대한 모범 사례

애플리케이션에서 최소 권한 권한을 획득하는 기본 두 가지 주요 인센티브는 애플리케이션 채택을 유도하고 확산을 중지하는 것입니다.

왼쪽 열: 채택 추진 - 과도한 권한 요청을 방지하여 고객에게 신뢰할 수 있는 앱을 빌드합니다. 오른쪽 열: 확산 중지 - 공격자가 과도한 권한을 사용하여 추가 액세스 권한을 얻을 수 없습니다.

  • 과도한 권한 요청을 방지하는 고객을 위해 신뢰할 수 있는 앱을 빌드하여 채택을 촉진합니다. 애플리케이션 사용 권한을 해당 작업을 완료하는 데 필요한 권한으로만 제한합니다. 이 방법은 잠재적인 공격 반경을 줄이고 앱의 고객 채택을 증가시킵니다. 애플리케이션이 요청하는 권한을 검토하고 앱 사용 권한을 부여할지 여부를 결정할 때 더 자세히 조사합니다.
  • 공격자가 과도한 권한을 사용하여 추가 액세스 권한을 얻을 수 없도록 하여 확산을 중지합니다. 불필요한 권한을 요청하는 앱을 만들 때 승인을 받거나 완전히 거부될 가능성이 가장 큽니다. 손상을 제어하는 가장 좋은 방법은 공격자가 손상 범위를 늘리는 상승된 권한을 얻지 못하도록 하는 것입니다. 예를 들어 애플리케이션에서 사용자 기본 정보만 읽어야 User.ReadBasic.All 하는 경우 OneDrive, Outlook, Teams 및 기밀 데이터는 앱이 손상된 경우 안전합니다.

다음 단계

  • 리소스에 액세스하기 위한 권한 부여를 획득하면 애플리케이션에 대한 리소스 액세스 권한을 획득할 때 제로 트러스트 가장 잘 확인하는 방법을 이해하는 데 도움이 됩니다.
  • id에 대한 제로 트러스트 접근 방식을 사용하여 앱을 빌드하면 사용 권한 및 액세스 모범 사례에 대한 개요를 제공합니다.
  • 토큰 사용자 지정은 Microsoft Entra 토큰에서 받을 수 있는 정보를 설명합니다. 최소 권한으로 애플리케이션 제로 트러스트 보안을 강화하면서 유연성과 제어를 향상시키기 위해 토큰을 사용자 지정하는 방법을 설명합니다.
  • 토큰 에서 그룹 클레임 및 앱 역할을 구성하면 앱 역할 정의를 사용하여 앱을 구성하고 앱 역할에 보안 그룹을 할당하는 방법을 보여 줍니다. 이러한 방법은 최소한의 권한으로 애플리케이션 제로 트러스트 보안을 강화하면서 유연성과 제어를 개선하는 데 도움이 됩니다.
  • 앱에서 제로 트러스트 준비 완료: 최소 권한 디자인은 Microsoft ID 플랫폼 최소 권한 액세스 원칙을 사용하여 앱을 디자인하는 데 도움이 됩니다.
  • 최소 권한 원칙을 사용하여 애플리케이션 보안을 강화하면 애플리케이션의 공격 표면을 줄이고 Microsoft ID 플랫폼 통합 애플리케이션에서 보안 위반(폭발 반경)이 발생할 경우 미치는 영향을 줄일 수 있습니다.
  • Graph ExplorerMicrosoft Graph 권한 참조 를 사용하면 Microsoft Graph API 호출을 선택하여 앱 시나리오를 사용하도록 설정하고 최소 권한에서 대부분의 권한으로 해당 권한을 찾을 수 있습니다.