Grupa istraživača sa Ruhr univerziteta u Bochumu (Njemačka) predstavila je novu MITM napadnu tehniku na SSH - Terrapin, koja iskorištava ranjivost (CVE-2023-48795) u protokolu. Napadač sposoban za organizaciju MITM napada ima mogućnost tokom pregovaranja veze blokirati slanje poruke s postavkama ekstenzija protokola za smanjenje nivoa sigurnosti veze. Prototip alata za izvršavanje napada objavljen je na GitHubu.
U kontekstu OpenSSH, ranjivost omogućava, na primjer, vraćanje veze na korištenje manje zaštićenih algoritama autentifikacije i isključivanje zaštite od napada putem bočnih kanala koji ponovo stvaraju unos analizom kašnjenja između pritisaka tipki na tipkovnici. U Python biblioteci AsyncSSH, u kombinaciji s ranjivošću (CVE-2023-46446) u implementaciji interne automatske mašine, napad Terrapin omogućava presretanje SSH sesije.
Ranjivost pogađa sve implementacije SSH koje podržavaju ChaCha20-Poly1305 ili šifre u CBC režimu u kombinaciji sa ETM režimom (Encrypt-then-MAC). Na primjer, takve mogućnosti dostupne su u OpenSSH već više od 10 godina. Ranjivost je ispravljena u današnjem izdanju OpenSSH 9.6, kao i u ažuriranjima PuTTY 0.80, libssh 0.10.6/0.9.8 i AsyncSSH 2.14.2. U Dropbear SSH ispravka je već dodana u kod, ali nova verzija još nije formirana.
Ranjivost je uzrokovana time što napadač, koji kontrolira promet veze (na primjer, vlasnik zlonamjerne bežične točke), može prilagoditi redne brojeve paketa tokom pregovaranja veze i neprimjetno ukloniti proizvoljan broj kontrolnih SSH poruka poslanih od strane klijenta ili serverom. Između ostalog, napadač može ukloniti SSH_MSG_EXT_INFO poruke, koje se koriste za postavljanje primjenjivanih ekstenzija protokola. Kako bi druga strana ne prepoznala nestanak paketa zbog razlike u rednim brojevima, napadač inicira slanje lažnog paketa s istim rednim brojem kao i kod uklonjenog paketa. Lažni paket sadrži poruku s oznakom SSH_MSG_IGNORE, koja se zanemaruje tokom obrade.

Napad ne može biti izveden korištenjem strimiranih šifri i CTR, budući da će se kršenje integriteta otkriti na razini aplikacije. U praksi, samo je šifra ChaCha20-Poly1305 (chacha20-poly1305@openssh.com) podložna napadu, pri čemu se stanje prati samo po rednim brojevima poruka, te kombinacija načina Encrypt-Then-MAC (*-etm@openssh.com) i šifri CBC.
U OpenSSH 9.6 i drugim implementacijama, za blokiranje napada implementirana je ekstenzija protokola „strict KEX“, koja se automatski aktivira kada postoji podrška na strani poslužitelja i klijenta. Ekstenzija prekida vezu prilikom primitka bilo kakvih nenormalnih ili suvišnih poruka (na primjer, s oznakom SSH_MSG_IGNORE ili SSH2_MSG_DEBUG), primitih tijekom pregovaranja veze, a također resetira brojnik MAC (Message Authentication Code) nakon završetka svake razmjene ključeva.
Izvor: opennet.ru
