chikoblog

やってみたことの掃溜め

AWSセキュリティ学習環境構築ツールCloudGoatの初期設定

僕のようなAWSセキュリティに興味がある人にうってつけのツールCloudGoatを見つけたので環境構築をやってみました。

CloudGoatとは

f:id:Chiko_gorilla:20200126180221j:plain

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管理ポリシー)権限を付与します。
f:id:Chiko_gorilla:20200126172938p:plain

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をやる際はくれぐれも注意してお勉強いただければと思います。