Terrapin - ื ืงื•ื“ืช ืชื•ืจืคื” ื‘ืคืจื•ื˜ื•ืงื•ืœ SSH ื”ืžืืคืฉืจืช ืœื”ืคื—ื™ืช ืืช ืื‘ื˜ื—ืช ื”ื—ื™ื‘ื•ืจ

ืงื‘ื•ืฆืช ื—ื•ืงืจื™ื ืžืื•ื ื™ื‘ืจืกื™ื˜ืช Ruhr ื‘ื‘ื•ื›ื•ื (ื’ืจืžื ื™ื”) ื”ืฆื™ื’ื” ื˜ื›ื ื™ืงืช ื”ืชืงืคื” ื—ื“ืฉื” ืฉืœ MITM ืขืœ SSH - Terrapin, ื”ืžื ืฆืœืช ืคื’ื™ืขื•ืช (CVE-2023-48795) ื‘ืคืจื•ื˜ื•ืงื•ืœ. ืœืชื•ืงืฃ ื”ืžืกื•ื’ืœ ืœืืจื’ืŸ ืžืชืงืคืช MITM ื™ืฉ ืืช ื”ื™ื›ื•ืœืช, ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ืžืฉื ื•ืžืชืŸ ืขืœ ื”ื—ื™ื‘ื•ืจ, ืœื—ืกื•ื ืืช ืฉืœื™ื—ืช ื”ื”ื•ื“ืขื” ืขืœ ื™ื“ื™ ื”ื’ื“ืจืช ื”ืจื—ื‘ื•ืช ืคืจื•ื˜ื•ืงื•ืœ ืœื”ืคื—ืชืช ืจืžืช ืื‘ื˜ื—ืช ื”ื—ื™ื‘ื•ืจ. ืื‘ ื˜ื™ืคื•ืก ืฉืœ ืขืจื›ืช ื”ื›ืœื™ื ืœืชืงื™ืคื” ืคื•ืจืกื ื‘-GitHub.

ื‘ื”ืงืฉืจ ืฉืœ OpenSSH, ื”ืคื’ื™ืขื•ืช, ืœืžืฉืœ, ืžืืคืฉืจืช ืœืš ืœื”ื—ื–ื™ืจ ืืช ื”ื—ื™ื‘ื•ืจ ืœืื—ื•ืจ ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ืืœื’ื•ืจื™ืชืžื™ ืื™ืžื•ืช ืคื—ื•ืช ืžืื•ื‘ื˜ื—ื™ื ื•ืœื”ืฉื‘ื™ืช ื”ื’ื ื” ืžืคื ื™ ื”ืชืงืคื•ืช ืฉืœ ืขืจื•ืฅ ืฆื“ ืฉื™ื•ืฆืจื•ืช ืžื—ื“ืฉ ืงืœื˜ ืขืœ ื™ื“ื™ ื ื™ืชื•ื— ื”ื”ืฉื”ื™ื•ืช ื‘ื™ืŸ ื”ืงืฉื•ืช ืขืœ ื”ืžืงืœื“ืช. ื‘ืกืคืจื™ื™ืช Python AsyncSSH, ื‘ืฉื™ืœื•ื‘ ืขื ืคื’ื™ืขื•ืช (CVE-2023-46446) ื‘ื”ื˜ืžืขืช ืžื›ื•ื ืช ื”ืžืฆื‘ ื”ืคื ื™ืžื™ืช, ืžืชืงืคืช ื”- Terrapin ืžืืคืฉืจืช ืœื ื• ืœืชืงื•ืข ืืช ืขืฆืžื ื• ืœืกืฉืŸ SSH.

ื”ืคื’ื™ืขื•ืช ืžืฉืคื™ืขื” ืขืœ ื›ืœ ื™ื™ืฉื•ืžื™ SSH ื”ืชื•ืžื›ื™ื ื‘ืฆืคื ื™ ืžืฆื‘ ChaCha20-Poly1305 ืื• CBC ื‘ืฉื™ืœื•ื‘ ืขื ืžืฆื‘ ETM (Encrypt-then-MAC). ืœื“ื•ื’ืžื”, ื™ื›ื•ืœื•ืช ื“ื•ืžื•ืช ื–ืžื™ื ื•ืช ื‘-OpenSSH ื›ื‘ืจ ื™ื•ืชืจ ืž-10 ืฉื ื™ื. ื”ืคื’ื™ืขื•ืช ืชื•ืงื ื” ื‘ืžื”ื“ื•ืจื” ื”ื™ื•ื ืฉืœ OpenSSH 9.6, ื›ืžื• ื’ื ืขื“ื›ื•ื ื™ื ืœ-PuTTY 0.80, libssh 0.10.6/0.9.8 ื•-AsyncSSH 2.14.2. ื‘-Dropbear SSH, ื”ืชื™ืงื•ืŸ ื›ื‘ืจ ื”ืชื•ื•ืกืฃ ืœืงื•ื“, ืืš ืขื“ื™ื™ืŸ ืœื ื ื•ืฆืจื” ืžื”ื“ื•ืจื” ื—ื“ืฉื”.

ื”ืคื’ื™ืขื•ืช ื ื’ืจืžืช ืขืœ ื™ื“ื™ ื”ืขื•ื‘ื“ื” ืฉืชื•ืงืฃ ื”ืฉื•ืœื˜ ื‘ืชืขื‘ื•ืจืช ื”ื—ื™ื‘ื•ืจ (ืœื“ื•ื’ืžื”, ื”ื‘ืขืœื™ื ืฉืœ ื ืงื•ื“ืช ืืœื—ื•ื˜ื™ืช ื–ื“ื•ื ื™ืช) ื™ื›ื•ืœ ืœื”ืชืื™ื ืืช ืžืกืคืจื™ ืจืฆืฃ ื”ื—ื‘ื™ืœื•ืช ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ืžืฉื ื•ืžืชืŸ ืขืœ ื”ื—ื™ื‘ื•ืจ ื•ืœื”ืฉื™ื’ ืžื—ื™ืงื” ืฉืงื˜ื” ืฉืœ โ€‹โ€‹ืžืกืคืจ ืฉืจื™ืจื•ืชื™ ืฉืœ ื”ื•ื“ืขื•ืช ืฉื™ืจื•ืช SSH ื ืฉืœื— ืขืœ ื™ื“ื™ ื”ืœืงื•ื— ืื• ื”ืฉืจืช. ื‘ื™ืŸ ื”ื™ืชืจ, ืชื•ืงืฃ ื™ื›ื•ืœ ืœืžื—ื•ืง ื”ื•ื“ืขื•ืช SSH_MSG_EXT_INFO ื”ืžืฉืžืฉื•ืช ืœื”ื’ื“ืจืช ืชื•ืกืคื•ืช ื”ืคืจื•ื˜ื•ืงื•ืœ ื‘ืฉื™ืžื•ืฉ. ื›ื“ื™ ืœืžื ื•ืข ืžื”ืฆื“ ื”ืฉื ื™ ืœื–ื”ื•ืช ืื•ื‘ื“ืŸ ืžื ื•ืช ืขืงื‘ ืคืขืจ ื‘ืžืกืคืจื™ ื”ืจืฆืฃ, ื”ืชื•ืงืฃ ื™ื•ื–ื ืฉืœื™ื—ืช ื—ื‘ื™ืœืช ื“ืžื” ืขื ืžืกืคืจ ืจืฆืฃ ื–ื”ื” ืœืžื ื” ื”ืžืจื•ื—ืงืช ื›ื“ื™ ืœื”ื–ื™ื– ืืช ืžืกืคืจ ื”ืจืฆืฃ. ื—ื‘ื™ืœืช ื”ื“ืžื” ืžื›ื™ืœื” ื”ื•ื“ืขื” ืขื ื“ื’ืœ SSH_MSG_IGNORE, ืฉืžืชืขืœืžื™ื ืžืžื ื” ื‘ืžื”ืœืš ื”ืขื™ื‘ื•ื“.

Terrapin - ื ืงื•ื“ืช ืชื•ืจืคื” ื‘ืคืจื•ื˜ื•ืงื•ืœ SSH ื”ืžืืคืฉืจืช ืœื”ืคื—ื™ืช ืืช ืื‘ื˜ื—ืช ื”ื—ื™ื‘ื•ืจ

ืœื ื ื™ืชืŸ ืœื‘ืฆืข ืืช ื”ืžืชืงืคื” ื‘ืืžืฆืขื•ืช ืฆืคื ื™ ื–ืจืžื™ื ื•-CTR, ืžืื—ืจ ืฉื”ืคืจืช ื”ื™ื•ืฉืจื” ืชืชื’ืœื” ื‘ืจืžืช ื”ืืคืœื™ืงืฆื™ื”. ื‘ืคื•ืขืœ, ืจืง ื”ืฆื•ืคืŸ ChaCha20-Poly1305 ืจื’ื™ืฉ ืœื”ืชืงืคื” ([ืžื•ื’ืŸ ื‘ื“ื•ื"ืœ]), ืฉื‘ื• ื”ืžืฆื‘ ื ืžืฆื ื‘ืžืขืงื‘ ืจืง ืขืœ ื™ื“ื™ ืžืกืคืจื™ ืจืฆืฃ ื”ื•ื“ืขื•ืช, ื•ืฉื™ืœื•ื‘ ืžืžืฆื‘ Encrypt-Then-MAC (*[ืžื•ื’ืŸ ื‘ื“ื•ื"ืœ]) ื•ืฆืคื ื™ CBC.

ื‘-OpenSSH 9.6 ื•ืžื™ืžื•ืฉื™ื ืื—ืจื™ื ืžื™ื•ืฉืžืช ื”ืจื—ื‘ื” ืฉืœ ืคืจื•ื˜ื•ืงื•ืœ "ืงืคื“ืŸ KEX" ื›ื“ื™ ืœื—ืกื•ื ืืช ื”ื”ืชืงืคื”, ืืฉืจ ืžื•ืคืขืœืช ืื•ื˜ื•ืžื˜ื™ืช ืื ื™ืฉ ืชืžื™ื›ื” ื‘ืฆื“ ื”ืฉืจืช ื•ื”ืœืงื•ื—. ื”ืฉืœื•ื—ื” ืžืคืกื™ืงื” ืืช ื”ื—ื™ื‘ื•ืจ ืขื ืงื‘ืœืช ื”ื•ื“ืขื•ืช ื—ืจื™ื’ื•ืช ืื• ืžื™ื•ืชืจื•ืช (ืœื“ื•ื’ืžื”, ืขื ื“ื’ืœ SSH_MSG_IGNORE ืื• SSH2_MSG_DEBUG) ืฉื”ืชืงื‘ืœื• ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ืžืฉื ื•ืžืชืŸ ืขืœ ื”ื—ื™ื‘ื•ืจ, ื•ื›ืŸ ืžืืคืกืช ืืช ืžื•ื ื” ื”-MAC (ืงื•ื“ ืื™ืžื•ืช ื”ื•ื“ืขื•ืช) ืœืื—ืจ ื”ืฉืœืžืช ื›ืœ ื”ื—ืœืคืช ืžืคืชื—ื•ืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”