Terrapin — уязвимост в протокола SSH, позволяваща да се намали защитата на връзката

Група изследователи от Рурския университет в Бохум (Германия) представи нова техника за MITM атака на SSH — Terrapin, експлоатираща уязвимост (CVE-2023-48795) в протокола. Нападател, способен да организира MITM атака, има възможност в процеса на договаряне на връзката да блокира изпращането на съобщението за настройка на разширенията на протокола, за да намали нивото на защита на връзката. Прототип на инструмента за извършване на атаката е публикуван в GitHub.

В контекста на OpenSSH уязвимостта, например, позволява да се върне връзката на използването на по-малко защитени алгоритми за удостоверяване и да се изключи защитата от атаки по странични канали, възпроизвеждащи входа чрез анализ на закъсненията между натисканията на клавишите на клавиатурата. В Python библиотеката AsyncSSH в комбинация с уязвимостта (CVE-2023-46446) в реализацията на вътрешния автомата (internal state machine) атаката Terrapin позволява да се намеси в SSH сесия.

Уязвимостта засяга всички реализации на SSH, които поддържат ChaCha20-Poly1305 или шифри в режим CBC в комбинация с режима ETM (Encrypt-then-MAC). Например, подобни възможности са налични в OpenSSH вече повече от 10 години. Уязвимостта е блокирана в днешното издание на OpenSSH 9.6, а също и в актуализации на PuTTY 0.80, libssh 0.10.6/0.9.8 и AsyncSSH 2.14.2. В Dropbear SSH поправката вече е добавена в кода, но новото издание все още не е съставено.

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

Terrapin - уязвимост в протокола SSH, позволяваща понижаване на защитата на връзката.

Атаката не може да бъде проведена при използване на потокови шифри и CTR, тъй като нарушението на целостта ще бъде установено на ниво приложение. На практика, уязвими на атаката са само шифрите ChaCha20-Poly1305 (chacha20-poly1305@openssh.com), при които състоянието се следи само по поредните номера на съобщенията, и комбинацията от режима Encrypt-Then-MAC (*-etm@openssh.com) и шифрите CBC.

В OpenSSH 9.6 и в други реализации, за блокиране на атаката е реализирано разширение на протокола „strict KEX“, което автоматично се активира при наличие на поддръжка от страна на сървър и клиента. Разширението завършва връзката при получаване на каквито и да е нештатни или излишни съобщения (например, с флага SSH_MSG_IGNORE или SSH2_MSG_DEBUG), получени по време на договарянето на връзката, а също така нулира брояча MAC (Message Authentication Code) след завършване на всяка размяна на ключове.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster