2021.08.25

쿠버네티스 보안 강화를 위한 NSA/CISA 가이드 분석

Chris Hughes | CSO
쿠버네티스는 컨테이너 오케스트레이션을 위한 사실상의 표준이다. 기업의 88%가 컨테이너 오케스트레이션에 쿠버네티스를 사용하고, 그중 74%가 프로덕션 환경에 사용한다는 조사 결과도 있다. 그러나 보안은 여전히 중대한 우려 사항으로, 기업의 94%가 지난 12개월 사이 쿠버네티스 환경에서 한 번 이상 보안 사고를 겪은 것으로 나타났다. 
 
ⓒ Getty Images Bank

조직이 안전하게 쿠버네티스를 사용하기 위해서는 쿠버네티스를 도입할 때 업계 베스트 프랙티스와 가이드를 따르는 것이 중요하다. 미국 국가안전국(NSA)과 사이버 보안 인프라 보안국(CISA)이 최근 발행한 쿠버네티스 강화 가이드(Kubernetes Hardening Guidance)는 좋은 참고 자료다. 

그 외에 쿠버네티스를 위한 유용한 보안 가이드와 서적으로는 인터넷 보안 센터(CIS) 쿠버네티스 벤치마크, 미국 국방부 쿠버네티스 보안 기술 구현 가이드(STIG), 그리고 아쿠아 시큐리티(Aqua Security)의 리즈 라이스와 마이클 하우젠블라스가 쓴 쿠버네티스 보안(Kubernetes Security)이 있다. 

쿠버네티스 보안 강화 가이드는 쿠버네티스 보안 위험의 일반적인 발생지를 세 가지로 분류한다. 공급망 위험, 악성 위협 행위자, 내부자 위협이다. 또한 위협 모델링, 쿠버네티스 포드 보안, 네트워크 분리 및 강화, 인증과 권한 부여, 로그 감사, 업그레이드, 애플리케이션 보안 베스트 프랙티스와 같은 중요 영역에 걸쳐 세부적인 내용을 제공한다. 

가이드의 도입부에는 쿠버네티스의 핵심 아키텍처 구성요소에 대한 설명이 나와 있다. 중심에는 클러스터가 있고 제어 플레인, 노드, 노드에 위치하는 포드와 같은 클러스터의 핵심 구성요소가 포함된다. 쿠버네티스가 어떻게 기능하고 구성요소가 어떻게 상호작용하며, 궁극적으로 이를 어떻게 보호해야 하는지를 이해하려면 이와 같은 핵심 구성요소를 이해해야 한다. 
 
쿠버네티스의 기본 구성요소 ⓒ NSA/CISA

제어 플레인(Control Plane) 

쿠버네티스 클러스터의 중요한 측면 중 하나는 제어 프레인이다. 제어 플레인은 클러스터에 대한 전역적 의사 결정을 내리며, 악의 또는 태만으로 인해 손상되는 경우 심각한 영향을 미칠 수 있다. NSA/CISA의 조사에서는 악의적 행위자가 인터넷을 통해 액세스할 수 있는 2,284개의 etcd 서버가 발견됐다. 

제어 플레인은 컨트롤러 관리, 클라우드 컨트롤러 관리자, 쿠버네티스 API 서버, etcd, 스케줄러로 구성된다. 각각은 클러스터 내의 고유한 포트에서 작동하며 특정 기능을 수행한다. 특히 AWS의 일래스틱 쿠버네티스 서비스(EKS)와 같은 클라우드 서비스 업체의 매니지드 쿠버네티스 서비스를 사용하는 경우, 이런 구성요소를 직접 제어할 수 있는 역량이 제한적일 수 있다. 단점으로 보일 수 있지만 쿠버네티스 제어 플레인 관리는 복잡한 일이다. 인력의 기술 수준에 따라 매니지드 쿠버네티스를 사용하면서 애플리케이션에 집중하는 편이 가장 안전한 방법일 수 있다. EKS와 같은 매니지드 쿠버네티스는 제어 플레인, 그리고 업그레이드, 버그 수정, 보안 패치 등 기반 인프라와 관련된 활동을 처리한다. 
 
 쿠버네티스 아키텍처 ⓒ NSA/CISA

포드(Pod) 보안

쿠버네티스 포드는 쿠버네티스 생태계의 가장 작은 배포 단위다. 조직의 컨테이너화된 애플리케이션이 위치하는 곳이며, 악의적 행위자들의 주요 진입점이기도 하다. 이러한 이유로 베스트 프랙티스를 따르는 것이 매우 중요하다. 베스트 프랙티스에는 루트로 컨테이너가 실행되지 못하게 하기, 쓰기 가능한 디렉터리와 함께 변조 불가능한 컨테이너 사용하기, 알려진 취약점이나 잘못된 구성, 액세스 제어 문제가 없는 안전한 컨테이너 이미지 배포하기, 포드 서비스 계정 토큰 보호하기 등이 포함된다. 컨테이너 강화 베스트 프랙티스에 관한 새로운 가이드를 활용할 수도 있다. 
 

네트워크 분리와 강화 

보안을 위한 노력이 포드에서 끝나서는 안 된다. 클러스터 내의 네트워킹 역시 악의적 활동을 차단하고 그러한 활동이 일어난 경우에도 격리를 통해 영향을 완화하기 위해 중요한 요소다. 제어 플레인을 보호하는 것 외의 중요한 권장 사항으로는 네트워크 정책 및 방화벽을 사용하여 리소스를 분리, 격리하기, 전송 중인 트래픽 암호화하기, 보관 중인 민감한 데이터(기밀 정보 등) 보호하기 등이 포함된다. 



2021.08.25

쿠버네티스 보안 강화를 위한 NSA/CISA 가이드 분석

Chris Hughes | CSO
쿠버네티스는 컨테이너 오케스트레이션을 위한 사실상의 표준이다. 기업의 88%가 컨테이너 오케스트레이션에 쿠버네티스를 사용하고, 그중 74%가 프로덕션 환경에 사용한다는 조사 결과도 있다. 그러나 보안은 여전히 중대한 우려 사항으로, 기업의 94%가 지난 12개월 사이 쿠버네티스 환경에서 한 번 이상 보안 사고를 겪은 것으로 나타났다. 
 
ⓒ Getty Images Bank

조직이 안전하게 쿠버네티스를 사용하기 위해서는 쿠버네티스를 도입할 때 업계 베스트 프랙티스와 가이드를 따르는 것이 중요하다. 미국 국가안전국(NSA)과 사이버 보안 인프라 보안국(CISA)이 최근 발행한 쿠버네티스 강화 가이드(Kubernetes Hardening Guidance)는 좋은 참고 자료다. 

그 외에 쿠버네티스를 위한 유용한 보안 가이드와 서적으로는 인터넷 보안 센터(CIS) 쿠버네티스 벤치마크, 미국 국방부 쿠버네티스 보안 기술 구현 가이드(STIG), 그리고 아쿠아 시큐리티(Aqua Security)의 리즈 라이스와 마이클 하우젠블라스가 쓴 쿠버네티스 보안(Kubernetes Security)이 있다. 

쿠버네티스 보안 강화 가이드는 쿠버네티스 보안 위험의 일반적인 발생지를 세 가지로 분류한다. 공급망 위험, 악성 위협 행위자, 내부자 위협이다. 또한 위협 모델링, 쿠버네티스 포드 보안, 네트워크 분리 및 강화, 인증과 권한 부여, 로그 감사, 업그레이드, 애플리케이션 보안 베스트 프랙티스와 같은 중요 영역에 걸쳐 세부적인 내용을 제공한다. 

가이드의 도입부에는 쿠버네티스의 핵심 아키텍처 구성요소에 대한 설명이 나와 있다. 중심에는 클러스터가 있고 제어 플레인, 노드, 노드에 위치하는 포드와 같은 클러스터의 핵심 구성요소가 포함된다. 쿠버네티스가 어떻게 기능하고 구성요소가 어떻게 상호작용하며, 궁극적으로 이를 어떻게 보호해야 하는지를 이해하려면 이와 같은 핵심 구성요소를 이해해야 한다. 
 
쿠버네티스의 기본 구성요소 ⓒ NSA/CISA

제어 플레인(Control Plane) 

쿠버네티스 클러스터의 중요한 측면 중 하나는 제어 프레인이다. 제어 플레인은 클러스터에 대한 전역적 의사 결정을 내리며, 악의 또는 태만으로 인해 손상되는 경우 심각한 영향을 미칠 수 있다. NSA/CISA의 조사에서는 악의적 행위자가 인터넷을 통해 액세스할 수 있는 2,284개의 etcd 서버가 발견됐다. 

제어 플레인은 컨트롤러 관리, 클라우드 컨트롤러 관리자, 쿠버네티스 API 서버, etcd, 스케줄러로 구성된다. 각각은 클러스터 내의 고유한 포트에서 작동하며 특정 기능을 수행한다. 특히 AWS의 일래스틱 쿠버네티스 서비스(EKS)와 같은 클라우드 서비스 업체의 매니지드 쿠버네티스 서비스를 사용하는 경우, 이런 구성요소를 직접 제어할 수 있는 역량이 제한적일 수 있다. 단점으로 보일 수 있지만 쿠버네티스 제어 플레인 관리는 복잡한 일이다. 인력의 기술 수준에 따라 매니지드 쿠버네티스를 사용하면서 애플리케이션에 집중하는 편이 가장 안전한 방법일 수 있다. EKS와 같은 매니지드 쿠버네티스는 제어 플레인, 그리고 업그레이드, 버그 수정, 보안 패치 등 기반 인프라와 관련된 활동을 처리한다. 
 
 쿠버네티스 아키텍처 ⓒ NSA/CISA

포드(Pod) 보안

쿠버네티스 포드는 쿠버네티스 생태계의 가장 작은 배포 단위다. 조직의 컨테이너화된 애플리케이션이 위치하는 곳이며, 악의적 행위자들의 주요 진입점이기도 하다. 이러한 이유로 베스트 프랙티스를 따르는 것이 매우 중요하다. 베스트 프랙티스에는 루트로 컨테이너가 실행되지 못하게 하기, 쓰기 가능한 디렉터리와 함께 변조 불가능한 컨테이너 사용하기, 알려진 취약점이나 잘못된 구성, 액세스 제어 문제가 없는 안전한 컨테이너 이미지 배포하기, 포드 서비스 계정 토큰 보호하기 등이 포함된다. 컨테이너 강화 베스트 프랙티스에 관한 새로운 가이드를 활용할 수도 있다. 
 

네트워크 분리와 강화 

보안을 위한 노력이 포드에서 끝나서는 안 된다. 클러스터 내의 네트워킹 역시 악의적 활동을 차단하고 그러한 활동이 일어난 경우에도 격리를 통해 영향을 완화하기 위해 중요한 요소다. 제어 플레인을 보호하는 것 외의 중요한 권장 사항으로는 네트워크 정책 및 방화벽을 사용하여 리소스를 분리, 격리하기, 전송 중인 트래픽 암호화하기, 보관 중인 민감한 데이터(기밀 정보 등) 보호하기 등이 포함된다. 



X