منع إدخالات 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 الفرعي إلى مورد المستخدم الضار حيث يتحكم في المحتوى.

الاستيلاء على مجال فرعي من موقع ويب غير متوفر

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

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

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

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

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

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

  • مزيد من المخاطر - قد تُستخدم المواقع الضارة للتصعيد إلى هجمات كلاسيكية أخرى مثل XSS وتزييف طلب مواقع مشتركة (CSRF) وتجاوز CORS والمزيد.

تحديد إدخالات DNS المعلَّقة

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

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

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

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

الخدمة نوع FQDNproperty مثال
الواجهة الأمامية لـ Azure microsoft.network/frontdoors 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 microsoft.network/trafficmanagerprofiles 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 لـ App Service

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

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

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

تعرف على المزيد حول هذه الخطط والفوائد الأخرى لخطط Microsoft Defender هذه في مقدمة حول Microsoft Defender لـApp Service.

استخدم سجلات الأسماء المستعارة لـ Azure DNS

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

  • الواجهة الأمامية لـ Azure
  • ملفات تعريف Traffic Manager
  • نقاط نهاية Azure Content Delivery Network (شبكة تسليم المحتوى)
  • عناوين IP عامة

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

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

استخدم التحقق من المجال المخصص لـ Azure App Service

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

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

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

إنشاء العمليات للتقليل من التهديد وتشغيلها تلقائياً

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

  • إنشاء إجراءات للوقاية:

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

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

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

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

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

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

  • إنشاء إجراءات للمعالجة:

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

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

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

  • عام - cloudapp.net
  • Mooncake - chinacloudapp.cn
  • Fairfax - usgovcloudapp.net
  • BlackForest - azurecloudapp.de

على سبيل المثال، قد تحتوي الخدمة المستضافة في Public المسماة "test" على DNS "test.cloudapp.net"

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

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

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