컨테이너 보안이란 무엇인가요?

컨테이너 보안에는 개발부터 구축, 런타임에 이르기까지 컨테이너화된 애플리케이션과 그 인프라를 수명 주기 전반에 걸쳐 보호하는 것이 포함됩니다. 취약점 스캔, 구성 관리, 액세스 제어, 네트워크 세분화 및 모니터링을 포함합니다. 컨테이너 보안은 애플리케이션 격리의 본질적인 이점을 극대화하는 동시에 리소스 공유 및 잠재적인 공격 표면과 관련된 위험을 최소화하는 것을 목표로 합니다. 모범 사례를 준수하고 전문 보안 도구를 사용하면 조직은 업계 규정을 준수하면서 무단 액세스 및 데이터 침해로부터 컨테이너 환경을 보호할 수 있습니다.

 

컨테이너 보안 설명

컨테이너는 마이크로서비스 아키텍처를 활용하고 더 빠른 속도와 높은 이동성으로 운영할 수 있는 기능을 제공합니다. 컨테이너는 또한 내재적인 보안 이점을 제공합니다. 워크로드 격리, 애플리케이션 추상화, 컨테이너의 불변성이 실제로 컨테이너 도입에 큰 영향을 미칩니다.

Kubernetes역시 기본 제공 보안 기능을 제공합니다. 관리자는 역할 기반 액세스 제어(RBAC) 정책을 정의하여 클러스터 리소스에 대한 무단 액세스를 방지할 수 있습니다. 파드 보안 정책과 네트워크 정책을 구성하여 파드와 파드를 연결하는 네트워크에서 특정 유형의 악용을 방지할 수 있다. 관리자는 클러스터의 한 부분을 손상시키는 공격자로 인한 중단을 완화하기 위해 리소스 할당량을 부과할 수 있습니다. 예를 들어 리소스 할당량이 설정되어 있으면 공격자는 실행에 필요한 나머지 클러스터 리소스를 박탈하여 서비스 거부 공격을 실행할 수 없습니다.

하지만 이미 짐작하셨겠지만, 어떤 기술도 악의적인 활동으로부터 자유로울 수 없습니다. 애플리케이션뿐만 아니라 호스트, 런타임, 레지스트리부터 오케스트레이션 플랫폼과 기본 시스템에 이르기까지 컨테이너화된 환경을 보호하기 위해 구현된 기술 및 관행인 컨테이너 보안은 매우 중요합니다.

비디오: 컨테이너 스캔을 통해 컨테이너 이미지의 취약점을 탐지하고 개발 수명 주기 전반에 걸쳐 보안 및 규정 준수를 보장하세요.

배경

컨테이너 보안은 IT 아키텍처의 변화하는 특성을 반영합니다. 클라우드 네이티브 컴퓨팅의 부상으로 애플리케이션 제작 방식이 근본적으로 바뀌었습니다. 기술 수요에 발맞춰 보안에 대한 접근 방식을 조정합니다.

과거에 사이버 보안은 하나의 경계를 보호하는 것을 의미했습니다. 컨테이너는 컨테이너화된 환경을 해석, 모니터링 및 보호하기 위해 특수 도구가 필요한 여러 계층의 추상화를 추가하여 이 개념을 쓸모없게 만듭니다.

컨테이너 생태계는 수많은 도구와 기존 플랫폼에 비해 해결해야 하는 고유한 문제를 고려할 때 이해하기 어려울 수 있습니다. 동시에 컨테이너 기술의 광범위한 채택은 CI/CD 파이프라인의 초기 단계부터 구축 및 런타임에 이르기까지 컨테이너를 보호하는 왼쪽으로 전환할 수 있는 기회를 제공합니다.

그러나 컨테이너 보안에 대해 자세히 알아보기 전에 컨테이너 관리에 사용되는 플랫폼에 대해 이해할 필요가 있습니다. 가장 크고 잘 알려진 플랫폼 중 하나인 Kubernetes에 초점을 맞추겠습니다.

쿠버네티스란 무엇인가요?

Kubernetes는 컨테이너 기반 인프라를 최적화하고 구현하는 데 도움이 되는 선도적인 오케스트레이션 플랫폼 중 하나입니다. 보다 구체적으로 애플리케이션 개발, 구축, 관리와 같은 프로세스를 자동화하여 컨테이너화된 워크로드를 관리하는 데 사용되는 오픈 소스 플랫폼입니다.

널리 채택된 오픈 소스 플랫폼으로서, 컨테이너화된 애플리케이션을 구축하는 조직에서는 Kubernetes 보안이 매우 중요합니다. 조직은 특히 타사 애플리케이션에 오픈 소스 코드를 통합할 때 안전한 환경을 구축해야 합니다. 광범위한 에코시스템과 컨테이너 관리를 위한 수많은 통합 기능을 갖춘 Kubernetes는 빌드 및 구축 파이프라인의 핵심에 보안을 통합하는 자동화되고 체계적인 프로세스를 생성할 수 있습니다. 조직은 RBAC, 파드 보안 정책, 네트워크 정책과 같은 Kubernetes의 기본 기능을 활용하여 탄력적인 컨테이너 오케스트레이션 인프라로 견고한 보안 태세를 구축하고 유지할 수 있습니다.

컨테이너의 이점

간단히 말해, 컨테이너를 사용하면 클라우드 네이티브 애플리케이션을 그 어느 때보다 쉽게 빌드, 구축, 확장할 수 있습니다. 클라우드 네이티브 앱 개발자에게 컨테이너의 가장 큰 장점은 다음과 같습니다:

  1. 마찰을 제거합니다: 컨테이너로 패키지화된 애플리케이션 코드는 어디서나 실행할 수 있으므로 개발자는 테스트에서 프로덕션으로 애플리케이션 코드를 이동하는 데 따르는 많은 마찰을 피할 수 있습니다.
  2. 애플리케이션 개발을 위한 신뢰할 수 있는 단일 소스: 애플리케이션과 관련된 모든 종속성은 컨테이너 내에 포함되어 있습니다. 이를 통해 애플리케이션을 가상 머신, 베어메탈 서버, 퍼블릭 클라우드에서 쉽고 동일하게 실행할 수 있습니다.
  3. 빌드 시간 단축: 컨테이너의 유연성과 이동성 덕분에 개발자는 이전에는 달성할 수 없었던 생산성 향상을 이룰 수 있습니다.
  4. 개발자를 위한 자신감: 개발자는 애플리케이션 또는 플랫폼이 모든 운영 체제에서 동일하게 실행된다는 사실을 알고 안심하고 애플리케이션을 구축할 수 있습니다.
  5. 향상된 협업: 컨테이너를 사용하는 여러 팀이 다른 컨테이너에 패키지된 코드를 방해하지 않고 앱이나 서비스의 개별 부분을 작업할 수 있습니다.

다른 IT 아키텍처와 마찬가지로 클라우드 네이티브 애플리케이션에도 보안이 필요합니다. 컨테이너 환경은 이미지, 컨테이너, 호스트, 런타임, 레지스트리 및 오케스트레이션 플랫폼을 대상으로 하는 다양한 사이버 보안 문제를 야기하며, 이 모든 문제를 해결해야 합니다.

 

공격 표면 이해하기

쿠버네티스의 거대한 다계층 프레임워크를 생각해 보세요. 코드와 컨테이너부터 클러스터와 타사 클라우드 서비스에 이르기까지 각 계층은 각기 다른 보안 문제를 안고 있습니다.

Kubernetes 구축을보호하려면 기본 인프라(노드, 로드 밸런서 등), 구성 가능한 구성 요소, 클러스터에서 실행되는 애플리케이션을 보호해야 하며, 여기에는 기본 노드의 상태 유지와 API 및 Kubelet에 대한 액세스 제어가 포함됩니다. 또한 클러스터에서 악의적인 워크로드가 실행되는 것을 방지하고 엄격한 네트워크 제어를통해 워크로드 통신을 격리하는 것도 중요합니다.

컨테이너 런타임에는 컨테이너 내에서 권한 상승을 가능하게 하는 코딩 결함이 있을 수 있습니다. Kubernetes API 서버가 부적절하게 구성되어 공격자가 잠겨 있는 것으로 추정되는 리소스에 액세스할 수 있는 기회를 제공할 수 있습니다. 권한 상승 공격을 가능하게 하는 취약점은 컨테이너화된 애플리케이션 또는 Kubernetes 노드에서 실행되는 운영 체제 내에 존재할 수 있습니다.

Anatomy of the container attack surface

Figure 1: Anatomy of the container attack surface

이 시스템에서는 한 계층에서 문제가 발생하면 다른 계층에서 보안 문제가 발생하면 문제가 증폭됩니다.

물론 컨테이너에는 취약점이 있을 수 있습니다. 동시에 컨테이너는 가시성을 가릴 수 있습니다. 안전하지 않은 단일 이미지가 실행 중인 별도의 컨테이너로 여러 번 인스턴스화된다고 상상해 보세요. 하나의 균열이었던 요새는 이제 거대한 균열의 네트워크가 되어 있습니다.

컨테이너 구축이 증가함에 따라 시스템 운영 및 보안에 대한 가시성을 유지해야 하는 과제가 점점 더 어려워지고 있습니다. 이는 수많은 목표 중 하나인 가시성 유지에 불과합니다.

표 1에 자세히 설명되어 있는 그림 1은 컨테이너화된 애플리케이션의 공격 표면을 이해하기 위한 출발점을 제공합니다.

묘사가 단순화되었다는 점에 유의하세요. 실제로 공격자들은 컨테이너화된 애플리케이션의 취약점을 악용하기 위해 수많은 경로를 탐색하고 있습니다. 이 보안 스택을 방어하는 것이 다른 환경과 기술을 보호하는 것보다 반드시 어려운 것은 아닙니다. 컨테이너화는 조직이 안전하고 복원력 있는 인프라를 위해 해결해야 하는 고유한 보안 고려 사항을 제시할 뿐입니다.

공격 표면적 공격 벡터 설명
네트워크를 통해 악성 네트워크 트래픽 네트워크 취약점이나 잘못된 구성을 악용하여 컨테이너 환경에 액세스하는 행위. 열린 포트를 검색하고 잘못된 구성을 악용하여 워커 노드에 액세스합니다.
호스트 구성 잘못된 구성의 호스트 시스템 호스트 운영 체제의 잘못된 구성을 악용하여 컨테이너 환경에 액세스하는 경우. 컨테이너 구성 파일과 같은 민감한 파일에 액세스하는 안전하지 않은 파일 권한을 발견합니다.
호스트 취약점 패치되지 않은 호스트 취약점 호스트 운영 체제의 취약점을 악용하여 컨테이너 환경에 액세스하는 행위. 패치되지 않은 커널 취약점을 식별하고 악용하여 워커 노드에 대한 루트 권한을 획득합니다.
호스트 애플리케이션 취약점 패치되지 않은 호스트 애플리케이션 취약점 호스트 애플리케이션의 취약점을 악용하여 컨테이너 환경에 액세스하는 행위. 취약점이 있는 이전 버전의 Docker를 대상으로 작업자 노드에 대한 루트 권한을 얻습니다.
컨테이너 오케스트레이션 취약점 및 잘못된 설정 잘못 구성된 컨테이너 오케스트레이션 컨테이너 오케스트레이션 시스템의 잘못된 구성을 악용하여 컨테이너 환경에 액세스하는 경우. 쿠버네티스 클러스터에서 안전하지 않은 액세스 제어 정책을 활용하여 파드와 서비스에 액세스하기.
손상된 컨테이너 이미지 컨테이너 이미지 빌드 프로세스에 대한 공격자 접근 권한 획득 컨테이너 이미지 빌드 프로세스를 손상시켜 컨테이너 이미지에 악성 코드를 삽입합니다. CI/CD 파이프라인의 취약점을 악용하여 컨테이너 이미지 빌드 프로세스 중에 악성 코드를 삽입합니다.
컨테이너 취약성 및 잘못된 설정 패치되지 않은 컨테이너 취약점 컨테이너 자체의 취약점을 악용하여 컨테이너 환경에 대한 액세스 권한을 얻습니다. 컨테이너 내에서 실행되는 인기 애플리케이션의 패치되지 않은 취약점을 타겟팅하여 액세스 권한을 획득합니다.
컨테이너 탈출 공격자가 컨테이너에 대한 권한 액세스 권한 획득 컨테이너의 격리 상태를 벗어나 호스트 시스템에 액세스할 수 있습니다. 컨테이너 런타임의 취약점을 악용하거나 호스트 시스템의 잘못된 구성을 악용하여 호스트 시스템에 대한 루트 권한을 획득합니다.

표 1: 컨테이너 공격 표면 분석하기

다행히도 설계 및 프로세스 고려 사항과 기본 및 타사 보안 옵션을 통해 공격 표면의 각 계층을 강화하여 손상된 워크로드의 위험을 줄일 수 있습니다. 다각적인 전략이 필요하겠지만, 이 가이드의 목표는 바로 그 전략을 제공하는 것입니다.

Figure 2: Container security spans the full software development lifecycle

Figure 2: Container security spans the full software development lifecycle

 

컨테이너 보안 방법

컨테이너 사용자는 컨테이너화된 애플리케이션의 취약성 관리, 규정 준수, 런타임 보호, 네트워크 보안 요구 사항을 해결하기 위해 특별히 구축된 풀스택 보안을 확보해야 합니다.

컨테이너 네트워크 보안

컨테이너화된 애플리케이션은 크립토재킹, 랜섬웨어, 봇넷 C2와 같은 베어메탈 및 가상머신 기반 애플리케이션과 동일한 위험에 직면합니다. 컨테이너 네트워크 보안은 다양한 전략을 통해 원치 않는 통신을 선제적으로 제한하고 애플리케이션을 공격하는 위협을 방지합니다. 네트워크 보안의 핵심 구성 요소에는 안전하고 탄력적인 환경을 유지하기 위한 마이크로세그멘테이션, 액세스 제어, 암호화 및 정책이 포함됩니다. 지속적인 모니터링, 로깅, 정기적인 감사를 통해 잠재적인 보안 허점을 파악하고 수정할 수 있으며, 적시에 패치를 적용하여 플랫폼과 인프라를 최신 상태로 유지할 수 있습니다.

시프트-레프트 보안 툴은 알려진 취약점에 대해 구축 시 보호 기능을 제공하는 반면, 컨테이너화된 차세대 방화벽은 알려지지 않은 취약점과 패치되지 않은 취약점으로부터 보호합니다. 레이어 7 심층 패킷 검사를 수행하고 허용된 모든 트래픽을 스캔하여 멀웨어가 클러스터 내에 침입하여 확산되는 것을 식별 및 방지하고 데이터 유출 및 명령 및 제어(C2) 공격에 사용되는 악의적인 아웃바운드 연결을 차단합니다. ID 기반 마이크로 세그먼테이션은 레이어 3과 4에서 애플리케이션 간의 통신을 제한하는 데 도움이 됩니다.

컨테이너 런타임 보안

클라우드 네이티브 런타임 보안은 실행 중인 컨테이너의 새로운 취약점을 식별하고 이에 대해 애플리케이션을 보호하는 프로세스입니다. 컨테이너를 사용하는 조직은 향상된 런타임 보호 기능을 활용하여 이상 징후 탐지가 의존하는 행동 기준선을 설정해야 합니다. 런타임 보안은 기준선을 벗어나는 악성 프로세스, 파일 및 네트워크 동작을 식별하고 차단할 수 있습니다.

조직은 심층 방어 전략을 사용하여 OWASP Top 10과 같은 레이어 7 공격을 방지하기 위해 컨테이너화된 차세대 방화벽을 통해 컨테이너 네트워크 보안과 더불어 웹 애플리케이션 및 API 보안으로 런타임 보호를 구현해야 합니다.

컨테이너 등록 보안

컨테이너 빌드 단계에 보안을 적용한다는 것은 런타임에 사후 대응하는 대신 왼쪽으로 이동하는 것을 의미합니다. 빌드 단계의 보안은 취약성, 멀웨어, 안전하지 않은 코드를 제거하는 데 중점을 두어야 합니다. 컨테이너는 라이브러리, 바이너리, 애플리케이션 코드로 구성되어 있으므로 컨테이너 레지스트리를 보호하는 것이 중요합니다.

컨테이너 레지스트리 보안의 첫 번째 단계는 조직을 위한 공식 컨테이너 레지스트리를 설정하는 것입니다. 의심할 여지 없이 하나 이상의 레지스트리가 이미 존재합니다. 이를 찾아내고 보안 표준과 프로토콜을 설정하는 등 적절한 보안을 유지하는 것이 보안 팀의 역할입니다. 컨테이너 레지스트리 보안 표준의 가장 중요한 목표는 신뢰할 수 있는 이미지를 만드는 데 중점을 두어야 합니다. 이를 위해서는 무엇보다도 신뢰할 수 없는 레지스트리에서 컨테이너가 구축되는 것을 방지하는 정책에 대해 DevOps와 보안 팀이 조율해야 합니다.

레지스트리 내의 침입이나 취약점은 실행 중인 애플리케이션을 손상시킬 수 있는 쉬운 기회를 제공합니다. 취약성 상태의 변화에 대해 레지스트리를 지속적으로 모니터링하는 것은 여전히 핵심 보안 요구 사항입니다. 다른 요구 사항으로는 레지스트리를 호스팅하는 서버를 잠그고 보안 액세스 정책을 사용하는 것 등이 있습니다.

컨테이너 오케스트레이션 보안

컨테이너 오케스트레이션 보안은 권한 초과 계정, 네트워크를 통한 공격, 원치 않는 측면 이동으로 인한 위험을 방지하기 위해 적절한 액세스 제어 조치를 시행하는 프로세스입니다. 보안 및 인프라 팀은 Docker 및 Kubernetes 활동이 명시적으로 화이트리스트에 포함된 ID 액세스 관리(IAM)최소 권한 액세스를활용하여 사용자가 적절한 역할에 따라 명령만 수행하도록 보장할 수 있습니다.

또한 조직은 포드 간 통신을 보호하고, 공격자가 환경을 측면으로 이동하는 것을 방지하여 피해를 제한하며, 공격으로부터 모든 프론트엔드 서비스를 보호해야 합니다.

호스트 운영 체제(OS) 보안

호스트 OS 보안은 사이버 공격으로부터 운영 체제(OS)를 보호하는 작업입니다. 클라우드 네이티브 앱 개발 기술이 성장함에 따라 호스트 보안에 대한 필요성도커지고 있습니다.

컨테이너 환경을 호스팅하는 OS는 보안과 관련하여 가장 중요한 계층일 것입니다. 호스트 환경을 손상시키는 공격은 침입자가 스택의 다른 모든 영역에 액세스할 수 있도록 허용할 수 있습니다. 그렇기 때문에 호스트의 취약점을 검사하고, CIS 벤치마크를 충족하도록 보안을 강화하고, 취약한 액세스 제어(Docker 명령, SSH 명령, sudo 명령 등)로부터 호스트를 보호해야 합니다.

 

컨테이너 보안 솔루션

컨테이너 환경을 보호하려면 잠재적인 취약성과 위협을 해결하기 위한 다계층적 접근 방식이 필요합니다. 최근 몇 년 동안 조직이 개발, 구축, 런타임 단계에서 컨테이너화된 애플리케이션과 인프라를 보호하기 위해 신뢰할 수 있는 컨테이너 보안 솔루션은 더욱 정교해지고 기능이 향상되었습니다. 최신 보안 도구는 침해 및 데이터 유출의 위험을 효과적으로 최소화하여 규정 준수를 촉진하고 안전한 환경을 유지하면서 DevSecOps 도입을 가속화합니다.

컨테이너 모니터링

레지스트리에서 취약점을 모니터링하는 기능은 컨테이너 보안을 유지하는 데 필수적입니다. 개발자가 컨테이너를 지속적으로 리핑하고 교체하기 때문에 보안 팀이 컨테이너에 시계열 스탬프를 적용할 수 있는 모니터링 도구는 컨테이너화된 환경에서 어떤 일이 발생했는지 파악하는 데 매우 중요합니다.

컨테이너 모니터링에 널리 사용되는 도구로는 Prometheus, Grafana, Sumo Logic, Prisma Cloud 등이 있습니다. Prisma Cloud는 클라우드 네이티브 및 기존 애플리케이션 모두에 대해 런타임 위협 탐지 및 이상 징후 분석을 제공합니다. 머신 러닝과 행동 분석을 활용하여 빌드부터 런타임까지 전체 컨테이너 수명 주기에서 의심스러운 활동을 식별합니다.

컨테이너 스캔 도구

컨테이너는 프로덕션 환경에 구축되기 전과 교체된 후 모두 지속적으로 취약점을 검사해야 합니다. 개발자가 실수로 알려진 취약점이 있는 라이브러리를 컨테이너에 포함시키는 것은 너무 쉽습니다. 또한 거의 매일 새로운 취약점이 발견된다는 사실을 기억하는 것도 중요합니다. 즉, 오늘은 완벽하게 안전한 컨테이너 이미지처럼 보이는 것이 내일은 모든 종류의 멀웨어가 유포되는 통로가 될 수 있습니다. 그렇기 때문에 컨테이너 이미지 신뢰 유지가 컨테이너 스캔 도구의 핵심 구성 요소입니다.

컨테이너 스캐닝 도구로는 Aqua Security, Anchore, Clair, Prisma Cloud 등이 있습니다. Prisma Cloud는 레지스트리와 CI/CD 파이프라인중에 컨테이너 이미지에 대한 심층 계층 취약성 스캔을 제공합니다. 알려진 취약점, 잘못된 구성, 멀웨어를 탐지하여 처음부터 안전한 컨테이너를 구축할 수 있도록 도와줍니다.

컨테이너 네트워크 보안 도구

일단 구축된 컨테이너는 독점 데이터나 컴퓨팅 리소스를 훔치려는 끊임없는 시도로부터 보호되어야 합니다. 컨테이너화된 차세대 방화벽, 웹 애플리케이션 및 API 보안(WAAS), 마이크로세그멘테이션 도구는 컨테이너(남북 및 동서)로 들어오고 나가는 모든 트래픽을 검사하고 보호하여 Kubernetes 환경에 대한 완전한 레이어 7 가시성과 제어를 제공합니다. 또한 컨테이너 방화벽은 컨테이너 인프라의 급변하는 규모와 수요에 따라 동적으로 확장되어 비즈니스 운영을 위한 보안과 대역폭을 보장합니다.

네트워크 보안 도구에는 Calico, Flannel, CNI 플러그인(예: Istio, Cilium), Kubernetes NetworkPolicy 및 Prisma Cloud가 있습니다. Prisma Cloud는 Kubernetes와 같은 컨테이너 오케스트레이션 플랫폼과 통합되어 네트워크 위협 탐지를 제공합니다. 컨테이너 간의 동서 방향 트래픽을 보호하고 환경 내에서 무단 측면 이동을 방지합니다.

정책 엔진

클라우드 보안 팀은 최신 도구를 사용하여 특정 마이크로서비스에 액세스할 수 있는 사람과 항목을 기본적으로 결정하는 정책을 정의할 수 있습니다. 조직은 이러한 정책을 정의하고 고도로 분산된 컨테이너 애플리케이션 환경 전반에서 일관되게 유지 관리할 수 있는 프레임워크가 필요합니다.

널리 사용되는 정책 엔진으로는 Cilium, OPA Gatekeeper, Neutrino, Kubernetes 네트워크 정책 API 및 Prisma Cloud가 있습니다. Prisma Cloud는 네트워크 액세스 제어, 리소스 제한, 이미지 서명 등 컨테이너 구축 전반에 걸쳐 보안 정책을 시행합니다. 이를 통해 일관된 보안 태세를 유지하고 조직의 표준을 준수할 수 있습니다.

적합한 솔루션 선택하기

컨테이너화된 환경을 보호하기 위한 솔루션을 선택할 때는 조직의 요구사항과 위험 영역을 고려하세요. 고급 위협 탐지, 취약성 관리 또는 엄격한 정책 시행이 필요하신가요? 기존 도구 및 인프라와의 통합을 평가합니다. 개발 파이프라인, 오케스트레이션 플랫폼 및 SIEM 시스템과의 원활한 통합은 판도를 바꾸고 있습니다.

효과적인 컨테이너 보안은 개별 도구를 넘어선다는 점을 기억하세요. 지속적인 모니터링, 선제적 스캔, 강력한 정책, 안정적인 네트워크 보안을 통해 계층화된 접근 방식을 구현하면 위협에 대한 컨테이너 환경의 복원력을 크게 향상시킬 수 있습니다.

 

컨테이너 보안 FAQ

정책 엔진은 DevSecOps 팀이 애플리케이션, 네트워크, 데이터 등의 리소스에 대한 액세스 및 사용을 관리하는 정책을 정의, 관리 및 시행할 수 있도록 하는 소프트웨어 구성 요소입니다. 

정책 엔진은 미리 정의된 규칙 및 조건에 따라 수신 요청을 평가하여 해당 정책에 따라 결정을 내립니다. 규정 준수, 보안 강화, 리소스에 대한 통제력 유지에 도움이 됩니다. 컨테이너화된 환경에서 정책 엔진은 분산된 애플리케이션과 마이크로서비스전반에서 액세스 및 보안 정책을 일관되게 유지하는 데 중요한 역할을 하며, 복잡하고 동적인 인프라에서 정책 적용을 관리하고 자동화하는 데 도움을 줍니다.

CVE(공통 취약점 및 노출)는 공개적으로 알려진 사이버 보안 취약점 및 노출에 대한 정보를 식별, 분류 및 공유하기 위한 표준화된 시스템을 말합니다. CVE 항목은 고유 식별자, 설명, 심각성 점수로 구성됩니다. MITRE Corporation에서 관리하는 이 시스템은 다양한 데이터베이스, 도구 및 조직에서 취약점 추적, 관리 및 커뮤니케이션을 용이하게 하는 것을 목표로 합니다. CVE는 취약점에 대한 공통 참조를 제공함으로써 보안 전문가, 연구원 및 개발자가 잠재적 위험을 더 잘 이해하고, 해결 노력의 우선순위를 정하며, 소프트웨어 및 시스템의 전반적인 보안 태세를 강화할 수 있도록 지원합니다.

MITRE ATT&CK 매트릭스는 사이버 공격자의 전술과 기법에 대한 포괄적이고 전 세계적으로 접근 가능한 지식 기반입니다. 미국 정부가 후원하는 연구 개발 센터를 운영하는 비영리 조직인 MITRE에서 개발 및 유지 관리합니다. ATT&CK는 적대적 전술, 기법 및 상식을 의미합니다.

매트릭스는 사이버 공격자가 시스템, 네트워크, 애플리케이션을 손상시키는 데 사용하는 다양한 방법을 이해하고, 분류하고, 문서화하기 위한 프레임워크 역할을 합니다. 위협 탐지, 예방, 대응, 완화 등 사이버 보안 라이프사이클의 다양한 단계에서 보안 팀, 연구원 및 조직을 지원하도록 설계되었습니다.

MITRE ATT&CK 매트릭스는 공격자의 공격 라이프사이클의 여러 단계를 나타내는 전술이라고 하는 일련의 범주로 조직되어 있습니다. 각 전술에는 공격자가 해당 단계에서 목표를 달성하기 위해 사용하는 여러 가지 기술이 포함되어 있습니다. 이 기법은 사이버 공격에 사용되는 특정 방법과 도구에 대한 자세한 정보를 제공하는 하위 기법으로 더 세분화됩니다.

보안 컨텍스트는 컴퓨팅 시스템 내의 프로세스, 사용자 또는 개체의 보안 설정과 관련된 속성 또는 속성의 집합입니다. 컨테이너화된 환경에서 보안 컨텍스트는 사용자 및 그룹 권한, 파일 시스템 액세스, 권한 수준 및 기타 보안 관련 구성과 같은 컨테이너 및 파드의 보안 및 액세스 제어 설정을 정의합니다.

쿠버네티스는 파드 수준 또는 컨테이너 수준에서 보안 컨텍스트를 설정할 수 있습니다. 보안 컨텍스트를 구성하면 컨테이너화된 애플리케이션의 보안 설정 및 제한을 제어하여 애플리케이션이 적절한 권한으로 안전하게 실행되도록 할 수 있습니다.

보안 컨텍스트 내에서 정의할 수 있는 몇 가지 주요 속성은 다음과 같습니다:

  • 사용자 ID(UID) 및 그룹 ID(GID): 이러한 설정은 컨테이너 또는 파드가 실행될 사용자 및 그룹을 결정하여 리소스 및 시스템 기능에 대한 액세스를 제어합니다.
  • 권한 에스컬레이션 제어: 이 설정은 컨테이너 내의 프로세스가 루트 사용자로 실행하는 등의 추가 권한을 얻을 수 있는지 여부를 결정합니다. 권한 에스컬레이션을 비활성화하면 손상된 컨테이너의 잠재적 영향을 제한할 수 있습니다.
  • 파일 시스템 액세스: 보안 컨텍스트를 사용하면 읽기 전용 액세스 또는 특정 권한으로 볼륨을 마운트하는 등 컨테이너가 파일 시스템에 액세스하는 방법을 정의할 수 있습니다.
  • Linux 기능: 이러한 설정은 네트워크 바인딩, 시스템 시간 설정 또는 관리 작업 등 컨테이너가 사용할 수 있는 특정 기능을 제어합니다.
  • SELinux 컨텍스트: 보안 컨텍스트를 사용하여 컨테이너 또는 파드의 SELinux 컨텍스트를 정의하여 필수 액세스 제어 정책을 적용하고 컨테이너를 호스트 시스템에서 더 격리할 수 있습니다.

쿠버네티스에서 보안 컨텍스트를 적절하게 구성하면 컨테이너화된 애플리케이션의 보안을 강화하고, 최소 권한 원칙을 적용하며, 잠재적인 보안 위험으로부터 전체 시스템을 보호할 수 있습니다.

코드 보안은 소프트웨어 코드가 안전하게 작성되고 유지 관리되도록 구현된 관행과 프로세스를 말합니다. 여기에는 잠재적인 취약점을 식별 및 완화하고 보안 위험을 방지하기 위해 보안 코딩 모범 사례를 따르는 것이 포함됩니다. 코드 보안은 다음과 같은 다양한 측면을 포괄합니다:

  • 정적 애플리케이션 보안 테스트(SAST): 소스 코드, 바이트코드 또는 바이너리 코드를 분석하여 코드를 실행하지 않고도 잠재적인 보안 취약점을 식별합니다.
  • 동적 애플리케이션 보안 테스트(DAST): 실행 중인 애플리케이션을 테스트하여 공격을 시뮬레이션하고 애플리케이션의 동작을 분석하여 보안 취약점을 파악합니다.
  • 소프트웨어 구성 분석: 코드에 사용된 종속성(라이브러리, 프레임워크 등)을 스캔하고 모니터링하여 알려진 취약점을 식별하고 최신 상태인지 확인합니다.
  • 안전한 코딩 관행: 가이드라인과 모범 사례(예: OWASP 10대 프로젝트)를 따라 안전한 코드를 작성하고 취약점이 발생하지 않도록 하세요.

정책은 쿠버네티스 환경 내에서 보안 요구 사항을 적용하는 데 사용되는 특정 보안 규칙 및 가이드라인이며, IaC는 코드를 사용하여 인프라 리소스를 관리하고 프로비저닝하기 위한 보다 광범위한 관행입니다. 두 가지를 함께 사용하여 Kubernetes 환경 내에서 보안, 일관성 및 자동화를 개선할 수 있습니다. 

IaC를 사용하면 인프라 정의의 일부로 네트워크 정책, 방화벽 규칙, 액세스 제어와 같은 보안 구성을 정의하고 관리할 수 있습니다. 예를 들어, 쿠버네티스 매니페스트에 쿠버네티스 네트워크 정책, 수신 및 송신 구성, 역할 기반 액세스 제어(RBAC) 정책을 포함할 수 있으며, 이는 코드로서의 인프라로 관리됩니다.

Terraform, CloudFormation, Kubernetes 매니페스트와 같은 도구를 사용하면 인프라 리소스 및 보안 구성을 일관되고 자동화된 방식으로 관리할 수 있습니다. 보안 조치를 IaC 정의에 통합하면 컨테이너 및 Kubernetes 환경의 전반적인 보안을 개선하고 모범 사례 및 규정 준수 요구 사항을 준수할 수 있습니다.

PaC(정책 코드화) 는 인프라 정책, 규정 준수 및 보안 규칙을 버전 제어 시스템 내에서 코드로 인코딩하고 관리하는 것을 포함합니다. PaC를 통해 조직은 정책의 시행 및 감사를 자동화하여 요구 사항에 따라 인프라를 구축하고 유지 관리할 수 있습니다. 이러한 정책을 코드 프로세스 또는 인프라 구축의 일부로 정책에 통합함으로써 조직은 툴링이 필요한 표준 및 모범 사례와 일치하도록 할 수 있습니다.

알림 처리는 알림을 받을 시기 또는 이상 징후에 대해 원하는 알림을 지정하는 방법입니다. 설정에는 보수적, 보통, 공격적 등이 있습니다. 기본 설정은 문제의 심각성에 따라 낮음, 중간, 높음으로 나뉩니다. 

  • 보수적은 심각성이 높은 경고를 생성합니다.
  • 보통은 높음 및 중간 심각성 경고를 생성합니다.
  • 공격적은 높음, 중간, 낮음 심각성 경고를 생성합니다.
이상 징후 설정 사용자 지정을 통해 이상 징후 정책에 대한 알림이 생성되는 기준을 제어할 수 있습니다. 사용자는 이상 징후 설정을 수정하여 모델 학습 임계값을 변경하고, 알림 처리를 사용자 지정하고, 신뢰할 수 있는 리소스의 알림을 억제하기 위해 이상 징후 신뢰할 수 있는 목록을 추가할 수 있습니다.
이상 징후 학습 모델 임계값은 UEBA 및 네트워크 이상 징후에 대한 이상 징후 탐지 모델 학습을 위한 다양한 임계값을 정의하는 방법을 말합니다. 학습 모델 임계값을 낮음, 중간 또는 높음으로 설정할 수 있습니다. 이러한 임계값은 모델 학습에 사용되는 데이터의 양(예: 최소 100개의 사용자 이벤트)과 기간(예: 30일)을 결정하는 데 사용됩니다.
이상 징후 신뢰할 수 있는 목록은 알림을 생성하지 않으려는 특정 리소스를 억제하는 방법입니다. 예를 들어, 침투 테스트를 수행하는 데 사용하는 IP 주소가 있는 경우 해당 IP를 신뢰할 수 있는 목록에 추가하여 경고를 표시하지 않도록 할 수 있습니다.
감사 이벤트는 환경의 감사 이벤트를 모니터링하여 잠재적인 정책 위반이 있는지 확인하는 RQL 기반 정책 집합을 말합니다. 감사 정책을 만들어 잠재적으로 클라우드 환경을 위험에 빠뜨릴 수 있는 루트 활동이나 구성 변경과 같은 민감한 이벤트에 플래그를 지정할 수 있습니다.
네트워크 이상 징후 정책은 머신 러닝을 사용하여 네트워크 로그에서 악성 네트워크 트래픽을 지속적으로 모니터링하고 AutoFocus와 IP를 매칭하는 이상 징후 정책입니다. 네트워크 이상 징후 정책은 봇넷, 랜섬웨어, 웜 공격 등 다양한 위협을 탐지할 수 있습니다.
권한 부여에는 사전 정의된 정책에 따라 인증된 사용자에게 리소스 또는 시스템 기능에 대한 액세스 권한을 부여하는 작업이 포함됩니다. 쿠버네티스에서는 이 개념을 역할 기반 액세스 제어(RBAC)라고 합니다. RBAC는 개발자와 같은 사용자 그룹에 업무 요구 사항에 따라 특정 리소스 또는 기능과 상호 작용할 수 있는 권한을 부여합니다. 강력하고 일관된 사용자 권한 부여 정책을 구현하면 사용자에게 필요한 최소한의 권한만 부여하여 무단 액세스 및 권한 상승의 위험을 줄일 수 있습니다.

보안 ID 저장소는 암호, 암호화 키, API 토큰 및 기타 비밀과 같은 민감한 정보를 고도로 보호되고 암호화된 방식으로 안전하게 저장하도록 설계된 솔루션 및 메커니즘을 말합니다. 비밀 금고와 하드웨어 보안 모듈(HSM)은 보안 ID 저장소의 두 가지 일반적인 예입니다.

비밀 금고는 민감한 데이터를 관리, 저장 및 보호하도록 설계된 안전한 소프트웨어 기반 스토리지 시스템입니다. 암호화 및 액세스 제어 메커니즘을 사용하여 권한이 부여된 사용자 또는 애플리케이션만 저장된 비밀에 액세스할 수 있도록 합니다. 비밀 금고의 예로는 HashiCorp Vault, Azure Key Vault, AWS Secrets Manager가 있습니다. 

비밀 보관소 기능

  • 미사용 및 전송 중 암호화
  • 세분화된 액세스 제어
  • 감사 로깅 및 모니터링
  • 키 순환 및 버전 관리
  • 기존 ID 및 액세스 관리(IAM) 시스템과의 통합

하드웨어 보안 모듈(HSM)은 암호화 키를 보호 및 관리하고, 암호화 및 복호화 작업을 수행하며, 민감한 암호화 기능을 실행하기 위한 안전한 환경을 제공하는 변조 방지 기능이 있는 보안성이 뛰어난 전용 물리적 장치입니다. HSM은 물리적 공격과 논리적 공격 모두로부터 보호하도록 설계되어 저장된 키의 무결성과 기밀성을 보장합니다. HSM의 예로는 SafeNet Luna HSM, nCipher nShield 및 AWS CloudHSM이 있습니다.

HSM의 주요 기능

  • FIPS 140-2 레벨 3 이상 인증(암호화 모듈에 대한 미국 정부 표준)
  • 안전한 키 생성, 저장 및 관리
  • 하드웨어 기반 난수 생성
  • 변조 감지 및 보호
  • 다양한 암호화 알고리즘 지원

비밀 금고와 HSM은 모두 안전한 ID 스토리지 솔루션을 제공하여 무단 액세스, 데이터 유출 및 기타 보안 사고의 위험을 줄이는 것을 목표로 합니다. 보안 요구 사항, 예산, 통합 요구 사항 등의 요인에 따라 선택해야 합니다.

UEBA는 알 수 없는 위치에서 로그온하는 사용자, 먼 지리적 위치에서 연속적인 로그인 시도, 일반적으로 많은 수의 컴퓨팅 리소스가 생성되는 등 비정상적인 사용자 활동을 식별하기 위한 일련의 이상 징후 정책을 말합니다.