일상/IT

애플리케이션 제공에서 클라우드 네이티브 보안의 역할

얇은생각 2023. 4. 27. 07:30
반응형

클라우드 네이티브 보안은 클라우드 네이티브 플랫폼, 인프라 및 애플리케이션의 보안에 중점을 둡니다. 이러한 문제를 해결하기 위한 전략에 대해 설명하겠습니다.

클라우드 네이티브 아키텍처와 컨테이너 중심 개발 여정을 채택하는 기업에서 흔히 볼 수 있는 문제 중 하나는 그 경로를 선택하는 이유를 명확하게 알지 못한다는 것입니다. 조직들이 이를 실현하기 위해 많은 시간과 비용을 투자하고 있기 때문에 이는 여러분을 놀라게 할 수도 있습니다. 사실 클라우드 네이티브 아키텍처는 방대한 스펙트럼이며, 다양한 사람들에게 다른 것을 의미합니다. 일부에서는 비용, 확장성, 접근성 등을 줄이기 위한 방법으로 보일 수 있습니다.

 

 

애플리케이션 제공에서 클라우드 네이티브 보안의 역할

 

 

클라우드 네이티브 보안이 중요한 이유

클라우드의 모든 복잡성은 기업 전체에 걸쳐 캐스케이드 효과를 미칠 수 있으며, 이로 인해 클라우드 네이티브 애플리케이션이 개발 중에 있을 위험이 높습니다. 클라우드 네이티브 보안과 관련하여 보안 전문가들은 다음과 같은 다양한 우려를 제기합니다:

- 클라우드 자산의 가시성이 낮습니다.

- 위험의 우선순위를 정하는 데 문제가 있습니다.

- 안전하지 않은 API 및 잘못된 구성입니다.

- 전문 지식/기술 격차가 부족합니다.

- 클라우드 네이티브 아키텍처로 인한 중단

 

클라우드 네이티브 애플리케이션 아키텍처의 확장성, 탄력성 및 비즈니스 민첩성 향상에 대한 매력적인 가능성은 많은 조직을 매료시켰습니다. 시간이 지남에 따라 기업들은 전체 인프라를 클라우드로 전환하고 이를 클라우드 네이티브 아키텍처라고 부릅니다. 그들이 깨닫지 못한 것은 그것이 정확히 그들의 걱정의 끝이 아니라는 것입니다.

클라우드 네이티브 애플리케이션 아키텍처가 제공하는 모듈화 기능은 서비스의 독립적인 관리 기능을 단순화했습니다. 그러나 더 크고 분산된 클라우드 네이티브 아키텍처를 구축함으로써 위협 요소가 증가했습니다.

"클라우드 네이티브 보안"을 시작하려면 경계 기반 보안 및 보안 구성의 기존 접근 방식이 더 이상 이 새로운 도메인에 적용되지 않는다는 점을 인식해야 합니다.

 

 

클라우드 기본 보안 과제 5가지

오늘날의 클라우드 네이티브 아키텍처는 애플리케이션, 컨테이너 오케스트레이터 및 인프라를 포함하는 여러 계층으로 구성됩니다.

- 응용프로그램은 이동 가능하고 많은 인스턴스와 함께 실행되는 작고 독립적인 컨테이너로 구성됩니다.

- Kubernetes(일반적으로 사용됨)와 같은 컨테이너 오케스트레이터는 이러한 컨테이너를 관리하고 인프라를 통해 배포합니다.

- 인프라 계층은 클라우드 공급자의 노드, 네트워크 및 스토리지로 구성됩니다.

 

클라우드 네이티브 아키텍처의 각 계층은 위협에 대한 새로운 공격 영역을 형성합니다. 클라우드 네이티브 아키텍처의 5대 잠재적 과제는 다음과 같습니다:

- 잘못된 구성 및 노출

- 불확실한 보안 범위

- 컨테이너 보안

- 런타임 보안

- 관측 가능성

 

 

잘못된 구성 및 노출

클라우드 네이티브 아키텍처는 광범위한 옵션으로 구성 가능합니다. 한 번의 잘못된 구성으로 인해 애플리케이션의 존재가 지워질 수 있습니다(단순히 삭제). 잘못된 네트워크 정책을 설정하면 중요한 데이터베이스 인스턴스가 외부 시스템에 노출될 수 있습니다. 잘못된 구성을 위해 가드 레일을 구성하는 것이 중요합니다.

 

 

불분명한 보안 범위

클라우드 네이티브 애플리케이션 아키텍처는 여러 구성 요소의 상호 의존적인 스택을 기반으로 구축됩니다. 일반적으로 여기에는 클라우드 서비스, 데이터 센터의 가상 노드 및 네트워크가 동시에 포함됩니다. 여기서 보안 경계를 정의하는 것은 쉽지 않습니다. 보안을 유지하려면 잘 정의된 아키텍처를 개념화하고 클라우드에서 실행하기 전에 보안 개념을 구현해야 합니다.

 

컨테이너 보안

컨테이너는 운영 체제, 응용 프로그램 실행 파일 및 종속성으로 구성된 작은 패키지 단위입니다. 거대한 지역을 위협에 노출시키고 예방 조치를 따르지 않으면 취약성의 서식지가 될 수 있습니다. 이를 방지하려면 모든 컨테이너 이미지를 스캔하는 모범 사례를 따라야 합니다.

 

런타임 보안

클라우드 서비스를 보호하고 컨테이너 이미지를 스캔하는 것은 괜찮습니다. 또한 런타임 단계에 집중해야 합니다. 런타임 단계에서 이러한 애플리케이션이 실행되는 동안 데이터가 노출되지 않도록 하고 외부 시스템에 대한 액세스가 제한되도록 해야 합니다.

 

관측 가능성

클라우드 네이티브 아키텍처를 선택하는 주된 이유는 유연성과 확장성입니다. 분산 시스템에서 전체적인 모니터링 및 관찰 접근 방식을 수립하는 것은 어려운 일이며, 가장 중요한 요구사항 중 하나이기도 합니다. 애플리케이션, Kubernetes 클러스터, 노드 및 인프라의 정확한 상태를 파악하는 것은 거의 불가능합니다.

 

 

애플리케이션 제공을 지원하는 5가지 클라우드 네이티브 보안 전략

- 보안과 함께 공유 책임 모델을 따릅니다.

- 조직은 왼쪽 보안을 전환해야 합니다.

- 종속성 보호

- 다중 계층 보안

- 클라우드에 구애받지 않는 보안

 

 

보안과 함께하는 공유 책임 모델 따라하기

클라우드 네이티브 보안을 위해서는 개발자와 보안 전문가가 소프트웨어 개발에서 배포에 이르기까지 프로세스 전반에 걸쳐 협력해야 합니다. 비록 두 팀 모두 서로의 기술을 알지 못하지만, 그들은 여전히 더 나은 부분들을 함께 가져옵니다.

보안 전문가는 애플리케이션을 개발, 테스트 및 배포하는 데 사용되는 도구와 프로세스를 보호할 수 있습니다. 그 대가로 개발 팀은 소프트웨어 개발 프로세스의 초기 단계에 보안 조치를 적용하기 위한 보안 코딩 관행을 배울 수 있습니다.

또한 DevOps 플랫폼을 사용하면 다음을 자동으로 분석하는 맞춤형 CI/CD 파이프라인을 지원할 수 있습니다:

- 코드 품질

- 유닛 테스트

- 코드 적용 범위

- 코드 보안

 

이전 업무의 성패를 조건으로 파이프라인의 조건부 실행을 시행하는 것도 도움이 됩니다.

 

 

보안을 전환해야 하는 조직

보안을 전환하는 것은 클라우드 네이티브 애플리케이션 개발 환경의 규모와 속도를 처리하기 위해 고급 툴이 필요한 문화적 변화에 가깝습니다. 보안을 왼쪽으로 이동하면 SDLC 초기에 보안을 도입하게 됩니다. 예를 들어, 취약성 검색을 들 수 있습니다.

인프라를 보호하는 좋은 방법은 서버가 없는 기능을 피하는 것입니다. 서버리스 함수 코드 및 컨테이너의 취약성은 해커에게 중요한 데이터, 권한 상승, 인증서 등을 쉽게 제공합니다. HashiCorp 볼트와 같은 비밀 관리 툴을 CI/CD 파이프라인과 통합하여 사용하는 것을 고려하면 기밀 데이터를 보호할 수 있습니다.

 

 

종속성 보호

응용 프로그램 코드에는 PyPI(Python Package Index)와 같은 저장소의 오픈 소스 종속성이 포함되어 있는 경우가 많습니다. 이 경우 포괄적인 취약성 데이터베이스를 활용하는 사전 자동 검색 툴이 필요합니다.

관리형 DevSecOps 플랫폼은 애플리케이션 보안 작업을 트리거하여 개발 중에 보안을 유지할 수 있도록 지원합니다. 또한 프로덕션 환경에서 실행 중인 컨테이너 및 서버리스 기능에 취약한 종속성 패키지가 유입되는 것을 방지합니다. 공개 및 비공개 입력을 통해 "Convention over Configuration" 접근 방식 채택.

 

 

다중 계층 보안

다층 보안 접근 방식에서는 네트워크 모니터링 도구를 사용하여 개별 위협을 탐지하고 해결합니다. 여기서 보안 팀은 네트워크의 모든 계층을 지속적으로 모니터링합니다. 위반을 방지할 뿐만 아니라 위반이 성공적으로 발생할 경우 대비책을 마련하는 데도 도움이 됩니다.

 

 

클라우드에 구애받지 않는 보안

클라우드 공급자마다 사용 사례가 다릅니다. 클라우드에 구애받지 않는 보안 접근 방식을 채택하면 멀티 클라우드 모델을 모니터링하는 데 도움이 됩니다. 여러 클라우드 공급자가 따라야 하는 모범 사례를 혼합한 단일 보안 전략 수립. 이를 통해 클라우드 네이티브 모니터링, 재해 복구 및 규정 준수 작업을 더욱 간소화할 수 있습니다.

 

 

마무리

오늘날 조직은 소프트웨어 개발 라이프사이클에서 보안을 Q와 A로 유지하는 대신 개발 단계부터 보안의 중요성을 인식하고 있습니다. 보안과 같은 중요한 부분을 주기가 끝날 때 그대로 두면 민첩성이 없습니다. 개발자와 보안 전문가의 협력을 통해 애플리케이션 제공 속도를 높일 수 있습니다.

반응형