Një grup hulumtuesish nga Universiteti Ruhr në Bochum (Gjermani) prezantoi një teknikë të re sulmi MITM në SSH — Terrapin, e cila shfrytëzon një dobësi (CVE-2023-48795) në protokoll. Sulmuesi, i cili është në gjendje të organizojë një sulm MITM, ka mundësinë gjatë negociatave për të bllokuar dërgimin e mesazhit për konfigurimin e zgjerimeve të protokollit, duke ulur nivelin e sigurisë së lidhjes. Prototipi i mjeteve për kryerjen e sulmit është publikuar në GitHub.
Në kontekstin e OpenSSH, dobësia, për shembull, lejon rikthimin e lidhjes në përdorimin e algoritmeve të identifikimit më pak të sigurta dhe çaktivizimin e mbrojtjes nga sulmet përmes kanaleve anësore, që riprodhojnë hyrjen përmes analizës së vonesave ndërmjet shtypjeve të çelësave në tastierë. Në bibliotekën Python AsyncSSH, së bashku me dobësinë (CVE-2023-46446) në implementimin e makinës së brendshme të gjendjes (internal state machine), sulmi Terrapin lejon që të përfshihet në seancën SSH.
Dobësia prek të gjitha implementimet e SSH, që mbështesin ChaCha20-Poly1305 ose cifrat në modin CBC së bashku me modin ETM (Encrypt-then-MAC). Për shembull, këto mundësi janë të disponueshme në OpenSSH për më shumë se 10 vjet. Dobësia është bllokuar në publikimin e sotëm OpenSSH 9.6, si dhe në përditësimet e PuTTY 0.80, libssh 0.10.6/0.9.8 dhe AsyncSSH 2.14.2. Në Dropbear SSH, rregullimi është tashmë e integruar në kod, por një publikim i ri ende nuk është formuar.
Dobësia shkaktohet nga fakti se një sulmues, që kontrollon trafikun e lidhjes (për shembull, pronari i një pikë të dëmshme wireless), mund të korrigjojë numrat e rendit të paketa gjatë negociatës së lidhjes dhe të arrijë të fshijë pa u vënë re një numër të rastësishëm mesazhesh SSH, të dërguara nga klienti ose server. Për më tepër, sulmuesi mund të fshijë mesazhet SSH_MSG_EXT_INFO, të përdorura për konfigurimin e zgjerimeve të protokollit. Në mënyrë që pala tjetër të mos identifikojë humbjen e paketës për shkak të një ndalese në numrat e rendit, sulmuesi për të lëvizur numrin e rendit iniciaton dërgimin e një pakete false me të njëjtin numër rendi si ai i paketës së larguar. Paketa false përmban një mesazh me flamurin SSH_MSG_IGNORE, i cili injorohet gjatë përpunimit.

Sulmi nuk mund të kryhet kur përdoren rrjedhat e enkriptimit dhe CTR, pasi shkelja e integritetit do të zbuloheshin në nivelin e aplikacionit. Në praktikë, vetëm enkripti ChaCha20-Poly1305 (chacha20-poly1305@openssh.com) është i ndjeshëm ndaj sulmit, ku gjendja ndjeket vetëm sipas numrave të rendit të mesazheve, dhe lidhja e modës Encrypt-Then-MAC (*-etm@openssh.com) dhe enkriptet CBC.
Në OpenSSH 9.6 dhe implementime të tjera, për të bllokuar sulmin, është realizuar një zgjerim i protokollit 'strict KEX', i cili aktivizohet automatikisht kur mbështetja egziston nga ana e klientit. serverë Zgjerimi përfundon lidhjen kur merr çdo mesazh të pazakontë ose shtesë (p.sh., me flagun SSH_MSG_IGNORE ose SSH2_MSG_DEBUG), të marrë gjatë negociatës së lidhjes, si dhe reseton numruesin MAC (Kodi i Autentifikimit të Mesazheve) pas përfundimit të çdo shkëmbimi çelësesh.
Burimi: opennet.ru
