
أداة مسح أمني متعددة السحابات تقوم بتدقيق AWS و Azure و GCP و OCI لاكتشاف التكوينات الخاطئة وانتهاكات الامتثال (HIPAA و PCI و CIS) والمخاطر الأمنية عبر فحوصات آلية قائمة على الإضافات.
$ git clone https://github.com/aquasecurity/cloudsploit.git
$ cd cloudsploit
$ npm install
$ ./index.js -h
$ git clone https://github.com/aquasecurity/cloudsploit.git
$ cd cloudsploit
$ docker build . -t cloudsploit:0.0.1
$ docker run cloudsploit:0.0.1 -h
$ docker run -e AWS_ACCESS_KEY_ID=XX -e AWS_SECRET_ACCESS_KEY=YY cloudsploit:0.0.1 --compliance=pci
CloudSploit من Aqua هو مشروع مفتوح المصدر مصمم للكشف عن المخاطر الأمنية في حسابات البنية التحتية السحابية، بما في ذلك: أمازون ويب سيرفيسز (AWS)، مايكروسوفت أزور (Azure)، منصة جوجل السحابية (GCP)، البنية التحتية السحابية من أوراكل (OCI)، وGitHub. تهدف هذه البرامج النصية إلى إرجاع سلسلة من التكوينات الخاطئة المحتملة والمخاطر الأمنية.
يتوفر CloudSploit بخيارين للنشر:
اتبع التعليمات أدناه لنشر الإصدار مفتوح المصدر من CloudSploit على جهازك في بضع خطوات بسيطة.
نسخة تجارية من CloudSploit مستضافة في Aqua Wave. جرّب Aqua Wave اليوم!
تأكد من تثبيت NodeJS. إذا لم يكن مثبتاً، قم بتثبيته من هنا.
$ git clone [email protected]:cloudsploit/scans.git
$ npm install
يتطلب CloudSploit صلاحيات قراءة فقط لحسابك السحابي. اتبع الأدلة أدناه لتوفير هذا الوصول:
بالنسبة لـ AWS، يمكنك تشغيل CloudSploit مباشرة وسيكتشف بيانات الاعتماد باستخدام سلسلة بيانات الاعتماد الافتراضية لـ AWS.
يتيح لك ملف تكوين CloudSploit تمرير بيانات اعتماد مزود السحابة عن طريق:
ابدأ بنسخ ملف التكوين النموذجي:
$ cp config_example.js config.js
قم بتحرير ملف التكوين عن طريق إلغاء تعليق الأقسام ذات الصلة بمزود السحابة الذي تختبره. كل سحابة لديها خيار credential_file، بالإضافة إلى خيارات مضمنة. على سبيل المثال:
azure: {
// OPTION 1: If using a credential JSON file, enter the path below
// credential_file: '/path/to/file.json',
// OPTION 2: If using hard-coded credentials, enter them below
// application_id: process.env.AZURE_APPLICATION_ID || '',
// key_value: process.env.AZURE_KEY_VALUE || '',
// directory_id: process.env.AZURE_DIRECTORY_ID || '',
// subscription_id: process.env.AZURE_SUBSCRIPTION_ID || ''
}
إذا استخدمت خيار credential_file، فوجه إلى ملف في نظام الملفات الخاص بك يتبع التنسيق الصحيح للسحابة التي تستخدمها.
{
"accessKeyId": "YOURACCESSKEY",
"secretAccessKey": "YOURSECRETKEY"
}
{
"ApplicationID": "YOURAZUREAPPLICATIONID",
"KeyValue": "YOURAZUREKEYVALUE",
"DirectoryID": "YOURAZUREDIRECTORYID",
"SubscriptionID": "YOURAZURESUBSCRIPTIONID"
}
ملاحظة: بالنسبة لـ GCP، تقوم بإنشاء ملف JSON مباشرة من وحدة تحكم GCP، والذي لا يجب تعديله.
{
"type": "service_account",
"project": "GCPPROJECTNAME",
"client_email": "GCPCLIENTEMAIL",
"private_key": "GCPPRIVATEKEY"
}
{
"tenancyId": "YOURORACLETENANCYID",
"compartmentId": "YOURORACLECOMPARTMENTID",
"userId": "YOURORACLEUSERID",
"keyFingerprint": "YOURORACLEKEYFINGERPRINT",
"keyValue": "YOURORACLEKEYVALUE",
}
يدعم CloudSploit تمرير متغيرات البيئة، لكن يجب أولاً إلغاء تعليق القسم الخاص بملف config.js ذي الصلة بمزود السحابة الذي يتم فحصه.
يمكنك بعد ذلك تمرير المتغيرات المدرجة في كل قسم. على سبيل المثال، بالنسبة لـ AWS:
{
access_key: process.env.AWS_ACCESS_KEY_ID || '',
secret_access_key: process.env.AWS_SECRET_ACCESS_KEY || '',
session_token: process.env.AWS_SESSION_TOKEN || '',
}
لتشغيل فحص قياسي يعرض جميع المخرجات والنتائج، ما عليك سوى تشغيل:
$ ./index.js
يدعم CloudSploit العديد من الخيارات لتخصيص وقت التشغيل. بعض الخيارات الشائعة تشمل:
--govcloud--china--collection=file.json--ignore-ok--exit-code
--console=textانظر تنسيقات الإخراج أدناه لمزيد من خيارات الإخراج.
$ ./index.js -h
_____ _ _ _____ _ _ _
/ ____| | | |/ ____| | | (_) |
| | | | ___ _ _ __| | (___ _ __ | | ___ _| |_
| | | |/ _ \| | | |/ _` |\___ \| '_ \| |/ _ \| | __|
| |____| | (_) | |_| | (_| |____) | |_) | | (_) | | |_
\_____|_|\___/ \__,_|\__,_|_____/| .__/|_|\___/|_|\__|
| |
|_|
CloudSploit by Aqua Security, Ltd.
Cloud security auditing for AWS, Azure, GCP, Oracle, and GitHub
usage: index.js [-h] --config CONFIG [--compliance {hipaa,cis,cis1,cis2,pci}] [--plugin PLUGIN] [--govcloud] [--china] [--csv CSV] [--json JSON] [--junit JUNIT]
[--table] [--console {none,text,table}] [--collection COLLECTION] [--ignore-ok] [--exit-code] [--skip-paginate] [--suppress SUPPRESS]
optional arguments:
-h, --help show this help message and exit
--config CONFIG
The path to a cloud provider credentials file.
--compliance {hipaa,cis,cis1,cis2,pci}
Compliance mode. Only return results applicable to the selected program.
--plugin PLUGIN A specific plugin to run. If none provided, all plugins will be run. Obtain from the exports.js file. E.g. acmValidation
--govcloud AWS only. Enables GovCloud mode.
--china AWS only. Enables AWS China mode.
--csv CSV Output: CSV file
--json JSON Output: JSON file
--junit JUNIT Output: Junit file
--table Output: table
--console {none,text,table}
Console output format. Default: table
--collection COLLECTION
Output: full collection JSON as file
--ignore-ok Ignore passing (OK) results
--exit-code Exits with a non-zero status code if non-passing results are found
--skip-paginate AWS only. Skips pagination (for debugging).
--suppress SUPPRESS Suppress results matching the provided Regex. Format: pluginId:region:resourceId
يدعم CloudSploit ربط إضافاته بسياسات امتثال محددة. لتشغيل فحص الامتثال، استخدم العلم --compliance. على سبيل المثال:
$ ./index.js --compliance=hipaa
$ ./index.js --compliance=pci
يمكن تشغيل أوضاع امتثال متعددة في نفس الوقت:
$ ./index.js --compliance=cis1 --compliance=cis2
يدعم CloudSploit حالياً تعيينات الامتثال التالية:
$ ./index.js --compliance=hipaa
تقوم فحوصات HIPAA بربط إضافات CloudSploit بقانون قابلية نقل التأمين الصحي والمساءلة لعام 1996.
$ ./index.js --compliance=pci
تقوم فحوصات PCI بربط إضافات CloudSploit بمعيار أمان بيانات صناعة بطاقات الدفع.
$ ./index.js --compliance=cis
$ ./index.js --compliance=cis1
$ ./index.js --compliance=cis2
يتم دعم معايير CIS، لكل من المستوى 1 والمستوى 2. تمرير --compliance=cis سيؤدي إلى تشغيل ضوابط المستوى 1 والمستوى 2.
يدعم CloudSploit الإخراج بعدة تنسيقات لاستهلاكها بواسطة أدوات أخرى. إذا لم تحدد خلاف ذلك، يكتب CloudSploit الإخراج إلى المخرجات القياسية (وحدة التحكم) كجدول.
ملاحظة: يمكنك تمرير تنسيقات إخراج متعددة ودمج الخيارات لمزيد من التخصيص. على سبيل المثال:
# طباعة جدول إلى وحدة التحكم وحفظ ملف CSV
$ ./index.js --csv=file.csv --console=table
# طباعة نص إلى وحدة التحكم وحفظ ملفات JSON و JUnit مع تجاهل النتائج الناجحة
$ ./index.js --json=file.json --junit=file.xml --console=text --ignore-ok
بشكل افتراضي، تتم طباعة نتائج CloudSploit إلى وحدة التحكم بتنسيق جدول (مع ألوان). يمكنك تجاوز ذلك واستخدام نص عادي بدلاً من ذلك، عن طريق تشغيل:
$ ./index.js --console=text
بدلاً من ذلك، يمكنك كبت إخراج وحدة التحكم بالكامل عن طريق تشغيل:
$ ./index.js --console=none
يمكنك تجاهل النتائج التي ترجع حالة OK من الإخراج بتمرير وسيط سطر الأوامر --ignore-ok.
$ ./index.js --csv=file.csv
$ ./index.js --json=file.json
$ ./index.js --junit=file.xml
يقوم CloudSploit بحفظ البيانات التي تم الاستعلام عنها من واجهات برمجة التطبيقات لمزود السحابة بتنسيق JSON، والتي يمكن حفظها بجانب ملفات أخرى لأغراض التصحيح أو الأرشفة.
$ ./index.js --collection=file.json
يمكن كبت النتائج بتمرير العلم --suppress (يتم دعم خيارات متعددة) بالتنسيق التالي:
--suppress pluginId:region:resourceId
على سبيل المثال:
# كبت جميع النتائج للإضافة acmValidation
$ ./index.js --suppress acmValidation:*:*
# كبت جميع نتائج منطقة us-east-1
$ ./index.js --suppress *:us-east-1:*
# كبت جميع النتائج المطابقة للتعبير المنتظم "certificate/*" في جميع المناطق لجميع الإضافات
$ ./index.js --suppress *:*:certificate/*
يمكن استخدام العلم --plugin إذا كنت ترغب فقط في تشغيل إضافة واحدة.
$ ./index.js --plugin acmValidation
يعمل CloudSploit على مرحلتين. أولاً، يقوم بالاستعلام عن واجهات برمجة التطبيقات للبنية التحتية السحابية للحصول على بيانات وصفية مختلفة حول حسابك، أي مرحلة "التجميع" (collection). بمجرد جمع جميع البيانات اللازمة، يتم تمرير النتيجة إلى مرحلة "المسح" (scanning). يستخدم المسح البيانات التي تم جمعها للبحث عن التكوينات الخاطئة المحتملة والمخاطر وغيرها من المشكلات الأمنية، والتي تشكل الإخراج النهائي.
يرجى الاطلاع على إرشادات المساهمة والدليل الكامل لكتابة إضافات CloudSploit.
يمكن استخدام العلم --remediate إذا كنت ترغب في تشغيل التصحيح للإضافات المذكورة كجزء من هذه الوسيطة. يأخذ هذا قائمة بأسماء الإضافات.
يرجى الاطلاع على دليل تطوير التصحيح لمزيد من التفاصيل.
للحصول على تفاصيل أخرى حول منتج Aqua Wave SaaS، سياسات أمان AWS، والمزيد، انقر هنا.