알려진 페더레이션 도메인 백도어

Critical

설명

Microsoft Entra 테넌트는 외부 도메인과 페더레이션하여 다른 도메인과의 트러스트를 설정해 인증과 권한 부여에 이용할 수 있습니다. 조직에서는 페더레이션을 사용해 Active Directory 사용자에 대한 인증을 조직의 온프레미스 Active Directory Federation Services (AD FS)에 위임합니다. (참고: 여기에서 외부 도메인은 Active Directory "도메인"이 아닙니다.) 하지만 자신의 페더레이션 도메인을 추가하거나 기존 항목을 편집하여 자체 설정을 포함한 이차적인 구성을 추가하여 악성 행위자가 Microsoft Entra ID에서 상승된 권한을 얻으면 이 페더레이션 방식을 악용해 백도어를 만들 수 있습니다​. 이러한 공격이 발생하면 다음과 같은 작업이 가능해집니다.

  • 가장​: 악성 페더레이션 도메인이 토큰을 생성하여 공격자가 비밀번호를 알거나 초기화하지 않고도 임의의 Microsoft Entra 사용자로 인증하도록 허용합니다. 여기에는 "클라우드 전용" 사용자(하이브리드 아님)와 외부 사용자가 포함됩니다. 이 경우 MFA를 적용한 경우에도 Microsoft Entra ID, Microsoft 365(O365)는 물론 Microsoft Entra ID를 ID 공급자(SSO)로 사용하는 기타 애플리케이션을 공격할 수 있게 됩니다(아래 참조).
  • 권한 상승​: 공격자가 임의의 사용자, 특히 권한 있는 Microsoft Entra 사용자로 가장할 수 있습니다.
  • 다단계 인증 우회​: 페더레이션 인증을 사용하면 신뢰할 수 있는 외부 도메인이 MFA를 적용하는 역할을 맡게 됩니다. 그러면 악성 페더레이션 도메인이 스푸핑한 인증이 MFA를 사용했다고 거짓으로 주장을 할 수 있고 Microsoft Entra ID는 이것을 신뢰하여 MFA를 다시 요청하지 않습니다. 이렇게 하면 MFA 보호가 적용된 경우에도 공격자가 모든 사용자를 가장할 수 있습니다.
  • 지속성​: 악성 페더레이션 도메인을 추가하는 것은 일종의 은폐 기법입니다. 이를 통해 Microsoft Entra 테넌트를 침해하고 높은 수준의 권한을 도용한 공격자가 나중에 액세스 권한을 다시 얻을 수 있습니다.

이 위험 노출 지표는 AADInternals 해킹 도구 키트가 만드는 페더레이션 도메인 백도어를 탐지합니다. 특히 만들거나 변환한 백도어 도메인의 일부 특징에 따라 ConvertTo-AADIntBackdoorNew-AADIntBackdoor cmdlet을 탐지할 수 있습니다.

악성 페더레이션 도메인에서 공격당한 Microsoft Entra ID로 인증 증거를 운송하는 이 페더레이션 프로토콜은 WS-Federation 또는 SAML일 수도 있습니다. SAML을 사용하는 경우, 공격이 "Golden SAML" 공격과 비슷한 형태이며 다음과 같은 중요한 차이점이 있습니다.

  • 기존 페더레이션의 정상적인 SAML 서명 키를 도용하지 않고 공격자가 자신의 키를 사용해 새 도메인을 주입합니다.
  • 공격자가 서비스에 대한 액세스가 아니라 페더레이션 목적으로 토큰을 사용합니다.

microsoft.directory/domains/federation/update 권한이 페더레이션 도메인을 수정할 능력을 부여합니다. 2023년 1월 현재, 잠재적인 사용자 지정 역할 외에 이 권한을 가진 기본 제공 Microsoft Entra 역할은 다음과 같습니다.

APT29 위협 그룹이 2020년 12월에 SolarWinds를 상대로 감행한 악명높은 "Solorigate" 공격이 이 방식을 악용했습니다. 이에 관한 자세한 내용은 MicrosoftMandiant에서 문서화했습니다.

솔루션

이와 같은 조사 결과는 공격자의 잠재적인 백도어​일 가능성을 나타냅니다. 공격으로 의심되는 사례를 확인하려면 포렌식 분석을 포함한 인시던트 대응 절차​를 시작하여 공격의 작성자와 시간을 파악하고 가능한 침해 정도를 알아보아야 합니다.

Microsoft에서는 페더레이션이 Microsoft Entra ID의 기능이고 정상적이라고 간주하며 이 공격은 바로 그 점을 악용합니다. Microsoft는 공격자가 이 백도어를 만들려면 높은 수준의 권한을 얻어야 한다는 점을 강조합니다. 따라서 페더레이션 설정을 수정할 수 있는 관리자 수를 제한​하는 것이 좋습니다. 자세한 정보를 알아보려면 취약성 설명에 구체적인 권한과 역할 목록을 참조하십시오.

Azure 포털에서 페더레이션 도메인의 목록을 확인하려면 "사용자 지정 도메인 이름" 블레이드를 열고 "페더레이션" 열에 체크 표시가 있는 항목을 찾아보면 됩니다. 악성 도메인일 가능성이 있는 도메인 이름은 조사 결과에서 확인되는 이름과 같습니다. 그렇지만 Azure 포털에는 MS Graph API와 달리 페더레이션의 기술적인 세부 정보가 표시되지 않습니다.

MS Graph API의 PowerShell cmdlet을 사용하면 Get-MgDomain을 통해 도메인을 나열하고 Get-MgDomainFederationConfiguration`을 통해 도메인의 페더레이션 구성을 나열할 수 있습니다.

Connect-MgGraph -Scopes "Domain.Read.All"
Get-MgDomain -All | Where-Object { $_.AuthenticationType -eq "Federated" } | ForEach-Object { $_​ ; Get-MgDomainFederationConfiguration -DomainId $_.Id }

최종적으로 포렌식 분석을 하기 위해 증거를 저장​한 뒤:

  • 도메인이 불법인 경우, Remove-MgDomain을 사용해 해당 도메인을 제거하십시오.
  • 도메인은 정상이지만 페더레이션 구성이 악성인 경우, Remove-MgDomainFederationConfiguration을 사용해 해당 페더레이션 구성을 제거하면 됩니다.

지표 세부 정보

이름: 알려진 페더레이션 도메인 백도어

코드명: KNOWN-FEDERATED-DOMAIN-BACKDOOR

심각도: Critical

MITRE ATT&CK 정보:

기술: T1484.002, T1606.002

More: Modify Trusted Domains [Mandiant], Security vulnerability in Azure AD & Office 365 identity federation, How to create a backdoor to Azure AD - part 1: Identity federation, Deep-dive to Azure Active Directory Identity Federation