Security/Cloud

[CloudGoat] Cloud 취약점 시나리오 훈련장, CloudGoat

Omoknooni 2024. 1. 20. 18:27

CloudGoat

클라우드 환경의 서비스에서 발생할 수 있는 취약점을 공부하기 위한 시나리오들을 모아둔 훈련장

CloudGoat는 AWS에서 발생할 수 있는 취약점 Exploit 시나리오만 제공하고 있으며, Terraform을 통해 각 시나리오별 리소스를 생성할 수 있도록 코드를 제공한다.

 

 

GitHub - RhinoSecurityLabs/cloudgoat: CloudGoat is Rhino Security Labs' "Vulnerable by Design" AWS deployment tool

CloudGoat is Rhino Security Labs' "Vulnerable by Design" AWS deployment tool - GitHub - RhinoSecurityLabs/cloudgoat: CloudGoat is Rhino Security Labs' "Vulnerable by Design&q...

github.com

 

 

기본 세팅

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 설치는 다음 글을 참조한다.

 

[Terraform] Code로 클라우드 인프라 관리 - Terraform의 특징&설치

Public cloud가 발달함에 따라 많은 개인과 기업들이 운영 중인 서비스들을 클라우드로 전환하게 되었다. 클라우드로 전환하고 점차 서비스들이 확장되며, 사용중인 리소스들의 수가 증가하여 프

blog.omoknooni.me

 

 

 

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 등록까지 마치면 시나리오를 실습할 준비가 끝나게 된다.

이제 본격적으로 각 시나리오들을 실습해보도록 한다.