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

إن اختراق البنية التحتية السحابية لمؤسسة ما يشبه الجلوس على منجم ذهب للمهاجمين. وأحيانًا، كل ما يحتاجه المهاجم لاختراق البنية التحتية بأكملها هو سوء تكوين بسيط أو ثغرة أمنية في تطبيقات الويب. نظرًا لأن السحابة جديدة نسبيًا، فإن العديد من المطورين ليسوا على دراية كاملة بمشهد التهديدات، وينتهي بهم الأمر بنشر بنية تحتية سحابية ضعيفة.
AWSGoat هي بنية تحتية ضعيفة عن قصد على AWS، وتتميز بأحدث إصدار من مخاطر أمان تطبيقات الويب العشرة الأولى وفقًا لـ OWASP (2021) وسوء تكوين آخر بناءً على خدمات مثل IAM و S3 و API Gateway و Lambda و EC2 و ECS. تحاكي AWSGoat البنية التحتية الواقعية ولكن مع إضافة نقاط ضعف. وهي تتميز بمسارات تصعيد متعددة وتركز على نهج الصندوق الأسود.
تستخدم AWSGoat البنية التحتية كرمز (Terraform) لنشر البنية التحتية السحابية الضعيفة في حساب AWS الخاص بالمستخدم. وهذا يمنح المستخدم تحكمًا كاملاً في الكود والبنية التحتية والبيئة. باستخدام AWSGoat، يمكن للمستخدم التعلم/الممارسة:
سيتم تقسيم المشروع إلى وحدات، وستكون كل وحدة تطبيق ويب منفصلًا، مدعومًا بتقنيات وممارسات تطوير متنوعة. وسيستفيد من البنية التحتية كرمز من خلال Terraform و GitHub Actions لتسهيل عملية النشر.
تم تقديمه في
من المقرر أن يشمل المشروع جميع الثغرات الهامة بما في ذلك OWASP TOP 10 2021، وسوء التكوين السحابي الشائع. حاليًا، يحتوي المشروع على الثغرات/سوء التكوين التالية.
لتسهيل عملية النشر، يحتاج المستخدم فقط إلى عمل fork لهذا المستودع، وإضافة بيانات اعتماد حساب AWS إلى أسرار GitHub، وتشغيل إجراء Terraform Apply. سيقوم سير العمل هذا بنشر البنية التحتية بأكملها وإخراج عنوان URL للتطبيق المستضاف.
إليك الخطوات المطلوبة:
الخطوة 1. قم بعمل fork للمستودع
الخطوة 2. قم بتعيين أسرار إجراءات GitHub:
AWS_ACCESS_KEY
AWS_SECRET_ACCESS_KEY
الخطوة 3. من علامة تبويب إجراءات المستودع، حدد الوحدة المراد نشرها وقم بتشغيل سير العمل Terraform Apply.
الخطوة 4. ابحث عن عنوان URL للتطبيق في قسم مخرجات Terraform.
يتطلب التثبيت اليدوي لـ AWSGoat اتباع هذه الخطوات:
(ملاحظة: يتطلب ذلك جهاز Linux مع توفر shell /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. وهي تحتوي على ثغرات متنوعة في تطبيقات الويب وتسهل استغلال موارد AWS التي تم تكوينها بشكل خاطئ.
مسار التصعيد:
تتميز الوحدة الثانية بتطبيق داخلي لرواتب الموارد البشرية، يستخدم البنية التحتية لـ AWS ECS. وهي تحتوي على ثغرات متنوعة في تطبيقات الويب وتسهل استغلال موارد AWS التي تم تكوينها بشكل خاطئ.
مسار التصعيد:
المتصفح الموصى به: Google Chrome
الموارد التي تم إنشاؤها مع نشر AWSGoat لن تتكبد أي رسوم إذا كان حساب AWS ضمن الفترة المجانية/التجريبية. ومع ذلك، عند استنفاد/عدم الأهلية للفترة المجانية/التجريبية، سيتم تطبيق الرسوم التالية لمنطقة US-East:
الوحدة 1: 0.0125 دولار/ساعة
الوحدة 2: 0.0505 دولار/ساعة
Jeswin Mathai، كبير المهندسين المعماريين، منصة المختبرات، INE [email protected]
Nishant Sharma، مدير منصة المختبرات، 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
لمزيد من التفاصيل، راجع ملف PDF "AWSGoat.pdf". يحتوي هذا الملف على مجموعة الشرائح المستخدمة في العروض التقديمية.
الوحدة 1:
الوحدة 2:
modules/module-<Number>/src ويمكن استخدامه لتعديل كود التطبيق الحالي.هذا البرنامج هو برنامج مجاني: يمكنك إعادة توزيعه و/أو تعديله بموجب شروط ترخيص MIT.