
AWSGoat : بنية تحتية AWS ضعيفة بشكل متعمد

اختراق البنية التحتية السحابية لمؤسسة ما يشبه الجلوس على منجم ذهب بالنسبة للمهاجمين. وأحيانًا، يكون سوء التكوين البسيط أو ثغرة أمنية في تطبيقات الويب كل ما يحتاجه المهاجم لاختراق البنية التحتية بأكملها. ولأن السحابة لا تزال حديثة نسبيًا، فإن العديد من المطورين ليسوا على دراية كاملة بمشهد التهديدات، وينتهي بهم الأمر بنشر بنية تحتية سحابية معرضة للخطر.
AWSGoat هي بنية تحتية معرضة للخطر بحكم التصميم على AWS، وتتضمن أحدث مخاطر أمن تطبيقات الويب المدرجة في OWASP Top 10 (2021) وغيرها من حالات سوء التكوين المرتبطة بخدمات مثل IAM وS3 وAPI Gateway وLambda وEC2 وECS. تحاكي AWSGoat البنية التحتية الواقعية لكن مع ثغرات أمنية مضافة. وتتضمن مسارات تصعيد متعددة وتركز على النهج الأسود (black-box).
تستخدم AWSGoat البنية التحتية كرمز (IaC) عبر Terraform لنشر البنية التحتية السحابية المعرضة للخطر على حساب AWS الخاص بالمستخدم. وهذا يمنح المستخدم تحكمًا كاملًا في الكود والبنية التحتية والبيئة. وباستخدام AWSGoat، يمكن للمستخدم تعلم/ممارسة:
سيتم تقسيم المشروع إلى وحدات، وستكون كل وحدة تطبيق ويب منفصلًا، مدعومًا بمجموعات تقنيات وممارسات تطوير متنوعة. وسيستفيد من IaC عبر terraform وGitHub actions لتسهيل عملية النشر.
قُدِّم في
من المقرر أن يشمل المشروع جميع الثغرات الأمنية المهمة بما في ذلك OWASP TOP 10 2021، وحالات سوء التكوين السحابي الشائعة. حاليًا، يحتوي المشروع على الثغرات الأمنية/حالات سوء التكوين التالية.
لتسهيل عملية النشر، يحتاج المستخدم فقط إلى عمل fork لهذا المستودع، وإضافة بيانات اعتماد حساب AWS الخاصة به إلى أسرار GitHub، ثم تشغيل إجراء Terraform Apply. سيقوم سير العمل هذا بنشر البنية التحتية بأكملها وإخراج عنوان URL للتطبيق المستضاف.
فيما يلي الخطوات التي يجب اتباعها:
الخطوة 1. اعمل fork للمستودع
الخطوة 2. اضبط أسرار GitHub Action:
AWS_ACCESS_KEY
AWS_SECRET_ACCESS_KEY
الخطوة 3. من علامة تبويب إجراءات المستودع (repository actions)، اختر الوحدة النمطية (module) التي تريد نشرها وشغّل سير العمل Terraform Apply.
الخطوة 4. اعثر على رابط التطبيق في قسم مخرجات Terraform.
يتطلب تثبيت 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
تتضمن الوحدة الأولى تطبيق مدونة بلا خادم (serverless) يستخدم AWS Lambda وS3 وAPI Gateway وDynamoDB. وتتكون من ثغرات متعددة في تطبيقات الويب وتسهّل استغلال موارد AWS المُهيأة بشكل خاطئ.
مسار التصعيد:
تتضمن الوحدة الثانية تطبيق رواتب الموارد البشرية الداخلي، باستخدام البنية التحتية AWS ECS. وتتكون من ثغرات متعددة في تطبيقات الويب وتسهّل استغلال موارد AWS المُهيأة بشكل خاطئ.
مسار التصعيد:
المتصفح الموصى به: Google Chrome
لن تتحمل الموارد التي يتم إنشاؤها عند نشر AWSGoat أي رسوم إذا كان حساب AWS ضمن الفئة المجانية/فترة التجربة. ومع ذلك، عند استنفاد الفئة المجانية/فترة التجربة أو عدم أهليتها، ستُطبَّق الرسوم التالية لمنطقة US-East:
الوحدة 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
لمزيد من التفاصيل، راجع ملف PDF "AWSGoat.pdf". يحتوي هذا الملف على شرائح العرض المستخدمة في العروض التقديمية.
الوحدة 1:
الوحدة 2:
modules/module-<Number>/src ويمكن استخدامه لتعديل كود التطبيق الحالي.