کاهش امنیت اتصالات OpenSSH در پی حملات Terrapin
محققان حمله جدیدی به نام Terrapin را بررسی کردهاند که دنباله اعداد را در طول فرآیند handshake دستکاری میکند تا یکپارچگی کانال SSH را هنگامی که از حالتهای رمزنگاری پرکاربرد (widely-used encryption) استفاده میشود، بشکند. این دستکاری به مهاجمان اجازه میدهد پیامهای رد و بدل شده از طریق کانال ارتباطی را حذف یا اصلاح کنند و منجر به کاهش (downgrading) الگوریتمهای کلید عمومی مورد استفاده برای احراز هویت کاربر یا غیرفعال کردن دفاع در برابر حملات keystroke timing در OpenSSH نسخه 9.5 شود.
حمله Terrapin امکان حملات برش پیشوند (prefix truncation attacks) را فراهم میکند که در آن برخی از بستههای رمزنگاری شده در ابتدای کانال SSH میتوانند بدون اینکه مشتری یا سرور متوجه شود، حذف شوند. همچنین یک نقص پیادهسازی در AsyncSSH شناسایی شد که همراه با بریدن پیشوند (prefix truncation)، به مهاجم اجازه میدهد تا قربانی را به پوستهای (shell) که توسط مهاجم کنترل میشود، هدایت کند.
” حمله Terrapin از ضعفهای پروتکل لایه انتقال SSH در ترکیب با الگوریتمهای رمزنگاری جدید و حالتهای رمزنگاری 10 سال پیش که توسط OpenSSH معرفی شدهاند، بهرهبرداری میکند (و بیشتر پیادهسازیهای فعلی را تحت تاثیر قرار میدهد).”
حمله Terrapin با کوتاه کردن پیامهای مهم مذاکره (negotiation) بدون اینکه مشتری یا سرور متوجه شود، سبب کاهش امنیت اتصال برقرار شده میشود. آسیبپذیریهایی از این حمله با شناسههای CVE-2023-48795، CVE-2023-46445 و CVE-2023-46446 منتشر شده است. نکتهای که در مورد حمله Terrapin باید به آن توجه کرد این است که مهاجمان باید در موقعیتMiTM در لایه شبکه قرار گیرند تا تبادل handshake را رهگیری (intercept) و اصلاح کنند و اتصال باید توسط ChaCha20-Poly1305 یا CBC با رمزنگاری Encrypt-then-MAC ایمن شود. دادههای موجود در پیامهای رد و بدل شده پس از اتمام handshake، شدت عواقب حمله را مشخص میکنند.
پیادهسازی یک مبادله کلید سخت (strict key exchange) که تزریق بسته را حین handshake غیرقابل دسترس میکند، میتواند بهعنوان یک راهحل در نظر گرفته شود. گرچه اقدام متقابل مبادله کلید سخت، تنها زمانی مؤثر است که هم بر روی کلاینت و هم بر روی سرور اجرا شود.
محصولات تحت تأثیر
پروتکل OpenSSH نسخه 9.5 نسبت به این حمله آسیبپذیر میباشد.
توصیههای امنیتی
یک اسکنر آسیبپذیری Terrapin در GitHub منتشر شده است (https://github.com/RUB-NDS/Terrapin-Scanner) که مدیران میتوانند از آن جهت تشخیص آسیبپذیری مشتری یا سرور SSH در برابر حمله Terrapin استفاده کنند. این آسیبپذیری یک نقص نرمافزاری ساده نیست که بتوان آن را با بهروزرسانی یک کتابخانه برطرف کرد. کلاینتها و سرورها باید بهروزرسانی شوند تا از اتصال در برابر حملات برش پیشوند (prefix truncation attacks) محافظت شوند.
در حال حاضر، بزرگترین عامل کاهشدهنده حملهTerrapin ، MiTM میباشد که تهدیدات احتمالی ناشی از این حمله را کاهش میدهد.