Isang pangkat ng mga mananaliksik mula sa Ruhr University sa Bochum (Germany) ang nagpakita ng bagong diskarte sa pag-atake ng MITM sa SSH - Terrapin, na nagsasamantala sa isang kahinaan (CVE-2023-48795) sa protocol. Ang isang umaatake na may kakayahang mag-organisa ng pag-atake ng MITM ay may kakayahan, sa panahon ng proseso ng negosasyon sa koneksyon, na harangan ang pagpapadala ng mensahe sa pamamagitan ng pag-configure ng mga extension ng protocol upang bawasan ang antas ng seguridad ng koneksyon. Isang prototype ng attack toolkit ang na-publish sa GitHub.
Sa konteksto ng OpenSSH, ang kahinaan, halimbawa, ay nagbibigay-daan sa iyong i-rollback ang koneksyon upang gumamit ng hindi gaanong secure na mga algorithm ng pagpapatotoo at huwag paganahin ang proteksyon laban sa mga pag-atake sa side-channel na muling lumilikha ng input sa pamamagitan ng pagsusuri sa mga pagkaantala sa pagitan ng mga keystroke sa keyboard. Sa Python library na AsyncSSH, kasama ang isang kahinaan (CVE-2023-46446) sa pagpapatupad ng internal state machine, ang pag-atake ng Terrapin ay nagpapahintulot sa amin na i-wedge ang ating mga sarili sa isang session ng SSH.
Ang kahinaan ay nakakaapekto sa lahat ng pagpapatupad ng SSH na sumusuporta sa ChaCha20-Poly1305 o CBC mode ciphers kasama ng ETM (Encrypt-then-MAC) mode. Halimbawa, ang mga katulad na kakayahan ay magagamit sa OpenSSH nang higit sa 10 taon. Naayos ang kahinaan sa paglabas ngayong araw ng OpenSSH 9.6, pati na rin ang mga update sa PuTTY 0.80, libssh 0.10.6/0.9.8 at AsyncSSH 2.14.2. Sa Dropbear SSH, ang pag-aayos ay naidagdag na sa code, ngunit ang isang bagong release ay hindi pa nabuo.
Ang kahinaan ay sanhi ng katotohanan na ang isang umaatake na kumokontrol sa trapiko ng koneksyon (halimbawa, ang may-ari ng isang malisyosong wireless access point) ay maaaring ayusin ang mga sequence number ng mga packet sa panahon ng proseso ng negosasyon sa koneksyon at makamit ang tahimik na pagtanggal ng isang arbitraryong bilang ng mga mensahe ng serbisyo ng SSH na ipinadala ng kliyente o serverBukod sa iba pang mga bagay, maaaring tanggalin ng attacker ang mga mensaheng SSH_MSG_EXT_INFO na ginagamit upang i-configure ang mga extension ng protocol na ginagamit. Upang maiwasan ang kabilang panig sa pagtuklas ng pagkawala ng packet dahil sa pagkasira ng mga sequence number, ang attacker, upang ilipat ang sequence number, ay magsisimula ng isang dummy packet na may parehong sequence number gaya ng nalaglag na packet. Ang dummy packet ay naglalaman ng isang mensahe na may SSH_MSG_IGNORE flag, na hindi pinapansin habang pinoproseso.

Hindi maisagawa ang pag-atake gamit ang mga stream cipher at CTR, dahil matutukoy ang paglabag sa integridad sa antas ng application. Sa pagsasagawa, ang tanging mga cipher na madaling kapitan sa pag-atake ay ang ChaCha20-Poly1305 (chacha20-poly1305@openssh.com), na sumusubaybay sa estado lamang sa pamamagitan ng mga numero ng pagkakasunud-sunod ng mensahe, at ang kumbinasyon ng Encrypt-Then-MAC mode (*-etm@openssh.com) at CBC ciphers.
Sa OpenSSH 9.6 at iba pang mga implementasyon, isang extension ng protocol na tinatawag na "strict KEX" ang ipinapatupad upang harangan ang pag-atake, na awtomatikong pinapagana kung mayroong suporta sa gilid. server at ang kliyente. Tinatapos ng extension ang koneksyon sa sandaling makatanggap ng anumang abnormal o hindi kinakailangang mga mensahe (halimbawa, gamit ang SSH_MSG_IGNORE o SSH2_MSG_DEBUG flag) na natanggap habang isinasagawa ang proseso ng negosasyon sa koneksyon, at nire-reset din ang MAC (Message Authentication Code) counter pagkatapos makumpleto ang bawat key exchange.
Pinagmulan: opennet.ru
