منع إدخالات DNS المتدلية وتجنب الاستيلاء على النطاق الفرعي

توضح هذه المقالة التهديد الأمني الشائع للاستيلاء على النطاق الفرعي والخطوات التي يمكنك اتخاذها للتخفيف من حدته.

ما المقصود بالاستحواذ على النطاق الفرعي؟

تعد عمليات الاستحواذ على النطاقات الفرعية تهديدا شائعا وعالي الخطورة للمؤسسات التي تنشئ العديد من الموارد وتحذفها بانتظام. يمكن أن يحدث استيلاء على نطاق فرعي عندما يكون لديك سجل DNS يشير إلى مورد Azure غير مزود بالإمدادات. تعرف سجلات DNS هذه أيضا باسم إدخالات "DNS المتدلية". سجلات CNAME معرضة بشكل خاص لهذا التهديد. تمكن عمليات الاستحواذ على النطاق الفرعي الجهات الفاعلة الضارة من إعادة توجيه حركة المرور المخصصة لنطاق المؤسسة إلى موقع يقوم بنشاط ضار.

سيناريو شائع لاستيلاء نطاق فرعي:

  1. خلق:

    1. يمكنك توفير مورد Azure باسم مجال مؤهل بالكامل (FQDN) من app-contogreat-dev-001.azurewebsites.net.

    2. يمكنك تعيين سجل CNAME في منطقة DNS باستخدام النطاق greatapp.contoso.com الفرعي الذي يوجه حركة المرور إلى مورد Azure.

  2. إلغاء الإمداد:

    1. يتم إلغاء توفير مورد Azure أو حذفه بعد عدم الحاجة إليه.

      عند هذه النقطة، يجب إزالة سجل greatapp.contoso.com CNAME من منطقة DNS. إذا لم تتم إزالة سجل CNAME، الإعلان عنه كنطاق نشط ولكنه لا يوجه الزيارات إلى مورد Azure نشط. هذا هو تعريف سجل DNS "المتدلي".

    2. أصبح النطاق greatapp.contoso.comالفرعي المتدلي الآن ضعيفا ويمكن الاستيلاء عليه من خلال تعيينه إلى مورد اشتراك Azure آخر.

  3. استيلاء:

    1. باستخدام الأساليب والأدوات المتاحة بشكل شائع ، يكتشف ممثل التهديد النطاق الفرعي المتدلي.

    2. يوفر ممثل التهديد مورد Azure بنفس FQDN للمورد الذي كنت تتحكم فيه مسبقا. في هذا المثال، app-contogreat-dev-001.azurewebsites.net.

    3. يتم الآن توجيه حركة المرور التي يتم إرسالها إلى النطاق greatapp.contoso.com الفرعي إلى مورد الفاعل الضار حيث يتحكم في المحتوى.

Subdomain takeover from a deprovisioned website

مخاطر الاستيلاء على النطاق الفرعي

عندما يشير سجل DNS إلى مورد غير متوفر، يجب إزالة السجل نفسه من منطقة DNS. إذا لم يتم حذفه ، فهو سجل "DNS متدلى" ويخلق إمكانية الاستيلاء على النطاق الفرعي.

تتيح إدخالات DNS المتدلية للجهات الفاعلة المهددة التحكم في اسم DNS المرتبط بها لاستضافة موقع ويب أو خدمة ضارة. قد تؤدي الصفحات والخدمات الضارة على النطاق الفرعي للمؤسسة إلى:

  • فقدان السيطرة على محتوى النطاق الفرعي - الصحافة السلبية حول عدم قدرة مؤسستك على تأمين محتواها ، وكذلك تلف العلامة التجارية وفقدان الثقة.

  • حصاد ملفات تعريف الارتباط من الزوار المطمئنين - من الشائع أن تعرض تطبيقات الويب ملفات تعريف ارتباط الجلسة للنطاقات الفرعية (*.contoso.com) ، وبالتالي يمكن لأي نطاق فرعي الوصول إليها. يمكن للجهات الفاعلة المهددة استخدام الاستيلاء على النطاق الفرعي لإنشاء صفحة ذات مظهر أصلي ، وخداع المستخدمين المطمئنين لزيارتها ، وحصاد ملفات تعريف الارتباط الخاصة بهم (حتى ملفات تعريف الارتباط الآمنة). من المفاهيم الخاطئة الشائعة أن استخدام شهادات SSL يحمي موقعك وملفات تعريف ارتباط المستخدمين من الاستحواذ. ومع ذلك، يمكن لجهة التهديد استخدام النطاق الفرعي المختطف للتقدم بطلب للحصول على شهادة SSL صالحة وتلقيها. تمنحهم شهادات SSL الصالحة إمكانية الوصول إلى ملفات تعريف الارتباط الآمنة ويمكن أن تزيد من الشرعية المتصورة للموقع الضار.

  • حملات التصيد الاحتيالي - يمكن استخدام النطاقات الفرعية ذات المظهر الأصيل في حملات التصيد الاحتيالي. وينطبق هذا على المواقع الضارة وسجلات MX التي من شأنها أن تسمح للجهة الفاعلة المهددة بتلقي رسائل البريد الإلكتروني الموجهة إلى نطاق فرعي شرعي لعلامة تجارية معروفة وآمنة.

  • مزيد من المخاطر - يمكن استخدام المواقع الضارة للتصعيد إلى هجمات كلاسيكية أخرى مثل XSS و CSRF و CRS BYPASS والمزيد.

تحديد إدخالات DNS المتدلية

لتحديد إدخالات DNS داخل مؤسستك التي قد تكون متدلية، استخدم أدوات PowerShell المستضافة GitHub من Microsoft "Get-DanglingDnsRecords".

تساعد هذه الأداة عملاء Azure على سرد جميع المجالات التي تحتوي على CNAME مقترن بمورد Azure موجود تم إنشاؤه على اشتراكاتهم أو مستأجريهم.

إذا كانت CNAMEs موجودة في خدمات DNS أخرى وتشير إلى موارد Azure، فقم بتوفير CNAMEs في ملف إدخال إلى الأداة.

تدعم الأداة موارد Azure المدرجة في الجدول التالي. تستخرج الأداة أو تأخذ كمدخلات جميع CNAMEs الخاصة بالمستأجر.

الخدمة النوع FQDNpropertyproperty مثال
Azure Front Door مايكروسوفت.شبكة/الأبواب الأمامية properties.cName abc.azurefd.net
Azure Blob Storage microsoft.storage/storageaccounts properties.primaryEndpoints.blob abc. blob.core.windows.net
Azure CDN microsoft.cdn/profiles/endpoints properties.hostName abc.azureedge.net
عناوين IP العامة microsoft.network/publicipaddresses properties.dnsSettings.fqdn abc.EastUs.cloudapp.azure.com
Azure Traffic Manager ملفات تعريف microsoft.network/trafficmanagerprofile properties.dnsConfig.fqdn abc.trafficmanager.net
مثيل حاوية Azure microsoft.containerinstance/containergroups properties.ipAddress.fqdn abc.EastUs.azurecontainer.io
Azure لادارة واجهة برمجة التطبيقات API microsoft.apimanagement/service properties.hostnameConfigurations.hostName abc.azure-api.net
Azure App Service microsoft.web/sites properties.defaultHostName abc.azurewebsites.net
Azure App Service - فتحات microsoft.web/sites/slots properties.defaultHostName abc-def.azurewebsites.net

المتطلبات الأساسية

قم بتشغيل الاستعلام كمستخدم لديه:

  • الوصول على مستوى القارئ على الأقل إلى اشتراكات Azure
  • قراءة الوصول إلى الرسم البياني لموارد Azure

إذا كنت مسؤولا عاما لمستأجر مؤسستك، فقم بترقية حسابك للوصول إلى جميع اشتراكات مؤسستك باستخدام الإرشادات الواردة في رفع مستوى الوصول لإدارة جميع اشتراكات Azure ومجموعات الإدارة.

تلميح

يحتوي Azure Resource Graph على حدود للاختناق وترحيل الصفحات يجب مراعاتها إذا كان لديك بيئة Azure كبيرة.

تعرف على المزيد حول العمل مع مجموعات بيانات موارد Azure الكبيرة.

تستخدم الأداة تجميع الاشتراك لتجنب هذه القيود.

تشغيل البرنامج النصي

تعرف على المزيد حول البرنامج النصي PowerShell Get-DanglingDnsRecords.ps1وتنزيله من GitHub: https://aka.ms/Get-DanglingDnsRecords.

معالجة إدخالات DNS المتدلية

راجع مناطق نظام أسماء النطاقات (DNS) وحدد سجلات CNAME المتدلية أو التي تم الاستيلاء عليها. إذا تبين أن النطاقات الفرعية متدلية أو تم الاستيلاء عليها، فقم بإزالة النطاقات الفرعية الضعيفة وتخفيف المخاطر من خلال الخطوات التالية:

  1. من منطقة DNS، أزل جميع سجلات CNAME التي تشير إلى FQDNs للموارد التي لم تعد متوفرة.

  2. لتمكين توجيه الزيارات إلى الموارد التي تتحكم فيها، قم بتوفير موارد إضافية باستخدام FQDNs المحددة في سجلات CNAME للنطاقات الفرعية المتدلية.

  3. راجع رمز التطبيق الخاص بك للحصول على مراجع إلى نطاقات فرعية محددة وقم بتحديث أي مراجع نطاقات فرعية غير صحيحة أو قديمة.

  4. تحقق مما إذا كان قد حدث أي حل وسط واتخذ إجراء وفقا لإجراءات الاستجابة للحوادث في مؤسستك. يمكن العثور على تلميحات وأفضل الممارسات للتحقيق في هذه المشكلة أدناه.

    إذا كان منطق التطبيق الخاص بك بحيث تم إرسال أسرار مثل بيانات اعتماد OAuth إلى النطاق الفرعي المتدلي ، أو تم إرسال معلومات حساسة للخصوصية إلى النطاقات الفرعية المتدلية ، فقد تكون هذه البيانات قد تعرضت لجهات خارجية.

  5. افهم سبب عدم إزالة سجل CNAME من منطقة DNS عند إلغاء توفير المورد واتخذ خطوات لضمان تحديث سجلات DNS بشكل مناسب عند إلغاء توفير موارد Azure في المستقبل.

منع تدلي إدخالات DNS

يعد التأكد من أن مؤسستك قد نفذت عمليات لمنع تدلي إدخالات DNS وعمليات الاستحواذ على النطاقات الفرعية الناتجة جزءا مهما من برنامج الأمان الخاص بك.

توفر بعض خدمات Azure ميزات للمساعدة في إنشاء تدابير وقائية وهي مفصلة أدناه. يجب إنشاء طرق أخرى لمنع حدوث هذه المشكلة من خلال أفضل الممارسات أو إجراءات التشغيل القياسية لمؤسستك.

تمكين Microsoft Defender لخدمة التطبيقات

يقدم النظام الأساسي المتكامل لحماية عبء العمل السحابي (CWPP) من Microsoft Defender for Cloud مجموعة من الخطط لحماية موارد وأحمال عمل Azure والمختلطة ومتعددة السحابة.

تتضمن خطة Microsoft Defender for App Service الكشف عن DNS المتدلية. مع تمكين هذه الخطة، ستتلقى تنبيهات أمان إذا قمت بإلغاء تشغيل موقع ويب لخدمة التطبيقات ولكنك لم تقم بإزالة نطاقه المخصص من مسجل DNS.

تتوفر حماية DNS المتدلية من Microsoft Defender for Cloud سواء تمت إدارة مجالاتك باستخدام Azure DNS أو جهة تسجيل مجالات خارجية وتنطبق على App Service على كل من Windows وLinux.

تعرف على المزيد حول هذه المزايا وغيرها من مزايا خطط Microsoft Defender هذه في مقدمة إلى Microsoft Defender لخدمة التطبيقات.

استخدام سجلات الاسم المستعار Azure DNS

يمكن لسجلات الأسماء المستعارة ل Azure DNS منع المراجع المتدلية عن طريق اقتران دورة حياة سجل DNS بمورد Azure. على سبيل المثال، ضع في اعتبارك سجل DNS مؤهل كسجل اسم مستعار للإشارة إلى عنوان IP عام أو ملف تعريف Traffic Manager. إذا قمت بحذف تلك الموارد الأساسية، فإن سجل الاسم المستعار DNS يصبح مجموعة سجلات فارغة. ولم يعد يشير إلى المورد المحذوف. من المهم ملاحظة أن هناك حدودا لما يمكنك حمايته باستخدام سجلات الأسماء المستعارة. اليوم ، تقتصر القائمة على:

  • Azure Front Door
  • ملفات تعريف Traffic Manager
  • نقاط نهاية شبكة تسليم محتوى Azure (CDN)
  • بروتوكولات IP العامة

على الرغم من عروض الخدمات المحدودة اليوم، نوصي باستخدام سجلات الأسماء المستعارة للدفاع ضد الاستيلاء على النطاق الفرعي كلما أمكن ذلك.

تعرف على المزيد حول إمكانات سجلات الأسماء المستعارة ل Azure DNS.

استخدام التحقق من المجال المخصص لخدمة تطبيقات Azure

عند إنشاء إدخالات DNS لخدمة Azure App، قم بإنشاء asuid. {نطاق فرعي} سجل TXT باستخدام معرف إثبات ملكية النطاق. عند وجود سجل TXT هذا، لا يمكن لأي اشتراك Azure آخر التحقق من صحة المجال المخصص أي توليه.

لا تمنع هذه السجلات شخصا ما من إنشاء خدمة تطبيقات Azure بنفس الاسم الموجود في إدخال CNAME. بدون القدرة على إثبات ملكية اسم النطاق ، لا يمكن للجهات الفاعلة المهددة تلقي حركة المرور أو التحكم في المحتوى.

تعرف على المزيد حول كيفية تعيين اسم DNS مخصص موجود إلى Azure App Service.

بناء وأتمتة العمليات للتخفيف من التهديد

غالبا ما يكون الأمر متروكا للمطورين وفرق العمليات لتشغيل عمليات التنظيف لتجنب تهديدات DNS المتدلية. ستساعد الممارسات أدناه في ضمان تجنب مؤسستك المعاناة من هذا التهديد.

  • وضع إجراءات للوقاية:

    • قم بتثقيف مطوري تطبيقاتك لإعادة توجيه العناوين كلما حذفوا الموارد.

    • ضع "إزالة إدخال DNS" في قائمة الشيكات المطلوبة عند إيقاف تشغيل خدمة.

    • ضع أقفال الحذف على أي موارد تحتوي على إدخال DNS مخصص. يعمل قفل الحذف كمؤشر على ضرورة إزالة التعيين قبل إلغاء توفير المورد. مثل هذه التدابير لا يمكن أن تنجح إلا عندما تقترن ببرامج التعليم الداخلية.

  • إنشاء إجراءات للاكتشاف:

    • راجع سجلات DNS بانتظام للتأكد من تعيين جميع نطاقاتك الفرعية إلى موارد Azure التي:

      • موجود - الاستعلام عن مناطق DNS الخاصة بك عن الموارد التي تشير إلى نطاقات Azure الفرعية مثل *.azurewebsites.net أو *.cloudapp.azure.com (راجع القائمة المرجعية لمجالات Azure).
      • أنت تملك - تأكد من أنك تملك جميع الموارد التي تستهدفها نطاقاتك الفرعية لنظام أسماء النطاقات.
    • احتفظ بكتالوج خدمة لنقاط نهاية اسم المجال المؤهل بالكامل (FQDN) في Azure ومالكي التطبيقات. لإنشاء كتالوج الخدمة الخاص بك، قم بتشغيل البرنامج النصي التالي لاستعلام Azure Resource Graph. يعرض هذا البرنامج النصي معلومات نقطة نهاية FQDN للموارد التي يمكنك الوصول إليها ويخرجها في ملف CSV. إذا كان لديك حق الوصول إلى جميع الاشتراكات الخاصة بالمستأجر، فسيعتبر البرنامج النصي جميع هذه الاشتراكات كما هو موضح في نموذج البرنامج النصي التالي. لقصر النتائج على مجموعة محددة من الاشتراكات، قم بتحرير البرنامج النصي كما هو موضح.

  • وضع إجراءات للمعالجة:

    • عند العثور على إدخالات DNS المتدلية، يحتاج فريقك إلى التحقق مما إذا كان قد حدث أي حل وسط أم لا.
    • تحقق من سبب عدم إعادة توجيه العنوان عند إيقاف تشغيل المورد.
    • احذف سجل DNS إذا لم يعد قيد الاستخدام، أو وجهه إلى مورد Azure الصحيح (FQDN) المملوك لمؤسستك.

تنظيف مؤشرات DNS أو إعادة المطالبة ب DNS

عند حذف مورد الخدمة السحابية الكلاسيكي ، يتم حجز DNS المقابل لمدة 7 أيام. خلال فترة الحجز، سيتم حظر إعادة استخدام DNS باستثناء الاشتراكات التي تنتمي إلى المستأجر AAD (دليل Azure النشط) للاشتراك الذي يمتلك DNS في الأصل. بعد انتهاء صلاحية الحجز ، يكون DNS مجانيا للمطالبة به من قبل أي اشتراك. من خلال أخذ حجوزات DNS ، يتم منح العميل بعض الوقت إما 1) تنظيف أي ارتباطات / مؤشرات إلى DNS المذكور أو 2) إعادة المطالبة ب DNS في Azure. يمكن اشتقاق اسم DNS المحجوز عن طريق إلحاق اسم الخدمة السحابية بمنطقة DNS لتلك السحابة.

عام - cloudapp.net Mooncake - chinacloudapp.cn فيرفاكس - usgovcloudapp.net بلاك فورست - azurecloudapp.de

أي أن الخدمة المستضافة في الأماكن العامة المسماة "اختبار" سيكون لها DNS "test.cloudapp.net"

مثال: الاشتراك "أ" والاشتراك "ب" هما الاشتراكان الوحيدان اللذان ينتميان إلى مستأجر AAD (دليل Azure النشط) "AB". يحتوي الاشتراك "A" على "اختبار" خدمة سحابية كلاسيكية باسم DNS "test.cloudapp.net". عند حذف الخدمة السحابية ، يتم إجراء حجز على اسم DNS "test.cloudapp.net". خلال فترة الحجز التي تبلغ 7 أيام ، سيتمكن الاشتراك "A" أو الاشتراك "B" فقط من المطالبة باسم DNS "test.cloudapp.net" من خلال إنشاء خدمة سحابية كلاسيكية تسمى "test". لن يسمح لأي اشتراكات أخرى بالمطالبة بها. بعد انتهاء 7 أيام، يمكن لأي اشتراك في Azure الآن المطالبة ب "test.cloudapp.net".

الخطوات التالية

لمعرفة المزيد حول الخدمات ذات الصلة وميزات Azure التي يمكنك استخدامها للدفاع ضد الاستيلاء على النطاق الفرعي، راجع الصفحات التالية.