컨테이너는 이동성, 경량성, 종속성 캡슐화 능력 덕분에 오케스트레이션 측면에서 단기간 사용되며 독특합니다. 호스트 OS 커널을 공유하고 마이크로서비스를 지원하며 확장성이 뛰어나기로 알려져 있어 새로운 취약점을 유발할 수 있습니다.
컨테이너 보안 취약점은 공격 표면을 확대하고 기밀 자산에 대한 접근을 허용함으로써 민감한 정보를 위험에 빠뜨릴 수 있습니다. 모든 컨테이너 보안 위험을 오케스트레이션 수준에서 해결할 수 있는 것은 아니며 개별 컨테이너에 대한 위협 관리를 수행하는 것이 중요합니다.
표준 DevSecOps 관행을 따르는 것은 좋은 시작이며, 위험을 최소화하려면 기업은 최상의 컨테이너 보안 관행을 따라야 합니다. 이 가이드에서는 주요 컨테이너 보안 취약점을 살펴보고, 이에 대해 알아야 할 모든 것을 개괄적으로 설명합니다.
컨테이너 보안 취약점이란 무엇인가요?
 컨테이너 보안 취약점은 컨테이너 기술의 설정 또는 작동 방식에 존재하는 잠재적 약점, 허점 또는 결함을 의미합니다. 이러한 취약점은 원치 않는 침입자가 몰래 들어와 데이터를 조작하거나 컨테이너 내에서 실행 중인 애플리케이션을 방해하는 통로가 될 수 있습니다. 소프트웨어 개발 및 IT 세계에서 이러한 컨테이너 보안 취약점은 기밀 데이터 유출, 서비스 중단, 심지어 시스템 전체 장악과 같은 심각한 문제를 야기할 수 있습니다.
일반적인 가상화 기반 환경에서는 각 가상 머신(VM)이 자체 운영 체제(OS)를 가집니다. 하지만 컨테이너는? 모두 동일한 OS 커널을 공유합니다. 따라서 한 컨테이너의 취약점이 동일한 호스트에 있는 다른 컨테이너에도 영향을 미칠 수 있습니다. 이 때문에 모든 유형의 위협에 대비한 견고한 컨테이너 보안 전략을 수립하는 것이 매우 중요합니다. 이러한 컨테이너 보안 취약점은 컨테이너 이미지 빌드부터 배포 및 런타임에 이르기까지 컨테이너 라이프사이클의 모든 단계에서 나타날 수 있습니다. 따라서 우리는 항상 이를 탐지하고 수정하기 위해 주의를 기울여야 합니다.
컨테이너 보안 취약점의 유형
컨테이너 보안 취약점의 주요 유형은 다음과 같습니다:
컨테이너 이미지 내 취약점
컨테이너 이미지의 취약점에는 안전하지 않은 종속성, 구식 소프트웨어, 이미지 설정 오류 등이 포함됩니다. 악성 이미지, 백도어, 유해 코드가 이러한 이미지에 포함되어 배포될 수도 있습니다. 과도한 레이어링으로 인해 컨테이너 이미지 크기와 잠재적 공격 표면이 증가할 수 있는 문제도 있습니다.
안전하지 않은 구성
컨테이너에는 열린 포트나 안전하지 않은 이미지가 있을 수 있습니다. 안전하지 않은 컨테이너 구성에는 컨테이너 환경에서 사용되는 부적절한 설정 및 관행도 포함됩니다. 기본 설정도 강화되지 않은 상태로 방치될 수 있습니다. 또한 오래된 소프트웨어와 악성 구성 요소 문제도 있습니다. 사용자는 CPU 및 메모리 또는 디스크 사용량에 대한 제한을 설정하지 못할 수 있습니다.
과도한 권한
루트 권한으로 컨테이너를 실행하거나 권한 상승을 경험하는 등의 보안 문제에 직면할 수 있습니다. 과도한 권한은 컨테이너를 손상시키고 공격자가 호스트 머신을 장악할 수 있게 합니다.
노출된 비밀 정보
노출된 비밀 정보는 API 키, 인증 정보, 인증서, 토큰과 같은 민감한 정보로, 컨테이너 이미지나 구성 파일에 직접 포함된 것을 의미합니다. 이러한 비밀 정보는 실수로 버전 관리에 커밋되거나 환경 변수에 남겨져 권한이 없는 사람이 접근할 수 있게 될 수 있습니다. 일단 노출되면 공격자는 이러한 자격 증명을 활용하여 백엔드 서비스, 데이터베이스 또는 클라우드 리소스에 접근할 수 있으며, 이는 데이터 유출 및 서비스 중단으로 이어질 수 있습니다.
안전하지 않은 네트워크 구성
컨테이너가 지나치게 허용적인 네트워크 정책이나 기본 브리지 네트워크로 연결될 때 안전하지 않은 네트워크 구성이 발생합니다. 컨테이너에 공용 IP, 개방된 포트 또는 적절한 세분화 없이 광범위한 CIDR 범위가 할당될 수 있습니다. 취약한 방화벽 규칙과 마이크로 세분화 부재는 컨테이너와 호스트 시스템 간 측면 이동을 허용합니다. 이러한 잘못된 구성은 공격 표면을 확대하여 공격자가 트래픽을 가로채거나 패치되지 않은 서비스를 악용하거나 서비스 거부 공격을 수행할 수 있게 합니다.
오케스트레이터 구성 오류
오케스트레이터 구성 오류는 Kubernetes, Docker Swarm, OpenShift와 같은 플랫폼에서 기본 설정을 변경하지 않거나 RBAC 정책이 지나치게 허용적일 때 발생합니다. 예를 들어 중요한 워크로드에 "기본" 네임스페이스를 사용하거나, 서비스 계정에 클러스터 관리자 역할을 부여하거나, Pod 보안 정책을 적용하지 않는 경우 등이 있습니다. 이러한 과실은 무단 배포, 권한 상승, 통제되지 않은 리소스 소비로 이어져 컨테이너 환경의 보안과 안정성을 모두 훼손할 수 있습니다.
런타임 취약점 및 컨테이너 탈출
런타임 취약점 및 컨테이너 탈출은 컨테이너 런타임이나 기반 커널의 결함으로 인해 컨테이너 내 코드가 격리 상태를 벗어날 수 있는 상황을 의미합니다. 공격자는 runc의 CVE-2020-14386과 같은 취약점을 악용하여 호스트에서 루트 권한을 획득합니다. 다른 위험은 패치되지 않은 컨테이너 런타임 구성 요소, 호스트 마운트의 비보안적 사용 또는 특권 컨테이너에서 비롯됩니다. 탈출이 성공하면 호스트 머신이 손상되어 공격자가 다른 컨테이너나 오케스트레이터 자체를 조작할 수 있게 됩니다.
공급망 취약점
공급망 취약점은 타사 기본 이미지, 빌드 파이프라인, 배포 도구 등 컨테이너 라이프사이클의 모든 단계에서 발생하는 위험을 포괄합니다. 악성 코드는 베이스 이미지나 CI/CD 스크립트에 삽입될 수 있으며, 검증되지 않은 이미지 레지스트리에는 트로이 목마화된 아티팩트가 호스팅될 수 있습니다. 이미지 서명, 취약점 스캔 및 출처 확인이 부족하면 공격자가 백도어나 손상된 종속성을 도입할 수 있습니다. 이러한 숨겨진 위협은 환경 전반에 퍼져 개발, 스테이징 및 프로덕션에 모두 영향을 미칠 수 있습니다.
SentinelOne이 도움이 될 수 있을까요?
Singularity Cloud Workload Security (CWS)는 AI 기반 위협 탐지 기능을 사용하여 AWS, Azure, Google Cloud 및 사설 데이터 센터 전반에 걸쳐 컨테이너화된 워크로드를 방어하고 기계 속도의 대응을 제공하는 클라우드 워크로드 보호 플랫폼(CWPP)입니다. CWS를 통해 클라우드 워크로드와 관련된 컨테이너 구성 드리프트를 탐지할 수 있습니다. 또한 사고 조사 및 대응 시간 단축에 필요한 워크로드 텔레메트리 및 데이터 로그의 풍부한 포렌식 기록에 접근할 수 있습니다.
SentinelOne Singularity™ Cloud Native Security는 VM, 워크로드, 컨테이너 이미지 및 레지스트리 스캔을 지원합니다. 코드 저장소에 하드코딩된 750종 이상의 시크릿을 식별하고 유출을 방지할 수 있습니다.
SentinelOne의 Kubernetes 보안 상태 관리(KSPM) 솔루션은 Kubernetes 클러스터와 워크로드를 보호하여 인적 오류를 줄이고 수동 개입을 최소화합니다.
이 솔루션은 역할 기반 접근 제어(RBAC) 정책과 같은 보안 표준을 시행하고 Kubernetes 환경 전반에 걸쳐 정책 위반을 자동으로 탐지, 평가 및 수정할 수 있게 해줍니다. 또한 클라우드 네이티브 보안을 간소화하고, 유럽 일반 데이터 보호 규정(GDPR), 미국 건강보험 이동성 및 책임법(HIPAA), 인터넷 보안 센터(CIS) 벤치마크와 같은 프레임워크를 준수합니다.
결론
SentinelOne은 클라우드 보안 분야의 선두 주자로서 컨테이너 보안 문제 해결에 있어 신뢰할 수 있는 파트너입니다. 구성 이상을 정확히 찾아내고, 내장된 비밀 정보를 발견하며, 컨테이너 환경을 지속적으로 감시하는 등 SentinelOne은 기업이 잠재적 위험보다 한 발 앞서 나갈 수 있도록 지원합니다.
지금 바로 컨테이너 생태계를 보호하고 SentinelOne의 솔루션을 활용하세요.
"컨테이너 보안 취약점 FAQ
컨테이너 보안 취약점은 공격자가 무단 접근, 데이터 도용 또는 시스템 손상을 위해 악용할 수 있는 컨테이너 기술의 구성 또는 기능상의 약점입니다. 이러한 취약점은 컨테이너 이미지, 런타임 환경 또는 쿠버네티스와 같은 오케스트레이션 플랫폼에서 나타날 수 있습니다.
컨테이너는 동일한 OS 커널을 공유하기 때문에, 한 컨테이너의 취약점이 동일한 호스트에 있는 다른 컨테이너에도 영향을 미칠 수 있습니다.
"일반적인 취약점으로는 알려진 보안 결함이 있는 구형 소프트웨어 패키지, 비밀번호나 API 키 같은 하드코딩된 비밀 정보, 공급망 공격으로 유입된 악성 코드, 신뢰할 수 없는 레지스트리에서 가져온 안전하지 않은 기본 이미지 등이 있습니다.
빌드 과정에서 가져오는 취약한 종속성 및 라이브러리도 발견됩니다. 이러한 문제들은 컨테이너가 프로덕션 환경에 배포될 때 침해 위험에 노출될 수 있습니다.
"잘못된 구성은 공격자가 컨테이너를 악용하고 호스트 시스템으로 탈출할 수 있는 직접적인 경로를 만듭니다. 일반적인 문제로는 루트 권한으로 컨테이너 실행, 불필요한 포트 인터넷 노출, 기본 암호 사용, 민감한 호스트 디렉터리 마운트 등이 있습니다.
이러한 단순한 실수는 권한 상승, 데이터 유출, 시스템 전체 침해로 이어질 수 있습니다. 코드 취약점보다 악용하기 쉬운 경우가 많습니다.
"
