يقوم محلل الامتثال لمركز الأمان (SHCA) بإنشاء عناصر لدعم اعتماد نظام معلومات إطار إدارة المخاطر التابع لوزارة الدفاع (RMF). باستخدام الوثائق المقدمة من Amazon Web Services، وتعيين عناصر التحكم NIST800-53-Rev-5 لمعرفات التحكم في أمان AWS Security Hub، تطلب SHCA الامتثال للبيئة الحالية من Security Hub وتقوم بإنشاء ملف مضغوط مخزن في Amazon S3 يحتوي على عناصر منفصلة بتنسيق CSV وJSON و يقوم OCSF بتزويد SecOps بالعناصر لاستيرادها إلى أداة RMF.
مركز الأمان مع NIST Special Publication 800-53 Revision 5 Security Standard ويعمل لمدة 24 ساعة على الأقل للحصول على النتائج
** لمزيد من المعلومات حول تمكين هذا المعيار، قم بزيارة تمكين وتعطيل معايير الأمان )
يتم استخراج جميع النتائج الموجودة داخل Security Hub وحفظها بتنسيق JSON.
تتم كتابة أحدث النتائج من كل معرف تحكم/مورد في JSON إلى ملف CSV لتحسين التحليل وسهولة القراءة
يتم إنشاء ملخص لجميع عناصر التحكم من ملف CSV باتباع المنهجية التالية
تقوم هذه الخطوة بإنشاء ملف لكل عنصر تحكم NIST SP 800-53 بناءً على حالة عنصر التحكم هذا وتخزينه في مجلدين:
بالإضافة إلى ذلك، تسترد هذه الخطوة ملفات متنوعة من حاوية S3 وتتضمنها. المجلدات ومحتوياتها هي:
توفر هذه الملفات بيانات شاملة حول الحالة الأمنية لموارد AWS، استنادًا إلى فحوصات الأمان الآلية NIST SP 800-53 الخاصة بـ Security Hub.
إليك ما تحتاج إلى تثبيته لاستخدام AWS CDK.
التحقق من صحة تثبيت Python 3.7 أو الأحدث، وpip، وvirtualenv، وNode.js على Linux
node --version
يحتاج جميع مطوري AWS CDK، حتى أولئك الذين يعملون في Python أو Java أو C#، إلى Node.js 14.15.0 أو إصدار أحدث. تستخدم جميع اللغات المدعومة نفس الواجهة الخلفية، والتي تعمل على Node.js. نوصي بإصدار في الدعم النشط على المدى الطويل. قد يكون لدى مؤسستك توصية مختلفة.
تعتمد المتطلبات الأساسية الأخرى على اللغة التي تقوم بتطوير تطبيقات AWS CDK بها وهي كما يلي:
python3 --version
pip3 --version
virtualenv --version
wget --version
jq --version
npm install -g aws-cdk
قم بتشغيل الأمر التالي للتحقق من التثبيت الصحيح وطباعة رقم إصدار AWS CDK.
cdk --version
يخبر ملف cdk.json
مجموعة أدوات CDK بكيفية تنفيذ التطبيق.
تم إعداد هذا المشروع مثل مشروع بايثون القياسي. تقوم عملية التهيئة أيضًا بإنشاء virtualenv ضمن هذا المشروع، ويتم تخزينها ضمن الدليل .venv
. لإنشاء Virtualenv، يفترض وجود python3
(أو python
لنظام التشغيل Windows) قابل للتنفيذ في المسار الخاص بك مع إمكانية الوصول إلى حزمة venv
. إذا فشل الإنشاء التلقائي لـ virtualenv لأي سبب من الأسباب، فيمكنك إنشاء virtualenv يدويًا.
لإنشاء Virtualenv يدويًا على نظامي التشغيل MacOS وLinux:
$ python3 -m venv .venv
بعد اكتمال عملية init وإنشاء virtualenv، يمكنك استخدام الخطوة التالية لتنشيط virtualenv الخاص بك.
$ source .venv/bin/activate
إذا كنت تستخدم نظام التشغيل Windows، فستقوم بتنشيط virtualenv كما يلي:
% .venvScriptsactivate.bat
بمجرد تنشيط Virtualenv، يمكنك تثبيت التبعيات المطلوبة.
$ pip install -r requirements-deploy.txt
قم بتنزيل AWS Lambda Layer for AWS SDK for Pandas (AWS Wrangler) وضعه في الموقع التالي: راجع README.md لمزيد من المعلومات.
bash update_aws_wrangler.sh
يتطلب نشر الحزم المكدسة باستخدام AWS CDK إتاحة حاويات Amazon S3 وحاويات أخرى مخصصة لـ AWS CloudFormation أثناء النشر. إنشاء هذه يسمى bootstrapping. للتمهيد، قم بإصدار:
cdk bootstrap aws://ACCOUNT-NUMBER/REGION
عند هذه النقطة يمكنك الآن تجميع قالب CloudFormation لهذا الكود.
$ cdk synth
قم بتعديل القيم التالية في cdk.json
- "environment": "shca"
- أعط هذا اسمًا وصفيًا لنشر SHCA. يمكن أن يكون هذا بأي قيمة ولا يؤثر على الوظيفة. إنه لتسمية موارد SHCA داخل حساب AWS. - "vpc_cidr": "10.30.0.0/24"
- يضبط نطاق CIDR لـ VPC صغير تم إنشاؤه لتشغيل وظائف Lambda، بحيث لا يتم إنشاء [Lambda.3] وظائف Lambda التي يجب أن تكون في نتيجة VPC. حدد نطاق CIDR غير مستخدم بالفعل في بيئتك. - "schedule_frequency_days": 7
- يحدد هذا الإعداد عدد المرات التي تريد فيها أن تقوم SHCA بإنشاء تقارير الامتثال. - "send_failure_notification_email": true
أم false
- إذا كان true
، فسيتم إرسال البريد الإلكتروني إلى العنوان المذكور في failure_notification_email
. - "failure_notification_email": [email protected]
- سيتلقى عنوان البريد الإلكتروني هذا إشعارات عند الفشل في تنفيذ SHCA.
من هنا لديك خياران حول كيفية تثبيت SHCA (CloudShell أو CDK)
إذا لم يكن لديك إمكانية الوصول إلى جهاز كمبيوتر محمول أو بيئة تطوير حيث يمكنك تثبيت المتطلبات المسبقة أعلاه، فيمكن استخدام خدمة CloudShell لنشر SHCA. بالإضافة إلى ذلك، باستخدام بيانات الاعتماد المؤقتة من AWS IAM Identity Center، يمكننا استخدام CloudShell واحد في الحساب لإجراء مكالمات CloudFormation API ونشر التعليمات البرمجية في أي حساب يمكنك الوصول إليه.
تم اعتماد CloudShell من قبل DISA للاستخدام في بيئات IL2-IL5، بما في ذلك المناطق التجارية وGovCloud. يرجى استشارة موظفي الامتثال في مؤسستك للتأكد من اعتماد CloudShell للاستخدام في نشر AWS الخاص بمؤسستك.
قم بتنزيل الكود المصدري مثل shca-main.zip، من الفرع الرئيسي لهذا الريبو.
انتقل إلى خدمة CloudShell في حساب AWS الذي ستستخدمه ليكون بمثابة بيئة النشر الخاصة بك. تأكد من أن لديك مساحة كافية في CloudShell الخاص بك قبل إجراء النشر. إذا نفدت المساحة فسوف تفشل.
قم بتحميل الكود المصدري إلى CloudShell. قم بفك ضغط الملفات والأقراص المضغوطة في الدليل shca-main
:
unzip shca-main.zip && cd shca-main
الصق بيانات الاعتماد المؤقتة من AWS IAM Identity Center للحساب الذي تريد نشر SHCA فيه . سيستخدم AWS CDK بيانات الاعتماد المؤقتة هذه (التي تم تعيينها الآن كمتغيرات بيئة) لنشر التعليمات البرمجية في الحساب الصحيح والمستهدف، حتى إذا كنت تستخدم CloudShell من حساب آخر.
قم بتشغيل aws sts get-caller-identity
وتحقق من تطابق الرقم الرئيسي ورقم الحساب مع القيم المتوقعة.
امنح أذونات التنفيذ وقم بتشغيل ./cloud_shell_deployment.sh
chmod +x cloud_shell_deployment.sh && ./cloud_shell_deployment.sh
أدخل y
عندما يطالبك CDK في الصدفة في المرتين .
$ cdk deploy
cdk ls
جميع الأكوام الموجودة في التطبيقcdk synth
بإصدار قالب CloudFormation المركبcdk deploy
نشر هذا المكدس على حساب/منطقة AWS الافتراضية الخاصة بكcdk diff
المكدس المنشور بالحالة الحاليةcdk docs
بمجرد نشر SHCA:
انتقل إلى خدمة Step Functions/State Machines Service:
حدد YOUR-ENVIRONMENT-NAME-State-Machine
إذا قمت للتو بنشر SHCA للمرة الأولى، فتأكد من تشغيل جهاز الحالة بنجاح من خلال عرض التنفيذ. إذا تم تشغيل جهاز الحالة بنجاح، فانتقل إلى الخطوة 6 . بخلاف ذلك، لتشغيل SHCA عند الطلب، حدد "بدء التنفيذ":
حدد "بدء التنفيذ" مرة أخرى في النافذة المنبثقة. اترك كافة القيم الافتراضية.
انتقل إلى أسفل الصفحة وانتظر حتى تكتمل جميع الخطوات بنجاح. سترى "تم التنفيذ بنجاح" في الأسفل بمجرد اكتماله.
انتقل إلى وحدة تحكم Amazon S3 وابحث عن الحاوية المسماة "-resources-%YOUR_ACCOUNT_NUMBER%" وحدِّدها
في هذه المجموعة انتقل إلى customer/compliance_scraper/
قم بتنزيل أحدث ملف مضغوط للتحف.
قم بمراجعة الملفات الموجودة داخل الملف المضغوط
انظر المساهمة لمزيد من المعلومات.
تم ترخيص هذا المشروع بموجب ترخيص Apache-2.0.