2018.09.10

'AWS 보안을 더 단단하게'··· 최신 감사·테스트 툴 4종

David Strom | CSO
가상머신(VM)과 아마존 웹 서비스(AWS)가 등장한 이후 가상 인프라를 테스트하는 것은 줄곧 골칫거리였다. 그런데 최근 들어 새로운 테스트 툴이 잇달아 나오고 있다.



기존 테스트 툴은 여러 문제가 있었다. 가상 인프라를 제대로 테스트하는 핵심은 AWS의 구조에 대해 잘 아는 것이다. 다양한 VM과 네트워크 구성 요소 간의 관계를 이해하고 일반적인 보안 취약성과 공격 방법을 파악해야 한다. 이는 상당한 양의 학습을 요구하는데, 언제나 바쁜 개발자가 그런 요소의 구조를 설명하는 데 많은 시간을 투자할 리 없다. 기존의 침투 테스트 대부분이 안정적인 온사이트 애플리케이션에 초점을 맞추고 있다는 점도 문제다. CPU가 바뀔 수도 있고 스토리지 블록이 눈 깜짝할 사이에 생성, 삭제되는 가변적이고 순간적인 AWS 구조에는 기존 툴이 적합하지 않다.

지난해 스카이하이 네트웍스(Skyhigh Networks)의 조사 결과를 보면, 모든 AWS S3 버킷의 7%가 전체 인터넷에 노출돼 있는 것으로 나타났다. 공공 버킷의 3분의 1이 암호화되지 않은 상태여서, 여기에 포함된 데이터를 해킹하기는 어린애 장난만큼 쉽다는 것이다.

이러한 구성 오류 중 상당 부분이 누군가 회사에 연락하기 전까지 수개월 동안 방치되기도  한다. 올여름 혼다의 커넥티드 카 컨트롤 시스템의 사용자 정보 유출이나, 딥 루트 애널리틱스(Deep Root Analytics)에서 무방비 상태로 노출된 S3 버킷으로 인해 다수의 투표 기록이 노출된 사건도 마찬가지였다. 이제 소개하는 솔루션은 이러한 어려움을 해소하기 위해 탄생했다. AWS 자체 솔루션부터 차례로 살펴보자.

AWS의 새 감사 툴: '젤코바'와 '타이로스'
아마존은 지난 수년간 다양한 보안 관련 서비스를 개발했다. 모든 API 사용을 기록하는 클라우드트레일(CloudTrail), 리소스 사용을 기록하는 클라우드워치(CloudWatch), 머신러닝을 활용해 민감 데이터를 발견하는 메이시(Macie), 위협 탐지 솔루션 가드듀티(GuardDuty), 구성상의 변화를 추적하는 컨피그(Config), 환경을 분석하고 최선의 선택지를 제안하는 트러스티드 어드바이저(Trusted Advisor) 등이다. 또한 AWS는 사용자와 시스템 그룹을 분리하고 가상 사설망과 가상 방화벽을 설정하는 방법도 제공한다. 관심이 있다면 온라인 설명서를 먼저 읽고 AWS 설치에 이를 적용하기를 권한다.

이러한 툴은 분명 AWS 내부의 많은 것을 보호하는 데 도움이 된다. 그러나 여기에는 전체 작업을 더 전반적으로 보는 기능이 빠져 있다. 지난해 AWS가 일부 S3 보안 검사를 추가하면서 디폴트로 암호화를 설정하는 기능, 아마존 영역 간에 스토리지를 이동할 때 발생하는 작업 및 각 개체의 암호화 상태를 간단한 대시보드에 표시하는 기능 등이 추가됐다. ‘공용’ 또는 ‘비공용’ 아이콘을 통해 버킷의 액세스 상태를 더 쉽게 검토할 수 있다.

그러나 이것만으로는 충분하지 않다. 지금부터 AWS 라인업에 가장 최근 추가된 솔루션에 대해 이야기해 보자. 바로 아마존 자동화 추론 그룹(Automated Reasoning Group)의 젤코바(Zelkova)와 티로스(Tiros)다. 이 2가지 툴은 개방형 인터넷에서 S3 스토리지 버킷까지 액세스 제어 및 매핑 경로를 평가하고 다양한 시스템 구성에 대한 자동 피드백을 제공한다.

두 기능은 상호보완적이다. 타이로스는 VPC(Virtual Private Cloud) 및 액세스 제어 목록 구성과 같은 액세스 문제를 처리하고 리소스 간의 네트워크 연결을 매핑 한다. 젤코바는 역할 및 정책과 같은 권한 문제를 관리하며, 개발자가 구성 허용 여부를 확인할 수 있도록 벤치마크를 생성하기도 한다. 이를 통해 개발 환경을 실제 생산 환경으로 바꾸기 전에 여러 가지 실수를 잡아낼 수 있다. 이 툴은 AWS 정책을 비교하고 안전하지 않거나 특정 위협 모델에 들어맞는 상황을 빠르게 찾는 감사 툴이다. 예를 들어 S3 인스턴스 중 SSH 액세스를 허용하는 인스턴스는 있다면 문제의 소지가 될 수 있으므로 개발자가 그 접근을 차단해야 한다.

젤코바와 타이로스 모두 아마존이 베타 테스터와 협력해 더 쉽게 사용할 수 있도록 만든 내부 툴이었다. 실제로 젤코바는 공용/비공용 결정 알고리즘을 기반으로 하며, 그 밖에 가드듀티(GuardDuty)와 같은 다른 AWS 서비스의 기반이기도 하다. 알고리즘 프로세스에 대한 자세한 내용은 아마존 블로그를 참고하면 된다. 이러한 두 가지 툴이 어떻게 설정됐는지에 따라 데이터가 프라이빗한 상태로 보호받을 수도 있고, 신문 1면의 보안 데이터 유출 사건으로 장식할 수도 있다.


AWS 취약점 테스트를 위한 클라우드고트와 파쿠
그 밖에도 라이노 시큐리티(Rhino Security)의 클라우드고트(CloudGoat)와 파쿠( Pacu)도 주목할만하다. 전자는 수년 전 웹 응용 프로그램을 테스트하기 위한 메커니즘으로 만들어진 OWASP 웹고트(WebGoat)에서 이름을 따왔다. 클라우드고트는 현재 깃허브에서 자유롭게 다운로드해 사용할 수 있다.

클라우드고트는 파이썬 스크립트를 사용해 S3 버킷, EC2 인스턴스, 코드빌드(CodeBuild) 프로젝트, 클라우드트레일(CloudTrail) 및 가드듀티 인스턴스를 포함하여 12개 이상의 AWS 서비스에서 테스트하는 라이브 AWS 계정으로 리소스를 실행한다. 그다음 일련의 서비스와 사전 정의된 다양한 사용자를 통해 이 설정을 공격한다. 이는 감당하기 힘들 정도의 작업을 발생시키므로, 생산 환경의 복사본을 만들어 두는 것이 좋다(물론 꼭 이것 때문이 아니어도 항상 복사본을 만들어 둬야 한다).

클라우드고트는 AWS 리소스를 사용하므로 공격 시나리오를 실행하는 데 약간의 비용이 든다. 라이노에 따르면, 그 비용은 하루 몇 달러 수준이다.

파쿠는 또 하나의 라이노 프로젝트로, 클라우드고트와 밀접히 연관돼 있다. 오픈소스이고 AWS의 공격 프레임워크를 특정화한다. 사실, 클라우드고트는 파쿠에 기반해 제작된 것이다. 이러한 툴은 몇 가지 취약한 AWS 리소스를 배포 및 종료해 해당 환경의 고유한 보안 위험에 대해 자세히 알아보고, 앞으로 비슷한 실수를 하지 않도록 해준다. 또한 권한 상승, 데이터 유출 및 인프라 전반의 지속적인 액세스와 같은 문제를 검토한다.

이러한 도구를 조합해 사용하면 AWS 시스템에 존재하는 취약점을 빠르게 잡아낼 수 있다. 기업이 중요 데이터가 웹에 노출돼 있다면 그 누구보다 이를 빨리 알아야 할 사람은 바로 기업 담당자이기 때문이다. 여기서 살펴본 도구는 잠재적인 문제를 조기에 감지하고, 문제를 방지하는 데 도움이 될 것이다. ciokr@idg.co.kr

2018.09.10

'AWS 보안을 더 단단하게'··· 최신 감사·테스트 툴 4종

David Strom | CSO
가상머신(VM)과 아마존 웹 서비스(AWS)가 등장한 이후 가상 인프라를 테스트하는 것은 줄곧 골칫거리였다. 그런데 최근 들어 새로운 테스트 툴이 잇달아 나오고 있다.



기존 테스트 툴은 여러 문제가 있었다. 가상 인프라를 제대로 테스트하는 핵심은 AWS의 구조에 대해 잘 아는 것이다. 다양한 VM과 네트워크 구성 요소 간의 관계를 이해하고 일반적인 보안 취약성과 공격 방법을 파악해야 한다. 이는 상당한 양의 학습을 요구하는데, 언제나 바쁜 개발자가 그런 요소의 구조를 설명하는 데 많은 시간을 투자할 리 없다. 기존의 침투 테스트 대부분이 안정적인 온사이트 애플리케이션에 초점을 맞추고 있다는 점도 문제다. CPU가 바뀔 수도 있고 스토리지 블록이 눈 깜짝할 사이에 생성, 삭제되는 가변적이고 순간적인 AWS 구조에는 기존 툴이 적합하지 않다.

지난해 스카이하이 네트웍스(Skyhigh Networks)의 조사 결과를 보면, 모든 AWS S3 버킷의 7%가 전체 인터넷에 노출돼 있는 것으로 나타났다. 공공 버킷의 3분의 1이 암호화되지 않은 상태여서, 여기에 포함된 데이터를 해킹하기는 어린애 장난만큼 쉽다는 것이다.

이러한 구성 오류 중 상당 부분이 누군가 회사에 연락하기 전까지 수개월 동안 방치되기도  한다. 올여름 혼다의 커넥티드 카 컨트롤 시스템의 사용자 정보 유출이나, 딥 루트 애널리틱스(Deep Root Analytics)에서 무방비 상태로 노출된 S3 버킷으로 인해 다수의 투표 기록이 노출된 사건도 마찬가지였다. 이제 소개하는 솔루션은 이러한 어려움을 해소하기 위해 탄생했다. AWS 자체 솔루션부터 차례로 살펴보자.

AWS의 새 감사 툴: '젤코바'와 '타이로스'
아마존은 지난 수년간 다양한 보안 관련 서비스를 개발했다. 모든 API 사용을 기록하는 클라우드트레일(CloudTrail), 리소스 사용을 기록하는 클라우드워치(CloudWatch), 머신러닝을 활용해 민감 데이터를 발견하는 메이시(Macie), 위협 탐지 솔루션 가드듀티(GuardDuty), 구성상의 변화를 추적하는 컨피그(Config), 환경을 분석하고 최선의 선택지를 제안하는 트러스티드 어드바이저(Trusted Advisor) 등이다. 또한 AWS는 사용자와 시스템 그룹을 분리하고 가상 사설망과 가상 방화벽을 설정하는 방법도 제공한다. 관심이 있다면 온라인 설명서를 먼저 읽고 AWS 설치에 이를 적용하기를 권한다.

이러한 툴은 분명 AWS 내부의 많은 것을 보호하는 데 도움이 된다. 그러나 여기에는 전체 작업을 더 전반적으로 보는 기능이 빠져 있다. 지난해 AWS가 일부 S3 보안 검사를 추가하면서 디폴트로 암호화를 설정하는 기능, 아마존 영역 간에 스토리지를 이동할 때 발생하는 작업 및 각 개체의 암호화 상태를 간단한 대시보드에 표시하는 기능 등이 추가됐다. ‘공용’ 또는 ‘비공용’ 아이콘을 통해 버킷의 액세스 상태를 더 쉽게 검토할 수 있다.

그러나 이것만으로는 충분하지 않다. 지금부터 AWS 라인업에 가장 최근 추가된 솔루션에 대해 이야기해 보자. 바로 아마존 자동화 추론 그룹(Automated Reasoning Group)의 젤코바(Zelkova)와 티로스(Tiros)다. 이 2가지 툴은 개방형 인터넷에서 S3 스토리지 버킷까지 액세스 제어 및 매핑 경로를 평가하고 다양한 시스템 구성에 대한 자동 피드백을 제공한다.

두 기능은 상호보완적이다. 타이로스는 VPC(Virtual Private Cloud) 및 액세스 제어 목록 구성과 같은 액세스 문제를 처리하고 리소스 간의 네트워크 연결을 매핑 한다. 젤코바는 역할 및 정책과 같은 권한 문제를 관리하며, 개발자가 구성 허용 여부를 확인할 수 있도록 벤치마크를 생성하기도 한다. 이를 통해 개발 환경을 실제 생산 환경으로 바꾸기 전에 여러 가지 실수를 잡아낼 수 있다. 이 툴은 AWS 정책을 비교하고 안전하지 않거나 특정 위협 모델에 들어맞는 상황을 빠르게 찾는 감사 툴이다. 예를 들어 S3 인스턴스 중 SSH 액세스를 허용하는 인스턴스는 있다면 문제의 소지가 될 수 있으므로 개발자가 그 접근을 차단해야 한다.

젤코바와 타이로스 모두 아마존이 베타 테스터와 협력해 더 쉽게 사용할 수 있도록 만든 내부 툴이었다. 실제로 젤코바는 공용/비공용 결정 알고리즘을 기반으로 하며, 그 밖에 가드듀티(GuardDuty)와 같은 다른 AWS 서비스의 기반이기도 하다. 알고리즘 프로세스에 대한 자세한 내용은 아마존 블로그를 참고하면 된다. 이러한 두 가지 툴이 어떻게 설정됐는지에 따라 데이터가 프라이빗한 상태로 보호받을 수도 있고, 신문 1면의 보안 데이터 유출 사건으로 장식할 수도 있다.


AWS 취약점 테스트를 위한 클라우드고트와 파쿠
그 밖에도 라이노 시큐리티(Rhino Security)의 클라우드고트(CloudGoat)와 파쿠( Pacu)도 주목할만하다. 전자는 수년 전 웹 응용 프로그램을 테스트하기 위한 메커니즘으로 만들어진 OWASP 웹고트(WebGoat)에서 이름을 따왔다. 클라우드고트는 현재 깃허브에서 자유롭게 다운로드해 사용할 수 있다.

클라우드고트는 파이썬 스크립트를 사용해 S3 버킷, EC2 인스턴스, 코드빌드(CodeBuild) 프로젝트, 클라우드트레일(CloudTrail) 및 가드듀티 인스턴스를 포함하여 12개 이상의 AWS 서비스에서 테스트하는 라이브 AWS 계정으로 리소스를 실행한다. 그다음 일련의 서비스와 사전 정의된 다양한 사용자를 통해 이 설정을 공격한다. 이는 감당하기 힘들 정도의 작업을 발생시키므로, 생산 환경의 복사본을 만들어 두는 것이 좋다(물론 꼭 이것 때문이 아니어도 항상 복사본을 만들어 둬야 한다).

클라우드고트는 AWS 리소스를 사용하므로 공격 시나리오를 실행하는 데 약간의 비용이 든다. 라이노에 따르면, 그 비용은 하루 몇 달러 수준이다.

파쿠는 또 하나의 라이노 프로젝트로, 클라우드고트와 밀접히 연관돼 있다. 오픈소스이고 AWS의 공격 프레임워크를 특정화한다. 사실, 클라우드고트는 파쿠에 기반해 제작된 것이다. 이러한 툴은 몇 가지 취약한 AWS 리소스를 배포 및 종료해 해당 환경의 고유한 보안 위험에 대해 자세히 알아보고, 앞으로 비슷한 실수를 하지 않도록 해준다. 또한 권한 상승, 데이터 유출 및 인프라 전반의 지속적인 액세스와 같은 문제를 검토한다.

이러한 도구를 조합해 사용하면 AWS 시스템에 존재하는 취약점을 빠르게 잡아낼 수 있다. 기업이 중요 데이터가 웹에 노출돼 있다면 그 누구보다 이를 빨리 알아야 할 사람은 바로 기업 담당자이기 때문이다. 여기서 살펴본 도구는 잠재적인 문제를 조기에 감지하고, 문제를 방지하는 데 도움이 될 것이다. ciokr@idg.co.kr

X