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 ([электронная пошта абаронена]), пры якім стан адсочваецца толькі па парадкавым нумарах паведамленняў, і звязак з рэжыму Encrypt-Then-MAC (*[электронная пошта абаронена]) і шыфраў CBC.

У OpenSSH 9.6 і іншых рэалізацыях для блакавання нападу рэалізавана пашырэнне пратаколу "strict KEX", якое аўтаматычна ўключаецца пры наяўнасці падтрымкі на боку сервера і кліента. Пашырэнне завяршае злучэнне пры паступленні любых няштатных або лішніх паведамленняў (напрыклад, са сцягам SSH_MSG_IGNORE або SSH2_MSG_DEBUG), атрыманых падчас узгаднення злучэння, а таксама скідае лічыльнік MAC (Message Authentication Code) пасля завяршэння кожнага абмену ключамі.

Крыніца: opennet.ru

Дадаць каментар