Вразливість у SSH-клієнтах OpenSSH та PuTTY

У SSH-клієнтах OpenSSH та PuTTY виявлено вразливість (CVE-2020-14002 в PuTTY та CVE-2020-14145 OpenSSH), що призводить до витоку відомостей в алгоритмі узгодження з'єднання. Вразливість дозволяє атакуючому, здатному перехопити трафік клієнта (наприклад, при підключенні користувача через контрольовану атакуючою точку бездротового доступу), визначити спробу початкового підключення клієнта до хоста, коли клієнтом ще не прокешовано ключ хоста.

Знаючи, що клієнт намагається підключитися вперше і ще не має на своєму боці ключа хоста, атакуючий може транслювати з'єднання через себе (MITM) і видати клієнту свій хостовий ключ, який SSH-клієнт вважатиме ключем цільового хоста, якщо не виконає звірку відбитка ключа . Таким чином, атакуючий може організувати MITM не викликавши підозри у користувача та ігнорувати сеанси, в яких на стороні клієнта вже є прокешовані ключі хостів, спроба заміни яких призведе до виведення попередження про зміну ключа хоста. Атака будується на безтурботності користувачів, що не виконують ручну перевірку fingerprint-відбитка ключа хоста при першому підключенні. Ті, хто перевіряють відбитки ключів від подібних атак, захищені.

Як ознака визначення першої спроби підключення використовується зміна порядку перерахування підтримуваних алгоритмів хостових ключів. Якщо відбувається перше підключення клієнт передає список алгоритмів за замовчуванням, а якщо ключ хоста вже є в кеші, то пов'язаний з ним алгоритм виставляється на перше місце (алгоритми сортуються як перевага).

Проблема проявляється у випусках з OpenSSH c 5.7 по 8.3 та PuTTY з 0.68 по 0.73. Проблема усунута у випуску PuTTY 0.74 через додавання опції відключення динамічного побудови списку алгоритмів обробки хостових ключів на користь перерахування алгоритмів у порядку.

Проект OpenSSH не планує змінювати поведінку SSH-клієнта, оскільки якщо не вказати алгоритм наявного ключа на першому місці, буде застосована спроба застосування алгоритму, що не відповідає прокешованому ключу, з виведенням попередження про невідомий ключ. Тобто. виникає вибір - або витік інформації (OpenSSH і PuTTY), або виведення попереджень про зміну ключа (Dropbear SSH) у разі, якщо збережений ключ відповідає першому алгоритму в списку за замовчуванням.

Для забезпечення захисту в OpenSSH пропонується використовувати альтернативні способи перевірки ключа хоста за допомогою записів SSHFP у DNSSEC та сертифікатів хоста (PKI). Також можна вимкнути адаптивний вибір алгоритмів хостових ключів через опцію HostKeyAlgorithms та використовувати опцію UpdateHostKeys для отримання клієнтом додаткових ключів хоста після автентифікації.

Джерело: opennet.ru

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