
CNAPPgoat هو مشروع مفتوح المصدر مصمم لتوفير مكونات قابلة للاختراق بحكم التصميم بطريقة معيارية في بيئات السحابة.
CNAPPgoat هي أداة نشر بيئات متعددة السحابات، مصممة خصيصًا لتكون قابلة للاختراق - حيث تم تطويرها لتوفير ساحات تدريب للمدافعين ومختبري الاختراق. وتتمثل وظيفتها الرئيسية في نشر بيئات ضعيفة عن قصد عبر العديد من مزودي الخدمات السحابية، لمساعدتك على صقل مهاراتك في استغلال وكشف ومنع هذه الثغرات.

تحذير: ينشر CNAPPgoat بيئات ضعيفة. استخدمه فقط داخل صناديق رمل آمنة وخاضعة للرقابة.
يعمل CNAPPgoat كأداة واجهة سطر أوامر (CLI)، قادرة على نشر بيئات ضعيفة في مجموعة من مزودي الخدمات السحابية. تم بناؤه باستخدام Go ويستخدم Pulumi وواجهة برمجة تطبيقات Pulumi للأتمتة، مما يضمن نشرًا سلسًا للبيئات. ومن ميزاته الفريدة تصميمه المعياري الذي يسمح بالتوسع بسهولة لدعم مجموعة من مزودي الخدمات السحابية والبيئات الضعيفة الجديدة. حتى الآن، يدعم CNAPPgoat AWS وAzure وGCP.
سيتم تثبيت تبعيات Pulumi والمكونات الإضافية عند الحاجة وفقًا لمتطلبات كل سيناريو عند توفير بيئتك الأولى. وهذا يعني أن المرة الأولى للتوفير قد تستغرق وقتًا أطول قليلاً من المرات اللاحقة.
يمكن تثبيت CNAPPgoat بسهولة لمستخدمي macOS باستخدام مدير الحزم Homebrew.
brew tap ermetic-research/cnappgoat
brew install cnappgoat
قم بتنزيل أحدث إصدار من هنا.
tar -xvf cnappgoat-<version>.tar.gz
cd cnappgoat-<version>
(اختياري) إذا كنت ترغب في إضافة الثنائي المستخرج إلى PATH النظام الخاص بك (ليس عليك ذلك، يمكنك تشغيله من الدليل المحلي كـ ./cnappgoat):
الخيار أ: النقل إلى دليل في PATH الخاص بك (على سبيل المثال /usr/local/bin لنظامي macOS وLinux)
mv cnappgoat /usr/local/bin/
الخيار ب: إضافة الدليل الذي يحتوي على الثنائي إلى PATH الخاص بك
لـ bash:
echo 'export PATH=$PATH:<path_to_directory_containing_cnappgoat>' >> ~/.bashrc
source ~/.bashrc
لـ zsh:
echo 'export PATH=$PATH:<path_to_directory_containing_cnappgoat>' >> ~/.zshrc
source ~/.zshrc
استبدل <path_to_directory_containing_cnappgoat> بالمسار المطلق للدليل الذي يوجد فيه الثنائي cnappgoat.
NAME:
cnappgoat - أداة مفتوحة المصدر متعددة السحابات لنشر موارد سحابية قابلة للاختراق عن قصد
USAGE:
cnappgoat [global options] command [command options] [arguments...]
VERSION:
0.1.0-beta, date: 2023-08-02T13:02:46Z, commit: 6bef61857d9f3cf88215269df8976f96317711dc
COMMANDS:
clean تنظيف وإزالة جميع الموارد المنشأة وحذف جميع السيناريوهات وأي ملفات ذات صلة
describe وصف سيناريو
destroy تدمير سيناريوهات وحدة CNAPPgoat
list سرد سيناريوهات وحدة CNAPPgoat
provision توفير سيناريوهات وحدة CNAPPgoat
help, h عرض قائمة بالأوامر أو مساعدة لأمر واحد
GLOBAL OPTIONS:
--debug تفعيل وضع التصحيح (الافتراضي: false)
--help, -h عرض المساعدة
--version, -v طباعة الإصدار
يمكنك استخدام وسائط متعددة مفصولة بمسافات. على سبيل المثال:
cnappgoat provision <سيناريو-1> <سيناريو-2> <سيناريو-N>
--module - يقوم بتصفية السيناريوهات حسب الوحدة (على سبيل المثال CSPM, CIEM, CWPP, DSPM, KSPM إلخ)--platform - يقوم بتصفية السيناريوهات حسب المنصة (على سبيل المثال AWS, Azure, GCP)--force - يمكّن وضع القوة (فتح الأكوام المقفلة باستخدام pulumi cancel)--debug - يمكّن تسجيل التصحيح.هذه الأعلام هي أعلام أوامر ويجب وضعها بعد الأمر. على سبيل المثال:
cnappgoat provision --module CSPM --platform AWS
سيقوم هذا الأمر بتوفير جميع سيناريوهات CSPM الخاصة بـ AWS.
يقوم CNAPPgoat بتحميل السيناريوهات من مستودع cnappgoat-scenarios
في أول تشغيل له كل يوم،
يتم تحميل هذه السيناريوهات تلقائيًا عند تشغيل CNAPPgoat ويتم تخزينها في الدليل ~/.cnappgoat/scenarios.
قبل أن تتمكن من استخدام CNAPPgoat، تحتاج إلى إعداد بيانات اعتماد السحابة الخاصة بك لـ AWS وAzure وGCP. يستخدم CNAPPgoat بيانات الاعتماد الافتراضية لكل مزود. اتبع الخطوات أدناه لإعداد بيانات الاعتماد الخاصة بك:
قم بتثبيت AWS CLI باتباع الإرشادات هنا.
قم بتكوين بيانات اعتماد AWS الخاصة بك عن طريق تشغيل:
aws configure
سيُطلب منك إدخال معرف مفتاح الوصول ومفتاح الوصول السري واسم المنطقة الافتراضية.
قم بتثبيت Azure CLI باتباع الإرشادات هنا.
قم بتسجيل الدخول إلى حساب Azure الخاص بك عن طريق تشغيل:
az login
سيفتح هذا نافذة متصفح جديدة لتسجيل الدخول. بعد تسجيل الدخول، سيتم تخزين بيانات اعتمادك للاستخدام المستقبلي.
قم بتثبيت Google Cloud SDK باتباع الإرشادات هنا.
قم بالمصادقة مع Google Cloud عن طريق تشغيل:
gcloud auth login
سيفتح هذا نافذة متصفح جديدة لتسجيل الدخول. بعد تسجيل الدخول، سيتم تخزين بيانات اعتمادك للاستخدام المستقبلي.
من خلال تعيين بيانات الاعتماد هذه، ستتمكن من نشر السيناريوهات على AWS وAzure وGCP باستخدام CNAPPgoat. إذا كنت تخطط لاستخدام CNAPPgoat مع مزود مختلف، فتأكد من تكوين بيانات الاعتماد وفقًا لذلك.
لمعرفة المزيد حول CNAPPgoat، اطّلع على المقالة في مدونة Ermetic: https://ermetic.com/blog/cloud/cnappgoat-multicloud-open-source-tool-for-deploying-vulnerable-by-design-cloud-resources/
يقوم CNAPPgoat بتوفير مجموعة واسعة من السيناريوهات الضعيفة على سحابات متعددة لاختبار قدرات الكشف والمنع. هناك مشاريع رائعة أخرى للبيئات السحابية الضعيفة تركز على مجالات مختلفة، مثل الاستغلال والكشف وسيناريوهات CTF (التقاط العلم) وما إلى ذلك. لقد استلهمنا من هذه الأدوات والمشاريع، ونوصي بإلقاء نظرة عليها:
يمكن العثور على المزيد من التحديات والأدوات في مستودع Awesome Cloud Security Challeges بقلم Mike Privitte، قائمتنا تركز تحديدًا على البيئات السحابية القابلة للاختراق عن قصد والتي يتم نشرها من قبل المستخدمين في صندوق الرمل الخاص بهم.
لإرسال بريد إلكتروني إلى فريق المشروع، اتصل بـ [email protected]
| الأمر | الوصف | الاستخدام |
|---|
list | يسرد جميع السيناريوهات المتاحة للتوفير. | cnappgoat list |
describe | يوفر معلومات مفصلة حول السيناريو المحدد. | cnappgoat describe <اسم السيناريو> |
provision | يقوم بتوفير السيناريو المحدد باسم السيناريو. لتوفير جميع السيناريوهات، استخدم cnappgoat provision | cnappgoat provision <اسم السيناريو> |
destroy | يدمر السيناريو المحدد باسم السيناريو. لتدمير جميع السيناريوهات، استخدم cnappgoat destroy | cnappgoat destroy <اسم السيناريو> |
clean | ينظف جميع السيناريوهات ويحذف الدليل المحلي .cnappgoat | cnappgoat clean |
--version, -v | يعرض الإصدار الحالي من CNAPPgoat | cnappgoat --version |
--help, -h | يعرض قائمة المساعدة. | cnappgoat --help |