Terrapin, атака MITM на SSH, яка маніпулює порядковими номерами під час процесу узгодження з’єднання

уразливість

У разі використання цих недоліків зловмисники можуть отримати несанкціонований доступ до конфіденційної інформації або загалом спричинити проблеми

Нещодавно група вчених з Рурського університету Бохума, Німеччина, представив деталі нової техніки атаки MITM через SSH, які вони мають охрещений як «Terrapin» і які, за їхніми словами, можуть дозволити зловмиснику погіршити безпеку з’єднання SSH під час використання узгодження розширення SSH. Вплив на практиці значною мірою залежатиме від підтримуваних розширень, але «майже всі» вразливі.

Terrapin використовує вразливість (вже каталогізовано під CVE-2023-48795), який зловмисник може скористатися перевагою для організації атаки MITM під час використання OpenSSH, уразливість дає змогу повернути з’єднання, щоб використовувати менш безпечні алгоритми автентифікації, або вимкнути захист від атак із бічного каналу, які відтворюють введення шляхом аналізу затримок між натисканнями клавіш на клавіатурі.

«Ретельно регулюючи порядкові номери під час рукостискання, зловмисник може видалити довільну кількість повідомлень, надісланих клієнтом або сервером на початку захищеного каналу, не помітивши клієнта або сервера», — зазначають дослідники.

Що стосується вразливості, згадується, що це впливає на всі реалізації SSH, які підтримують шифри в режимі ChaCha20-Poly1305 або CBC у поєднанні з режимом ETM (Encrypt-then-MAC). Наприклад, подібні можливості були доступні в OpenSSH більше 10 років.

«Найчастіше це впливає на безпеку автентифікації клієнта при використанні відкритого ключа RSA. При використанні OpenSSH 9.5 його також можна використовувати для вимкнення певних заходів протидії атакам на час натискання клавіш», — пишуть дослідники.

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

Серед іншого, зловмисник може видалити повідомлення SSH_MSG_EXT_INFO, які використовуються для налаштування розширень протоколу, який використовується. Щоб інша сторона не виявила втрату пакета через прогалину в порядкових номерах, зловмисник ініціює надсилання фіктивного пакета з тим самим порядковим номером, що й віддалений пакет, щоб змінити порядковий номер. Фіктивний пакет містить повідомлення з прапорцем SSH_MSG_IGNORE, яке ігнорується під час обробки.

Щоб виконати атаку Terrapin на практиці, зловмисникам потрібні можливості «людини посередині» на мережевому рівні для перехоплення та зміни трафіку. Крім того, необхідно узгодити спеціальні методи шифрування, щоб забезпечити безпечну передачу даних під час з’єднання.

Атака не може бути здійснена за допомогою потокових шифрів і CTR, оскільки порушення цілісності буде виявлено на рівні програми. На практиці, використовується тільки шифрування ChaCha20-Poly1305 у якому стан відстежується виключно за порядковими номерами повідомлень і комбінацією режиму Encrypt-Then-MAC (*-etm@openssh.com). ) і шифри CBC піддаються атакам.

Згадується, що також було виявлено в бібліотеці Python AsyncSSH, У поєднанні з уразливістю (CVE-2023-46446) у реалізації внутрішнього кінцевого автомата атака Terrapin дозволяє нам зламати сеанс SSH.

Вразливість Виправлено в OpenSSH версії 9.6 і в цій версії OpenSSH та інших реалізаціях, для блокування атаки реалізовано розширення «суворого протоколу KEX»., який автоматично вмикається, якщо є підтримка на стороні сервера та клієнта. Розширення припиняє з’єднання після отримання будь-яких ненормальних або непотрібних повідомлень (наприклад, з прапорцем SSH_MSG_IGNORE або SSH2_MSG_DEBUG), отриманих під час процесу узгодження з’єднання, а також скидає лічильник MAC (код автентифікації повідомлення) після завершення кожного обміну ключами.

Нарешті, якщо вам цікаво дізнатися більше про це, ви можете ознайомитися з деталями в за наступним посиланням.