
أداة لإنشاء (وإزالة!) بنية تحتية سحابية غير آمنة عن قصد
sadcloud هو أداة لإنشاء بنية تحتية غير آمنة على AWS باستخدام Terraform.
وهو يدعم حوالي 84 من الإعدادات الخاطئة عبر 22 خدمة من خدمات AWS. المجموعة الأولية من الإعدادات الخاطئة مستمدة من ScoutSuite، أداة تدقيق السحابة المتعددة من NCCGroup.
أُنشئ sadcloud لتمكين باحثي الأمن بسهولة من إعداد AWS بشكل خاطئ لأغراض التدريب، أو لاستخدامه في تقييم أدوات أمان AWS - بما في ذلك الأدوات المدمجة وأدوات الطرف الثالث.
تقوم هذه الأداة بإنشاء موارد AWS مهيأة بشكل عرضة للاختراق عمدًا. يرجى عدم تشغيلها في بيئة الإنتاج الخاصة بك، أو في أي مكان يُفترض أن يكون آمنًا. فكّر في إنشاء حساب AWS جديد لتشغيل هذه الأداة فيه. نظرًا لأن هذه الأداة تنشئ موارد سحابية، فسوف يترتب عليها رسوم على حساب AWS الخاص بك. لقد بُذلت جهود لتقليل التكاليف المتكبدة، لكن NCC Group والقائمين على هذه الأداة غير مسؤولين عن أي رسوم أو مشكلات أمنية قد تنجم عن استخدام هذه الأداة. تأكد من هدم جميع موارد Terraform عند عدم استخدامها!
أنتج تشغيل اختباري لمدة 24 ساعة لـ sadcloud فاتورة تبلغ حوالي 10 دولارات. معظم هذه التكلفة تأتي من وحدة Redshift (25 سنتًا/ساعة = 6 دولارات/يوم) ووحدة EKS (10 سنتات/ساعة = 2.40 دولار/يوم).
نستخدم sadcloud بشكل دوري لعرض أدوات تدقيق AWS وterraform المختلفة. جميع التدقيقات تستهدف المجموعة الكاملة من الإعدادات الخاطئة المحتملة.
البرامج المطلوبة: Terraform
تأكد من كتابة مفاتيح SSH الخاصة بك في data/ssh_keys/terraform_rsa{,.pub}.
ssh-keygen -t rsa -b 4096 -f data/ssh_keys/terraform_rsa
git clone https://github.com/nccgroup/sadcloud.gitcd sadcloud/sadcloudقم بإعداد موفر AWS (انظر قسم "استخدام الموفرين بدلاً من متغيرات البيئة" أدناه للحصول على تعليمات لتجنب هذه الخطوة):
export AWS_ACCESS_KEY_ID="accesskey"
export AWS_SECRET_ACCESS_KEY="secretkey"
export AWS_DEFAULT_REGION="us-east-1"
جهّز Terraform:
terraform init
قم بتكوين sadcloud بالإعدادات الخاطئة التي تريدها:
لتفعيل جميع النتائج (... باستثناء تلك التي تتعارض مع نتائج أخرى):
sadcloud/main.tfall_findings في sadcloud/terraform.tfvars إلى true، أو باستدعاء terraform apply مع العلامة --var="all_findings=true"لتفعيل جميع النتائج في خدمة واحدة أو أكثر:
sadcloud/main.tfall_{service}_findings ذات الصلة في sadcloud/terraform.tfvars إلى true، أو باستدعاء terraform apply مع العلامة --var="all_{service}_findings=true"ملاحظة: جميع الإعدادات الخاطئة في sadcloud معطلة افتراضيًا. جميع الخدمات معطلة افتراضيًا لمنع إنشاء موارد غير ضرورية. ضبط المتغير لإعداد خاطئ على true يؤدي دائمًا إلى إعداد خاطئ. قد يستغرق تشغيل all_findings من 10 إلى 15 دقيقة.
تحقق منه:
terraform plan
انشره:
terraform apply
قم بهدمه:
terraform destroy
ملاحظة: سيقوم terraform apply بإنشاء خدمات في AWS. هذه الخدمات تكلف أموالًا. لا تنسَ تشغيل terraform destroy بعد الانتهاء. تأكد من تشغيل terraform plan قبل تشغيل all_findings حتى تفهم ما الذي ستقوم به!
من الممكن إعداد موفر AWS بحيث لا تضطر إلى ضبط متغيرات البيئة في كل مرة.
أنشئ ملفًا باسم sadcloud/providers.tf بالمحتوى التالي:
provider "aws" {
access_key = "YOUR_AWS_ACCESS_KEY"
secret_key = "YOUR_AWS_SECRET_KEY"
region = "us-east-1"
}
| الأداة | تقرير نموذجي |
|---|
all_findings في sadcloud/terraform.tfvars إلى true، أو باستدعاء terraform apply مع العلامة --var="all_findings=true"
ملاحظة: توجد حاليًا مشكلة في Terraform مع خدمة Cloudformation. لتوليد نتائج Cloudformation، ستحتاج إلى تشغيل Terraform apply مرتينلتفعيل نتائج محددة بشكل دقيق:
sadcloud/main.tfsadcloud/main.tf، مع ضبطها إلى true حيث يكون ذلك مرغوبًا.needs_network على true في sadcloud/main.tf