애플리케이션 개발 및 배포를 위한 컨테이너는 클라우드 환경에서 잘 문서화되어 있으며, 현대 기업들은 클라우드 중심 아키텍처로 전환하고 있습니다. 컨테이너 스캐닝은 컨테이너 보안의 하위 집합이자, 컨테이너화된 DevOps 워크플로우를 보호하기 위한 기본적인 보안 조치입니다.
모든 컨테이너가 동일하게 생성되는 것은 아니며, 많은 이미지가 신뢰할 수 없는 소스와 공개 저장소에서 추출될 수 있습니다. 이러한 이미지는 새로운 위협 벡터를 추가하고, 악성 구성 요소를 포함하며, 알려지지 않은 위험을 초래할 수 있습니다.

이 블로그에서는 컨테이너 스캐닝의 기본 개념과 컨테이너 보안에 있어 왜 중요한지에 대해 설명합니다. 또한 일반적인 컨테이너 취약점과 다양한 컨테이너 스캐닝 방법을 다루고, 사용자가 이를 구현하는 방법을 안내합니다. 자세히 살펴보겠습니다.
컨테이너 스캐닝이란 무엇인가?
컨테이너 스캐닝은 첨단 보안 도구를 사용하여 컨테이너 이미지의 다양한 구성 요소를 계층별로 분석하고 잠재적 위협을 탐지합니다.
컨테이너 스캐닝 솔루션은 글로벌 데이터베이스를 활용하여 취약점을 식별하고 위험 요소를 점검합니다. 클라우드 네이티브 애플리케이션의 익스플로잇을 식별하고, 개발팀이 취약점이 악용되기 전에 조기에 발견하고 수정할 수 있도록 보장합니다. 이러한 솔루션은 초기 단계부터 시프트 레프트 보안 조치를 가능하게 하며, 분석을 수행하고 취약점 수정에 대한 권장 사항을 제공합니다.
왜 컨테이너 스캐닝이 필요한가?
컨테이너는 여러 이미지를 포함하고 있으며, 이들은 기본 이미지로부터 모든 가능한 잘못된 구성, 악성코드, 기타 보안 결함을 상속받을 수 있습니다. 시프트 레프트 보안을 적용하려면 컨테이너 이미지 내의 종속성과 패키지를 분석하여 위협을 제거하고, 프로덕션 파이프라인에 배포되는 것을 방지해야 합니다.
컨테이너 이미지를 스캔하여 취약점을 식별하고 수정하는 것은 심각한 문제로 발전하기 전에 반드시 필요합니다. 적절한 컨테이너 스캔을 수행하지 않으면 민감한 자격 증명이 유출되고, 데이터 유출 및 기타 보안 침해로 이어질 수 있습니다.
일반적인 컨테이너 취약점은 무엇인가?
컨테이너는 기업이 애플리케이션을 구축, 배포, 사용하는 방식을 변화시키고 있습니다. 효율성과 이식성을 높이고, 사용자가 적합한 운영체제, 설정, 프로덕션 환경에 대해 걱정하지 않고 소프트웨어를 실행할 수 있도록 합니다. 컨테이너는 기본적으로 안전하지만, 다른 보안 취약점과 마찬가지로 특정 위험에 노출될 수 있습니다.
가장 일반적인 컨테이너 보안 취약점은 다음과 같습니다:
- 신뢰할 수 없는 컨테이너 – 신뢰할 수 없는 컨테이너는 주로 신뢰되지 않거나 검증되지 않은 소스에서 소프트웨어를 실행하는 컨테이너로 구성됩니다. 이러한 컨테이너는 악성 코드를 포함할 수 있으며, 이를 공개 저장소에 업로드하여 공격자가 네트워크에 무단으로 접근할 수 있게 만듭니다.
- 취약한 구성 – 컨테이너를 실행하는 머신은 OS 수준의 공격에 취약할 수 있으므로, 호스트 OS를 적절히 업데이트하고 구성하는 것이 필수적입니다. 취약한 설계에는 권한 상승 공격 및 잘못 구성된 컨테이너화 계층도 포함됩니다.
- 시크릿 관리 – 시크릿을 보호하지 않는 컨테이너는 모든 단계에서 침입에 취약합니다. 보안이 취약한 API 키와 토큰이 시크릿 관리 결함의 주요 원인입니다. 개인 키를 정기적으로 교체하지 않으면 공격자가 자격 증명을 알아내어 접근해서는 안 되는 리소스에 접근할 수 있습니다.
컨테이너 보안 스캐닝의 유형
컨테이너 이미지는 다양한 소스에서 올 수 있으므로 이미지의 신뢰성을 유지하는 것이 중요합니다. 애플리케이션의 전체 라이프사이클 동안, 배포 및 프로덕션 이전에 완전한 보안을 달성하려면 다음 세 가지 영역에서 컨테이너 스캐닝을 구현해야 합니다:
1. 컨테이너 레지스트리 스캐닝-컨테이너 애플리케이션 레지스트리는 다양한 소스에서 빌드된 수천 개의 이미지를 저장합니다. 레지스트리에는 서드파티 위치가 포함되어 있으며, 단일 위협이 전체 애플리케이션에 영향을 줄 수 있습니다. 컨테이너 레지스트리의 변경 사항과 취약점을 지속적으로 스캔하는 것은 컨테이너 보안을 유지하는 데 매우 중요합니다. 이 과정은 자동화되어야 하며, 모든 이미지를 점검하여 잠재적 위협을 식별해야 합니다.
2. 런타임 스캐닝-런타임에서 컨테이너를 스캔하면 새로운 CVE를 식별하고, 새로운 취약점을 탐지하며, 이를 즉시 보안팀에 보고할 수 있습니다. 자동화된 런타임 스캐닝은 컨테이너 환경 전반의 위험을 우선순위화하고, 전반적인 런타임 보호를 강화합니다. 컨테이너를 안전한 상태로 유지하고, 기준선을 설정하여 이상 현상을 완화합니다.
3. 취약점 스캐닝-취약점 스캐닝은 애플리케이션의 전체 라이프사이클 동안 컨테이너의 모든 구성 요소를 분석합니다. 이는 우수한 DevSecOps 실천 방법이며, 보안팀은 효과적인 위협 탐지 및 대응을 위해 컨테이너 이미지 스캐닝을 CI/CD 파이프라인에 통합해야 합니다. 취약점 스캐닝은 코드가 컨테이너에 포함되기 전에 취약점을 찾아 차단하여 보호를 극대화합니다.
컨테이너 스캐닝을 어떻게 구현할 것인가?
컨테이너 보안 스캐닝은 클라우드 네이티브 환경과 애플리케이션을 모니터링하고 보호하기 위한 표준화된 워크플로우로 자리 잡고 있습니다. 대부분의 개발자는 내부 도구를 사용하여 컨테이너 스캔을 실행할 때 실행 환경을 분리하는 것을 선호합니다.
컨테이너 스캐닝에는 세 가지 주요 단계가 있으며, 다음과 같습니다:
- 1단계 – 애플리케이션 코드 보호
- 2단계 – 컨테이너 이미지 스캔
- 3단계 – 연결 계층 스캔
1단계 – 애플리케이션 코드 보호
컨테이너 애플리케이션 코드 및 개발은 컨테이너 코드의 취약점과 종속성을 스캔하고 추적하는 데 도움이 됩니다. 이는 컨테이너화, 통합, 배포 이전 개발 주기 초기에 오류를 발견하는 데 기여합니다. 초기 애플리케이션 코드 스캔은 코드가 컨테이너에 삽입된 후 수행할 수 있습니다.
2단계 – 컨테이너 이미지 스캔
다양한 컨테이너 이미지 스캐닝 도구가 제공되며, 이들은 디지털 서명을 분석하여 이미지 품질과 여러 취약점을 평가합니다. 컨테이너 이미지 스캐닝은 소스를 검증하고 게시자를 확인하여 이미지의 무결성과 진위성을 보장합니다.
3단계 – 연결 계층 스캔
컨테이너의 중간 계층에는 대부분의 보안 취약점이 존재합니다. 컨테이너 이미지는 계층 수를 최소화하여 맞춤화할 수 있습니다.
컨테이너 보안 스캐닝 모범 사례
다음은 컨테이너 보안 스캐닝을 위한 모범 사례입니다:
- CLI 로컬 스캐닝
- CI/CD 파이프라인에 통합된 자동 스캐닝
- 인라인 이미지 스캐닝 도입
- 이미지 버전 고정
- 시크릿 스캔
- 드리프트 탐지
1. CLI 로컬 스캐닝
CLI 로컬 스캐닝은 Docker 스캐닝 기능을 제공하여, 빌드 직후 로컬 컨테이너 이미지를 즉시 스캔할 수 있습니다. docker scan 명령어를 사용하여 CLI 스캔을 실행할 수 있으며, 이는 최고의 컨테이너 보안 실천을 구현하는 첫 단계 중 하나입니다.
2. CI/CD 파이프라인에 통합된 자동 스캐닝
다음 단계는 자동 스캐닝을 CI/CD 파이프라인에 통합하여, 컨테이너 이미지가 빌드될 때마다 지속적으로 분석하는 것입니다. 이를 통해 주요 보안 사고를 방지하고, 빌드 실패를 보고하며, 취약점을 식별할 수 있습니다.
3. 인라인 이미지 스캐닝 도입
인라인 이미지 스캐닝은 데이터 프라이버시를 추적하고 이미지 자격 증명을 보호하는 데 도움이 됩니다. 공개 저장소를 별도로 준비할 필요 없이 스캔 메타데이터 도구만 필요합니다. 인라인 스캐닝은 GitLab, AWS Codepipeline, Jenkins, Tekton 등 다양한 CI/CD 도구에서 구현할 수 있습니다.
4. 이미지 버전 고정
컨테이너는 동일한 이미지에서 여러 버전이 배포될 수 있으므로, 잘못된 이미지를 스캔하는 경우가 발생할 수 있습니다. 이는 디버깅에 문제를 일으킬 수 있으며, 변경 가능한 태그를 사용할 경우 태그가 지속적으로 업데이트되고 새로운 버전이 생성되어 스캔 결과가 무효화될 수 있습니다.
변경 불가능한 태그를 적용하고 이미지 버전을 고정하는 것이 중요합니다. 이를 통해 정기적인 변경이 영향을 미치지 않도록 할 수 있습니다. 컨테이너 이미지 스캐닝, OPA 엔진, Kubernetes 어드미션 컨트롤러를 조합하여 이 과정을 지원할 수 있습니다.
5. 시크릿 스캔
시크릿 스캐닝은 비밀번호, 사용자명, 개인 키를 보호할 수 있습니다. 이미지를 배포하기 전에 시크릿을 스캔하는 것이 좋은 실천 방법이며, 사용자는 이미지 소스를 검증할 수 있습니다. 시크릿 스캐닝은 유출을 방지하고, 정보가 안전하게 컨테이너화된 워크로드에 접근할 수 있도록 합니다. 또한 컨테이너 유지관리를 용이하게 하며, 많은 워크플로우가 내부 도구를 사용하여 Kubernetes 클러스터를 모니터링하도록 설계되어 있습니다. 일부 사용자는 다양한 구성을 분석하기 위해 별도의 실행 환경을 사용하는 것을 선호합니다.
6. 드리프트 탐지
컨테이너 배포를 설계상 변경 불가능하게 만드십시오. 최신 보안 패치, 구성 업데이트를 적용하고, 새로운 컨테이너 이미지를 배포할 때 구성 드리프트 가능성을 최소화하는 방식으로 진행하는 것이 중요합니다. Binary Drift Detection을 사용하여 무단 실행 파일 도입이나 원치 않는 변경 사항을 식별할 수 있습니다. 드리프트 탐지를 CI/CD 파이프라인에 통합하고, 런타임 보안 도구를 사용하여 런타임 동작을 모니터링하는 것이 권장됩니다. 드리프트 탐지, 컨테이너 이미지 스캐닝, 정책 적용, 컨테이너 런타임 보호가 통합된 컨테이너 보안 플랫폼을 사용하십시오.
SentinelOne이 컨테이너 보안 스캐닝에 적합한 이유
SentinelOne은 Kubernetes, 컨테이너, 클라우드 네이티브 워크로드에 대한 포괄적인 가시성, 자동화된 위협 탐지, 포스처 관리를 결합하여 업계 최고 수준의 컨테이너 보안을 제공합니다. SentinelOne Singularity™ Cloud Native Security (CNS)는 에이전트리스 컨테이너 스캐닝을 제공하여, 보안팀이 컨테이너 이미지가 배포되기 전에 취약점, 잘못된 구성, 노출된 시크릿을 탐지할 수 있도록 지원합니다. 750종 이상의 시크릿 스캔을 지원하여, SentinelOne은 조직이 자격 증명 유출을 방지하고 GitHub, GitLab, BitBucket, 기타 CI/CD 저장소 전반에서 견고한 코드 위생을 유지할 수 있도록 돕습니다.
이 플랫폼은 Kubernetes Security Posture Management (KSPM)를 포함하여, 조직이 Kubernetes 클러스터 내에서 보안 모범 사례를 지속적으로 모니터링하고 적용할 수 있도록 합니다. SentinelOne은 구성 드리프트를 탐지하고, NIST, CIS, MITRE 등 주요 컴플라이언스 표준에 대한 2,000개 이상의 내장 규칙 세트를 제공하여, 팀이 실시간으로 잘못된 구성 및 컴플라이언스 격차를 해결할 수 있도록 지원합니다. CNS는 DevOps 파이프라인에 원활하게 통합되어 정책 적용을 자동화하고, 기존 워크플로우에 최소한의 방해로 실행 가능한 인사이트를 제공합니다.
SentinelOne의 Singularity™ Cloud Workload Security (CWS)는 런타임에서 컨테이너화된 워크로드까지 보호를 확장하며, AI 기반 탐지를 통해 랜섬웨어, 크립토재킹, 제로데이 등 공격을 머신 속도로 차단합니다. 정적 분석, 동적 위협 탐지, 자동화된 대응을 결합하여, SentinelOne은 조직이 단일 대시보드에서 멀티 클라우드 환경의 모든 표면—VM, 컨테이너, Kubernetes—을 방어할 수 있도록 지원합니다.
에이전트리스 CNAPP 아키텍처를 통해 SentinelOne은 보안팀이 고위험 알림과 검증된 익스플로잇 경로에 집중할 수 있도록 하여, 오탐과 운영 부담을 줄입니다. 자동 온보딩, 즉각적인 커버리지, 통합 정책 관리는 SentinelOne이 빌드부터 런타임까지 전체 개발 라이프사이클 동안 컨테이너를 보호하는 이상적인 솔루션이 되게 합니다.
서버, VM, 컨테이너를 위한 AI 기반 클라우드 워크로드 보호(CWPP)로, 런타임 위협을 실시간으로 탐지하고 차단합니다.
결론
CI/CD 파이프라인 및 OS 취약점 스캐닝과 같은 컨테이너 이미지 스캐닝 모범 사례는 이미지를 안전하게 보호하고 악용을 방지할 수 있습니다. 최고의 컨테이너 보안을 적용하는 것은 지속적인 과정이며, 빌드 시작부터 종료까지 반복적인 접근 방식을 따릅니다.
컨테이너 애플리케이션 개발 라이프사이클의 모든 단계에서 위협을 모니터링하고, 새로운 보안 위험에 대비하는 것이 필수적입니다. 컨테이너를 스캔하면 숨겨진 익스플로잇을 발견하고, 취약점을 제거하며, 컨테이너화된 애플리케이션의 행위 변화나 악성 이벤트를 모니터링하여 최적의 보안을 보장할 수 있습니다. SentinelOne은 감사 로깅, 권한 관리, IaC 템플릿 지원 등 즉시 사용 가능한 기능을 제공하여, 컨테이너 스캐닝을 원활하게 경험할 수 있도록 합니다.
컨테이너 스캐닝 FAQ
컨테이너 스캐닝은 컨테이너 이미지와 실행 중인 컨테이너를 분석하여 보안 취약점, 잘못된 구성, 컴플라이언스 문제를 식별하는 과정입니다. 이는 컨테이너화된 애플리케이션을 위한 보안 점검입니다.
기본 운영 체제부터 애플리케이션 종속성까지 모두 검사하며, National Vulnerability Database와 같은 취약점 데이터베이스와 비교합니다. 이를 통해 보안 문제가 운영 환경에 반영되기 전에 사전에 발견할 수 있습니다.
컨테이너 스캐닝은 기본 이미지의 운영 체제 취약점, 취약한 애플리케이션 종속성, 과도하게 허용된 사용자나 노출된 포트와 같은 구성 결함을 탐지합니다. 또한 API 키 및 비밀번호와 같은 하드코딩된 시크릿, 악성코드, CIS 벤치마크와 같은 표준에 대한 컴플라이언스 위반도 찾아냅니다.
스캐너는 구식 라이브러리, Dockerfile 내의 잘못된 구성, 공격자가 악용할 수 있는 과도한 권한도 점검합니다.
배포 전에 취약점을 탐지할 수 있도록 CI/CD 파이프라인에 스캐닝을 통합해야 합니다. 신뢰할 수 있는 소스의 최소한의 기본 이미지를 사용하고, 빌드 시점과 런타임 모두에서 스캔하여 포괄적으로 커버해야 합니다.
적절한 알림 임계값을 설정하여 자동 스캐닝을 구성하고, 취약점 데이터베이스를 정기적으로 업데이트하는 것도 잊지 마세요. 또한, 심각한 취약점이 발견될 경우 배포를 차단하는 정책을 구현해야 합니다.
컨테이너 스캐너는 먼저 이미지를 각 구성 레이어로 분해한 후, 각 구성 요소를 개별적으로 분석합니다. 시그니처 기반 스캐닝을 통해 CVE와 같은 알려진 취약점 데이터베이스와 비교하고, 런타임 중 이상 행위를 탐지하는 행위 기반 스캐닝도 수행합니다.
스캐너는 기본 이미지, 애플리케이션 코드, 종속성, 구성을 검사한 후, 보안 문제를 식별하여 조치할 수 있도록 표시합니다.


