/
제로 트러스트 세그멘테이션

마이크로세그멘테이션으로 탄력적이고 안전한 마이크로서비스 구축

이 기사는 원래 에 게재되었습니다. 뉴 스택.

약 10~12년 전, 소프트웨어 세계는 엔터프라이즈 애플리케이션의 아키텍처 측면에서 변화를 경험했습니다.아키텍트와 소프트웨어 빌더는 프라이빗 데이터 센터에 배포되는 긴밀하게 연결된 거대한 모놀리식 애플리케이션에서 벗어나 퍼블릭 클라우드 인프라에서 호스팅되는 마이크로서비스 중심의 아키텍처로 전환하기 시작했습니다.마이크로서비스의 고유한 분산 특성은 퍼블릭 클라우드의 새로운 보안 과제입니다.지난 10년 동안 확장 가능하고 자율적이며 강력한 엔터프라이즈 애플리케이션을 구축하기 위한 마이크로서비스 지향 아키텍처의 채택이 증가했음에도 불구하고 조직은 기존 데이터 센터에 비해 클라우드에서 이러한 새로운 공격 표면을 보호하는 데 어려움을 겪는 경우가 많았습니다.여기에는 멀티테넌시, 운영 환경뿐 아니라 인프라에 대한 가시성 및 제어 부족에 대한 우려도 포함됩니다.이러한 아키텍처 변화는 특히 더 빠른 컨테이너 기반 배포에 중점을 두고 있는 상황에서 보안 목표를 달성하는 것을 더욱 어렵게 만듭니다.

이 문서의 목적은 마이크로세그멘테이션이 무엇인지, 그리고 마이크로세그멘테이션을 통해 소프트웨어 아키텍트, DevOps 엔지니어, IT 보안 아키텍트가 안전하고 복원력이 뛰어난 마이크로서비스를 구축할 수 있는 방법을 이해하는 것입니다.구체적으로 다음과 같은 내용을 설명하겠습니다. 네트워크 보안 널리 사용되는 컨테이너 오케스트레이션 메커니즘인 Kubernetes와 관련된 문제점에 대해 알아보겠습니다. 보안 침해 발생 시 측면 이동을 방지하는 마이크로세그멘테이션의 가치를 설명하겠습니다.

마이크로서비스 배포의 보안 문제

마이크로서비스 지향 아키텍처에서는 애플리케이션을 소규모의 느슨하게 결합된 서비스로 분할해야 합니다.이러한 서비스는 분산형 특성상 자체 데이터스토어를 보유하게 되는 경우가 많습니다.이러한 각 서비스는 컨테이너를 사용하여 독립적으로 배포됩니다. 컨테이너는 애플리케이션이 오브젝트 코드, 타사 라이브러리, 운영 체제, 도구 및 기타 종속성에 이르기까지 모든 것을 패키징할 수 있는 메커니즘을 제공합니다.모든 필수 요소가 패키징되면 컨테이너는 이를 원활하게 실행할 수 있는 실행 환경을 제공합니다.이러한 컨테이너는 Kubernetes와 같은 오케스트레이터를 사용하여 관리됩니다.

널리 알려진 개념에 따르면 컨테이너 에코시스템은 격리를 통해 보안을 강화하도록 설계되었습니다.그러나 컨테이너 간의 격리가 반드시 필요한 보안 경계를 제공하는 것은 아닙니다.쿠버네티스는 인증, 권한 부여, 네트워크 정책, 포드 보안 표준 등과 같은 여러 보안 기능을 제공하지만, 안타깝게도 컨테이너와 쿠버네티스는 기본적으로 보안을 제공하지 않습니다.쿠버네티스 배포는 기본 구성에서 보안보다 기능을 우선시합니다.따라서 이러한 컨테이너의 생성, 이동 및 파기를 담당하는 개발자 또는 안정성 엔지니어는 배포의 보안을 보장하는 방법을 항상 알지 못할 수 있습니다.네트워킹 및 보안 관점에서 쿠버네티스의 몇 가지 중요한 측면을 자세히 살펴보겠습니다.

  1. 네임스페이스: 쿠버네티스에서 네임스페이스는 클러스터 리소스를 여러 사용자 간에 가상 공간으로 나누는 논리적인 방법입니다.Linux와 달리 아무 것도 적용하지 않습니다. 네트워크 세분화.네임스페이스는 보안 경계가 아니므로 한 네임스페이스의 서비스가 다른 네임스페이스의 서비스에 액세스할 수 있다는 점에 유의하세요.
  2. 네트워크 정책: 쿠버네티스 네트워크 정책은 네임스페이스, 포드, IP 주소 블록 간의 계층 3 및 계층 4 통신을 허용하는 애플리케이션별 구조입니다.쿠버네티스가 설치된 경우 네트워크 정책은 기본적으로 사용할 수 없습니다.포드를 생성하기 전에 네트워크 정책을 적용하려면 네트워크 플러그인을 설치하고 구성해야 합니다.또한 네트워크 정책을 서비스 수준에서 적용할 수 없다는 점도 주목할 만하다.서비스에 대한 액세스 제어를 확장할 수 없기 때문에 이는 보안 측면에서 볼 때 상당한 단점입니다.
  3. 포드 보안 표준: 클러스터에서 포드는 동일한 물리적 또는 가상 머신을 공유하는 여러 컨테이너를 지원합니다.이를 통해 포드 내 컨테이너 간의 데이터 공유 및 통신이 가능합니다.포드 보안 표준을 통해 관리자는 세분화된 권한 부여 모델을 사용하여 리소스와 해당 권한을 제어할 수 있습니다.이 보안 제어에는 어드미션 컨트롤러가 필요하며, 어드미션 컨트롤러는 기본적으로 활성화되어 있지 않습니다.권한 있는 포드는 모든 컨테이너에 대한 관리 액세스를 제공합니다.따라서 권한 있는 컨테이너에 대한 액세스 권한을 획득한 공격자는 호스트 리소스에 대한 관리자 액세스 권한을 얻을 수 있습니다.
  4. 비밀 저장소: 쿠버네티스는 암호, OAuth 토큰, SSH 키와 같은 민감한 기밀 정보를 일반 텍스트로 간주되는 기본 64 인코딩 형식의 비밀로 저장합니다.비밀에 대한 액세스를 제한하는 데 사용되는 권한 부여 정책은 기본적으로 구성되지 않습니다.이는 환경 변수 또는 매니페스트 파일을 통해 공유되며, 이는 기밀 처리에 있어 안전하지 않은 관행으로 간주되기도 합니다.저장된 암호에 대한 기본 암호화가 없고 강력한 비밀 관리 기능이 없는 상황에서 암호는 측면 이동의 매력적인 대상이 됩니다.

측면 이동 및 악의적인 내부자

Figure 1: malicious insider causing lateral movement

마이크로서비스의 분산형 특성은 연결성을 매우 중요하게 만듭니다.특히 컨테이너와 포드는 네임스페이스에서 서로 통신할 수 있어야 합니다.하지만 클러스터 계층의 기본 네트워크 정책이 반드시 다음을 구현하는 것은 아닙니다. 최소 권한 원칙 상자에서 꺼내세요.따라서 코드 보안 방법에 상관없이 공유 리소스에 대한 무단 암시적 액세스를 금지할 수는 없습니다.따라서 애플리케이션이 클러스터 내 측면 이동에 취약해질 수 있습니다.마이크로세그멘테이션을 사용하면 세분화된 액세스 제어를 구현하여 컨테이너, 포드 및 클러스터 수준에서 각 마이크로서비스 주변에 보안 영역을 생성하여 폭발 반경을 크게 줄이고 성공적인 공격으로부터 복구할 수 있는 탄력성을 높일 수 있습니다.

마이크로서비스와 관련하여 기존 Kubernetes 프레임워크의 보안 모델이 제시하는 두 번째로 두드러진 위협은 악의적인 내부자입니다.기본적으로 보안을 사용할 수 없는 경우 공격자의 관점에서 보면 몇 가지 잘못된 구성이 발생할 수 있습니다.강력한 액세스 제어 또는 권한 부여 정책이 없는 경우 서버 측 요청 위조와 같은 공격 (SRF) 공격자가 포드에 대한 인증된 액세스를 활용하여 다른 포드 내의 리소스에 대한 무단 액세스를 얻을 수 있도록 허용합니다.

위에서 논의한 바와 같이 기본적으로 비밀을 보호하는 데 적절한 보안 제어를 사용할 수 없다는 것을 알았습니다.기밀을 암호화하지 않고, 암호화하지 않는 것, 비밀에 대한 액세스를 제한하지 않는 것은 사실 관련 없는 문제이지만, 하나의 보안 제어 (이 경우에는 암호화 미비) 가 없는 경우 악의적인 내부자 (예: 불만을 품은 관리자) 의 악용을 방지하기 위해 두 번째 보안 제어 (예: 비밀 저장소에 대한 액세스 제한) 가 매우 중요합니다.

마이크로세그멘테이션을 통한 사이버 레질리언스 소개

보안의 관점에서 볼 때 복원력이란 공격이나 침해와 같은 치명적인 이벤트로 인한 단순한 장애로부터 신속하게 복구하는 능력을 말합니다.복원력이 뛰어난 마이크로서비스를 구축하기 위한 첫 번째 단계는 공격자로부터 보호하려는 것이 무엇인지, 자산 또는 리소스가 손상될 경우 그 영향을 제한할 수 있는 방법을 이해하는 것입니다.마이크로세그멘테이션은 필수 데이터 또는 중요한 내결함성 시스템이 들어 있는 리소스를 파악하는 데 도움이 되며, 최소 권한을 기준으로 액세스를 잠그는 메커니즘도 제공합니다.이렇게 하면 중요한 리소스 하나가 손상되더라도 다른 리소스는 영향을 받지 않습니다.

오늘날의 최신 소프트웨어 개발 라이프사이클은 기능을 빠르게 제공하는 데 특히 중점을 둡니다.이러한 기능은 대부분 동일한 개발자 또는 DevOps에 의해 컨테이너를 통해 훨씬 빠르게 프로덕션 환경에 배포됩니다.마이크로서비스, 타사 라이브러리 및 기타 종속성, 컨테이너 또는 클러스터의 코드가 취약한 모든 유형의 취약성을 고려한다면 어떻게 이러한 모든 공격을 식별하고 방지할 수 있을까요?해답은 중요한 리소스에 대한 액세스를 차단하고 마이크로세그멘테이션을 사용하여 “꼭 알아야 하는 기준”에서만 허용하는 것입니다.

마이크로세그멘테이션 시작하기

마이크로세그멘테이션을 시작할 때 모든 상황에 맞는 단일 전략은 없지만, 마이크로서비스를 위한 마이크로세그멘테이션 프로젝트를 시작할 때의 몇 가지 모범 사례는 다음과 같습니다.

1.마이크로서비스 설계 패턴 파악 및 마이크로세그멘테이션 템플릿 사용

설계 패턴을 알면 아키텍처 구성 요소, 데이터 흐름 및 중요 데이터를 보유한 자산을 더 깊이 이해할 수 있습니다.자주 사용되는 이러한 설계 패턴을 기반으로 해당 마이크로세그멘테이션 템플릿을 만들 수 있습니다.보안 및 네트워킹 팀에서 이러한 템플릿을 검증하면 쉽게 재사용하고 더 빠른 속도로 확장할 수 있습니다.

긴밀하게 연결된 거대한 모놀리스 애플리케이션과 달리 마이크로서비스 지향 아키텍처를 기반으로 하는 애플리케이션은 하나 이상의 특정 설계 패턴을 따릅니다.이러한 설계 패턴은 다음 중 하나일 수 있습니다.

  • 분해 패턴에는 비즈니스 기능을 기반으로 애플리케이션을 하위 도메인 또는 트랜잭션으로 나누는 작업이 포함됩니다.
  • 통합 패턴에는 API 게이트웨이, 애그리게이터, 체인형 마이크로서비스 등과 같은 서비스 통합 설계 패턴이 포함됩니다.
  • 데이터베이스 패턴은 애플리케이션의 전체 아키텍처에서 데이터베이스의 위치에 초점을 맞춥니다.서비스별 데이터베이스, 공유 데이터베이스, 이벤트 소싱 등을 예로 들 수 있습니다.
  • 옵저버빌리티 패턴은 로그 집계, 분산 추적, 상태 점검 등과 같은 감사, 로깅 및 모니터링에 중점을 둔 설계 패턴으로 구성됩니다.
  • 교차 문제 패턴은 보안, 내결함성, 서비스 간 통신 및 구성 관리와 같은 애플리케이션 수준 기능을 중앙 집중식으로 관리하는 데 도움이 됩니다.예로는 회로 차단기, 서비스 디스커버리 등이 있습니다.

(다양한 마이크로서비스 설계 패턴에 대한 자세한 내용은 을 참조하십시오. 이리.)

2.적합한 마이크로세그멘테이션 접근법 선택

현재 시장에는 다양한 솔루션 접근 방식을 사용하는 여러 마이크로세그멘테이션 공급업체가 있습니다.마이크로세그멘테이션 기법은 크게 두 가지 범주로 나뉩니다.

  1. 기술에 구애받지 않는 마이크로세그멘테이션 솔루션은 에이전트를 기반으로 하거나 차세대 방화벽.
  2. 기술 기반 마이크로세그멘테이션 솔루션은 하이퍼바이저 또는 네트워크 패브릭을 기반으로 합니다.

마이크로서비스는 다양한 기술 스택을 사용하며, 배포 속도를 높이려면 빠르게 확장할 수 있어야 합니다.따라서 기술에 구애받지 않는 마이크로세그멘테이션 솔루션 (클러스터, 포드, 컨테이너 및 서비스를 세분화할 수 있는 컨테이너 에코시스템에 맞게 특별히 설계된 솔루션) 이 최적의 선택이 될 것입니다.

3.네트워크 가시성

세분화된 애플리케이션 및 트래픽 흐름을 시각화하는 기능은 마이크로세그멘테이션 솔루션의 필수 요소입니다.가시성은 관리자, 보안 설계자 및 CSO (최고 보안 책임자) 에게 전체 네트워크를 한 곳에서 볼 수 있게 해줍니다.

4.사용하기 쉬운 중앙 집중식 제어

각 애플리케이션에 대한 정책 초안을 작성하는 것은 처음에는 어려운 작업일 수 있습니다.IT, 네트워크 및 보안 설계자와의 일련의 대화가 필요합니다.중앙 집중식 제어를 통해 정책 생성 및 적용을 용이하게 하면 프로세스 속도를 높이는 데 도움이 됩니다.마이크로서비스 설계 패턴에 따라 맞춤화된 세그멘테이션 템플릿을 활용하는 것도 도움이 될 수 있습니다.

5.성능에 병목 현상이 없어야 합니다.

마이크로세그멘테이션 정책을 적용하려면 트래픽을 분석하고 정책을 실시간으로 효과적으로 배포해야 합니다.공격자는 성능 지연을 활용하여 공격을 추가로 드러낼 수 있습니다.따라서 특히 지연 시간에 민감한 마이크로서비스의 경우 성능을 테스트하는 것이 매우 중요합니다.

결론

Figure 2: Secure zones created using micro-segmentation prevent lateral movements.

이 블로그 게시물에서는 마이크로서비스에 사용되는 컨테이너 및 Kubernetes 기반 배포 메커니즘이 제시하는 몇 가지 보안 문제에 대해 논의했습니다.중요 리소스에 대한 액세스를 제한하는 것에 대해 별다른 고려 없이 마이크로서비스를 CI/CD 라이프사이클 전반에 걸쳐 더 빠른 속도로 프로덕션 환경에 지속적으로 배포하면 “복원력”이라는 말이 나오기 시작합니다.마이크로세그멘테이션은 보안 침해의 영향을 최소화하는 강력한 액세스 제어 메커니즘을 제공합니다.또한 보안 마이크로존을 구현하여 엔터프라이즈 애플리케이션의 복원력을 높입니다.

마이크로세그멘테이션을 올바르게 계획하고 수행한다면 마이크로서비스 세계에서 횡방향 이동을 막을 수 있는 강력한 장벽이 될 것이 분명합니다.빠르게 움직이면서 마이크로서비스를 보호하는 것은 어렵지만, 잠시 멈추고 대규모 보안 및 복원력을 구현하는 것에 대해 생각하고 모든 이해 관계자와 함께 사전 예방적으로 계획하는 것이 중요합니다.

관련 주제

항목을 찾을 수 없습니다.

관련 기사

은행 부문에서 Illumio 제로 트러스트 세그멘테이션을 사용해야 하는 8가지 이유
제로 트러스트 세그멘테이션

은행 부문에서 Illumio 제로 트러스트 세그멘테이션을 사용해야 하는 8가지 이유

지난 5년간 사이버 공격의 최대 표적이 된 은행 및 금융 서비스 산업에 Illumio 제로 트러스트 세그멘테이션이 필요한 이유를 읽어보십시오.

학교와 교육구가 Illumio 제로 트러스트 세그멘테이션을 선택해야 하는 10가지 이유
제로 트러스트 세그멘테이션

학교와 교육구가 Illumio 제로 트러스트 세그멘테이션을 선택해야 하는 10가지 이유

Illumio ZTS를 통해 학교가 불가피한 보안 위반의 확산을 막기 위해 사전 조치를 취해야 하는 이유를 알아보십시오.

도쿄에서 열린 가트너 보안 및 위험 관리 서밋 2024에서 Illumio를 만나세요
제로 트러스트 세그멘테이션

도쿄에서 열린 가트너 보안 및 위험 관리 서밋 2024에서 Illumio를 만나세요

7월 24일부터 26일까지 일본 도쿄에서 열리는 가트너 보안 및 위험 관리 서밋 2024에 그랜드 닛코 도쿄 다이바의 408 부스에서 Illumio와 함께 하세요.

항목을 찾을 수 없습니다.

Assume Breach.
Minimize Impact.
Increase Resilience.

Ready to learn more about Zero Trust Segmentation?