
ورشة عمل عملية لتأمين خطوط أنابيب CI/CD تتضمن مختبر Terraform، واستغلال AWS، والهروب من Kubernetes، وتمارين زرع الأبواب الخلفية في القطع الأثرية، للتدريب على الأمن الهجومي.
أصبحت خطوط أنابيب CI/CD بشكل متزايد جزءًا من البنية التحتية القياسية داخل فرق التطوير، ومع ظهور أساليب جديدة مثل البنية التحتية كرمز (Infrastructure as Code)، يتصاعد مستوى حساسية هذه الخطوط بسرعة. في حال حدوث اختراق، لم تعد التطبيقات وحدها هي المعرضة للخطر، بل الأنظمة الأساسية نفسها، وفي كثير من الأحيان نظام المعلومات بأكمله.
نعتقد أن هذه البنى التحتية، رغم أنها ليست مستهدفة من قبل المهاجمين حاليًا، ستصبح نقطة تركيز رئيسية للمهاجمين في السنوات القادمة. وذلك بسبب بيانات الاعتماد التي تتعامل معها خطوط الأنابيب وعدم وجود مراقبة معتادة على هذه البيئات.
خلال Hacking Summer Camp 2022، شرحنا كيف بدأ المهاجمون في استغلال هذه الثغرات سواء لشن هجمات على سلسلة التوريد أو أيضًا لتصعيد امتيازاتهم داخل نظام المعلومات الخاص بالضحية. يحتوي هذا المستودع على مواد ورشتي عمل BSides Las Vegas 22 وDEFCON 30. وسيتيح للطلاب استغلال هذه الهجمات على مختبر واسع النطاق.
قُدّم في
مرحبًا بكم في شركة DataLeek، بعد عدة عقود من تطوير نموذج الشلال (V-cycle) قررنا الآن اعتماد منهجية "أجايل" (agile). ولتحقيق ذلك، قامت فرق تقنية المعلومات لدينا بإعداد خط أنابيب CI/CD يعتمد على أحدث الأدوات وأكثرها تطورًا المتوفرة في السوق. ومع ذلك، ولأسباب معينة، يبدو أن مدير أمن المعلومات لدينا يشك في المستوى الأمني لهذه البنية التحتية الجديدة تمامًا ويصر على إجراء اختبار اختراق عليها.
مهمتكم، إذا اخترتم قبولها، هي تقييم المستوى الأمني لخط أنابيب CI/CD هذا وتقديم حلول لمعالجة المشكلات التي تم تحديدها.
في هذه الورشة العملية بالكامل، سنرشدكم عبر العديد من الثغرات الأمنية التي شهدناها خلال العديد من اختبارات الاختراق. ستتعلمون كيفية:
ستُجرى التمارين العملية في بيئة المختبر الخاصة بنا مع مجموعة واسعة من الأدوات. لكل هجوم، سنركز أيضًا على الوقاية وتقنيات التخفيف والطرق المحتملة لاكتشاف عمليات الاستغلال.
يلزم توفر 3 حسابات AWS لنشر المختبر:
الخطوة 1. استنساخ المستودع
git clone https://github.com/wavestone-cdt/DEFCON-CICD-pipelines-workshop
الخطوة 2. قم بتعيين أسرار AWS في ملف بيانات الاعتماد الخاص بك
[infra]
aws_access_key_id=AKIAXXXXXXXX
aws_secret_access_key=XXXXXXXXX
[src]
aws_access_key_id=AKIAXXXXXXXX
aws_secret_access_key=XXXXXXXXX
[dest]
aws_access_key_id=AKIAXXXXXXXX
aws_secret_access_key=XXXXXXXXX
الخطوة 3. من مجلد 0_Terraform-init، قم بتشغيل:
terraform init
terraform apply --auto-approve
الخطوة 4. اتبع التعليمات في 1_Labs
تم إنشاء هذه الورشة في الأصل بواسطة Rémi ESCOURROU وGauthier SEBAUX وXavier GERONDEAU كجزء من عملنا في @Wavestone ضمن فريق الأمن الهجومي.
شكرًا جزيلاً لصديقنا وخبير AWS، Arnaud PETITCOL، على مساعدته ونصائحه.
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE.md للحصول على التفاصيل.