언어:
Microsoft는 Entra ID에 애플리케이션을 통해 API를 노출하여 타사 애플리케이션이 Microsoft Entra ID 자체, Microsoft 365(O365), Azure 클라우드 등에서 작업을 수행하도록 허용합니다. "API 권한"은 꼭 필요한 서비스 주체에게만 부여되는 이러한 API에 대한 액세스를 보호합니다. 이 권한 승인을 "애플리케이션 역할 할당" 또는 "동의 부여"라고 합니다.
일부 Microsoft API의 특정 권한(아래 참조)은 Microsoft Entra 테넌트 전체에 심각한 위협이 될 수 있습니다. 이러한 권한을 보유한 서비스 주체는 전역 관리자와 같은 강력한 관리자 역할을 가진 사용자보다 더 강력하면서도 눈에는 덜 띄기 때문입니다. 이것을 악용하면 공격자는 다단계 인증(MFA)을 우회하고 사용자 비밀번호를 초기화해도 공격자를 차단할 수 있습니다.
이 권한이 정상적으로 부여되면 테넌트의 공격 표면이 넓어집니다. 권한이 정상적이지 않은 경우, 권한을 상승하려는 악의적인 시도이거나 지속적 방법일 수 있습니다.
Microsoft 문서 권한 및 동의 개요에 설명된 바에 따르면 Microsoft Entra ID에는 두 가지 유형의 API 권한이 있습니다.
이 위험 노출 지표는 두 가지 유형의 권한을 모두 검사합니다. 이것은 서비스 주체에 관해서만 보고하며 그 이유는 API 권한은 서비스 주체에만 적용되고 사용자에는 적용되지 않기 때문입니다.
이 위험 노출 지표는 Microsoft Graph API 및 레거시 Azure AD Graph API에 대한 액세스를 허용하는 권한에도 집중합니다. 특히 다음과 같은 위험한 권한이 보안 위험을 발생시킬 수 있습니다.
RoleManagement.ReadWrite.Directory
: 공격자가 전역 관리자 역할로 권한을 상승할 수 있습니다.AppRoleAssignment.ReadWrite.All
: 공격자가 자신에게 RoleManagement.ReadWrite.Directory
권한을 부여할 수 있습니다(위의 내용 참조).정상적인 애플리케이션에 이처럼 위험한 권한이 있으면 지나치게 범위가 넓을 수 있는 권한을 요청하게 됩니다. 이것은 "불법적인 동의 부여"라는 피싱 공격을 징후일 수도 있습니다. 이 경우 공격자가 관리자의 동의를 얻는 데 성공하게 됩니다.
해당 권한을 가진 것으로 보고된 서비스 주체가 정상인지 판단하는 것부터 시작합니다. 피싱 공격에서는 표시 이름을 스푸핑하는 것도 기술적으로 가능한 일이라는 점을 유의하시기 바랍니다. 서비스 주체가 알려진 소프트웨어 공급업체 소속인 것으로 보이는 경우, 보고된 애플리케이션 ID가 공급업체의 소속이 맞는지 확인을 요청합니다. 서비스 주체가 불법이고 알려진 애플리케이션 이름을 스푸핑한 경우, 포렌식 분석을 수행해야 합니다.
Microsoft에서는 2개의 가이드, 애플리케이션 동의 부여 조사를 수행하는 방법과 불법적 동의 부여를 탐지하여 수정하는 방법을 게시했습니다.