الخلاصة

  • كان تسميم Kaminsky يفرض أسئلة عن أسماء جديدة كي يعيد سباق التخمين خارج المسار: على جواب مزوّر أن يصيب معلمات الاستعلام المعلّق وأن يسبق جواب الخادم الصحيح.
  • لم توثّق ترقيعات 2008 المنسقة بيانات DNS. أضافت معرّفات معاملات ومنافذ مصدر غير متوقعة إلى قرار القبول المحلي، وكان على هذه الإنتروبيا أن تبقى بعد الجدار الناري وNAT وأن تُفحص على السلك.

أول حزمة مطابقة أصبحت الجواب

كان المحلّل التكراري يرسل عادة سؤالاً عبر UDP غير موقّع. لم يحمل الرد العادي برهاناً تشفيرياً على مصدره، لذلك اختبر المحلّل ما إذا كانت الحزمة تخص عملاً بدأه فعلاً وما زال ينتظر نتيجته.

صاغ RFC 5452 الحد لاحقاً: يجب أن يطابق قسم السؤال ومعرّف المعاملة، وأن يبدو الرد صادراً من عنوان الخادم الذي سُئل، وأن يعود إلى العنوان والمنفذ اللذين خرج منهما السؤال. في العموم يُقبل أول رد يحقق الشروط.

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

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

صنع الهجوم فرصته التالية

لم يبدأ تسميم الذاكرة في 2008. وثق RFC 3833 عام 2004 تخمين المعرّفات وتوقع الاستعلامات وسلاسل الأسماء. حقل المعرّف 16 بت فقط، وقدمت مولدات ضعيفة مساحة أصغر، فيما لم يضف منفذ UDP الثابت سراً جديداً.

أظهر Dan Kaminsky كيف تتحول نقاط معروفة إلى تكرار عملي. يدفع المهاجم المحلّل إلى طلب تسمية عشوائية لم تظهر من قبل تحت النطاق الهدف. غيابها من الذاكرة يفرض سؤالاً جديداً على الخادم المخوّل، فتتسابق الردود المزوّرة مع الرد الصحيح. بعد الفشل تفتح تسمية أخرى نافذة جديدة.

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

يعامل RFC 5452 العمر الفعال لبعض الأنماط المتكررة كأنه قريب من الصفر. في نموذجه الذي يستخدم 7,000 حزمة مزوّرة في الثانية ومنفذاً واحداً، تبلغ فرصة النجاح 50% خلال نحو سبع ثوان. هذا ليس زمناً عاماً لكل شبكة، بل بيان لكيفية تحول احتمال صغير إلى خطر عندما تصبح إعادة المحاولة زهيدة.

أصبح المنفذ معرّفاً ثانياً

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

قدّر RFC 5452 أن استخدام قرابة 64 ألف منفذ يضاعف مساحة البحث بالمقدار نفسه. في نموذج 7,000 حزمة، ينتقل مستوى 50% من سبع ثوان إلى نحو 116 ساعة. وصف CERT/CC الكسب النظري بأنه يقارب 16 بت إضافية، مع التنبيه إلى أن المنافذ المحجوزة أو المشغولة تقلل المجموعة الحقيقية.

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

لكن للكسب كلفة. حذرت ISC من أثر أداء ملحوظ للترقيع الأولي في BIND فوق نحو 10 آلاف استعلام في الثانية وقدمت نسخاً تجريبية محسنة. احتاجت الجدران التي تسمح بالخروج من المنفذ 53 فقط إلى تعديل، واستهلكت الأجهزة ذات الحالة تعيينات أكثر.

لم تلغ الترقية الهندسة؛ استبدلت مجموعة متوقعة بإدارة أصعب للمقابس والحالة. كان المقابل قابلاً للقياس والضبط والتراجع محلياً.

قد تطوي NAT الإنتروبيا من جديد

يمكن للجرد أن يقول «مصحح» بينما يرى الإنترنت منافذ قليلة ومنتظمة. تعيد NAT/PAT كتابة منافذ المصدر. حذر CERT/CC من تقليل الفائدة أو إلغائها، وذكر RFC 5452 الأجهزة التي تسلسل المنافذ أو تحدها بشدة.

ليس كل NAT ضاراً. بعض الأجهزة يحفظ الاختيار وبعضها يغير التوزيع بطرق مختلفة. السؤال هو عدد الخيارات التي يراها المهاجم بعد نظام التشغيل والجدار والترجمة.

قدمت DNS-OARC اختبارات من جهة الخادم المخوّل. يرسل المشغل أسئلة خاصة ويرى توزيع المنافذ والمعرّفات التي وصلت فعلاً. لا يعود رقم الإصدار بديلاً عن مشاهدة السلوك النهائي.

هنا تصبح أولوية الشفرة العاملة دليلاً مادياً: يصف التنبيه نية التصميم، ويثبت مدير الحزم التثبيت، لكن حركة الشبكة وحدها تثبت أن البنية المحيطة لم تمحُ الحماية.

التنسيق بين الموردين لم يكن أمراً مركزياً

تسجل DNS-OARC اجتماعاً في مكاتب Microsoft في 31 مارس 2008. في 8 يوليو نشر CERT/CC الوثيقة VU#800113 بالتزامن مع تحديثات كثيرة. صححت ISC برنامج BIND، وغيرت Microsoft المعرّفات ومقابس UDP ومنطق الذاكرة.

انتهت السرية قبل العرض المخطط. تسجل القائمة تسرباً فعلياً في 21 يوليو، وشفرة استغلال عاملة في 23، وتنفيذات أخرى في 24. قالت Microsoft في 25 يوليو إن المعرفة والشفرة العامة زادتا الخطر؛ وقالت أيضاً إنها لم تكن تعلم حينها بهجمات نشطة أو أثر على العملاء، وإن الاستغلال الذي اختبرته لم ينجح على أنظمة ثُبت عليها MS08-037.

لا تبرهن هذه الملاحظة غياب الاستغلال عالمياً. زادت الشفرة العامة القدرة، وكان مجال رؤية الشركة محدوداً، ولم يكن نجاح اختبار واحد شهادة لكل تركيب بين محلّل وشبكة.

عرض Kaminsky الآلية في Black Hat في 7 أغسطس. صدر RFC 5452 في يناير 2009. قدمت الشفرة المتوافقة دفاعاً عملياً أولاً، ثم ثبتت الوثيقة قواعد المطابقة وعدم التوقع. لم تقم الوثيقة بتثبيت تحديث يوليو.

الإنتروبيا تجعل الكذب مكلفاً ولا تثبت المصدر

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

لذلك وصفت ISC نظام DNSSEC بأنه الحل الحاسم مع اعترافها بأن نشره فوراً في كل مكان غير واقعي. يتحقق DNSSEC من الأصل والسلامة عبر التوقيعات وسلسلة الثقة. هذه خاصية مختلفة عن جعل سباق غير موقع أصعب.

تتكامل الطبقات. تطرد المطابقة الصارمة والإنتروبيا الحزم الرخيصة، ويحكم DNSSEC سلطة المحتوى. ولا ينبغي لأي من الضابطين أن يدّعي وظيفة الآخر.

ترسم «المواصفة الأولية الدنيا» لدى Heng Lu الحد المشترك: مطابقة كاملة وعدم توقع كافيان، من دون تحويل مولد مورّد أو مخصص مقابس أو جدول نشر إلى أمر عالمي. تبقى القرارات اللاحقة محلية، ولا يصبح التغيير حقيقة إلا بالتنفيذ والسلوك القابل للرصد.

حدود الأدلة

تثبت المصادر تعرضاً عبر موردين وتقنية أكثر عملية، ولا تثبت عيباً واحداً في كل محلّل أو نشراً شاملاً في 8 يوليو أو أن سبع ثوان و116 ساعة تنطبقان على كل شبكة. رفعت المنافذ العشوائية صعوبة الهجوم وفق افتراضات واضحة ولم تنه كل تسميم. كما لا يثبت وجود DNSSEC أن المحلل يتحقق منه.

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

المصادر