A kutatócsoport a Bochumi Egyetemről (Németország) bemutatta az SSH MITM-támadások új technikáját — a Terrapint, amely a protokollban fellelhető CVE-2023-48795 sérülékenység kihasználására épít. A támadó, aki képes MITM-támadást végrehajtani, megakadályozhatja a protokoll kiterjesztések beállításához szükséges üzenetek küldését a kapcsolat védelmi szintjének csökkentése érdekében a kapcsolat létrehozása során. A támadáshoz szükséges prototípus eszközkészlet a GitHub-on található.
Az OpenSSH kontextusában a sérülékenység például lehetővé teszi a kapcsolat visszaállítását kevésbé védett hitelesítési algoritmusokra és a késleltetések elemzésével, a billentyűzet lenyomásainak visszaállításával végzett támadások ellenállásának kikapcsolását. A Terrapin támadás az AsyncSSH Python könyvtár és a belső állapotgép (CVE-2023-46446) sérülékenysége kombinálásával lehetővé teszi az SSH munkamenetbe való beavatkozást.
A sérülékenység minden SSH-implementációt érint, amely támogatja a ChaCha20-Poly1305 vagy CBC üzemmódban működő titkosítást az ETM (Encrypt-then-MAC) üzemmóddal együtt. Például hasonló lehetőségek már több mint 10 éve elérhetők az OpenSSH-ban. A sérülékenységet blokkolták az OpenSSH 9.6 mai kiadásában, valamint a PuTTY 0.80, libssh 0.10.6/0.9.8 és az AsyncSSH 2.14.2 frissítéseiben. A Dropbear SSH esetében a javítást már hozzáadták a kódhoz, de az új kiadás még nem készült el.
A sérülékenység abból adódik, hogy a támadó, aki irányítja a kapcsolat forgalmát (például egy rosszindulatú vezeték nélküli pont tulajdonosa), képes a csomagok sorrendi számait korrigálni a kapcsolat létrehozásakor, így észrevétlenül el lehet távolítani tetszőleges számú SSH-üzemeltetési üzenetet, amelyet a kliens küldött, vagy szerverrel. Egyebek között a támadó eltávolíthatja az SSH_MSG_EXT_INFO üzeneteket, amelyek a protokoll által alkalmazott kiterjesztések beállításához szükségesek. Annak érdekében, hogy a másik fél ne észlelje a csomag hiányát a sorrendi számok közötti hiány miatt, a támadó hamis csomag küldésével indítja el a sorrendi szám eltolását, amely ugyanazt a sorrendi számot hordozza, mint az eltávolított csomag. A hamis csomag SSH_MSG_IGNORE jelzéssel ellátott üzenetet tartalmaz, amelyet figyelmen kívül hagynak a feldolgozás során.

A támadás nem végezhető el folyamatos titkosító algoritmusok és CTR használata mellett, mivel a sértetlenség benyújtása az alkalmazás szintjén lesz észlelve. A gyakorlatban csak a ChaCha20-Poly1305 (chacha20-poly1305@openssh.com) algoritmusokra lehet érzékeny a támadás, ahol az állapotot csak az üzenetek sorozatszámai alapján követik nyomon, és az Encrypt-Then-MAC (*-etm@openssh.com) és CBC üzemmódok kombinációja.
Az OpenSSH 9.6 és más megvalósítások esetében az 'strict KEX' protokoll kiegészítést vezették be a támadások blokkolására, mely automatikusan aktiválódik, ha a támogatás a kliens oldalon rendelkezésre áll. a szerver A kiegészítő lezárja a kapcsolatot bármely rendellenes vagy felesleges üzenet (például SSH_MSG_IGNORE vagy SSH2_MSG_DEBUG zászlóval) kézhezvételekor, amely a kapcsolat egyeztetése során érkezik, valamint a MAC (üzenet hitelesítési kód) számlálót nullázza minden kulcscsere befejezése után.
Forrás: opennet.ru
