Terrapin - një cenueshmëri në protokollin SSH që ju lejon të zvogëloni sigurinë e lidhjes

Një grup studiuesish nga Universiteti Ruhr në Bochum (Gjermani) prezantoi një teknikë të re sulmi MITM në SSH - Terrapin, e cila shfrytëzon një cenueshmëri (CVE-2023-48795) në protokoll. Një sulmues i aftë për të organizuar një sulm MITM ka aftësinë, gjatë procesit të negocimit të lidhjes, të bllokojë dërgimin e një mesazhi duke konfiguruar zgjerimet e protokollit për të ulur nivelin e sigurisë së lidhjes. Një prototip i mjetit të sulmit është publikuar në GitHub.

Në kontekstin e OpenSSH, cenueshmëria, për shembull, ju lejon të riktheheni lidhjen për të përdorur algoritme më pak të sigurta të vërtetimit dhe çaktivizoni mbrojtjen kundër sulmeve të kanalit anësor që rikrijojnë hyrjen duke analizuar vonesat midis goditjeve të tastierës. Në bibliotekën Python AsyncSSH, në kombinim me një dobësi (CVE-2023-46446) në zbatimin e makinës së brendshme të gjendjes, sulmi Terrapin na lejon të futemi në një seancë SSH.

Dobësia prek të gjitha implementimet SSH që mbështesin shifrat e modalitetit ChaCha20-Poly1305 ose CBC në kombinim me modalitetin ETM (Encrypt-pastaj-MAC). Për shembull, aftësi të ngjashme janë të disponueshme në OpenSSH për më shumë se 10 vjet. Dobësia është rregulluar në versionin 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 një version i ri nuk është krijuar ende.

Dobësia shkaktohet nga fakti që një sulmues që kontrollon trafikun e lidhjes (për shembull, pronari i një pike me valë me qëllim të keq) mund të rregullojë numrat e sekuencës së paketave gjatë procesit të negocimit të lidhjes dhe të arrijë fshirjen e heshtur të një numri arbitrar të mesazheve të shërbimit SSH dërguar nga klienti ose serveri. Ndër të tjera, një sulmues mund të fshijë mesazhet SSH_MSG_EXT_INFO të përdorura për të konfiguruar shtesat e protokollit të përdorura. Për të parandaluar që pala tjetër të zbulojë humbjen e paketës për shkak të një boshllëku në numrat e sekuencës, sulmuesi fillon të dërgojë një paketë rreme me të njëjtin numër sekuence si paketa në distancë për të zhvendosur numrin e sekuencës. Paketa dummy përmban një mesazh me flamurin SSH_MSG_IGNORE, i cili shpërfillet gjatë përpunimit.

Terrapin - një cenueshmëri në protokollin SSH që ju lejon të zvogëloni sigurinë e lidhjes

Sulmi nuk mund të kryhet duke përdorur shifrat e transmetimit dhe CTR, pasi shkelja e integritetit do të zbulohet në nivelin e aplikacionit. Në praktikë, vetëm shifra ChaCha20-Poly1305 është e ndjeshme ndaj sulmit ([email mbrojtur]), në të cilën gjendja gjurmohet vetëm nga numrat e sekuencës së mesazheve dhe një kombinim nga modaliteti Encrypt-Then-MAC (*[email mbrojtur]) dhe shifrat CBC.

Në OpenSSH 9.6 dhe implementime të tjera, zbatohet një zgjatim i protokollit “strict KEX” për të bllokuar sulmin, i cili aktivizohet automatikisht nëse ka mbështetje në anët e serverit dhe klientit. Zgjatja e ndërpret lidhjen pas marrjes së çdo mesazhi jonormal ose të panevojshëm (për shembull, me flamurin SSH_MSG_IGNORE ose SSH2_MSG_DEBUG) të marrë gjatë procesit të negocimit të lidhjes, dhe gjithashtu rivendos numëruesin MAC (Kodi i vërtetimit të mesazheve) pas përfundimit të çdo shkëmbimi të çelësit.

Burimi: opennet.ru

Shto një koment