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

組織のクラウドインフラを侵害することは、攻撃者にとって金鉱を掘り当てるようなものです。そして、単純な設定ミスやWebアプリケーションの脆弱性が、攻撃者にインフラ全体を侵害させるために必要なすべてであることもあります。クラウドは比較的新しいため、多くの開発者が脅威の全体像を完全に把握しておらず、脆弱なクラウドインフラをデプロイしてしまうことがあります。
AWSGoatは、最新のOWASP Top 10 Webアプリケーションセキュリティリスク(2021年)や、IAM、S3、API Gateway、Lambda、EC2、ECSなどのサービスにおける設定ミスを特徴とする、意図的に脆弱に設計されたAWSインフラです。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. リポジトリのActionsタブから、デプロイするモジュールを選択し、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アカウントが無料利用枠/トライアル期間中である場合、料金は発生しません。ただし、無料利用枠/トライアルの期限切れまたは対象外となった場合、US-Eastリージョンでは以下の料金が適用されます:
モジュール1: $0.0125/時間
モジュール2: $0.0505/時間
Jeswin Mathai, チーフアーキテクト, Lab Platform, INE [email protected]
Nishant Sharma, ディレクター, Lab Platform, INE [email protected]
Sanjeev Mahunta, ソフトウェアエンジニア(クラウド), INE [email protected]
Shantanu Kale, クラウド開発者, INE [email protected]
Govind Krishna Lal Balaji, クラウド開発者, INE [email protected]
Litesh Ghute, ソフトウェアエンジニア, INE [email protected]
攻撃用マニュアルは 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 を参照してください。