Azure의 가장 약한 고리, 테넌트 간 완전한 침해 취약점 5건

3 days ago 40

Azure Logic Apps의 API Connections에서 다른 테넌트의 연결과 백엔드에 접근할 수 있는 치명적 권한 상승 취약점 5건이 발견됐으며, 보고된 취약점은 모두 수정됨 공유 API Management가 연결에 저장된 자격 증명으로 백엔드를 호출하는 구조여서, 호출 대상을 피해자의 연결로 바꾸면 해당 연결의 권한을 사용할 수 있었음 ARM의 DynamicInvoke와 문서화되지 않은 DynamicList에서 경로 탐색 취약점을 이용해 다른 테넌트의 Key Vault 비밀을 읽고 SQL 데이터베이스에 쓰는 데 성공함 Consumption Logic Apps에서는 host.api.RuntimeUrl로 검증한 연결과 실제 호출 대상을 다르게 지정할 수 있었고, 후속 수정도 경로 정규화 이전 검증 때문에 우회할 수 있었음 마지막 수정 과정에서는 앞서 차단했던 공격이 다시 가능해지는 회귀 오류까지 발생했으며, 연구자는 5건의 취약점으로 총 20만 달러의 보상금을 받음 API Connections의 구조와 권한 경계 앞선 구조 분석과 최초 테넌트 간 침해 사례에 이어, 동일한 공격 능력을 제공하는 추가 취약점들이 발견됨 Microsoft 문서에 따르면 API Connections는 다음 순서로 작동함 Logic App이 공유 Azure API Management 인스턴스를 호출함 API Management가 커넥터 유형의 Swagger/OpenAPI 정의를 확인해 유효한 작업인지 검사함 입력 토큰이나 키를 백엔드 서비스용으로 설정된 토큰으로 교환함 교환된 토큰으로 백엔드 서비스를 호출함 호출 대상을 다른 연결로 바꾸도록 유도하면 피해자 연결의 자격 증명으로 백엔드를 사용할 수 있음 지원 커넥터 목록에는 여러 Azure 서비스와 외부 서비스가 포함됨 영향 범위에는 Key Vault, Azure SQL 데이터베이스뿐 아니라 Jira, Salesforce 같은 외부 연결 서비스도 들어감 ARM REST API의 DynamicInvoke 또는 /extensions/proxy/ 엔드포인트를 이용하면 ARM을 통해 APIM을 직접 호출할 수 있음 ARM의 광범위한 접근 권한 때문에, 호출 서비스를 속여 다른 연결을 조회하게 만드는 것이 공격 경로가 됨 실제 백엔드 접근 범위는 연결에 설정된 토큰이나 키의 권한에 좌우됨 연결을 구성할 때 최소 권한으로 제한할 수 있으나, 연구자는 실제로 그렇게 하는 경우가 드물 것으로 ...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵