테넌트에 영향을 미치는 위험한 API 권한

High

설명

Microsoft는 Entra ID에 애플리케이션을 통해 API를 노출하여 타사 애플리케이션이 Microsoft Entra ID 자체, Microsoft 365(O365), Azure 클라우드 등에서 작업을 수행하도록 허용합니다. "API 권한"은 꼭 필요한 서비스 주체에게만 부여되는 이러한 API에 대한 액세스를 보호합니다. 이 권한 승인을 "애플리케이션 역할 할당" 또는 "동의 부여"라고 합니다.

일부 Microsoft API의 특정 권한(아래 참조)은 Microsoft Entra 테넌트 전체에 심각한 위협이 될 수 있습니다​. 이러한 권한을 보유한 서비스 주체는 전역 관리자와 같은 강력한 관리자 역할을 가진 사용자보다 더 강력하면서도 눈에는 덜 띄기 때문입니다. 이것을 악용하면 공격자는 다단계 인증(MFA)을 우회하고 사용자 비밀번호를 초기화해도 공격자를 차단할 수 있습니다.

이 권한이 정상적으로 부여되면 테넌트의 공격 표면이 넓어집니다. 권한이 정상적이지 않은 경우, 권한을 상승하려는 악의적인 시도이거나 지속적 방법일 수 있습니다.

Microsoft 문서 권한 및 동의 개요에 설명된 바에 따르면 Microsoft Entra ID에는 두 가지 유형의 API 권한이 있습니다.

  • 애플리케이션 권한: 동의하는 주체가 관리자이며 권한이 테넌트 전체에 적용됩니다.
  • 위임된 권한: 동의하는 주체가 조직 전체를 대표하는 사용자나 관리자입니다. 이러한 권한은 로그인한 사용자의 권한에 따라 애플리케이션의 작업 수행 능력을 제한한다는 점을 유의해야 합니다(즉, 해당 권한과 사용자의 권한 수준의 교집합). 따라서 이처럼 위임된 권한의 위험성은 애플리케이션 사용자의 실제 권한에 좌우됩니다. 자세한 내용은 위임된 권한 전략 개발의 설명을 참조하십시오. 예: 일반적인 사용자가 "Group.ReadWrite.All" 권한을 위임하는 경우, 실제로는 애플리케이션이 모든 그룹이 아닌 해당 사용자가 편집할 수 있는 그룹만 수정하도록 허용합니다.

이 위험 노출 지표는 두 가지 유형의 권한을 모두 검사합니다. 이것은 서비스 주체에 관해서만 보고하며 그 이유는 API 권한은 서비스 주체에만 적용되고 사용자에는 적용되지 않기 때문입니다.

이 위험 노출 지표는 Microsoft Graph API 및 레거시 Azure AD Graph API에 대한 액세스를 허용하는 권한에도 집중합니다. 특히 다음과 같은 위험한 권한이 보안 위험을 발생시킬 수 있습니다.

  • RoleManagement.ReadWrite.Directory: 공격자가 전역 관리자 역할로 권한을 상승할 수 있습니다.
  • AppRoleAssignment.ReadWrite.All: 공격자가 자신에게 RoleManagement.ReadWrite.Directory 권한을 부여할 수 있습니다(위의 내용 참조).

정상적인 애플리케이션에 이처럼 위험한 권한이 있으면 지나치게 범위가 넓을 수 있는 권한을 요청하게 됩니다. 이것은 "불법적인 동의 부여"라는 피싱 공격을 징후일 수도 있습니다. 이 경우 공격자가 관리자의 동의를 얻는 데 성공하게 됩니다.

솔루션

해당 권한을 가진 것으로 보고된 서비스 주체가 정상인지 판단하는 것​부터 시작합니다. 피싱 공격에서는 표시 이름을 스푸핑하는 것도 기술적으로 가능한 일이라는 점을 유의하시기 바랍니다. 서비스 주체가 알려진 소프트웨어 공급업체 소속인 것으로 보이는 경우, 보고된 애플리케이션 ID가 공급업체의 소속이 맞는지 확인을 요청합니다. 서비스 주체가 불법이고 알려진 애플리케이션 이름을 스푸핑한 경우, 포렌식 분석​을 수행해야 합니다.

  • 서비스 주체가 정상인 경우, 소유자와 역할을 파악하여 실제로 이러한 위험한 권한이 꼭 필요한지 평가합니다. 이것이 자체 제작한 애플리케이션인 경우 포함된 기능에 따라 최소 권한 원칙 모범 사례​를 사용하여 권한을 줄입니다. 각 API에 필요한 최소 권한이 무엇인지 구체적으로 설명한 Microsoft Graph API 문서의 "동의 및 승인" 섹션을 참조하십시오. 이것이 타사 애플리케이션인 경우, 공급업체 측에 이의를 제기하여 필수 권한을 줄이거나 적어도 왜 그러한 권한이 필요한지 문서로 기록하도록 요청해야 합니다.
  • 기본적으로, 모든 사용자가 모든 애플리케이션에 권한을 위임할 수 있으며 이 때문에 사용자가 중요한 보안 의사 결정을 내릴 수도 있습니다. Microsoft Entra ID에는 사용자 동의를 구성하기 위해 사용으로 설정할 수 있는 옵션이 있습니다. 제한 사항을 사용하는 경우, 특정 역할을 담당하는 Microsoft Entra 관리자가 애플리케이션에 대한 동의를 관리하고 동의 요청을 평가해야 합니다. 관리자 동의 요청 검토 방법도 참조하십시오.
  • 애플리케이션 권한 에는 항상 관리자 동의가 필요합니다. 이러한 관리자를 교육하여 의심스러운 애플리케이션과 중요한 권한을 알아볼 수 있도록 해야 합니다. 특히 권한 있는 사용자나 중요한 사용자가 위임한 권한 은 물론 테넌트 전체에 해당하는 애플리케이션 권한에 유의하도록 해야 합니다. 이것은 대규모 애플리케이션 거버넌스 노력의 일부분이어야 합니다.
  • 불법적인 것으로 간주되는 권한은 제거하십시오. Tenable은 심층 포렌식 조사를 수행할 계획인 경우, 먼저 증거를 남겨둘 것을 권장합니다. Microsoft Entra 포털에는 엔터프라이즈 애플리케이션에 부여된 권한을 검토하는 전용 기능이 있습니다.

Microsoft에서는 2개의 가이드, 애플리케이션 동의 부여 조사를 수행하는 방법과 불법적 동의 부여를 탐지하여 수정하는 방법을 게시했습니다.

지표 세부 정보

이름: 테넌트에 영향을 미치는 위험한 API 권한

코드명: DANGEROUS-API-PERMISSIONS-AFFECTING-THE-TENANT

심각도: High

MITRE ATT&CK 정보:

기술: T1566, T1528, T1550.001