이 시리즈를 처음 접하는 분이라면 처음부터 시작해 보세요.
컨테이너 보안 기본 사항: 소개
컨테이너 보안 기본 사항: 관로
컨테이너 보안 기본 사항: 관현악법
워크로드는 애플리케이션을 설명하는 데 자주 사용되는 비교적 최근의 용어이지만 인프라 서비스를 지칭하기도 합니다. 이는 개발자가 반드시 수행하지 않는 다양한 '작업 부하'가 컨테이너 클러스터에서 실행될 수 있기 때문에 중요합니다. 컨테이너 환경 내에서 다양한 목적을 위해 무료 및 오픈 소스 서비스를 사용하는 경우가 늘어나고 있습니다. 실제로 이는 IT 운영 전반에 해당하는데, 이는 지난해 무료 및 오픈 소스 소프트웨어 다운로드에서 가장 많이 사용된 범주였습니다.
따라서 워크로드 보안이란 컨테이너 환경에 다운로드, 개발 또는 배포한 모든 소프트웨어를 의미합니다. 영사를 생각해 보세요. 쿠버네티스 자체에 대해 생각해 보세요. Prometheus 와 Elasticsearch를 생각해 보세요. NGINX 와 istio에 대해 생각해 보세요.
그리고 Kubernetes 환경을 지원하기 위해 배포한 모든 API 게이트웨이, 캐시 및 인그레스 컨트롤러도 해당 목록에 추가합니다. 여기서 철저한 자재 목록이 중요한 이유와, 안전한 환경을 유지하기 위해 정기적으로 재고를 파악하는 것이 중요한 이유입니다.
목록을 작성했다면 이제 주요 워크로드 보안 문제를 해결할 차례입니다.
2. 악성 콘텐츠는 악성입니다
자격 증명을 요구하고 접근 제어를 적용하여 문을 잠근 후에도 여전히 악성 콘텐츠에 대해 걱정해야 합니다. 이는 사용 중인 애플리케이션, 마이크로서비스, 운영 서비스에도 해당됩니다. 사용자(운영자든 소비자든)에게 인터페이스를 제공하는 모든 업무는 잠재적으로 위험에 노출되어 있습니다.
공격자가 OS 구성 요소의 취약점을 악용하면 하나 이상의 작업 부하를 손상시킬 수 있습니다. 이러한 취약점은 '문 잠금'이나 '통화 차단'에 실패하면 노출될 수 있습니다. CVE-2019-5736 에서 보았듯이 OS 계층의 runc 취약점으로 인해 인터넷이 패닉에 빠졌던 것처럼 이는 터무니없는 시나리오가 아닙니다.
여기서 핵심 보안 원칙은 SELinux 및 RedHat 컨테이너 보안 전문가인 Dan Walsh가 다음과 같이 유명하게 언급했습니다 . "컨테이너는 포함하지 않습니다."
노드 외부의 서비스 및 사용자와의 모든 네트워크 트래픽은 호스트 OS를 통과해야 한다는 점을 기억하는 것이 중요합니다. 노드 상의 포드와 컨테이너 간의 네트워킹은 가상 브릿지를 이용한 가상 네트워킹과 iptables의 뛰어난 사용을 통해 달성됩니다. 하지만 궁극적으로 트래픽은 해당 물리적 노드를 떠나야 하며, 이는 호스트 OS에서 처리된다는 것을 의미합니다. 에이전트, 플러그인 및 기타 데몬은 보안 또는 가시성 목적으로 해당 트래픽을 관찰하거나 캡처할 수 있습니다. 파이프라인 보안 에 대해 읽은 후 수집하기 시작한 목록에 추가해야 할 잠재적인 침해 지점은 다음과 같습니다.
컨테이너 컨텍스트에서 워크로드 보안의 대부분은 프로덕션 환경에서 실행되는 다른 애플리케이션 워크로드의 보안과 동일합니다. 액세스를 제어하고 강력한 인증을 요구하며, 악성 콘텐츠를 감시하고 공유 및 플랫폼 수준의 취약성을 인식하세요.