CloudGoat は Rhino Security Labs の "Vulnerable by Design" AWS デプロイメントツールです
CloudGoatはRhino Security Labsの「Vulnerable by Design」クラウドデプロイメントツールです。
ヘルプの入手先: Rhino Security Labs Discord、またはStack Overflow
問題の報告先: https://github.com/RhinoSecurityLabs/cloudgoat/issues
メンテナンス: CloudGoatコミュニティ
CloudGoatはRhino Security Labsの「Vulnerable by Design」クラウドデプロイメントツールです。複数の「キャプチャ・ザ・フラッグ」形式のシナリオを作成・完了することで、クラウドサイバーセキュリティのスキルを磨くことができます。各シナリオは、クラウドリソースを組み合わせて構成され、構造化された学習体験を提供します。簡単なシナリオもあれば難しいシナリオもあり、多くは勝利への複数の経路が用意されています。攻撃者として、あなたのミッションは環境を探索し、脆弱性を特定し、シナリオの目標に到達するために悪用することです。
以下がCloudGoatの主な目標です:
先に進む前に、以下の警告に注意してください!
警告 #1: CloudGoatは、意図的に脆弱なリソースをあなたのアカウントに作成します。本番環境や機密リソースの隣にCloudGoatをデプロイしないでください。
警告 #2: CloudGoatは自分が作成したリソースのみを管理できます。シナリオの過程で自分でリソースを作成した場合は、
destroyコマンドを実行する前に手動で削除する必要があります。
Linux```bash sudo apt install terraform awscli azure-cli jq -y
Mac```bash
brew install terraform awscli azure-cli jq
CloudGoatをインストールするには、システムが上記の要件を満たしていることを確認し、次のコマンドを実行してください:```bash pipx install cloudgoat
また、いくつかのクイック設定コマンドを実行すると良いでしょう - 後で時間を節約できます:
- AWS向けに設定 - CloudGoatに使用するAWSプロファイルを指定します。```bash
cloudgoat config aws
Azure用に設定 - CloudGoatに使用するAzureサブスクリプションを指定します。```bash cloudgoat config azure
Azureにログイン - CloudGoatはアクティブな`az`アカウントを使用します。```bash
az login
ホワイトリストの設定```bash cloudgoat config whitelist --auto
今や、あなたのコマンドにより、CloudGoatはクラウド上にシナリオのインスタンスを`create`できます。環境が準備できると、プロジェクトのベースディレクトリにシナリオ名と一意のシナリオIDが付加された新しいフォルダが作成されます。このフォルダ内には`start.txt`というファイルが含まれ、シナリオを開始するために必要なすべてのリソースが記述されています。これらのリソースは、`create`コマンド完了時にコンソールにも出力されます。また、`cloudgoat`/`cloudgoat.pub`という名前のSSHキーペアが作成されることもあります。
> **注意:** シナリオインスタンスのフォルダや内部のファイルを削除または変更しないでください。CloudGoatがシナリオのリソースを管理できなくなる可能性があります。
シナリオに取り組む際は、必要に応じてシナリオのREADMEを参照してください。行き詰まった場合は、各ルートのウォークスルーの下部にチートシートへのリンクがあります。
シナリオが終了したら、自分で作成したリソースをすべて削除し(注意:CloudGoatは自身が作成したリソースのみ管理できます)、その後`destroy`コマンドを実行してください。その後、Webコンソールをざっと確認することをお勧めします。削除漏れがないか確認するためです。
CloudGoatのコマンドの完全なドキュメントは、[こちら「使用ガイド」セクション](#usage-guide)で読むことができます。
## CloudGoatのDockerイメージの使い方
[](http://play-with-docker.com?stack=https://raw.githubusercontent.com/RhinoSecurityLabs/cloudgoat/master/docker_stack.yml)
### オプション1: デフォルトのエントリポイントで実行```console
docker run -it rhinosecuritylabs/cloudgoat:latest
警告: このコマンドを実行すると、ローカルの AWS 設定ファイルが起動時に Docker コンテナにマウントされます。つまり、コンテナにアクセスできるユーザーは、ホストコンピュータの AWS 認証情報にアクセスできることになります。```console docker run -it -v ~/.aws:/root/.aws/ rhinosecuritylabs/cloudgoat:latest
## 利用可能なシナリオ
(難易度別)
<details open>
<summary><strong>簡単</strong></summary>
---
### iam_enum_basics (簡単)
`cloudgoat create iam_enum_basics`
このシナリオでは、Bobという低権限IAMユーザーのアクセスキーから始めます。AWS CLIを使用して徹底的なIAM列挙を行うことがタスクです。管理ポリシー、インラインポリシー、グループメンバーシップ、引き受け可能なロールを調査することで、5つの異なるフラグを見つけることができます。
[シナリオページを見る](https://github.com/rhinosecuritylabs/cloudgoat/blob/master/cloudgoat/scenarios/aws/iam_enum_basics/README.md)
Tyler Ramsbey 提供
---
### data_secrets (簡単)
`cloudgoat create data_secrets`
このシナリオでは、制限された権限を持つIAMユーザーから始めます。ユーザーデータに認証情報が漏洩している設定ミスのあるEC2インスタンスを特定し、SSHアクセスを取得することがタスクです。そこから、インスタンスメタデータサービス(IMDS)を悪用してロールを奪い、Lambda関数を列挙して隠れた環境変数を見つけ、最終的にAWS Secrets Managerに保存されたシークレットへのアクセス権を持つユーザーを侵害します。