다음을 통해 공유


최소 권한 원칙을 사용하여 보안 강화

최소 권한의 정보 보안 원칙은 사용자 및 애플리케이션에 작업을 수행하는 데 필요한 데이터 및 작업에 대한 액세스 권한만 부여해야 한다고 주장합니다. Microsoft ID 플랫폼 통합 애플리케이션에서 발생하는 경우 애플리케이션의 공격 표면과 보안 위반( 폭발 반경)의 영향을 줄이는 데 도움이 되도록 여기에 있는 지침을 따르세요.

권장 사항 한눈에 보기

  • 사용하지 않거나 축소 가능한 권한을 취소하여 과도한 권한을 가진 애플리케이션을 방지합니다.
  • ID 플랫폼의 동의 프레임워크를 사용하여 보호된 데이터에 액세스하기 위해 애플리케이션의 요청에 대한 사용자 동의를 요구합니다.
  • 개발의 모든 단계에서 최소한의 권한으로 애플리케이션을 빌드합니다.
  • 배포된 애플리케이션을 주기적으로 감사하여 과도한 권한이 부여된 애플리케이션을 식별합니다.

과도한 권한을 가진 애플리케이션

사용되지 않거나축소 가능한 사용 권한이 부여된 모든 애플리케이션은 권한 없는 것으로 간주됩니다. 사용하지 않고 축소 가능한 권한은 애플리케이션 또는 해당 사용자가 작업을 수행하는 데 필요하지 않은 데이터 또는 작업에 대한 무단 또는 의도하지 않은 액세스를 제공할 가능성이 있습니다. 적절한 권한만 부여하여 사용하지 않고 축소 가능한 권한으로 인해 발생하는 보안 위험을 방지합니다. 적절한 권한은 애플리케이션 또는 사용자가 필요한 작업을 수행하는 데 필요한 최소 허용 액세스 권한이 있는 권한입니다.

사용되지 않는 권한

사용되지 않는 권한은 애플리케이션에 부여되었지만 해당 권한으로 노출된 API 또는 작업이 의도한 대로 사용될 때 애플리케이션에서 호출되지 않는 권한입니다.

  • : 애플리케이션은 Files.Read 권한을 사용하여 Microsoft Graph API를 호출하여 로그인한 사용자의 OneDrive에 저장된 파일 목록을 표시합니다. 그러나 애플리케이션에도 Calendars.Read 권한이 부여되었지만 일정 기능을 제공하지 않으며 일정 API를 호출하지 않습니다.

  • 보안 위험: 사용되지 않는 권한은 수평 권한 에스컬레이션 보안 위험을 초래합니다. 애플리케이션의 보안 취약성을 악용하는 엔터티는 사용하지 않는 권한을 사용하여 API 또는 애플리케이션이 의도한 대로 사용할 때 일반적으로 지원되거나 허용되지 않는 작업에 액세스할 수 있습니다.

  • 완화: 애플리케이션이 수행하는 API 호출에 사용되지 않는 사용 권한을 제거합니다.

축소 가능한 권한

축소 가능한 권한은 애플리케이션과 사용자에게 여전히 필요한 권한을 제공하면서도, 낮은 권한 수준으로 대체할 수 있는 권한입니다.

  • : 애플리케이션은 Microsoft Graph API를 호출하여 로그인한 사용자의 프로필 정보를 표시하지만 프로필 편집은 지원하지 않습니다. 그러나 애플리케이션에 User.ReadWrite.All 권한이 부여되었습니다. 덜 허용되는 User.Read.All 권한은 사용자 프로필 데이터에 대한 충분한 읽기 전용 액세스 권한을 부여하므로 User.ReadWrite.All 권한은 여기에서 축소 가능한 것으로 간주됩니다.

  • 보안 위험: 축소 가능한 권한은 수직 권한 에스컬레이션 보안 위험을 초래합니다. 애플리케이션에서 보안 취약성을 악용하는 엔터티는 데이터에 대한 무단 액세스 또는 엔터티의 해당 역할에서 일반적으로 허용하지 않는 작업을 수행하기 위해 축소 가능한 권한을 사용할 수 있습니다.

  • 완화: 애플리케이션의 각 축소 가능한 권한을 애플리케이션의 의도된 기능을 수행하면서 가장 제한적인 권한으로 바꿉니다.

대부분의 애플리케이션은 보호된 데이터에 액세스해야 하며 해당 데이터의 소유자는 해당 액세스에 동의 해야 합니다. Microsoft Entra 테넌트에서 모든 사용자에 대해 동의할 수 있는 테넌트 관리자 또는 액세스 권한을 부여할 수 있는 애플리케이션 사용자 자체를 포함하여 여러 가지 방법으로 동의를 부여할 수 있습니다.

디바이스에서 실행되는 애플리케이션이 보호된 데이터에 대한 액세스를 요청할 때마다 애플리케이션은 보호된 데이터에 대한 액세스 권한을 부여하기 전에 사용자의 동의를 요청해야 합니다. 사용자는 애플리케이션이 진행되기 전에 요청된 권한에 대한 동의를 부여(또는 거부)해야 합니다.

애플리케이션 개발 중 최소 권한

애플리케이션 및 애플리케이션이 액세스하는 사용자 데이터의 보안은 개발자의 책임입니다.

애플리케이션 개발 중에 이러한 지침을 준수하여 애플리케이션이 과도한 권한을 갖지 않도록 합니다.

  • 애플리케이션이 수행해야 하는 API 호출에 필요한 권한을 완전히 이해합니다.
  • 애플리케이션이 Graph Explorer를 사용하여 수행해야 하는 각 API 호출에 대한 최소 권한 권한을 이해합니다.
  • 최소 권한부터 가장 높은 권한까지 해당 권한을 찾습니다.
  • 애플리케이션이 겹치는 사용 권한이 있는 API 호출을 만드는 경우 중복된 사용 권한 집합을 제거합니다.
  • 권한 목록에서 최소 권한 권한을 선택하여 애플리케이션에 최소 권한 집합만 적용합니다.

배포된 애플리케이션에 대한 최소 권한

조직에서는 일반적인 비즈니스 운영에 영향을 주지 않도록 실행 중인 애플리케이션을 수정하는 것을 주저하는 경우가 많습니다. 그러나 조직은 필요 이상의 권한을 사용하여 보안 사고의 위험이 발생하거나 더욱 심각해질 수 있는 상황을 완화하는 것이 예약된 애플리케이션 업데이트에 적합하다고 고려해야 합니다.

조직 내에서 배포된 애플리케이션이 권한을 과하게 부여받지 않고 시간이 흐르면서 권한이 과도해지지 않도록 이러한 표준 관행을 마련하십시오.

  • 애플리케이션에서 이루어지는 API 호출을 평가합니다.
  • 필수 및 최소 권한 권한에 대해 Graph ExplorerMicrosoft Graph 설명서를 사용합니다.
  • 사용자 또는 애플리케이션에 부여된 감사 권한입니다.
  • 최소 권한 집합으로 애플리케이션을 업데이트합니다.
  • 권한을 정기적으로 검토하여 권한 있는 모든 권한이 여전히 관련이 있는지 확인합니다.

다음 단계