Kubernetes 런타임 보안

지난 10년 동안 컨테이너화된 워크로드와 Kubernetes(K8)는 소프트웨어 업계를 강타했습니다. 안타깝게도 Kubernetes 이 엔터프라이즈 아키텍처의 필수 요소가 되면서 위협 공격자의 주요 타깃이 되고 있습니다.

일반적으로 컨테이너 보안, 특히 Kubernetes 보안은 오늘날 기업 보안 태세의 기본 요소입니다. 이 문서에서는 7가지 필수 K8 런타임 보안 모범 사례를 포함하여 K8 보안의 가장 중요한 측면 중 하나인 Kubernetes 런타임 보안에 대해 살펴봅니다.

데모 요청하기 자세히 알아보기

Kubernetes 런타임 보안이란 무엇인가요?

Kubernetes 런타임 보안은 실행 중인 컨테이너 워크로드를 보호하는 도구, 관행 및 기술 집합입니다. Kubernetes.

즉, Kubernetes 런타임 보안은 워크로드 보호 및 컨테이너 보안의 하위 범주입니다. Kubernetes 런타임 보안은 컨테이너 인스턴스화부터 종료까지 보안을 다룹니다. 즉, 런타임 보안에는 컨테이너가 루트로 실행되는지 여부(실행해서는 안 됩니다!)와 같은 항목이 포함되지만 컨테이너 이미지 스캔과 같은 주제는 포함되지 않습니다.

Kubernetes 런타임 보안 과제 및 위험

오늘날 K8에서 실행되는 애플리케이션의 종류가 매우 다양하기 때문에 컨테이너나 Kubernetes에 대한 런타임 보안 위험에 대한 일률적인 기준은 없습니다. 그러나 대부분의 기업에서 공통적으로 직면하는 일련의 Kubernetes 런타임 보안 문제가 있습니다.

다음은 Kubernetes 에서 런타임 컨테이너 보안과 관련된 네 가지 일반적인 보안 위험입니다:

  • 권한 에스컬레이션: 위협 행위자가 K8s 환경에 액세스하여 더 높은 권한의 사용자(예: 루트)로 에스컬레이션하는 것은 전형적인 Kubernetes 런타임 보안 위협입니다.
  • 멀웨어: 컨테이너 이미지의 멀웨어는 심각한 문제입니다. 2022년에 도커 허브에서 제공되는 1,600개 이상의 컨테이너에 크립토마이너와 DNS 하이재커와 같은 멀웨어가 포함되어 있었습니다. 이러한 컨테이너 중 하나를 환경에서 인스턴스화하면 네트워크 경계 뒤에서 위협이 즉시 발생할 수 있습니다.
  • K8 및 컨테이너의 취약성: 컨테이너 자체가 악의적이지 않더라도 알려진 익스플로잇이 있는 CVE에 취약한 경우가 많습니다.

기본 Kubernetes 런타임 보안 도구

Kubernetes 는 런타임 위험을 제한할 수 있는 제한된 기본 도구와 컨트롤 세트를 제공합니다. 여기에는 다음이 포함됩니다:

  • Secrets: K8의 비밀 번호는 API 키 또는 비밀번호와 같은 정보를 저장하는 데이터 객체입니다. 시크릿을 사용하면 기업이 이미지와 파드 사양에서 민감한 데이터를 보호할 수 있습니다.
  • 어드미션 컨트롤러: K8s 어드미션 컨트롤러를 사용하면 기업은 Kubernetes API 엔드포인트의 수정(읽기 제외)을 제한할 수 있습니다.
  • 네트워크 정책: Kubernetes 네트워크 정책은 네트워크 및 전송 계층에서 정책을 시행하는 기존의 허용 및 차단 방화벽 규칙과 유사합니다.
  • 감사 로그: 감사 로그는 클러스터에서 발생한 작업에 대한 세부 정보를 제공합니다. 예를 들어 API 활동을 감사할 수 있습니다. 이러한 로그를 통해 악의적인 행동을 분석하고 탐지할 수 있습니다.
  • RBAC: 역할 기반 액세스 제어(RBAC)를 통해 관리자는 엔티티의 역할에 따라 K8의 API 액세스를 제한할 수 있습니다.

기본 Kubernetes 런타임 보안 도구는 실시간 위협 탐지와 같은 사용 사례를 직접적으로 다루지 않기 때문에 많은 기업이 보다 강력한 워크로드 보호 도구에 의존하고 있습니다.

7 Kubernetes 런타임 보안 모범 사례

이 6가지 Kubernetes 런타임 모범 사례는 기업이 많은 K8 보안 위협을 제한하는 데 도움이 될 수 있습니다.

  1. 컨테이너를 루트로 실행하지 마세요: 컨테이너를 루트로 실행하면 권한 상승 공격을 위한 위협 행위자가 설정됩니다. 루트로 실행하지 않는 것만으로도 많은 위협을 완화할 수 있습니다.
  2. 컨테이너 구성을 감사하고 자동화하세요: 시크릿에 있어야 할 데이터를 공개적으로 노출하거나 데이터베이스 인스턴스를 인터넷에 공개하는 것은 보안 침해로 이어질 수 있는 잘못된 구성의 예입니다. 인프라스트럭처 코드화 (IaC)를 사용하여 구성을 감사하고 구성 배포를 자동화하는 것은 위험을 제한할 수 있는 좋은 방법입니다.
  3. 네트워크 계층을 잠그세요: K8의 네트워크 정책과 RBAC 외에도 IPS/IDS, NGFW와 같은 네트워크 보안 도구는 위협이 워크로드에 도달하기 전에 탐지하고 방지할 수 있습니다. 또한 기업에서는 가능한 한 Docker 데몬 소켓을 노출하지 않아야 합니다.
  4. 특권 모드를 사용하지 마세요: 컨테이너를 루트로 실행하지 않는 것과 마찬가지로, 기업에서는 -privileged 플래그가 있는 컨테이너를 실행하지 않아야 합니다. 권한이 있는 플래그를 사용하면 컨테이너가 시스템 보안을 유지하기 위한 다양한 검사를 우회할 수 있습니다.
  5. 가능하면 읽기 전용 파일시스템을 사용하세요: 읽기 전용 파일시스템은 위협 공격자가 컨테이너의 파일시스템에 직접 멀웨어를 작성하는 것을 방지합니다. 이는 위협 행위자의 익스플로잇 수행 능력을 제한할 수 있습니다.
  6. 신뢰할 수 있는 컨테이너 이미지만 실행하세요: 공용 리포지토리는 관리자가 손상된 이미지를 인스턴스화하는 즉시 컨테이너 런타임 환경의 보안을 위협할 수 있습니다. 신뢰할 수 있는 컨테이너 이미지를 사용해야만 기업이 공용 이미지 저장소의 이미지로 인한 위험을 제한할 수 있습니다.
  7. 커널 레벨 보안: SELinux, cgroups, AppArmor와 같은 솔루션은 Kubernetes 런타임 보안에 보호 계층을 추가할 수 있습니다. 예를 들어, 앱아머는 다양한 커널 리소스에 대한 액세스를 제한하는 정책을 정의하여 앱이 액세스해서는 안 되는 시스템 기능을 활용하는 위험을 줄일 수 있습니다.

왼쪽으로 이동하면 효과적인 Kubernetes 런타임 보안이 보완됩니다.

물론 보안의 어떤 측면도 진공 상태에서는 존재하지 않습니다. 런타임 보안도 중요하지만, 보안은 컨테이너가 인스턴스화되기 훨씬 전부터 시작됩니다. 앞서 언급한 Kubernetes 런타임 보안 모범 사례 중 일부는 이를 명확하게 보여주며, 시프트-레프트 보안의 개념은 이 점을 잘 보여줍니다. 개발 수명 주기 초기에 보안을 통합하고 강력한 런타임 보호 기능을 제공하면 두 가지 장점을 모두 누릴 수 있습니다.

Kubernetes CloudGuard Workload 보호를 통한 런타임 보안

CloudGuard Workload Protection은 기업이 Kubernetes 컨테이너 및 서버리스 기능에 필요한 중앙 집중식 관리를 통해 엔드투엔드 보호를 제공하는 플랫폼입니다.

CloudGuard Workload 보호의 장점은 다음과 같습니다:

  • 앱 전반에 걸친 제로 트러스트 보안: Kubernetes 컨테이너, API 및 서버리스 기능을 보호합니다.
  • 보안 구성 자동 배포: 보안 정책을 자동으로 정의하고 배포하여 인적 오류와 잘못된 구성의 위험을 줄이세요.
  • 멀티 클라우드 및 하이브리드 클라우드 지원: 클라우드와 온프레미스 전반에서 보안을 보장합니다.
  • 컨테이너 이미지 스캔: 취약하거나 악의적인 컨테이너가 인스턴스화되기 전에 탐지합니다.
  • 실시간 인시던트 탐지: 악의적인 행동을 지능적으로 탐지하여 위협이 피해를 입히기 전에 차단할 수 있습니다.
  • 서버리스 함수에 대한 행동 방어: Serverless Security 컨텍스트가 필요하며, 행동 방어는 서버리스 함수의 악의적인 사용을 지능적으로 탐지할 수 있습니다.

CloudGuard Workload 보호에 대해 자세히 알아보려면 지금 바로 컨테이너 보안 데모에 등록하세요. 데모에서는 IaC 스캐닝, 자동화된 런타임 보호, 모든 클라우드의 보안과 같은 주요 컨테이너 보안 개념에 대해 알아보세요.

×
  피드백
본 웹 사이트에서는 기능과 분석 및 마케팅 목적으로 쿠키를 사용합니다. 웹 사이트를 계속 이용하면 쿠키 사용에 동의하시게 됩니다. 자세한 내용은 쿠키 공지를 읽어 주십시오.