Një grup hulumtuesish nga Universiteti Ruhr në Bochum (Gjermani) prezantoi një teknikë të re sulmi MITM ndaj SSH - Terrapin, e cila shfrytëzon një vulnerabilitet (CVE-2023-48795) në protokoll. Sulmuesi, që është në gjendje të organizojë një sulm MITM, ka mundësinë, gjatë negociatave për lidhjen, të bllokojë dërgimin e mesazhit me konfigurimin e zgjerimeve të protokollit për të ulur nivelin e mbrojtjes së lidhjes. Një prototip i mjeteve për të kryer sulmin është publikuar në GitHub.
Në kontekstin e OpenSSH, vulnerabiliteti lejon, për shembull, që lidhja të kthehet në përdorimin e algoritmeve të autentikimit më pak të sigurt dhe të çaktivizojë mbrojtjen ndaj sulmeve përmes kanaleve anësore, që riprodhojnë inputin përmes analizës së vonesave mes goditjeve të çelësave në tastierë. Në bibliotekën Python AsyncSSH, së bashku me vulnerabilitetin (CVE-2023-46446) në implementimin e automatikës së brendshme (internal state machine), sulmi Terrapin lejon ndërhyrjen në seancën SSH.
Vulnerabiliteti ndikon në të gjitha implementimet e SSH që mbështesin ChaCha20-Poly1305 ose cilësimet në modalitetin CBC në kombinim me modalitetin ETM (Encrypt-then-MAC). Për shembull, mundësi të tilla janë të disponueshme në OpenSSH për më shumë se 10 vjet. Vulnerabiliteti është bllokuar në publikimin e sotëm të 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 tashmë është shtuar në kod, por publikimi i ri ende nuk është formuar.
Vulnerabiliteti shkaktohet nga fakti se sulmuesi, që kontrollon trafikun e lidhjes (për shembull, pronari i një pika wireless të dëmshme), mund të rregullojë numrat rendorë të paketave gjatë negociatave të lidhjes dhe të arrijë të largojë pa u vënë re një numër të rastësishëm të mesazheve shërbyese SSH, të dërguara nga klienti ose serverin. Në mesin e të tjerave, sulmuesi mund të fshijë mesazhet SSH_MSG_EXT_INFO, të cilat përdoren për të konfiguruar zgjerimet e aplikuara të protokollit. Në mënyrë që pala tjetër të mos përcaktojë zhdukjen e paketës për shkak të dëmtimeve në numrat rendorë, sulmuesi iniciaton dërgimin e një pakete të rreme me të njëjtin numër rendor si ai i paketës së fshirë. Paketa e rreme përmban një mesazh me flagun SSH_MSG_IGNORE, i cili injorohet gjatë përpunimit.

Sulmi nuk mund të kryhet kur përdoren kriptimet e rrjedhshme dhe CTR, pasi shkelja e integritetit do të zbulohet në nivelin e aplikacionit. Në praktikë, vetëm kriptimi ChaCha20-Poly1305 (chacha20-poly1305@openssh.com) është i ndjeshëm ndaj sulmit, për të cilin gjendja ndiqet vetëm nga numrat rendorë të mesazheve, dhe kombinimi i modalitetit Encrypt-Then-MAC (*-etm@openssh.com) dhe kriptimeve CBC.
Në OpenSSH 9.6 dhe implementime të tjera, për të bllokuar sulmin është realizuar një zgjerim protokolli ‘strict KEX’, i cili aktivizohet automatikisht kur është mbështetur nga server të dy palët, klienti. Zgjerimi përfundon lidhjen kur pranohet ndonjë mesazh joshumë apo të tepruar (për shembull, me flagun SSH_MSG_IGNORE ose SSH2_MSG_DEBUG), të pranuara gjatë negociatave të lidhjes dhe gjithashtu reseton numëruesin MAC (Message Authentication Code) pas përfundimit të çdo shkëmbimi çelësash.
Burimi: opennet.ru
