AWSセキュリティ学習環境構築ツールCloudGoatの初期設定
僕のようなAWSセキュリティに興味がある人にうってつけのツールCloudGoatを見つけたので環境構築をやってみました。
CloudGoatとは
Rhino Security Labs社が開発したセキュリティ学習用の脆弱性があるAWS環境構築ツールです。
用意されているシナリオを進めていくことでクラウドサイバーセキュリティスキルを磨くことができます。
各シナリオは、
攻撃者として環境調査をおこない脆弱性を特定するところから始まります。
脆弱性の特定ができたらそれを悪用しサービスの情報を盗むことが目標です。
詳細は以下の公式GitHubに載っています。 github.com
クラメソ様も記事を書いておりますのでこちらも参考までに dev.classmethod.jp
※注意事項
実際に試す際は個人のアカウントをお勧めします。
意図的に脆弱なAWSリソースを作成する必要がありますので、
機密性の高いAWSリソースと一緒に配置は絶対にしないでください
また、一部のシナリオではFree-Tierをこえるリソースが作成されます。
利用後は必ず不要なリソース削除を忘れないようにしてください!
CloudGoatの初期設定
CloudGoatをやる場合の必要条件
- 対象OSはLinux or MacOSです。 ※Windowsはサポートされていません!
- 引数タブ補完にはbash 4.2+を利用する
- Python3.6 以上がインストールされていること
- Terraform 0.12がインストールされていること
- AWS CLIがインストールされていること
- リソースを作成および削除するのに十分な権限を持つAWSアカウントであること
環境構築
VPCとNW設定は省略します。デフォルトVPCを使う場合は以下を参考にしていただければと思います。 chikoblog.hatenablog.jp
IAM user作成
CloudGoatからAWSリソースを作成するためのIAM userを作成します。
CloudGoatという名称のIAM userを作成し、
AdministratorAccess(AWS管理ポリシー)権限を付与します。
ES2の設定
必要条件をもとに僕は先ほどIAM userを作成したAWSアカウントに
以下の内容で作業用EC2を作成しました。
インスタンスタイプ:t2.micro
OS:Amazon Linux 2
初期作業
yum update
でパッケージをアップデートをします。
$ sudo yum update
$ aws configure --profile CloudGoat AWS Access Key ID [None]: CloudGoatのアクセスキー AWS Secret Access Key [None]: CloudGoatのシークレットキー Default region name [None]: Default output format [None]:
Python3.6 以上のインストール
Python がインストールされているかどうかを確認します。
$ python3 --version bash: python3: コマンドが見つかりません
上記のようにインストールされていなければPython をインストールします。
$ sudo yum install python3
次のコマンドを実行して、Python が正しくインストールされたことを確認します。
# python3 --version Python 3.7.4
Terraformのインストール
ダウンロードしたいバージョンを確認します。
Terraform 0.12が必要です。
releases.hashicorp.com
必要なバージョンのzipファイルをダウンロードします。
$ wget https://releases.hashicorp.com/terraform/0.12.20/terraform_0.12.20_linux_amd64.zip
ダウンロードしたzipファイルを解凍します。
$ unzip terraform_0.12.20_linux_amd64
/usr/bin
に解凍したファイルを移動します。
$ sudo mv terraform /usr/bin
最後にTerraformが動くかの確認をおこないます。
$ terraform -v Terraform v0.12.20
クイックスタートの実施
CloudGoatをインストールするのに必要条件を満たしたら次のコマンドを実行します。
$ git clone https://github.com/RhinoSecurityLabs/cloudgoat.git ./CloudGoat
※Gitがインストールされていなければ以下のコマンドでインストールしてください。
$ sudo yum install git-all
正しくgit clone
できたか確認し、CloudGoat
ディレクトリに移動します。
$ ls CloudGoat $ cd CloudGoat/
Pythonの必要パッケージをpip3でインストールします。
$ sudo pip3 install -r ./core/python/requirements.txt
git clone
で持ってきたcloudgoat.py
に実行権限を付与します。
$ chmod u+x cloudgoat.py
デフォルトプロファイルの作成をおこないます。
使用するAWSプロファイルのCloudGoat
を選択します。
$ ./cloudgoat.py config profile No configuration file was found at /home/ec2-user/CloudGoat/config.yml Would you like to create this file with a default profile name now? [y/n]: y Enter the name of your default AWS profile: CloudGoat A default profile name of "CloudGoat" has been saved.
whitelist.txt
ファイルの設定をおこないます。
y
を選択するとifconfig.co
にネットワーク要求を自動的おこない、
その結果をwhitelist.txt
に書き込みます。
$ ./cloudgoat.py config whitelist --auto No whitelist.txt file was found at /home/ec2-user/CloudGoat/whitelist.txt CloudGoat can automatically make a network request, using curl, to ifconfig.co to find your IP address, and then create the whitelist file with the result. Would you like to continue? [y/n]: y whitelist.txt created with IP address xxx.xxx.xxx.xxx/xx
これで以下のように./cloudgoat.py create
の後にシナリオ名を入力する事でCludoGoatを開始できます。
./cloudgoat.py create cloud_breach_s3
終わりに
今後はCloudGoatの各シナリオをやっていき、
その記事を書いていこうかと思ってます。
その前の初期設定や環境設定に僕は詰まってしまったので、
記事を書かせていただきました。
脆弱性があるAWS環境構築を作ってしまうので
ある程度悪用を防ぐ手段を現在考え中です。
みなさまもCloudGoatをやる際はくれぐれも注意してお勉強いただければと思います。