
منع هجمات SSRF على AWS EC2 عبر الترقية التلقائية إلى خدمة البيانات الوصفية للمثيل الأكثر أمانًا الإصدار 2 (IMDSv2).
امنع هجمات SSRF على AWS EC2 من خلال الترقيات الآلية إلى خدمة بيانات تعريف المثيل الأكثر أمانًا v2 (IMDSv2).
الغرض والوظائف
قد يكون لدى فرق الهندسة مجموعة واسعة ومتنوعة من البنية التحتية للحوسبة في AWS يحتاجون إلى حمايتها من ثغرات أمنية معينة تستغل خدمة بيانات التعريف. خدمة بيانات التعريف مطلوبة للتشغيل على المثيلات إذا تم استخدام أي IAM أو إذا كانت هناك أي معلومات بيانات مستخدم قد يحتاجها المثيل عند الإقلاع. يعد تحديد سطح الهجوم لمثيلاتك أمرًا بالغ الأهمية لمنع القدرة على التنقل في بيئتك عن طريق سرقة المعلومات التي توفرها الخدمة نفسها. استغلت العديد من الهجمات الشهيرة في الماضي هذه الخدمة المعينة لاستغلال دور مرتبط بالمثيل أو تفريغ بيانات حساسة يمكن الوصول إليها عبر خدمة بيانات التعريف. يمكن أن يساعد Metabadger في تحديد أين وكيف تستخدم خدمة بيانات تعريف المثيل مع منحك أيضًا القدرة على تقليل أي نفوذ هجوم غير مرغوب فيه لخفض مستوى المخاطر الإجمالي أثناء العمل في EC2.
قد يؤثر استخدام هذه الأداة على البنية التحتية للحوسبة في AWS لأن بعض الخدمات والتطبيقات قد لا تعمل إما بدون خدمة بيانات التعريف أو على الإصدار 2. توخ الحذر عند نشرها في بيئة الإنتاج الخاصة بك وامتلك خطة تراجع تحسبًا لأي شيء يبدو غير طبيعي. يأتي Metabadger مزودًا بقدرة مدمجة على التراجع إلى الإصدار 1 الافتراضي للخدمة باستخدام العلامة -v1، ويمكنك استخدام هذا للتراجع بسرعة عن مثيلاتك لاستخدام الإعداد الافتراضي. من الناحية المثالية، يجب عليك تشغيل هذه الأداة وتحديث إصدار بيانات التعريف في البيئات غير الإنتاجية كساحة اختبار قبل تطبيقها.
الخطوة 1
بداية، نريد اكتشاف استخدامنا الإجمالي لخدمة بيانات التعريف في منطقة AWS معينة. سيقوم Metabadger بتقييم الحالة الحالية لاستخدامك في المنطقة التي تشير بيانات اعتمادك إليها في ملف /.aws/credentials الخاص بك أو الدور المفترض حاليًا. يمكنك أيضًا تحديد العلامة --region عند تشغيل الأمر discover-metadata إذا كنت ترغب في التغيير إلى منطقة أخرى غير تلك المهيأة حاليًا. بمجرد أن تكون لديك فكرة جيدة عن الإصدار الذي تعمل به مثيلاتك وما إذا كانت الخدمة ممكَّنة أو معطَّلة، ستكون قادرًا على وضع خطة عمل أكثر تحديدًا لتحصين الخدمة. لاحظ أنه يمكنك العثور على المعنى المحدد لكل خيار من خيارات بيانات التعريف هنا.
الخطوة 2
أحد المجالات التي يجب تقييمها عند التحول إلى الإصدار 2 من الخدمة هو استخدام أدوار IAM. يتيح لك Metabadger تحديد المثيلات في منطقة قد تستخدم بالفعل دور IAM. سيخرج الأمر discover-role-usage قائمة بالمثيلات التي تحتوي على أدوار مرتبطة بها. إذا كان لديك الكثير من المثيلات التي تستخدم أدوارًا، فيجب أن تتخذ الاحتياطات عند تحديث الخدمة إلى الإصدار 2 لضمان عدم تأثر الوظائف العامة لأحمال العمل الخاصة بك.
الخطوة 3
عند الانتهاء من الاكتشاف والتقييم الأولي، يمكنك الآن إنشاء نهج مرحلي لتحصين البنية التحتية للحوسبة الخاصة بك لاستخدام إما الإصدار 2 من خدمة بيانات التعريف أو تعطيلها حيث قد لا يتم استخدامها. يسمح لك الأمر harden-metadata بتحديث جميع المثيلات في منطقة معينة بشكل افتراضي. يمكنك أيضًا تمرير علامات المثيل باستخدام العلامة --tags أو ملف إدخال يحتوي على CSV للمثيلات التي ترغب في تطبيق تكوين عليها. بمجرد إجراء التحديثات المناسبة إلى الإصدار 2 وتعطيل الخدمة حيث لا يتم استخدامها، يمكنك إعادة التقييم باستخدام العناصر في الخطوة 1 لتأكيد أن بيئتك مؤمنة. إذا كانت لديك مثيلات معينة لا تريد تحديثها، يمكنك استبعادها عبر العلامة --exclusion حسب العلامة أو معرف المثيل.
يتطلب Metabadger دور IAM أو بيانات اعتماد مع الأذونات التالية:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
عند إجراء تغييرات على خدمة بيانات تعريف المثيل، يجب أن تكون حذرًا وتتبع الإرشادات الإضافية من AWS حول كيفية الترقية بأمان إلى الإصدار 2. تم تصميم Metabadger لمساعدتك في هذه العملية لزيادة تأمين البنية التحتية للحوسبة في AWS.
دليل أفضل الممارسات من AWS للتحديث إلى IMDSv2
التثبيت عبر pip
pip3 install --user metabadger
التثبيت عبر Github
$ git clone https://github.com/salesforce/metabadger
$ cd metabadger
$ pip install -e .
$ metabadger
Usage: metabadger [OPTIONS] COMMAND [ARGS]...
Metabadger هي أداة أمان AWS تستخدم لاكتشاف وتحصين خدمة بيانات تعريف المثيل.
Options:
--version إظهار الإصدار والخروج.
--help إظهار هذه الرسالة والخروج.
Commands:
cloudwatch-metrics سحب مقاييس CloudWatch لاستخدام MetadataNoToken
disable-metadata تعطيل خدمة IMDS على مثيلات EC2
discover-metadata اكتشاف ملخص لاستخدام خدمة IMDS داخل EC2
discover-role-usage اكتشاف ملخص لاستخدام دور IAM لـ EC2
harden-metadata تحصين خدمة بيانات تعريف مثيل AWS من الإصدار v1 إلى v2
cloudwatch-metrics
اسحب مباشرة معلومات حول استخدامك لـ IMDSv1 مع مقياس MetadataNoToken في AWS CloudWatch. سيعرض هذا الأمر المثيلات التي استخدمت الإصدار v1 من الخدمة خلال الساعة الماضية. لاحظ أنه عند تشغيل هذا الأمر، يجب أن يكون لديك أذونات IAM لعرض مقاييس CloudWatch.
Options:
-a, --all-region سحب مقاييس CloudWatch عبر جميع المناطق المتاحة
-r, --region TEXT تحديد منطقة AWS التي ستقوم بتنفيذ هذا الأمر فيها
-t, --time-period INTEGER فترة زمنية لـ CloudWatch بالثواني تُستخدم لتتبع مقياس IMDS v1
-p, --profile TEXT تحديد ملف تعريف IAM في AWS.
--help إظهار هذه الرسالة والخروج.
discover-metadata
ملخص لاستخدام خدمة بيانات تعريف المثيل الإجمالي بما في ذلك الإصدار ونسبة الإنفاذ الإجمالية. ستساعدك هذه الأرقام على فهم الوضع العام لمدى تحصين استخدام بيانات التعريف وأين تفرض الإصدار v2 مقابل v1.
Options:
-a, --all-region تقديم ملخص بيانات تعريف لجميع المناطق المتاحة في حساب AWS
-j, --json الحصول على ملخص بيانات التعريف بتنسيق JSON
-r, --region TEXT تحديد منطقة AWS التي ستقوم بتنفيذ هذا الأمر فيها
-p, --profile TEXT تحديد ملف تعريف IAM في AWS.
discover-role-usage
ملخص للمثيلات والأدوار التي تستخدمها، سيعطيك هذا فكرة جيدة عن الحذر الذي يجب اتخاذه عند إجراء تحديثات على خدمة بيانات التعريف نفسها.
Options:
-p, --profile TEXT تحديد ملف تعريف IAM في AWS.
-r, --region TEXT تحديد منطقة AWS التي ستقوم بتنفيذ هذا الأمر فيها
harden-metadata
القدرة على تعديل المثيلات لاستخدام إما بيانات التعريف الإصدار v1 أو v2 وفهم عدد المثيلات التي سيتم تعديلها عن طريق تشغيل وضع المحاكاة الجافة.
Options:
-a, --all-region تحديث IMDS عبر جميع المناطق في حسابك
-e, --exclusion علامة الاستبعاد ستطبق على كل شيء باستثناء ما هو محدد، علامات أو مثيلات
-d, --dry-run محاكاة جافة لتغييرات تحصين بيانات التعريف
-v1, --v1 فرض الإصدار v1 من خدمة بيانات التعريف
-i, --input-file PATH مسار ملف CSV للمثيلات المراد تحصين IMDS لها
-t, --tags TEXT قائمة مفصولة بفواصل من العلامات لتطبيق إعداد التحصين عليها
-r, --region TEXT تحديد منطقة AWS التي ستقوم بتنفيذ هذا الأمر فيها
-p, --profile TEXT تحديد ملف تعريف IAM في AWS.
disable-metadata
استخدم هذا الأمر لتعطيل خدمة بيانات التعريف بالكامل على المثيلات.
Options:
-e, --exclusion علامة الاستبعاد ستطبق على كل شيء باستثناء ما هو محدد، علامات أو مثيلات
-d, --dry-run محاكاة جافة لتعطيل خدمة بيانات التعريف
-i, --input-file PATH مسار ملف CSV للمثيلات المراد تعطيل IMDS لها
-t, --tags TEXT قائمة مفصولة بفواصل من العلامات لتطبيق إعداد التحصين عليها
-r, --region TEXT تحديد منطقة AWS التي ستقوم بتنفيذ هذا الأمر فيها
-p, --profile TEXT تحديد ملف تعريف IAM في AWS.
سيتم تسجيل جميع التغييرات التي يقوم بها Metabadger في ملف محفوظ في دليل العمل باسم metabadger.log. سيتضمن الملف ما يلي لكل إجراء يتخذه الأداة عند تغيير خدمة بيانات التعريف: