
Terraformを使用して意図的に脆弱なクラウドインフラをプロビジョニングし、セキュリティトレーニングや実践のためのマルチクラウド脆弱性設計デプロイツール。
英語 | 中文
TerraformGoat は HXSecurity 研究所による「脆弱性設計」(Vulnerable by Design) のマルチクラウドデプロイメントツールです。
現在対応しているクラウドベンダーは、Alibaba Cloud、Tencent Cloud、Huawei Cloud、Amazon Web Services、Google Cloud Platform、Microsoft Azure です。
TerraformGoat は Docker イメージを使用してデプロイされるため、Docker Engine 環境のサポートが必要です。Docker Engine のインストールは https://docs.docker.com/engine/install/ を参照してください。
使用しているクラウドサービスプロバイダーに応じて、対応するインストールコマンドを選択してください。
Alibaba Cloud
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.7
docker run -itd --name terraformgoat_aliyun_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.7
docker exec -it terraformgoat_aliyun_0.0.7 /bin/bash
Tencent Cloud
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_tencentcloud:0.0.7
docker run -itd --name terraformgoat_tencentcloud_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_tencentcloud:0.0.7
docker exec -it terraformgoat_tencentcloud_0.0.7 /bin/bash
Huawei Cloud
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_huaweicloud:0.0.7
docker run -itd --name terraformgoat_huaweicloud_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_huaweicloud:0.0.7
docker exec -it terraformgoat_huaweicloud_0.0.7 /bin/bash
Amazon Web Services
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aws:0.0.7
docker run -itd --name terraformgoat_aws_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aws:0.0.7
docker exec -it terraformgoat_aws_0.0.7 /bin/bash
Google Cloud Platform
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_gcp:0.0.7
docker run -itd --name terraformgoat_gcp_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_gcp:0.0.7
docker exec -it terraformgoat_gcp_0.0.7 /bin/bash
Microsoft Azure
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_azure:0.0.7
docker run -itd --name terraformgoat_azure_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_azure:0.0.7
docker exec -it terraformgoat_azure_0.0.7 /bin/bash
コンテナに入ったら、対応するシナリオディレクトリに cd してシナリオのデプロイを開始できます。
以下は、Alibaba Cloud Bucket Object Traversal シナリオ構築のデモです。
docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.7
docker run -itd --name terraformgoat_aliyun_0.0.7 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.7
docker exec -it terraformgoat_aliyun_0.0.7 /bin/bash

cd /TerraformGoat/aliyun/oss/bucket_object_traversal/
aliyun configure
terraform init
terraform apply

プログラムが Enter a value: と表示したら、yes と入力して Enter キーを押し、curl でバケットにアクセスすると、オブジェクトが走査されていることが確認できます。

クラウドサービスに継続的な料金が発生するのを防ぐため、使用後は速やかにシナリオを破棄してください。
terraform destroy
コンテナ内にいる場合は、まず exit コマンドを実行してコンテナを終了し、ホスト上で以下のコマンドを実行してください。
docker stop $(docker ps -a -q -f "name=terraformgoat*")
docker rm $(docker ps -a -q -f "name=terraformgoat*")
docker rmi $(docker images -a -q -f "reference=registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat*")
コントリビューションは大歓迎です。詳細なコントリビューションのワークフローについては、CONTRIBUTING.md を参照してください。
TerraformGoat は Apache 2.0 ライセンスの下で提供されています。詳細は LICENSE ファイルを参照してください。
| ID | クラウドサービス事業者 | クラウドサービスの種類 | 脆弱性環境 |
|---|
| 1 | Alibaba Cloud | ネットワーキング | VPC セキュリティグループが全ポートを開放 |
| 2 | Alibaba Cloud | ネットワーキング | VPC セキュリティグループが一般的なポートを開放 |
| 3 | Alibaba Cloud | オブジェクトストレージ | バケットの HTTP 有効化 |
| 4 | Alibaba Cloud | オブジェクトストレージ | オブジェクト ACL 書き込み可能 |
| 5 | Alibaba Cloud | オブジェクトストレージ | オブジェクト ACL 読み取り可能 |
| 6 | Alibaba Cloud | オブジェクトストレージ | 特殊なバケットポリシー |
| 7 | Alibaba Cloud | オブジェクトストレージ | バケットの公開アクセス |
| 8 | Alibaba Cloud | オブジェクトストレージ | オブジェクトの公開アクセス |
| 9 | Alibaba Cloud | オブジェクトストレージ | バケットログ記録の無効化 |
| 10 | Alibaba Cloud | オブジェクトストレージ | バケットポリシー読み取り可能 |
| 11 | Alibaba Cloud | オブジェクトストレージ | バケットオブジェクトの走査 |
| 12 | Alibaba Cloud | オブジェクトストレージ | 無制限ファイルアップロード |
| 13 | Alibaba Cloud | オブジェクトストレージ | サーバーサイド暗号化 KMS 未設定 |
| 14 | Alibaba Cloud | オブジェクトストレージ | BYOK を使用しないサーバーサイド暗号化 |
| 15 | Alibaba Cloud | Elastic Computing Service | ECS SSRF |
| 16 | Alibaba Cloud | Elastic Computing Service | 未接続の ECS ディスクが暗号化されていない |
| 17 | Alibaba Cloud | Elastic Computing Service | ECS 仮想マシンディスクが暗号化されていない |
| 18 | Tencent Cloud | ネットワーキング | VPC セキュリティグループが全ポートを開放 |
| 19 | Tencent Cloud | ネットワーキング | VPC セキュリティグループが一般的なポートを開放 |
| 20 | Tencent Cloud | オブジェクトストレージ | バケット ACL 書き込み可能 |
| 21 | Tencent Cloud | オブジェクトストレージ | バケット ACL 読み取り可能 |
| 22 | Tencent Cloud | オブジェクトストレージ | バケットの公開アクセス |
| 23 | Tencent Cloud | オブジェクトストレージ | オブジェクトの公開アクセス |
| 24 | Tencent Cloud | オブジェクトストレージ | 無制限ファイルアップロード |
| 25 | Tencent Cloud | オブジェクトストレージ | バケットオブジェクトの走査 |
| 26 | Tencent Cloud | オブジェクトストレージ | バケットログ記録の無効化 |
| 27 | Tencent Cloud | オブジェクトストレージ | サーバーサイド暗号化の無効化 |
| 28 | Tencent Cloud | Elastic Computing Service | CVM SSRF |
| 29 | Tencent Cloud | Elastic Computing Service | CBS ストレージが使用されていない |
| 30 | Tencent Cloud | Elastic Computing Service | CVM 仮想マシンディスクが暗号化されていない |
| 31 | Huawei Cloud | ネットワーキング | ECS 安全でないセキュリティグループ |
| 32 | Huawei Cloud | オブジェクトストレージ | オブジェクト ACL 書き込み可能 |
| 33 | Huawei Cloud | オブジェクトストレージ | 特殊なバケットポリシー |
| 34 | Huawei Cloud | オブジェクトストレージ | 無制限ファイルアップロード |
| 35 | Huawei Cloud | オブジェクトストレージ | バケットオブジェクトの走査 |
| 36 | Huawei Cloud | オブジェクトストレージ | 誤ったポリシーによる任意ファイルアップロード |
| 37 | Huawei Cloud | Elastic Computing Service | ECS SSRF |
| 38 | Huawei Cloud | Relational Database Service | RDS MySQL ベースラインチェック環境 |
| 39 | Amazon Web Services | ネットワーキング | VPC セキュリティグループが全ポートを開放 |
| 40 | Amazon Web Services | ネットワーキング | VPC セキュリティグループが一般的なポートを開放 |
| 41 | Amazon Web Services | オブジェクトストレージ | オブジェクト ACL 書き込み可能 |
| 42 | Amazon Web Services | オブジェクトストレージ | バケット ACL 書き込み可能 |
| 43 | Amazon Web Services | オブジェクトストレージ | バケット ACL 読み取り可能 |
| 44 | Amazon Web Services | オブジェクトストレージ | MFA 削除が無効 |
| 45 | Amazon Web Services | オブジェクトストレージ | 特殊なバケットポリシー |
| 46 | Amazon Web Services | オブジェクトストレージ | バケットオブジェクトの走査 |
| 47 | Amazon Web Services | オブジェクトストレージ | 無制限ファイルアップロード |
| 48 | Amazon Web Services | オブジェクトストレージ | バケットログ記録の無効化 |
| 49 | Amazon Web Services | オブジェクトストレージ | バケットの HTTP アクセス許可 |
| 50 | Amazon Web Services | オブジェクトストレージ | バケットのデフォルト暗号化無効 |
| 51 | Amazon Web Services | Elastic Computing Service | EC2 SSRF |
| 52 | Amazon Web Services | Elastic Computing Service | コンソール乗っ取り |
| 53 | Amazon Web Services | Elastic Computing Service | EBS ボリュームが使用されていない |
| 54 | Amazon Web Services | Elastic Computing Service | EBS ボリューム暗号化が無効 |
| 55 | Amazon Web Services | Elastic Computing Service | EBS ボリュームのスナップショットが暗号化されていない |
| 56 | Amazon Web Services | Identity and Access Management | IAM 権限昇格 |
| 57 | Google Cloud Platform | オブジェクトストレージ | オブジェクト ACL 書き込み可能 |
| 58 | Google Cloud Platform | オブジェクトストレージ | バケット ACL 書き込み可能 |
| 59 | Google Cloud Platform | オブジェクトストレージ | バケットオブジェクトの走査 |
| 60 | Google Cloud Platform | オブジェクトストレージ | 無制限ファイルアップロード |
| 61 | Google Cloud Platform | Elastic Computing Service | VM コマンド実行 |
| 62 | Microsoft Azure | オブジェクトストレージ | Blob 公開アクセス |
| 63 | Microsoft Azure | オブジェクトストレージ | コンテナ Blob 走査 |
| 64 | Microsoft Azure | Elastic Computing Service | VM コマンド実行 |