K02/K8s 보안 강화 - 공급망 취약점
OWASP(Open Web Application Security Project)은
인터넷 세상에서 발생가능한 가장 중요한 보안 취약점을 정리한 문서입니다.
Overview
K8s에 대한 OWASP TOP 10 보안 위협 중 2번째인 공급망 체인 취약점(Supply Chain Vulnerabilities)에 대해서 다루고자 합니다.
기본적으로 3가지 관점에서 취약점을 가짐할 수 있습니다.
이미지 무결성(Image Integrity)
이미지 구성(Image Composition)
알려진 소프트웨어 취약점 관점(Known Software Vulnerabilities)
여기에 더해 3가지 조치사항을 가져야 합니다.
이미지 서명(Image Signing)
소프트웨어 자재 명세서(SBOM, Software Bill of Materials)
정책 적용(Enforcing Policy)
D01~D06/Docker 보안 강화[P5]에서 다룬 내용들을 기반으로
전체적으로 CI/CD 파이프라인의 SLSA 레벨을 기반으로 조치할 수 있어 보입니다.
Supply Chain Vulnerabilities
현대 어플리케이션은 다수의 오픈소스에 의존하고 있습니다.
개별 오픈소스는 또 다른 오픈소스에 의존하고 있습니다.
이런 공급망 체인 구조(Supply Chain)는치명적인 취약점이 되고 있습니다.
이미지 무결성 관점에서 앱에서 사용하는 오픈소스 기반 공격이 있을 수 있습니다.
Solarwind attack[P1], 3’rd party package[P2][P3], log4j exploit[P3] 참고이미지 구성 관점에서 컨테이너의 각 레이어가 보안에 영향을 미칠 수 있습니다.
알려진 소프트웨어 취약점 관점에서 특정 오픈소스가 OpenSSL 버전이 포한되어 있는 등의 문제가 있을 수 있습니다.
Image Integrity, Image Composition, Known Software Vulnerabilities
따라서 개별 취약점을 예방하기 위한 방법이 필요합니다.
이미지 무결성 관점에서 in-toto[T1]와 in-toto/attestaton[T2] 등을 사용해서 CI/CD 파이프라인의 SLSA[T3] 레벨을 더 높일 수 있습니다.
이미지 구성 관점에서 Distroless[T4]와 Scratch[T5] 등의 배포되지 않은 이미지 및 도커 슬림[T6]을 활용하여 컨테이너 환경을 경량화 및 보안 강화할 수 있습니다.
알려진 소프트웨어 취약점 관점에서 Clair[T7], Trivy[T8] 등의 감사도구를 활용하여 알려진 CVE를 가진 소프트웨어를 식별할 수 있습니다.
이미지 서명 관점에서 Cosign[T9] 등을 활용해서 컨테이너 서명을 할 수 있습니다.
소프트웨어 자재 명세서(SBOM) 관점에서 CycloneDX[T10], SPDX[T11] 등으로 특정 소프트웨어 아티펙트에 포함된 소프트웨어 패키지, 라이선스 및 라이브러리 목록을 제공하며 다른 보안 점검의 출발점으로 사용해야 합니다.
정책 적용 관점에서 승인되지 않은 이미지가 K8s Admission Controls[T12]과 오픈 정책 엔진인 OPA[T13], Kyverno[T14] 등을 사용하여 워크로드 이미지를 제어할 수 있습니다.
Image Integrity, Image Composition, Known Software Vulnerabilities, Image Signing, SBOM(Software Bill of Materials), Enforcing Policy