Реліз OpenSSH 8.3 з усуненням уразливості у scp

Після трьох місяців розробки представлений реліз OpenSSH 8.3, відкритої реалізації клієнта та сервера для роботи за протоколами SSH 2.0 та SFTP.

У новому випуску додано захист від атаки на scp, що дозволяє серверу передати інші імена файлів, які відрізняються від запрошених (на відміну від минулої вразливості, атака не дає можливість змінити вибраний користувачем каталог або glob-маску). Нагадаємо, що в SCP сервер приймає рішення про те, які файли та каталоги надіслати клієнту, а клієнт лише перевіряє коректність повернутих імен об'єктів. Суть виявленої проблеми в тому, що якщо системний виклик utimes завершується помилкою, вміст файлу інтерпретується як метадані файлу.

Ця особливість при підключенні до сервера, підконтрольного зловмиснику, може використовуватися для збереження у ФС користувача інших імен файлів та іншого вмісту при копіюванні за допомогою scp у конфігураціях, що призводять до збою під час виклику utimes (наприклад, заборони utimes політикою SELinux або фільтром системних викликів) . Імовірність проведення реальних атак оцінюється як мінімальна, оскільки у типових конфігураціях виклик utimes не завершується збоєм. Крім того, атака не проходить непомітно - при викликі scp з'являється помилка передачі даних.

Загальні зміни:

  • У sftp припинено обробку аргументу «-1» за аналогією з ssh і scp, який раніше приймався, але ігнорувався;
  • У sshd при використанні IgnoreRhosts тепер надається три варіанти вибору: "yes" - ігнорувати rhosts/shosts, "no" - врахувати rhosts/shosts і "shosts-only" - дозволити ".shosts", але заборонити ".rhosts";
  • У ssh забезпечено обробку підстановки %TOKEN у налаштуваннях LocalFoward та RemoteForward, що використовуються для перенаправлення Unix-сокетів;
  • Дозволено завантаження відкритих ключів із незашифрованого файлу з приватним ключем, якщо відсутній окремий файл із відкритим ключем;
  • За наявності в системі libcrypto в ssh і sshd тепер використовує реалізацію алгоритму chacha20 з даної бібліотеки замість вбудованої переносної реалізації, яка відстає за продуктивністю;
  • Реалізовано можливість дампи вмісту бінарного списку відкликаних сертифікатів при виконанні команди ssh-keygen -lQf /path;
  • У версії, що переноситься, реалізовано визначення систем, в яких сигнали з опцією SA_RESTART переривають роботу select;
  • Вирішено проблеми зі складанням у системах HP/UX та AIX;
  • Усунуті проблеми зі складанням seccomp sandbox у деяких конфігураціях Linux;
  • Поліпшено визначення бібліотеки 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) та ecdsa2/256 з урахуванням RFC384 ECDSA (підтримується з OpenSSH 521).

Починаючи з минулого випуску «ssh-rsa» та «diffie-hellman-group14-sha1» видалені зі списку CASignatureAlgorithms, що визначає алгоритми, допустимі для цифрового підпису нових сертифікатів, оскільки використання SHA-1 у сертифікатах пов'язане з додатковим ризиком через те , що атакуючий має необмежений час на пошук колізії для існуючого сертифіката, в той час як час атаки на хостові ключі обмежені таймом підключення (LoginGraceTime).

Джерело: opennet.ru

Додати коментар або відгук