الملاحظات المطلوبة: سياسة مشاركة الموارد المتعدّدة المصادر (CORS) للشبكات الخاصة (RFC1918)

الحد من المخاطر المرتبطة بالتعرض غير المقصود للأجهزة والخوادم على الشبكة الداخلية للعميل على الويب ككل.

لطالما كانت المواقع الإلكترونية الضارة التي ترسل طلبات إلى الأجهزة والخوادم المستضافة على شبكة خاصة تهديدًا. قد يغير المهاجمون، على سبيل المثال، تكوين جهاز توجيه لاسلكي لتفعيل هجمات Man-in-the-Middle. إنّ CORS-RFC1918 هو اقتراح لحظر مثل هذه الطلبات تلقائيًا على المتصفّح ويتطلب من الأجهزة الداخلية الموافقة على الطلبات الواردة من شبكات الإنترنت العامة.

ولفهم كيفية تأثير هذا التغيير في المنظومة المتكاملة للويب، يبحث فريق Chrome عن ملاحظات من مطوّري البرامج الذين ينشئون خوادم للشبكات الخاصة.

ما المشكلة في الوضع الراهن؟

تعمل العديد من خوادم الويب ضمن شبكة خاصة - لا تشكّل أجهزة التوجيه اللاسلكية والطابعات ومواقع الإنترانت وخدمات المؤسسات وأجهزة إنترنت الأشياء (IoT) جزءًا منها إلا. قد تبدو هذه الخوادم في بيئة أكثر أمانًا من تلك التي يتم إظهارها للجمهور، ولكن يمكن أن يسيء المهاجمون استخدام هذه الخوادم كخادم وكيل. على سبيل المثال، يمكن للمواقع الإلكترونية الضارة تضمين عنوان URL يحاول تغيير إعدادات خادم نظام أسماء النطاقات (DNS) على جهاز التوجيه المنزلي الواسع النطاق للضحية عندما يشاهده الضحية (على متصفح يدعم JavaScript). يُطلَق على هذا النوع من الهجمات اسم "Drive-By Pharmingوقد وقع في العام 2014. تم استغلال أكثر من 300,000 جهاز توجيه لاسلكي عرضة للثغرة من خلال تغيير إعدادات نظام أسماء النطاقات الخاصة بهم والسماح للمهاجمين بإعادة توجيه المستخدمين إلى خوادم ضارة.

CORS-RFC1918

للحدّ من تهديد الهجمات المماثلة، يوفّر منتدى الويب CORS-RFC1918، وهي مشاركة الموارد المتعدّدة المصادر (CORS) المتخصّصة في الشبكات الخاصة المحدّدة في RFC1918.

تتحقق المتصفحات التي تنفّذ CORS مع الموارد المستهدفة مما إذا كان يتم تحميلها من مصدر مختلف. ويمكن تحقيق ذلك إما من خلال إضافة عناوين مضمّنة تصف الوصول أو باستخدام آلية تُسمى "طلبات مبدئية" استنادًا إلى مدى التعقيد. يمكنك الاطّلاع على مقالة مشاركة الموارد المتعدّدة المصادر لمعرفة المزيد من المعلومات.

باستخدام CORS-RFC1918، سيحظر المتصفّح تلقائيًا تحميل الموارد عبر الشبكة الخاصة باستثناء الموارد التي يسمح بها الخادم صراحةً باستخدام بروتوكول CORS وعبر HTTPS. سيحتاج الموقع الإلكتروني الذي يقدّم طلبات إلى هذه الموارد إلى إرسال عناوين CORS وسيكون على الخادم أن يذكر صراحةً أنّه يقبل طلب CORS من مصادر متعددة من خلال الرد على عناوين CORS المقابلة لها. (لا تزال عناوين CORS الدقيقة قيد التطوير).

وسيتم مطالبة مطوّري هذه الأجهزة أو الخوادم بتنفيذ أمرين:

  • تأكد من أن موقع الويب الذي يرسل طلبات إلى شبكة خاصة يتم عرضه عبر HTTPS.
  • إعداد دعم الخادم لـ CORS-RFC1918 والاستجابة برؤوس HTTP المتوقعة.

ما هي أنواع الطلبات المتأثرة؟

تشمل الطلبات المتأثرة ما يلي:

  • الطلبات الواردة من الشبكة العامة إلى شبكة خاصة
  • الطلبات من شبكة خاصة إلى شبكة محلية
  • الطلبات الواردة من الشبكة العامة إلى شبكة محلية

شبكة خاصة هي وجهة تتوافق مع مساحة العنوان الخاص المحدّدة في القسم 3 من RFC1918 في الإصدار 4 من بروتوكول الإنترنت (IPv4)، أو عنوان IPv6 تم تعيينه لـ IPv4 حيث يكون عنوان IPv4 المحدد خاصًا، أو عنوان IPv6 خارج الشبكات الفرعية ::1/128 و2000::/3 وff00::/8.

شبكة محلية وجهة يتم تحويلها إلى مساحة "loopback" (127.0.0.0/8) المحدّدة في القسم 3.2.1.3 من RFC1122 من IPv4، مساحة "link-local" (169.254.0.0/16) المحددة في RFC3927 من IPv4، وهي بادئة "العنوان المحلي الفريد" (fc00::/7) المحددة في القسم 3 من القسم 3 من RFC4193fe80::/10RFC4291

شبكة عامة جميع الشبكات الأخرى.

العلاقة بين الشبكات العامة والخاصة والمحلية في CORS-RFC1918
العلاقة بين الشبكات العامة والخاصة والمحلية في CORS-RFC1918:

تخطّط Chrome لتفعيل CORS-RFC1918

يوفّر Chrome سياسة CORS-RFC1918 في خطوتَين:

الخطوة 1: لن يُسمح بإرسال الطلبات إلى موارد الشبكة الخاصة إلّا من صفحات الويب التي تستخدم بروتوكول HTTPS.

يضيف Chrome 87 علامة تفرض على المواقع الإلكترونية العامة التي ترسل طلبات إلى موارد الشبكة الخاصة استخدام بروتوكول HTTPS. ويمكنك الانتقال إلى about://flags#block-insecure-private-network-requests لتفعيلها. بعد تفعيل هذا العلامة، سيتم حظر أي طلبات إلى مورد شبكة خاصة من موقع إلكتروني يستخدم بروتوكول HTTP.

بدءًا من إصدار Chrome 88، سيتم الإبلاغ عن أخطاء CORS-RFC1918 كأخطاء في سياسة CORS في وحدة التحكّم.

سيتم الإبلاغ عن أخطاء CORS-RFC1918 باعتبارها أخطاء سياسة CORS في وحدة التحكّم.
سيتم الإبلاغ عن أخطاء CORS-RFC1918 باعتبارها أخطاء في سياسة CORS في وحدة التحكّم.

في لوحة الشبكة ضمن "أدوات مطوري البرامج في Chrome"، يمكنك تفعيل مربّع الاختيار الطلبات المحظورة للتركيز على الطلبات المحظورة:

سيتم الإبلاغ عن أخطاء CORS-RFC1918 أيضًا كأخطاء خطأ CORS في لوحة الشبكة.
سيتم أيضًا الإبلاغ عن أخطاء CORS-RFC1918 باعتبارها أخطاء خطأ CORS في لوحة الشبكة.

في الإصدار Chrome 87، لا يتم الإبلاغ عن أخطاء CORS-RFC1918 إلا في وحدة تحكّم أدوات مطوّري البرامج على أنّها ERR_INSECURE_PRIVATE_NETWORK_REQUEST بدلاً من ذلك.

يمكنك تجربتها بنفسك باستخدام موقع الاختبار الإلكتروني هذا.

الخطوة 2: إرسال طلبات مسبقة باستخدام عنوان خاص

في المستقبل، عندما يحاول أحد المواقع الإلكترونية العامة جلب موارد من شبكة خاصة أو محلية، سيرسل Chrome طلبًا مبدئيًا قبل الطلب الفعلي.

سيتضمن الطلب عنوان Access-Control-Request-Private-Network: true بالإضافة إلى عناوين طلبات CORS الأخرى. تحدد هذه العناوين من بين أمور أخرى مصدر الطلب، ما يسمح بالتحكم في الوصول بشكل دقيق. يمكن للخادم الاستجابة باستخدام عنوان Access-Control-Allow-Private-Network: true للإشارة بشكل صريح إلى أنّه يمنح إمكانية الوصول إلى المورد.

مطلوب إرسال ملاحظات

إذا كنت تستضيف موقع ويب ضمن شبكة خاصة تتوقع طلبات من شبكات عامة، فإن فريق Chrome مهتم بملاحظاتك وحالات الاستخدام. هناك شيئان يمكنك القيام بهما للمساعدة:

  • انتقِل إلى about://flags#block-insecure-private-network-requests، وفعِّل العلامة، واعرف ما إذا كان موقعك الإلكتروني يرسل الطلبات إلى مورد الشبكة الخاصة على النحو المتوقّع.
  • إذا واجهت أي مشاكل أو كانت لديك ملاحظات، أبلِغ بالمشكلة على crbug.com واضبط المكوِّن على Blink>SecurityFeature>CORS>RFC1918.

أمثلة على الملاحظات

يقدم جهاز التوجيه اللاسلكي موقع ويب مشرف لنفس الشبكة الخاصة ولكن من خلال HTTP. إذا كان HTTPS مطلوبًا للمواقع الإلكترونية التي تضمّن الموقع الإلكتروني للمشرف، سيكون محتوى مختلطًا. هل علينا تفعيل HTTPS على الموقع الإلكتروني للمشرف في شبكة مغلقة؟

هذا تحديدًا هو نوع الملاحظات التي يبحث عنها Chrome. يُرجى الإبلاغ عن مشكلة في حالة الاستخدام الملموسة على crbug.com. يهم Chrome معرفة رأيك.

صورة رئيسية من إعداد ستيفن فيليبس على موقع Unسبلاش