انتشار OpenSSH 8.3 با رفع آسیب‌پذیری scp

پس از سه ماه توسعه ارایه شده رهایی OpenSSH 8.3، یک پیاده سازی باز از کلاینت و سرور برای کار بر روی پروتکل های SSH 2.0 و SFTP.

نسخه جدید محافظت در برابر حملات scp را اضافه می کند که به سرور اجازه می دهد نام فایل های دیگری غیر از موارد درخواستی را ارسال کند (برخلاف آسیب پذیری گذشته، این حمله امکان تغییر دایرکتوری انتخاب شده توسط کاربر یا ماسک glob را فراهم نمی کند). به یاد بیاورید که در SCP، سرور تصمیم می‌گیرد که کدام فایل‌ها و دایرکتوری‌ها را برای مشتری ارسال کند و کلاینت فقط صحت نام اشیاء برگشتی را بررسی می‌کند. ماهیت مشکل شناسایی شده این است که اگر فراخوانی سیستم utimes با شکست مواجه شود، محتویات فایل به عنوان ابرداده فایل تفسیر می شود.

این ویژگی، هنگام اتصال به سروری که توسط یک مهاجم کنترل می‌شود، می‌تواند برای ذخیره نام فایل‌ها و سایر محتواها در FS کاربر هنگام کپی کردن با استفاده از scp در پیکربندی‌هایی که منجر به شکست در هنگام فراخوانی utimes می‌شود، استفاده شود (به عنوان مثال، زمانی که utimes توسط utimes ممنوع است. خط مشی SELinux یا فیلتر تماس سیستمی). احتمال حملات واقعی حداقل تخمین زده می شود، زیرا در تنظیمات معمولی تماس utimes از بین نمی رود. علاوه بر این، حمله بدون توجه نمی ماند - هنگام تماس با scp، یک خطای انتقال داده نشان داده می شود.

تغییرات کلی:

  • در sftp، پردازش آرگومان "-1" مانند ssh و scp متوقف شده است که قبلا پذیرفته شده بود اما نادیده گرفته شد.
  • در sshd، هنگام استفاده از IgnoreRhosts، اکنون سه انتخاب وجود دارد: "بله" - نادیده گرفتن rhosts/shosts، "no" - احترام به rhosts/shosts، و "shosts-only" - اجازه دادن به ".shosts" اما ".rhosts" را غیرفعال کنید.
  • Ssh اکنون از جایگزینی %TOKEN در تنظیمات LocalFoward و RemoteForward که برای تغییر مسیر سوکت‌های یونیکس استفاده می‌شوند، پشتیبانی می‌کند.
  • اگر فایل جداگانه ای با کلید عمومی وجود ندارد، اجازه بارگیری کلیدهای عمومی از یک فایل رمزگذاری نشده با کلید خصوصی را بدهید.
  • اگر libcrypto در سیستم وجود داشته باشد، ssh و sshd اکنون از اجرای الگوریتم chacha20 از این کتابخانه استفاده می‌کنند، به‌جای پیاده‌سازی داخلی قابل حمل که از نظر عملکرد عقب است.
  • قابلیت تخلیه محتویات یک لیست باینری از گواهی های باطل شده را هنگام اجرای دستور "ssh-keygen -lQf /path" پیاده سازی کرد.
  • نسخه قابل حمل تعاریف سیستم هایی را پیاده سازی می کند که در آنها سیگنال هایی با گزینه SA_RESTART عملکرد Select را قطع می کنند.
  • حل مشکلات مونتاژ در سیستم های HP/UX و AIX.
  • رفع مشکلات مربوط به ساخت جعبه ایمنی seccomp در برخی از تنظیمات لینوکس.
  • شناسایی کتابخانه libfido2 را بهبود بخشید و مشکلات ساخت را با گزینه "--with-security-key-builtin" حل کرد.

توسعه دهندگان OpenSSH همچنین یک بار دیگر در مورد تجزیه قریب الوقوع الگوریتم ها با استفاده از هش SHA-1 به دلیل ترویج اثربخشی حملات برخورد با یک پیشوند معین (هزینه انتخاب یک برخورد حدود 45 هزار دلار برآورد شده است). در یکی از نسخه های آینده، آنها قصد دارند به طور پیش فرض قابلیت استفاده از الگوریتم امضای دیجیتال کلید عمومی ssh-rsa را غیرفعال کنند، که در RFC اصلی برای پروتکل SSH ذکر شده است و در عمل گسترده است (برای بررسی استفاده از ssh -rsa در سیستم های خود، می توانید سعی کنید از طریق ssh با گزینه "-oHostKeyAlgorithms=-ssh-rsa" متصل شوید).

برای هموار کردن انتقال به الگوریتم‌های جدید در OpenSSH، در یکی از نسخه‌های بعدی، تنظیمات UpdateHostKeys به طور پیش‌فرض فعال می‌شود که به‌طور خودکار کلاینت‌ها را به الگوریتم‌های مطمئن‌تر منتقل می‌کند. الگوریتم های توصیه شده برای مهاجرت عبارتند از rsa-sha2-256/512 بر اساس RFC8332 RSA SHA-2 (پشتیبانی شده از OpenSSH 7.2 و به طور پیش فرض استفاده می شود)، ssh-ed25519 (پشتیبانی از OpenSSH 6.5) و ecdsa-sha2-nistp256/384 مبتنی بر ecdsa-sha521-nistp5656/5.7 در RFCXNUMX ECDSA (پشتیبانی از OpenSSH XNUMX).

از آخرین نسخه، "ssh-rsa" و "diffie-hellman-group14-sha1" از لیست CASignatureAlgorithms حذف شده اند که الگوریتم های مجاز برای امضای دیجیتالی گواهی های جدید را تعریف می کند، زیرا استفاده از SHA-1 در گواهی ها خطر بیشتری دارد. به این دلیل که مهاجم زمان نامحدودی برای جستجوی تصادم برای یک گواهی موجود دارد، در حالی که زمان حمله به کلیدهای میزبان با مهلت زمانی اتصال (LoginGraceTime) محدود می شود.

منبع: opennet.ru

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