Kant's IT/Vulnerability

Azure Airflow의 Kubernetes RBAC 오구성으로 인한 클러스터 취약점 노출

Kant Jo 2025. 1. 13. 10:17

Misconfigured Kubernetes RBAC in Azure Airflow Could Expose Entire Cluster to Exploitation

 

  • 발견된 주요 취약점
    • Kubernetes RBAC(역할 기반 접근 제어) 오구성
    • Azure 내부 Geneva 서비스의 비밀 관리 미비
    • Geneva 서비스의 약한 인증 메커니즘
    • 공격자는 이러한 취약점을 통해 데이터 탈취, 악성코드 배포, 로그 위조 등의 행동을 수행 가능
  • 공격 흐름
    • 공격자는 DAG(Directed Acyclic Graph) 파일을 제작하거나 기존 파일을 변경하여 악성 코드를 주입
    • DAG 파일이 포함된 GitHub 저장소 또는 스토리지 계정에 쓰기 권한을 확보해야 하며, 이는 다음을 통해 가능
      • 서비스 주체(Service Principal) 또는 공유 액세스 서명(SAS) 토큰 악용
      • 유출된 GitHub 자격 증명을 통한 접근
    • 공격자는 DAG 파일을 이용해 리버스 셸(reverse shell)을 실행, 외부 서버와의 통신을 설정
  • 클러스터 관리자 권한 취득 과정
    • Airflow 사용자 권한으로 최소 권한의 Kubernetes Pod에 접근
    • 클러스터-관리자 권한이 부여된 서비스 계정을 악용해 전체 클러스터 제어 가능
    • kubectl을 다운로드하여 권한 상승노드 탈출(node breakout) 수행
    • Azure 관리 리소스(스토리지 계정, 이벤트 허브 등)에 대한 비인가 접근 가능
  • 위험성
    • 공격자는 새로운 Pod와 서비스 계정을 생성하거나 클러스터 노드를 수정 가능
    • Geneva 서비스에 위조 로그를 전송하여 이상 탐지를 회피 가능
    • 추가적으로 Azure Key Vault Contributor 권한을 악용하면 Key Vault 내 중요한 데이터를 무단으로 읽거나 수정 가능
  • 보안 권고 사항
    • RBAC 권한 최소화: 클러스터-관리자 권한이 불필요한 서비스 계정을 제거
    • 스토리지 계정 접근 관리 강화: SAS 토큰 및 서비스 주체 사용 시 적절한 제한 적용
    • DAG 파일 검증 프로세스 구축: DAG 파일 변경 시 로그 분석 및 모니터링 강화
    • Geneva 서비스 인증 강화: 강력한 인증 체계를 적용해 비인가 접근 방지
    • Azure Key Vault 정책 개선: Contributor 권한 관리와 정책 업데이트를 통한 권한 오남용 방지
  • 결론
    • Azure Airflow 클러스터의 오구성은 공격자가 클러스터를 완전히 장악하고 Azure 내부 리소스에 접근할 수 있는 주요 취약점
    • RBAC 및 서비스 계정 권한의 체계적 관리와 DAG 파일 보안 검증, Geneva 서비스와 같은 서드파티 서비스 모니터링이 필수
    • 클라우드 환경에서 권한과 정책 관리는 클러스터 보안의 핵심이며, 이를 위한 지속적인 감사와 모니터링이 필요