إطلاق OpenSSH 8.9 مع إزالة الثغرة الأمنية في sshd

بعد ستة أشهر من التطوير، تم تقديم إصدار OpenSSH 8.9، وهو تطبيق مفتوح للعميل والخادم للعمل عبر بروتوكولي SSH 2.0 وSFTP. يعمل الإصدار الجديد من sshd على إصلاح ثغرة أمنية قد تسمح بالوصول غير المصادق. سبب المشكلة هو تجاوز عدد صحيح في رمز المصادقة، ولكن لا يمكن استغلاله إلا مع أخطاء منطقية أخرى في التعليمات البرمجية.

في شكلها الحالي، لا يمكن استغلال الثغرة الأمنية عند تمكين وضع فصل الامتيازات، حيث يتم حظر ظهورها عن طريق عمليات فحص منفصلة يتم إجراؤها في رمز تتبع فصل الامتيازات. تم تمكين وضع فصل الامتيازات افتراضيًا منذ عام 2002 منذ OpenSSH 3.2.2، وأصبح إلزاميًا منذ إصدار OpenSSH 7.5 المنشور في عام 2017. بالإضافة إلى ذلك، في الإصدارات المحمولة من OpenSSH بدءًا من الإصدار 6.5 (2014)، يتم حظر الثغرة الأمنية عن طريق التجميع مع تضمين إشارات حماية تجاوز السعة الصحيحة.

تغييرات أخرى:

  • أزال الإصدار المحمول من OpenSSH في sshd الدعم الأصلي لتجزئة كلمات المرور باستخدام خوارزمية MD5 (مما يسمح بالارتباط مع المكتبات الخارجية مثل libxcrypt للعودة).
  • تقوم ssh وsshd وssh-add وssh-agent بتنفيذ نظام فرعي لتقييد إعادة توجيه واستخدام المفاتيح المضافة إلى ssh-agent. يسمح لك النظام الفرعي بتعيين القواعد التي تحدد كيفية ومكان استخدام المفاتيح في ssh-agent. على سبيل المثال، لإضافة مفتاح يمكن استخدامه فقط لمصادقة أي مستخدم يتصل بالمضيف scylla.example.org، والمستخدم perseus بالمضيف cetus.example.org، والمستخدم medea بالمضيف charybdis.example.org مع إعادة التوجيه من خلال مضيف وسيط scylla.example.org، يمكنك استخدام الأمر التالي: $ ssh-add -h "[البريد الإلكتروني محمي]" \ -h "scylla.example.org" \ -h "scylla.example.org>[البريد الإلكتروني محمي]\ ~/.ssh/id_ed25519
  • في ssh وsshd، تمت إضافة خوارزمية هجينة افتراضيًا إلى قائمة KexAlgorithms، والتي تحدد الترتيب الذي يتم به تحديد طرق تبادل المفاتيح.[البريد الإلكتروني محمي]"(ECDH/x25519 + NTRU Prime)، مقاوم للاختيار على أجهزة الكمبيوتر الكمومية. في OpenSSH 8.9، تمت إضافة طريقة التفاوض هذه بين طريقتي ECDH وDH، ولكن من المخطط أن يتم تمكينها افتراضيًا في الإصدار التالي.
  • قامت ssh-keygen وssh وssh-agent بتحسين التعامل مع مفاتيح FIDO المميزة المستخدمة للتحقق من الجهاز، بما في ذلك مفاتيح المصادقة البيومترية.
  • تمت إضافة أمر "ssh-keygen -Y match-principals" إلى ssh-keygen للتحقق من أسماء المستخدمين في ملف قائمة الأسماء المسموح بها.
  • يوفر ssh-add وssh-agent القدرة على إضافة مفاتيح FIDO المحمية برمز PIN إلى ssh-agent (يتم عرض طلب PIN في وقت المصادقة).
  • يسمح ssh-keygen باختيار خوارزمية التجزئة (sha512 أو sha256) أثناء إنشاء التوقيع.
  • في ssh وsshd، لتحسين الأداء، تتم قراءة بيانات الشبكة مباشرة في المخزن المؤقت للحزم الواردة، متجاوزة التخزين المؤقت المتوسط ​​على المكدس. يتم تنفيذ الوضع المباشر للبيانات المستلمة في المخزن المؤقت للقناة بطريقة مماثلة.
  • في ssh، قام توجيه PubkeyAuthentication بتوسيع قائمة المعلمات المدعومة (نعم|لا|غير منضم|مرتبط بالمضيف) لتوفير القدرة على تحديد ملحق البروتوكول المراد استخدامه.

في إصدار مستقبلي، نخطط لتغيير الإعداد الافتراضي للأداة المساعدة scp لاستخدام SFTP بدلاً من بروتوكول SCP/RCP القديم. يستخدم SFTP أساليب أكثر قابلية للتنبؤ لمعالجة الأسماء ولا يستخدم معالجة الصدفة لأنماط الكرة الأرضية في أسماء الملفات من جانب المضيف الآخر، مما يؤدي إلى حدوث مشكلات أمنية. على وجه الخصوص، عند استخدام SCP وRCP، يقرر الخادم الملفات والدلائل التي سيتم إرسالها إلى العميل، ويتحقق العميل فقط من صحة أسماء الكائنات التي تم إرجاعها، مما يسمح، في حالة عدم وجود عمليات التحقق المناسبة من جانب العميل، الخادم لنقل أسماء الملفات الأخرى التي تختلف عن تلك المطلوبة. لا يعاني بروتوكول SFTP من هذه المشاكل، لكنه لا يدعم توسيع المسارات الخاصة مثل "~/". لمعالجة هذا الاختلاف، قدم الإصدار السابق من OpenSSH امتدادًا جديدًا لبروتوكول SFTP إلى مسارات ~/ و~user/ في تنفيذ خادم SFTP.

المصدر: opennet.ru

إضافة تعليق