컨테이너 보안 스캐닝(Container Security Scanning)이란 컨테이너 이미지에 존재할 수 있는 보안 취약점이나 이슈를 컨테이너 스캐닝 툴로 검사하고 분석하는 행위를 말합니다.

컨테이너 스캐닝이 필요한 이유

현재 운영 중인 서비스 대부분이 컨테이너 이미지 기반으로 동작하기 때문에 컨테이너 이미지에 보안 취약점 또는 이슈가 있다면 엄청난 보안 사고 및 재정적 피해로 이어질 수 있습니다.

컨테이너 보안 스캐닝을 수행하면 개발자가 해당 컨테이너에 어떤 취약점이 존재하는지 인지할 수 있고 사전에 조치를 취할 수 있게 됩니다.

또한, 실제 서비스에 대해서 주기적으로 컨테이너 보안 스캐닝을 수행할 경우, 최종 사용자에게 해당 서비스가 계속 모니터링되어 안전하다는 신뢰감도 줄 수 있습니다.

컨테이너 스캐닝이 수행되는 방식

컨테이너 스캐닝 툴은 보통 원격 레지스트리 또는 로컬에 저장된 컨테이너 이미지를 대상으로 스캔합니다.

이때 스캐닝 툴은 스캔을 위해 해당 이미지를 레이어(Layer) 단위로 해체하는데, Base 이미지와 애플리케이션 코드, 각 디펜던시 역시 해체 대상에 포함됩니다.

스캐닝 툴의 스캔 방식은 아래와 같이 크게 2가지로 나뉩니다.

  • 지식 기반(Signature-Based) 스캔: 기존에 알려진 취약점(CVE 등)을 기반으로 스캔 수행
  • 행동 기반(Behavioral-Based) 스캔: 컨테이너 실행 시점에 비정상적인 프로세스나 네트워크 트래픽 같은 이상 행동에 대해 스캔 수행

컨테이너 보안 스캐닝 툴

  • Trivy: 컨테이너 이미지, 파일 시스템, Kubernetes 클러스터 등 다양한 대상에 대해 보안 이슈와 취약점 스캔 가능합니다. CLI로 스캔 작업을 실행합니다. (관련 문서)
  • Clair: 함께 설치되는 DB에 스캔 대상 컨테이너 이미지에 대한 정보와 레이어를 저장 후 보안 취약점을 스캔하는 것이 특징입니다. CLI로 스캔 작업을 실행하며, Webhook을 통한 알림 기능도 지원합니다. (관련 문서)

References