Azure의 인시던트 대응

Feb 03 2023
테넌트 간 동기화 공격 조사 소개 2023년 1월 31일 Microsoft는 테넌트 간 동기화(CRS)라는 새로운 기능을 발표했습니다. CRS를 사용하면 사용자 및 그룹의 두 테넌트 간에 동기화를 활성화할 수 있습니다.

테넌트 간 동기화 공격 조사

소개

2023년 1월 31일 Microsoft는 CRS(교차 테넌트 동기화)라는 새로운 기능을 발표했습니다 . CRS를 사용하면 사용자 및 그룹의 두 테넌트 간에 동기화를 활성화할 수 있습니다. 아래 그림은 세 테넌트 간의 CRS를 보여줍니다.

이것은 매우 새로운 기능이고 아직 프리뷰이기 때문에 아직 공격이 관찰되지 않았지만 확실히 남용될 가능성이 있습니다. 이 블로그에서는 가능한 CRS 공격을 수행하고 조사하는 방법을 보여줍니다.

대본

CRS를 사용하는 것은 지속성을 위한 흥미로운 방법이 될 수 있으며 위협 행위자가 자신의 존재를 숨기고 Azure 환경에서 지속적으로 유지하는 방법이 될 수 있습니다. 지금은 공격에 대해 추측만 할 수 있지만 위반 가정 원칙을 따르겠습니다. 위협 행위자가 Azure 테넌트를 성공적으로 위반했으며 계속 액세스하려고 합니다. 공격자가 제어하는 ​​테넌트와 피해자 테넌트 간에 교차 테넌트 동기화를 설정하면 해당 목표를 달성하는 데 도움이 될 수 있습니다. 이 공격을 수행하려면 위협 행위자는 대상(피해자) 테넌트와 소스(위협 행위자) 테넌트에서 이를 구성해야 합니다. CRS를 구성하려면 몇 가지 단계를 수행해야 합니다. 아래 표는 Microsoft 사이트 에서 가져온 필수 단계를 보여줍니다 .

이 시나리오에서는 대상 테넌트를 피해자 테넌트라고 하고 소스 테넌트를 공격자 테넌트라고 합니다.

공격 및 방어

1단계 - 교차 테넌트 액세스를 허용하도록 피해자 테넌트 활성화

첫 번째 단계는 위협 행위자가 피해자 테넌트에서 CRS를 활성화하는 것입니다. 이를 위해 위협 행위자는 하이브리드 관리자 역할이 있어야 합니다.

좋은 소식은 이 활동이 Victim 테넌트의 여러 위치에 기록된다는 것입니다.

감사 로그
Azure AD의 일부인 감사 로그에는 다음 활동이 기록됩니다.

" 정책 추가/업데이트 " 활동 유형을 사용하여 활동을 수행하는 사용자를 결정할 수 있습니다. 로그에도 IP 주소가 있습니다. 불행하게도 Microsoft는 실제 소스 IP를 기록하지 않고 자체 범위의 IP 주소를 기록합니다.

감사 로그의 또 다른 로그 항목인 " 교차 테넌트 액세스 설정에 파트너 추가 "는 가능한 CRS 남용을 감지하고 경고하는 데 매우 유용한 활동 유형입니다. 수정된 속성 아래의 이벤트에서 공격자 테넌트의 테넌트 ID를 볼 수 있습니다.

흥미롭게도 테넌트 이름으로 구성하더라도 테넌트 이름만 테넌트 ID로 표시하는 레코드가 없습니다. 교차 테넌트 액세스 설정에서 약간의 트릭을 사용하여 테넌트 ID → 테넌트 이름에서 조회를 수행할 수 있습니다. 테넌트 간 액세스 설정( 링크 )에서 '조직 추가'를 클릭하고 테넌트 ID를 입력하면 Azure에서 연결된 테넌트 이름을 알려줍니다.

이것은 약간의 Red-Team 팁일 수 있지만 보시다시피 두 가지 방식으로 모든 세입자에게 적용됩니다. :)

CRS를 구성하면 아래 팝업도 제공됩니다.

그러나 이 활동은 GUI에만 기록되며 활동 로그 에는 기록되지 않습니다 . 프로비저닝 로그 에도 기록이 없습니다 .

감사 로그를 기반으로 요약하면 교차 테넌트 설정을 감지하고 공격자의 테넌트 ID와 이 설정을 구성한 사용자를 볼 수 있습니다. Azure AD(로그인/프로비저닝)의 다른 로그와 활동 로그는 이를 감지하는 데 유용하지 않습니다.

다음 단계로 넘어갑시다.

2단계 - 두 테넌트 모두에서 자동 상환

여전히 피해자 테넌트에서 사용자 동기화를 활성화하고 동의 프롬프트를 억제하므로 이제 피해자 테넌트에서 모든 것이 구성됩니다. 이번에도 활동 로그에 기록되지 않은 두 개의 팝업이 Azure Portal에 나타납니다.

Attacker 테넌트에서 동일한 작업을 수행하여 Victim 테넌트와 설정을 추가해야 합니다. 조사를 위해 공격자 테넌트에 액세스할 수 있는 것은 현실적이지 않지만 조직을 추가할 때 동일한 증거가 표시됩니다.

3단계 - 공격 테넌트에서 동기화 설정 결정

공격자 테넌트에서 동기화 대상을 결정하는 테넌트 간 구성을 구성합니다. 이 단계에서는 공격자와 피해자 테넌트 간의 연결도 테스트합니다. 이것은 응답자로서 공격자 테넌트에 있기 때문에 일반적으로 여기에 액세스할 수 없습니다. 완전성을 기하기 위해 감사 로그에서 구성 및 테스트의 일부로 다음 로그 항목이 생성되었습니다.

CRS와 관련된 구성 세부 정보를 저장하기 위해 공격자 테넌트에 응용 프로그램 및 관련 서버 주체가 생성됩니다. 또 다른 흥미로운 발견은 공격자 측의 이벤트가 Microsoft IP 주소 가 아닌 실제 소스 IP 주소를 기록한다는 것입니다.

4단계 - 테스트

이제 우리는 공격자 테넌트에서 사용자를 만들고 동기화를 수행하고 피해자 테넌트에서 찾을 수 있는 증거를 결정할 연결을 설정했습니다. 'test_sync_user_1'을 생성하고 자동 동기화를 수행했습니다. Victim 테넌트 Azure AD로 전환하면 사용자가 성공적으로 추가되었음을 알 수 있습니다. 이제 추가 사용자가 생겼습니다.

ExternalAzureAD를 클릭하면 원본 AzureAD(invictusirtraining.onmicrosoft.com)를 볼 수 있습니다.

감사 로그를 자세히 살펴보고 이 활동의 ​​출처를 식별할 수 있는지 살펴보겠습니다.

보시다시피 사용자 생성에 대해 꽤 많은 이벤트가 생성되었지만 이것이 CRS의 결과인지 어떻게 알 수 있습니까?

다음 세부 정보의 조합을 사용하여 이것이 CRS에서 비롯된 것인지 확인할 수 있습니다.

B2B 및 외부 Azure AD의 존재는 이것이 다른 테넌트에서 온 것임을 확인하는 데 도움이 될 수 있지만 일반 B2B도 유사한 결과를 생성합니다. 따라서 이것이 CRS의 결과인지 확인하는 (유일한) 방법은 CRS의 초기 설정에 대한 감사 로그를 확인하는 것입니다.

KQL 쿼리

아래 KQL 쿼리는 이러한 유형의 공격을 감지하는 데 사용할 수 있으며 소스 및 대상 테넌트와 작업을 수행한 사용자를 추출합니다.

AuditLogs
| where OperationName == "Add a partner to cross-tenant access setting"
| where parse_json(tostring(TargetResources[0].modifiedProperties))[0].displayName == "tenantId"
| extend initiating_user=parse_json(tostring(InitiatedBy.user)).userPrincipalName
| extend source_ip=parse_json(tostring(InitiatedBy.user)).ipAddress
| extend target_tenant=parse_json(tostring(TargetResources[0].modifiedProperties))[0].newValue
| project TimeGenerated, OperationName,initiating_user,source_ip, AADTenantId,target_tenant
| project-rename source_tenant= AADTenantId

결과는 다음과 같아야 합니다.

결론

이 블로그에서는 위협 행위자가 새로운 기능인 테넌트 간 동기화를 악용할 때 어떤 증거를 사용할 수 있는지 보여 주었습니다. 피해자 측에서 가장 중요한 로그 소스는 감사 로그입니다. 이것은 CRS와 관련된 활동을 기록하는 유일한 로그입니다. 감사 로그에서 활동 " 교차 테넌트 액세스 설정에 파트너 추가 "는 CRS가 생성되고 있음을 나타냅니다. 어떤 사용자가 피해자 테넌트와 동기화되었는지 확인하려면 이벤트의 활동 및 범주 조합을 사용해야 합니다.

바라건대, 이 블로그가 위협 행위자가 이를 남용하기 시작하도록 영감을 주는 것이 아니었기를 바랍니다. 이를 악용할 수 있는 다른 시나리오를 이미 알아낸 똑똑한 레드 팀 직원이 있는 경우 알려주시면 기꺼이 블로그에 추가하겠습니다.

참조

https://learn.microsoft.com/en-us/azure/active-directory/multi-tenant-organizations/cross-tenant-synchronization-overview

Invictus 사고 대응 정보

우리는 사이버 공격에 직면한 조직을 지원하는 전문 사고 대응 회사입니다. 우리는 고객이 패배하지 않도록 돕습니다!

사고 대응 지원은 [email protected] 으로 연락 하거나https://www.invictus-ir.com/247

질문이나 제안 사항은 [email protected] 으로 문의하십시오.