쿠버네티스 노린 공격 증가…보안 취약점은
대세 컨테이너 오케스트레이션 플랫폼 쿠버네티스를 겨냥한 사이버공격이 계속 늘어나고 있다. 쿠버네티스가 기업의 핵심 소프트웨어 인프라로 자리잡으면서 보안취약점의 위험성도 커지고 있다. 최근 클라우드네이티브컴퓨팅재단(CNCF)는 블로그에 2022년 쿠버네티스 취약성을 총정리해 게시했다. 벤 허시버그 ARMO 최고기술책임자(CTO)는 "개발자는 일반적으로 다른 클라우드 네이티브 구성요소와 함께 쿠버네티스 배포를 사용해 작동하는 시스템을 만든다"며 "더 많은 구성요소를 포함한 더 복잡한 인프라가 생성되고, 이는 궁극적으로 공격에 취약한 표면과 범위를 증가시킨다"고 경고했다. 레드햇에서 작년 발간한 '2022 쿠버네티스 보안 상태 보고서'에 의하면, 조사 대상자 93%가 쿠버네티스 환경에 영향을 미치는 사건을 최소 한번 이상 보고했다. 보고된 전체 보안 사고의 53%는 잘못된 구성 때문이었고, 38%는 취약성 악용 때문이었다. 이는 공격 표면 증가와 취약성 관리 복잡성으로 인한 취약성 증가를 보여준다. 쿠버네티스의 보안취약점은 CVE MITRE 데이터베이스, 쿠버네티스 공식 CVE 피드, 구글 쿠버네티스 보안 발표, CVE 세부정보, 깃허브 보안 권고 등에 발표된다. MITRE 데이터베이스에 따르면, 2022년 쿠버네티스 보안 취약점은 2019년 급증해 증가추세다. 작년 연간 40건을 넘어섰다. 주로 발견된 취약점은 서비스거부, 권한 에스컬레이션, 우회, 버퍼 오버플로, 임의코드실행, 디렉토리 또는 파일 통과 등이다. ■ 컨테이너 이스케이프 취약점(CVE-2022-0811) 작년 주요 취약점 중 컨테이너 이스케이프는 가장 일반적인 공격 수단이었다. 쿠버네티스 컨테이너 런타임인 CRI-O의 컨테이너 이스케이프 취약점은 CVE점수 9.0(심각)으로 작년초 공개됐다. 액세스 권한을 획득한 악의적 행위자가 쿠버네티스 클러스터에 팟(POD)을 생성해 호스트에서 임의의 커널 매개변수를 설정할 수 있다. 해커는 쿠버네티스 컨테이너를 벗어나 호스트의 루트 접근 권한을 획득할 수 있고, 이를 통해 악성코드 배포나 데이터 유출, 클러스터 이동 등을 수행할 수 있다. 이 취약점을 방지하려면 보안 정책적으로 쿠버네티스 1.25의 팟 보안정책을 대체한 'POD 시큐리티 어드미션 컨트롤러' 같은 커널리소스로 안전하지 않은 접근을 차단해야 한다. Kyverno의 승인 컨트롤러를 사용할 수 있으며, 정기적으로 클러스터를 스캔 및 감사하고 패치 배포 시 즉시 설치할 것을 조언했다. ■ execSync 요청을 통한 메모리 고갈 방식의 노드 DOS(CVE-2022-1708) 이 취약성은 CRI-O 컨테이너 런타임의 취약성으로 CVE 점수는 7.5(높음)다. 노드에서 메모리나 디스크 공간 고갈을 유발해 시스템 가용성에 영향을 미친다. 쿠버네티스 API 접근권한을 가진 사람 누구나 명령을 실행하거나 컨테이너에서 동기식으로 로그를 가져오는 execSync를 호출할 수 있다. 출력이 크면 메모리나 디스크 공간을 가득 채우고 노드나 공동 호스팅 서비스를 사용불가능하게 만든다. 이와 유사하게 CRI-O 대신 containerd 컨테이너 런타임을 겨냥한 서비스거부 공격 취약성도 발견됐다. CNCF는 최소 권한 원칙을 사용해 공격 위험을 줄이라고 권고 했다. exec 명령 실행 권한을 부여하지 않거나 쿠버네티스 API 서버와 상호작용하는 애플리케이션의 서비스계정에 최소 권한을 부여하라고 했다. ■ 아르고CD 우회(CVE-2022-29165) 이 취약점은 CVE 점수 최고점인 10점을 받았다. 쿠버네티스 클러스터에 애플리케이션을 배포하는데 널리 쓰이는 CICD 도구 '아르고CD(ArgoCD)'에서 발견됐다. 인증되지 않은 사용자가 익명의 접근권한을 획득할 수 있고, 특수 제작된 JSON웹토큰을 전송해 관리자를 포함한 다른 사용자로 가장할 수 있다. 공격자는 아르고CD 계정이 없어도 되므로 악용하기 매우 쉽다. 아르고CD 서비스 계정은 괸라자 역할을 가지므로 쿠버네티스 클러스터에 대한 전체 접근 권한을 공격자에게 넘겨줄 수 있다. 재단은 아르고CD에 대한 익명 접근을 비활성화하고, 애플리케이션 서비스 계정에 최소 권한 원칙을 따를 것을 권고했다 ■ 아르고CD 제로데이 크리티컬 취약성(CVE-2022-24348) 아르고CD에서 발견된 또 다른 치명적 취약점이다. 애플리케이션 자격증명, API 키 및 여타 애플리케이션 비밀 등이 유출될 수 있다. 제로데이 취약점을 통해 악의적 행위자는 디렉토리 순회 검사를 우회하고, 아르고CD에 저장된 다른 기밀 정보에 접근할 수 있다. 재단은 쿠브스케이프 같은 지속적 스캔 솔루션을 사용하라고 권고했다. ■ Containerd의 임의 호스트 파일 액세스(CVE-2022-23648) 이 취약점은 containerd 버전 1.6.1, 1.5.10 및 1.14.12에서 발견된다. 공격자가 임의의 호스트 파일을 읽을 수 있도록 허용한다. 공격자는 kubelet 개인 키와 같은 기밀 파일을 읽을 수 있고 쿠버네티스 API 서버/etcd 데이터베이스에 접근해 정보를 유출할 수 있다. ■ 리눅스 커널 컨테이너 이스케이프(CVE-2022-0185) 리눅스의 파일 컨텍스트 API에 있는 힙 기반 버퍼 오버플로 결함으로 범위를 벗어난 쓰기가 발생할 수 있다. 로컬 접근 권한을 가진 악의적 행위자가 서비스거부 공격을 일으키거나 호스트에서 임의 코드를 실행할 수 있다. 재단은 쿠버네티스 배포에서 컨테이너 기능을 제한할 것을 권고했다. 그라파나(Grafana) 코드베이스의 임의 엔드포인트에 대한 무단 접근(CVE-2022-39306) 그라파나랩스의 오픈소스 제품에서 발견된 취약점이다. 공격자는 임의의 서비스 엔드포인트에서 인증을 우회할 수 있다. 현업 시스템 쿠버네티스 사용자의 50%가 그라파나를 사용하는 것으로 조사돼 취약점의 위험성이 더 커졌다. 그라파나는 9.2.4 패치를 배포했다. ■ 악성 레지스트리나 프록시의 Kyverno 컨테이너 이미지 서명 확인 우회(CVE-2022-47633) Kyverno 승인 컨트롤러 컨테이너 이미지 서명 확인 매커니즘에서 발견된 심각성 높은 취약점이다. 악의적인 컨테이너 이미지 레지스트리를 생성하거나, 레지스트리와 Kyverno 사이의 프록시 역할을 할 수 있는 공격자가 이미지 확인 정책을 우회해 서명되지 않은 이미지를 클러스터에 주입하도록 한다. 이 취약점은 버전 1.8.3에서 도입됐고, 1.8.5에서 수정됐다. ■ 어떻게 보안을 높여야 하나 CNCF는 쿠버네티스 배포에서 AppArmor 및 SE리눅스 같은 보안 프로필과 팟 보안 표준을 구현하면 컨테이너 이스케이프 공격에 대한 노출을 줄일 수 있다고 설명했다. 서비스 계정 및 사용자에게 역할 및 권한을 할당할 때 최소 권한 원칙을 따름으로써, 공격자가 클러스터에 침투하더라도 과도한 권한을 얻을 가능성을 줄일 수 있으며, 큐브스케이프에서 RBAC 시각화 도우미를 활용해 불필요한 권한을 가진 역할 및 행위자를 감지하라고 조언했다. 심층 방어 기술 을 사용해 악의적인 행위자가 측면 이동을 달성하고 데이터를 유출하는 것을 더 어렵게 만들 수 있고, 쿠버네티스 매니페스트 파일, 코드 저장소 및 클러스터를 자주 지속적으로 스캔하라고도 권고했다. 재단은 쿠버네티스 클러스터에서 소프트웨어 패키지를 정기적으로 업데이트하는 프로세스를 설정하라고 했다. 취약점 공개 직후 해커가 패치되지 않은 대상을 겨냥하기 때문이다. 로그4J 취약점 발견 뒤 72시간 동안 84만건이나 악용됐다는 점을 예로 들었다.