Уязвимост в PuTTY позволи пресъздаване на личния ключ на потребителя

уязвимост

Ако бъдат използвани, тези пропуски могат да позволят на нападателите да получат неоторизиран достъп до чувствителна информация или като цяло да причинят проблеми

Наскоро гръмна новината, че е така открита уязвимост в PuTTY (вече изброен под CVE-2024-31497) популярен инструмент, който предоставя реализации на протоколите SSH, Telnet и Rlogin за Windows и Unix системи.

Открита е уязвимост на CVE-2024-31497 Счита се за критично, като ви позволява да пресъздадете личния ключ на потребителя използвайки алгоритъма ECDSA на елиптична крива на NIST P-521 (ecdsa-sha2-nistp521) от приблизително 60 цифрови подписа, генерирани в PuTTY.

Струва си да се спомене, че уязвимостта е открита Това не е изключително за PuTTY клиента, тъй като засяга и други продукти които включват уязвими версии на PuTTY, като FileZilla, WinSCP, TortoiseGit и TortoiseSVN. Тази уязвимост се дължи на отклонение при генерирането на ECDSA nonce, където първите 9 бита на всеки ECDSA nonce са нула, което улеснява възстановяването на приблизително 60 валидни ECDSA подписа с помощта на усъвършенствани техники.

Споменава се, че Причината за тази уязвимост се крие в използването на 512-битова произволна последователност за генериране на 521-битов (nonce) вектор за инициализация от разработчиците на PuTTY. Те погрешно вярваха, че 512 бита ентропия ще бъдат достатъчни и че останалите 9 бита не са критични. Това обаче доведе до това, че първите 9 бита от вектора за инициализация винаги бяха нула, което позволява пресъздаване на частни ключове.

Необходимият набор от подписани съобщения може да бъде публично четим, тъй като те се съхраняват в публична Git услуга, която поддържа използването на SSH за подписване на ангажименти, а Pageant извършва подписите чрез механизъм за препращане на агент. С други думи, злонамерен потребител може вече да има достатъчно информация за подписа, за да компрометира личния ключ на жертвата, дори ако не се използват по-уязвими версии на PuTTY.

Значението на качеството на генератора на псевдослучайни числа и пълно покритие на параметрите в изчислението на модула на произволни данниs е от решаващо значение за ECDSA и DSA алгоритмите. Определянето дори на няколко бита с информация за вектора за инициализация може да доведе до успешна атака за последователно възстановяване на целия частен ключ. Този тип атака се основава на решаването на проблема със скритите числа (HNP).

Да успея в за възстановяване на частен ключ, атакуващият се нуждае само от публичен ключ и няколко цифрови подписа генерирани с помощта на проблемния вектор за инициализация. Тези подписи може да се получи, ако потребителят се свърже със злонамерен SSH сървър или Git сървър който използва SSH като транспорт. Те също могат да бъдат получени, ако ключът се използва за проверка на произволни данни, като git ангажименти с Pageant SSH агент, пренасочващ трафика към хоста на разработчика.

След ключов компромис, противникът може да извърши атаки срещу веригата за доставки на софтуер, поддържан в Git. Втори независим сценарий е, че противникът е оператор на SSH сървър, на който жертвата се удостоверява (за отдалечено влизане или копиране на файл), въпреки че жертвата няма пълно доверие на този сървър и жертвата използва същия частен ключ за SSH връзки към други услуги, управлявани от други субекти.

Важно е да се отбележи, че MITM атаката за получаване на данните, необходими за възстановяване на ключа, не е осъществима, тъй като подписите в SSH не се предават в чист текст. В случая на PuTTY се наблюдава подобно използване на вектори за непълна инициализация за други типове елиптични криви, но ECDSA алгоритми с други размери и ключове Ed25519 не са податливи на този тип атака.

Накрая се споменава, че Решението за тази уязвимост се намира в актуализациите на PuTTY и другите засегнати продукти и следователно на потребителите, които са използвали уязвими версии, се препоръчва да генерират нови частни ключове и да изтрият стари публични ключове от своите authorized_keys файлове след прилагане на актуализацията.

Ако сте се интересувам да научим повече за това, можете да проверите подробностите в следната връзка.