انتشار 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 محافظت شده توسط یک کد پین به ssh-agent را فراهم می کنند (درخواست پین در زمان احراز هویت نمایش داده می شود).
  • ssh-keygen امکان انتخاب الگوریتم هش (sha512 یا sha256) را در طول تولید امضا فراهم می کند.
  • در ssh و sshd، برای بهبود عملکرد، داده های شبکه مستقیماً در بافر بسته های ورودی خوانده می شود و بافر میانی روی پشته را دور می زند. قرار دادن مستقیم داده های دریافتی در بافر کانال به روشی مشابه اجرا می شود.
  • در ssh، دستورالعمل PubkeyAuthentication لیستی از پارامترهای پشتیبانی شده (بله|خیر|unbound|host-bound) را گسترش داده است تا امکان انتخاب پسوند پروتکل برای استفاده را فراهم کند.

در نسخه آینده، ما قصد داریم پیش‌فرض ابزار scp را برای استفاده از SFTP به جای پروتکل SCP/RCP قدیمی تغییر دهیم. SFTP از روش های مدیریت نام قابل پیش بینی تری استفاده می کند و از پردازش پوسته الگوهای glob در نام فایل ها در سمت میزبان دیگر استفاده نمی کند، که مشکلات امنیتی ایجاد می کند. به طور خاص، هنگام استفاده از SCP و RCP، سرور تصمیم می‌گیرد که کدام فایل‌ها و دایرکتوری‌ها را برای مشتری ارسال کند و کلاینت فقط صحت نام اشیاء برگشتی را بررسی می‌کند، که در صورت عدم وجود بررسی‌های مناسب در سمت کلاینت، این امکان را به کاربر می‌دهد. سرور برای انتقال نام فایل های دیگر که با نام های درخواستی متفاوت است. پروتکل SFTP این مشکلات را ندارد، اما از گسترش مسیرهای خاص مانند "~/" پشتیبانی نمی کند. برای رفع این تفاوت، نسخه قبلی OpenSSH یک پسوند پروتکل SFTP جدید به مسیرهای ~/ و ~user/ در اجرای سرور SFTP معرفی کرد.

منبع: opennet.ru

اضافه کردن نظر