CloudGoat
클라우드 환경의 서비스에서 발생할 수 있는 취약점을 공부하기 위한 시나리오들을 모아둔 훈련장
CloudGoat는 AWS에서 발생할 수 있는 취약점 Exploit 시나리오만 제공하고 있으며, Terraform을 통해 각 시나리오별 리소스를 생성할 수 있도록 코드를 제공한다.
기본 세팅
CloudGoat는 아래와 같은 Requirements를 갖는다.
- Linux or MacOS
- Python3.6+
- Terraform >= 0.14 installed and in your $PATH
- The AWS CLI installed and in your $PATH
- AWS account with sufficient privileges to create and destroy resources.
- jq
먼저 리소스를 만드는데에 사용할 AWS 사용자를 하나 생성해준다.
AdministratorAccess 권한을 갖는 IAM 사용자를 생성하도록 한다.
생성 후 AWS CLI에 Profile로 등록한다.
다음으로 리소스 생성 명령을 내려줄 Terraform을 설치한다.
Terraform 설치는 다음 글을 참조한다.
Requirements에 대한 설치가 모두 끝나면, Repo를 받는다.
git clone https://github.com/RhinoSecurityLabs/cloudgoat.git
cd cloudgoat
pip3 install -r ./requirements.txt
chmod +x cloudgoat.py
cloudgoat 시나리오들을 시작하기 위한 마지막 설정을 진행한다.
# Terraform을 실행할 Profile을 설정
./cloudgoat.py config profile
# Terraform으로 생성한 시나리오 리소스들에 대해 접근제어를 위한 whitelist 설정
# --auto로 현재 커맨드를 실행한 public ip주소를 whitelist로 자동 등록해준다.
./cloudgoat.py config whitelist --auto
Whitelist 등록까지 마치면 시나리오를 실습할 준비가 끝나게 된다.
이제 본격적으로 각 시나리오들을 실습해보도록 한다.