
AWSGoat : 意図的に脆弱なAWSインフラストラクチャ

組織のクラウドインフラを侵害することは、攻撃者にとって金鉱に座っているようなものです。そして時には、単純な設定ミスやWebアプリケーションの脆弱性だけで、攻撃者がインフラ全体を侵害するのに十分な場合があります。クラウドは比較的新しいため、多くの開発者は脅威の全体像を十分に認識しておらず、結果として脆弱なクラウドインフラをデプロイしてしまいます。
AWSGoatは、AWS上で設計上脆弱なインフラであり、最新リリースのOWASP Top 10 Webアプリケーションセキュリティリスク(2021)や、IAM、S3、API Gateway、Lambda、EC2、ECSなどのサービスに基づくその他の設定ミスを特徴としています。AWSGoatは実際のインフラを模倣しつつ、脆弱性を追加しています。複数のエスカレーションパスを備え、ブラックボックスアプローチに焦点を当てています。
AWSGoatはIaC(Terraform)を使用して、ユーザーのAWSアカウント上に脆弱なクラウドインフラをデプロイします。これにより、ユーザーはコード、インフラ、環境を完全に制御できます。AWSGoatを使用することで、ユーザーは以下を学習/実践できます:
プロジェクトはモジュールに分割され、各モジュールはさまざまな技術スタックと開発手法で構築された個別のWebアプリケーションとなります。TerraformとGitHub Actionsを通じてIaCを活用し、デプロイプロセスを容易にします。
発表実績
このプロジェクトは、OWASP TOP 10 2021を含むすべての重要な脆弱性と、一般的なクラウドの設定ミスを網羅する予定です。 現在、このプロジェクトには以下の脆弱性/設定ミスが含まれています。
デプロイプロセスを容易にするため、ユーザーはこのリポジトリをフォークし、AWSアカウントの認証情報をGitHubシークレットに追加して、Terraform Applyアクションを実行するだけで済みます。このワークフローはインフラ全体をデプロイし、ホストされたアプリケーションのURLを出力します。
以下に従う手順を示します:
ステップ1. リポジトリをフォークする
ステップ2. GitHub Actionのシークレットを設定する:
AWS_ACCESS_KEY
AWS_SECRET_ACCESS_KEY
ステップ 3. リポジトリのアクションタブから、デプロイするモジュールを選択し、Terraform Apply ワークフローを実行します。
ステップ 4. Terraform の出力セクションでアプリケーションの URL を確認します。
AWSGoat を手動でインストールするには、以下の手順に従う必要があります:
(注: これには Linux マシンと /bin/bash シェルが利用可能であることが必要です)
ステップ 1. リポジトリをクローンします
git clone https://github.com/ine-labs/AWSGoat
ステップ 2. AWS ユーザーアカウントの認証情報を設定する
aws configure
ステップ3. 各モジュールのディレクトリに移動し、terraform を使用して AWSGoat をデプロイします
cd modules/module-<Number>
terraform init
terraform apply --auto-approve
最初のモジュールは、AWS Lambda、S3、API Gateway、DynamoDB を活用したサーバーレスブログアプリケーションを特徴としています。さまざまな Web アプリケーションの脆弱性を備え、設定が不適切な AWS リソースの悪用を容易にします。
エスカレーション経路:
2 番目のモジュールは、AWS ECS インフラストラクチャを活用した社内 HR 給与計算アプリケーションを特徴としています。さまざまな Web アプリケーションの脆弱性を備え、設定が不適切な AWS リソースの悪用を容易にします。
エスカレーション経路:
推奨ブラウザ: Google Chrome
AWSGoat のデプロイで作成されるリソースは、AWS アカウントが無料利用枠/トライアル期間内であれば料金は発生しません。ただし、無料利用枠/トライアルを使い果たした場合、または対象外となった場合は、米国東部リージョンにおいて以下の料金が適用されます:
モジュール 1: $0.0125/時間
モジュール 2: $0.0505/時間
Jeswin Mathai, Chief Architect, Lab Platform, INE [email protected]
Nishant Sharma, Director, Lab Platform, INE [email protected]
Sanjeev Mahunta, Software Engineer (Cloud), INE [email protected]
Shantanu Kale, Cloud Developer, INE [email protected]
Govind Krishna Lal Balaji, Cloud Developer, INE [email protected]
Litesh Ghute, Senior Engineer, INE [email protected], LinkedIn
攻撃用マニュアルは attack-manuals ディレクトリに、防御用マニュアルは defence-manuals ディレクトリにあります。
モジュール 1 の悪用動画: https://www.youtube.com/playlist?list=PLcIpBb4raSZEMosUmY8KpxPWtjKRMSmNx
詳細については、「AWSGoat.pdf」PDF ファイルを参照してください。このファイルには、プレゼンテーションで使用されたスライドデッキが含まれています。
モジュール 1:
モジュール 2:
modules/module-<Number>/src にあり、既存のアプリケーションコードの変更に使用できます。このプログラムはフリーソフトウェアです。MIT ライセンスの条件に従って、再配布および/または変更することができます。
このプログラムとともに MIT ライセンスのコピーを受け取っているはずです。受け取っていない場合は、https://opensource.org/licenses/MIT を参照してください。