2021.10.05

개발 라이프사이클 전반에 걸쳐 클라우드 인프라를 보호하는 방법

Josh Stella | InfoWorld
클라우드 컴퓨팅은 수십 년 동안 가장 엄청난 IT 변화였으며, 모든 산업군에서 비즈니스 방식의 모든 측면을 전환할 수 있었다. 하지만 클라우드는 보안을 전혀 다른 차원으로 바꿔놓기 때문에 새로운 범주의 위험과 도전 과제가 생겨났고, 보안팀은 감당할 수 없는 부담을 안게 되었다. 기업은 어려운 선택에 직면해 있다. 경쟁이 치열해지는 환경에서 혁신의 속도를 늦춰 보안팀이 따라잡을 수 있도록 하거나 보너스를 결정하는 중요한 입찰 경쟁의 와중에 더 많은 보안 엔지니어를 고용해야 한다. 
 
ⓒ Getty Images Bank

보안은 팀이 얼마나 빠르게 클라우드로 이동하고 조직이 얼마나 민첩하고 효율적일 수 있는지에 대한 주된 속도 제한 요소가 되었다. 수동 보안 검토 및 승인 프로세스는 애플리케이션팀이 필요로 하는 클라우드 인프라 제공 속도를 늦추며, 중요한 기술 자원이 검토, 우선순위 설정, 교정이 필요한 잘못된 클라우드 구성 취약성을 관리하는 데 모두 사용되고 있다. 

하지만 클라우드 자체의 속성은 일반적인 타협 없이 클라우드 보안을 해결하는 데 또 다른 접근방식을 제공한다. 여기서는 코드형 정책(Policy as Code)에 대한 오픈소스 표준인 OPA(Open Policy Agent)에 기반한 클라우드 보안 자동화가 전통적인 보안 접근방식으로는 불가능한 것을 달성할 수 있는 이유에 관해 살펴본다. 그리고 푸가(Fugue) 등의 OPA 기반 솔루션을 적용해 전체론적인 방식으로 클라우드 인프라의 개발 라이프사이클 전체를 보호할 수 있는 방법의 예를 살펴본다. 
 

클라우드 보안이 어려운 이유

클라우드 인프라는 데이터센터 인프라와 매우 다르다. 클라우드 인프라를 구축하고 관리하는 방식부터 다르며, 공격 표면도 다르고, 해커가 활동하는 방식도 다르다. 

잘못된 클라우드 구성 취약점은 클라우드 기반 데이터 유출의 주된 원인이다. 가트너에 따르면, 클라우드 서비스에 대한 성공한 공격 대부분은 잘못된 구성, 관리, 실수에 기인한다. 따라서 잘못된 구성의 위험성이 가진 속성을 이해할 때 OPA 같은 오픈소스 코드형 정책 표준에 기초한 클라우드 보안이 속도나 효율성을 타협하지 않고 문제를 해결하는 데 중요한 이유가 명확해진다. 

데이터센터에서는 변화가 느리고 매우 통제된 방식으로 진행된다. 클라우드에서 변화는 하나의 상수에 불과하다. 클라우드에서 개발팀은 인프라팀이 자원을 제공때까지 기다리지 않고 직접 구축한다. 즉, 개발자는 스스로 보안에 중요한 구성을 포함하여 인프라에 대한 의사를 결정한 후 지속적을 변경한다. 모든 변화에는 위험이 수반되기 때문에 인프라가 지금은 안전하더라도 내일은 아닐 수 있다. 

클라우드에서는 변화하는 것도 다르다. 데이터센터 인프라 스택은 훨씬 단순하며, 주로 네트워크, 서버, 스토리지로 구성된다. 클라우드 인프라 스택에는 이런 자원의 가상화 버전과 함께 많은 것들이 포함되어 있다. ID 및 액세스 관리 서비스, 서버리스 플랫폼, 컨테이너, 컨테이너 오케스트레이션 시스템 등이 있다. AWS(Amazon Web Services)만 해도 지난 10년 동안 수백 종류의 새로운 클라우드 리소스를 도입했으며, 모두 저마다 구성 속성과 보안 고려사항이 있다. 

또한 전통적인 데이터센터보다 확장된 클라우드 환경에 훨씬 많은 리소스가 존재한다. 대기업이라면, 수백 개의 계정에 걸쳐 수십만 개의 클라우드 리소스가 있는 경우가 흔하다. 이런 기업이 선택 또는 우연에 의해  멀티클라우드  환경을 운영하고 있다면, 각 클라우드가 제공하는 인프라 서비스의 구성과 보안이 크게 다르기 때문에 복잡성이 더 커진다. 

컴플라이언스는 보안 정책 준수 확보에 있어서 항상 중요한 역할을 했지만, 클라우드는 전통적인 컴플라이언스 모델도 무너뜨렸다. 클라우드를 사용하는 대부분의 조직은 의료 데이터에 관한 HIPAA, 금융서비스 데이터에 관한 PCI, 클라우드에서의 고객 데이터 처리에 관한 SOC 2 등의 산업 컴플라이언스 규제를 준수해야 한다. 하지만 이런 규제는 클라우드 사용례에 적용하기 어려울 수 있으며, 모호한 사람의 언어로 작성되어 있다. 그리고 기억해야 하는 규칙이 너무 많다. 

이 모든 복잡성, 변화, 규모로 인해 매일 잘못된 클라우드 구성 실수가 발생하고 있다. ’클라우드 보안 현황 2021 보고서’에 따르면, 300명의 클라우드 엔지니어를 대상으로 한 조사에서 규제를 받는 대규모 클라우드 환경을 운용하는 팀의 절반이 매일 50개 이상의 잘못된 구성을 경험하고 있다는 것을 발견했다. 이런 클라우드 런타임 취약성을 감지하는 전통적인 도구는 CSPM(Cloud Security Posture Management)이며, 조사에 참여한 팀들은 문제 관리를 위해 1명 이상의 정규 엔지니어를 투입하고 있다. 기본적으로 두더지 잡기 게임이다. 

그리고 이 게임은 중요하다. 악의적인 해커들이 데이터를 훔치고 다른 피해를 입히기 위해 클라우드 환경을 공격하는 방식을 바꾸었다. 표적을 선택하고 취약성을 찾아 악용하는 공격 패턴이 바뀌었다. 이제 해커는 자동화 도구를 사용해 인터넷 전체를 스캔하고 악용할 수 있는 클라우드 구성 오류를 찾는다. 이런 취약성을 있는 조직은 공격의 표적이 될 수 있다.
 

코드형 인프라와 코드형 정책이 클라우드 보안을 바꾸는 방식 

하지만 클라우드 방어 역시 달라지고 있다. 보안팀은 더 이상 클라우드 런타임의 취약성만 모니터링하지 않는다. 그들은 클라우드 엔지니어링 및 데브옵스팀과 직접 협력해 클라우드 보안을 변경하고 이런 취약성이 런타임에 도달하기 전에 차단할 수 있다. 

자동화된 CI/CD 배치 파이프라인과 엔지니어가 클라우드 리소스 구성 및 관계를 정의하기 위해 사용하는 코드형 인프라(Infrastructure as Code)의 도입을 통해 잘못된 구성이 런타임에 도달하기전에 자동으로 차단할 수 있다. 명확한 보안 이점 외에 개발 및 잘못된 구성 배치 방지 시 IaC를 확보하면 비용 및 속도 측면에서 엄청난 이득이 있다. 
 
ⓒ Fugue

하지만 시간이 많이 소요되고 오류에 취약한 수동 검토 없이 IaC의 보안 문제를 자동으로 확인하기 위해서 코드형 정책이 필요하다. 프로그래밍 언어가 논리적 함수를 코드로 표현하듯이, IaC는 구성을 코드 정책으로 표현한다. 코드를 통해 필요한 보안 정책을 코드로 표현할 수 있다. 잘못된 해석과 오해의 여지가 없다. 

보안에 대한 ‘시프트 레프트(Shift Left)’ 접근방식을 통해 개발팀이 소프트웨어 개발 주기 초기에 실수를 교정하는 데 도움이 되는 개발자 친화적인 도구를 얻게 된다. 소프트웨어 엔지니어는 일반적으로 제한적이며 더 어려운 전매특허 언어보다 오픈 소스 언어를 선호한다. 그리고 코드형 인프라 점검부터 CI/CD 보호와 런타임 모니터링까지 소프트웨어 개발 주기의 어느 시점에서나 같은 정책을 사용할 수 있어야 한다. 이를 통해 개발자, 데브옵스, 보안, 컴플라이언스팀이 모두 같은 규칙을 따를 수 있다. 

OPA는 매우 강력하고 유연하며 인기가 많은 오픈소스 정책 엔진이다. 골드만 삭스, 넷플릭스, 핀터레스트 등의 대형 조직이 OPA를 사용하고 있으며, 푸가는 OPA만 사용해 클라우드 환경 및 IaC를 위한 정책 기반 보안 자동화를 운영하고 있다. OPA는 CNCF(Cloud Native Computing Foundation)가 지원하고 있으며, 탄탄한 툴 생태계와 활성화된 커뮤니티가 마련되어 있다. 그리고 OPA를 아는 엔지니어를 찾아 유지하기가 더 쉽다. 코드형 정책 프레임워크를 고려할 때, OPA부터 시작하는 것이 좋다. 
 
ⓒ Fugue
 

다양한 소프트웨어 개발 주기에 대한 코드형 정책 점검 

푸가(Fugue)는 OPA 프로젝트에 능동적으로 참여했으며, OPA를 사용해 더 쉽게 테라폼(Terraform) 및 AWS CF(CloudFormation) IaC를 점검할 수 있는 오픈소스 툴인 레귤라(Regula)를 개발했다. 그리고 푸가 IaC를 통해 여러 팀이 배치 전 IaC 점검과 런타임 모니터링에 같은 규칙을 사용할 수 있다. 

코드형 정책 점검을 활용한 전체론적 클라우드 보안 전략의 가장 큰 이점은 애플리케이션을 더 신속하게 배치하는 것이다. 인프라팀이 개발팀에 더 신속하게 안전한 인프라를 제공하기 때문이다. 보안 및 컴플라이언스팀은 잘못된 클라우드 구성만큼 쉽게 자동화할 수 없는 취약성에 집중할 수 있다. 방어책이 강화되고 잘못된 구성을 방지하면 공격자의 레이더에서 벗어날 수 있을 가능성이 커진다.

*Josh Stella는 푸가의 공동 설립자이자 CEO로, 규제가 엄격한 산업군의 클라우드 보안 기술 권위자이다. editor@itworld.co.kr



2021.10.05

개발 라이프사이클 전반에 걸쳐 클라우드 인프라를 보호하는 방법

Josh Stella | InfoWorld
클라우드 컴퓨팅은 수십 년 동안 가장 엄청난 IT 변화였으며, 모든 산업군에서 비즈니스 방식의 모든 측면을 전환할 수 있었다. 하지만 클라우드는 보안을 전혀 다른 차원으로 바꿔놓기 때문에 새로운 범주의 위험과 도전 과제가 생겨났고, 보안팀은 감당할 수 없는 부담을 안게 되었다. 기업은 어려운 선택에 직면해 있다. 경쟁이 치열해지는 환경에서 혁신의 속도를 늦춰 보안팀이 따라잡을 수 있도록 하거나 보너스를 결정하는 중요한 입찰 경쟁의 와중에 더 많은 보안 엔지니어를 고용해야 한다. 
 
ⓒ Getty Images Bank

보안은 팀이 얼마나 빠르게 클라우드로 이동하고 조직이 얼마나 민첩하고 효율적일 수 있는지에 대한 주된 속도 제한 요소가 되었다. 수동 보안 검토 및 승인 프로세스는 애플리케이션팀이 필요로 하는 클라우드 인프라 제공 속도를 늦추며, 중요한 기술 자원이 검토, 우선순위 설정, 교정이 필요한 잘못된 클라우드 구성 취약성을 관리하는 데 모두 사용되고 있다. 

하지만 클라우드 자체의 속성은 일반적인 타협 없이 클라우드 보안을 해결하는 데 또 다른 접근방식을 제공한다. 여기서는 코드형 정책(Policy as Code)에 대한 오픈소스 표준인 OPA(Open Policy Agent)에 기반한 클라우드 보안 자동화가 전통적인 보안 접근방식으로는 불가능한 것을 달성할 수 있는 이유에 관해 살펴본다. 그리고 푸가(Fugue) 등의 OPA 기반 솔루션을 적용해 전체론적인 방식으로 클라우드 인프라의 개발 라이프사이클 전체를 보호할 수 있는 방법의 예를 살펴본다. 
 

클라우드 보안이 어려운 이유

클라우드 인프라는 데이터센터 인프라와 매우 다르다. 클라우드 인프라를 구축하고 관리하는 방식부터 다르며, 공격 표면도 다르고, 해커가 활동하는 방식도 다르다. 

잘못된 클라우드 구성 취약점은 클라우드 기반 데이터 유출의 주된 원인이다. 가트너에 따르면, 클라우드 서비스에 대한 성공한 공격 대부분은 잘못된 구성, 관리, 실수에 기인한다. 따라서 잘못된 구성의 위험성이 가진 속성을 이해할 때 OPA 같은 오픈소스 코드형 정책 표준에 기초한 클라우드 보안이 속도나 효율성을 타협하지 않고 문제를 해결하는 데 중요한 이유가 명확해진다. 

데이터센터에서는 변화가 느리고 매우 통제된 방식으로 진행된다. 클라우드에서 변화는 하나의 상수에 불과하다. 클라우드에서 개발팀은 인프라팀이 자원을 제공때까지 기다리지 않고 직접 구축한다. 즉, 개발자는 스스로 보안에 중요한 구성을 포함하여 인프라에 대한 의사를 결정한 후 지속적을 변경한다. 모든 변화에는 위험이 수반되기 때문에 인프라가 지금은 안전하더라도 내일은 아닐 수 있다. 

클라우드에서는 변화하는 것도 다르다. 데이터센터 인프라 스택은 훨씬 단순하며, 주로 네트워크, 서버, 스토리지로 구성된다. 클라우드 인프라 스택에는 이런 자원의 가상화 버전과 함께 많은 것들이 포함되어 있다. ID 및 액세스 관리 서비스, 서버리스 플랫폼, 컨테이너, 컨테이너 오케스트레이션 시스템 등이 있다. AWS(Amazon Web Services)만 해도 지난 10년 동안 수백 종류의 새로운 클라우드 리소스를 도입했으며, 모두 저마다 구성 속성과 보안 고려사항이 있다. 

또한 전통적인 데이터센터보다 확장된 클라우드 환경에 훨씬 많은 리소스가 존재한다. 대기업이라면, 수백 개의 계정에 걸쳐 수십만 개의 클라우드 리소스가 있는 경우가 흔하다. 이런 기업이 선택 또는 우연에 의해  멀티클라우드  환경을 운영하고 있다면, 각 클라우드가 제공하는 인프라 서비스의 구성과 보안이 크게 다르기 때문에 복잡성이 더 커진다. 

컴플라이언스는 보안 정책 준수 확보에 있어서 항상 중요한 역할을 했지만, 클라우드는 전통적인 컴플라이언스 모델도 무너뜨렸다. 클라우드를 사용하는 대부분의 조직은 의료 데이터에 관한 HIPAA, 금융서비스 데이터에 관한 PCI, 클라우드에서의 고객 데이터 처리에 관한 SOC 2 등의 산업 컴플라이언스 규제를 준수해야 한다. 하지만 이런 규제는 클라우드 사용례에 적용하기 어려울 수 있으며, 모호한 사람의 언어로 작성되어 있다. 그리고 기억해야 하는 규칙이 너무 많다. 

이 모든 복잡성, 변화, 규모로 인해 매일 잘못된 클라우드 구성 실수가 발생하고 있다. ’클라우드 보안 현황 2021 보고서’에 따르면, 300명의 클라우드 엔지니어를 대상으로 한 조사에서 규제를 받는 대규모 클라우드 환경을 운용하는 팀의 절반이 매일 50개 이상의 잘못된 구성을 경험하고 있다는 것을 발견했다. 이런 클라우드 런타임 취약성을 감지하는 전통적인 도구는 CSPM(Cloud Security Posture Management)이며, 조사에 참여한 팀들은 문제 관리를 위해 1명 이상의 정규 엔지니어를 투입하고 있다. 기본적으로 두더지 잡기 게임이다. 

그리고 이 게임은 중요하다. 악의적인 해커들이 데이터를 훔치고 다른 피해를 입히기 위해 클라우드 환경을 공격하는 방식을 바꾸었다. 표적을 선택하고 취약성을 찾아 악용하는 공격 패턴이 바뀌었다. 이제 해커는 자동화 도구를 사용해 인터넷 전체를 스캔하고 악용할 수 있는 클라우드 구성 오류를 찾는다. 이런 취약성을 있는 조직은 공격의 표적이 될 수 있다.
 

코드형 인프라와 코드형 정책이 클라우드 보안을 바꾸는 방식 

하지만 클라우드 방어 역시 달라지고 있다. 보안팀은 더 이상 클라우드 런타임의 취약성만 모니터링하지 않는다. 그들은 클라우드 엔지니어링 및 데브옵스팀과 직접 협력해 클라우드 보안을 변경하고 이런 취약성이 런타임에 도달하기 전에 차단할 수 있다. 

자동화된 CI/CD 배치 파이프라인과 엔지니어가 클라우드 리소스 구성 및 관계를 정의하기 위해 사용하는 코드형 인프라(Infrastructure as Code)의 도입을 통해 잘못된 구성이 런타임에 도달하기전에 자동으로 차단할 수 있다. 명확한 보안 이점 외에 개발 및 잘못된 구성 배치 방지 시 IaC를 확보하면 비용 및 속도 측면에서 엄청난 이득이 있다. 
 
ⓒ Fugue

하지만 시간이 많이 소요되고 오류에 취약한 수동 검토 없이 IaC의 보안 문제를 자동으로 확인하기 위해서 코드형 정책이 필요하다. 프로그래밍 언어가 논리적 함수를 코드로 표현하듯이, IaC는 구성을 코드 정책으로 표현한다. 코드를 통해 필요한 보안 정책을 코드로 표현할 수 있다. 잘못된 해석과 오해의 여지가 없다. 

보안에 대한 ‘시프트 레프트(Shift Left)’ 접근방식을 통해 개발팀이 소프트웨어 개발 주기 초기에 실수를 교정하는 데 도움이 되는 개발자 친화적인 도구를 얻게 된다. 소프트웨어 엔지니어는 일반적으로 제한적이며 더 어려운 전매특허 언어보다 오픈 소스 언어를 선호한다. 그리고 코드형 인프라 점검부터 CI/CD 보호와 런타임 모니터링까지 소프트웨어 개발 주기의 어느 시점에서나 같은 정책을 사용할 수 있어야 한다. 이를 통해 개발자, 데브옵스, 보안, 컴플라이언스팀이 모두 같은 규칙을 따를 수 있다. 

OPA는 매우 강력하고 유연하며 인기가 많은 오픈소스 정책 엔진이다. 골드만 삭스, 넷플릭스, 핀터레스트 등의 대형 조직이 OPA를 사용하고 있으며, 푸가는 OPA만 사용해 클라우드 환경 및 IaC를 위한 정책 기반 보안 자동화를 운영하고 있다. OPA는 CNCF(Cloud Native Computing Foundation)가 지원하고 있으며, 탄탄한 툴 생태계와 활성화된 커뮤니티가 마련되어 있다. 그리고 OPA를 아는 엔지니어를 찾아 유지하기가 더 쉽다. 코드형 정책 프레임워크를 고려할 때, OPA부터 시작하는 것이 좋다. 
 
ⓒ Fugue
 

다양한 소프트웨어 개발 주기에 대한 코드형 정책 점검 

푸가(Fugue)는 OPA 프로젝트에 능동적으로 참여했으며, OPA를 사용해 더 쉽게 테라폼(Terraform) 및 AWS CF(CloudFormation) IaC를 점검할 수 있는 오픈소스 툴인 레귤라(Regula)를 개발했다. 그리고 푸가 IaC를 통해 여러 팀이 배치 전 IaC 점검과 런타임 모니터링에 같은 규칙을 사용할 수 있다. 

코드형 정책 점검을 활용한 전체론적 클라우드 보안 전략의 가장 큰 이점은 애플리케이션을 더 신속하게 배치하는 것이다. 인프라팀이 개발팀에 더 신속하게 안전한 인프라를 제공하기 때문이다. 보안 및 컴플라이언스팀은 잘못된 클라우드 구성만큼 쉽게 자동화할 수 없는 취약성에 집중할 수 있다. 방어책이 강화되고 잘못된 구성을 방지하면 공격자의 레이더에서 벗어날 수 있을 가능성이 커진다.

*Josh Stella는 푸가의 공동 설립자이자 CEO로, 규제가 엄격한 산업군의 클라우드 보안 기술 권위자이다. editor@itworld.co.kr

X