ื˜ืขืจืึทืคึผื™ืŸ - ืึท ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ืŸ ื“ื™ SSH ืคึผืจืึธื˜ืึธืงืึธืœ ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ืงืฉืจ ื–ื™ื›ืขืจื”ื™ื™ื˜

ื ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ืจื™ืกืขืจื˜ืฉืขืจื– ืคื•ืŸ ื“ื™ Ruhr ืื•ื ื™ื•ื•ืขืจืกื™ื˜ืขื˜ ืื™ืŸ Bochum (ื“ื™ื™ึทื˜ืฉืœืึทื ื“) ื“ืขืจืœืื ื’ื˜ ืึท ื ื™ื™ึทืข MITM ื‘ืึทืคืึทืœืŸ ื˜ืขื›ื ื™ืง ืื•ื™ืฃ SSH - ื˜ืขืจืึทืคึผื™ืŸ, ื•ื•ืึธืก ืขืงืกืคึผืœื•ื™ืฅ ืึท ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ (CVE-2023-48795) ืื™ืŸ ื“ืขื ืคึผืจืึธื˜ืึธืงืึธืœ. ืึท ืึทื˜ืึทืงืขืจ ื•ื•ืึธืก ืื™ื– ื‘ื™ื›ื•ืœืช ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ืึท MITM ื‘ืึทืคืึทืœืŸ ื”ืื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜, ื‘ืขืฉืึทืก ื“ื™ ืงืฉืจ ืคืึทืจื”ืึทื ื“ืœื•ื ื’ ืคึผืจืึธืฆืขืก, ืฆื• ืคืึทืจืฉืคึผืึทืจืŸ ื“ื™ ืฉื™ืงื˜ ืคื•ืŸ ืึท ืึธื ื–ืึธื’ ื“ื•ืจืš ืงืึทื ืคื™ื’ื™ืขืจื™ื ื’ ืคึผืจืึธื˜ืึธืงืึธืœ ื™ืงืกื˜ืขื ืฉืึทื ื– ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ืงืฉืจ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžื“ืจื’ื”. ื ืคึผืจืึธื•ื˜ืึทื˜ื™ื™ืคึผ ืคื•ืŸ ื“ื™ ื‘ืึทืคืึทืœืŸ ื˜ืึธืึธืœืงื™ื˜ ืื™ื– ืืจื•ื™ืก ืื•ื™ืฃ GitHub.

ืื™ืŸ ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืคื•ืŸ OpenSSH, ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™, ืœืžืฉืœ, ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืฆื•ืจื™ืงืงืจื™ื’ืŸ ื“ื™ ืงืฉืจ ืฆื• ื ื•ืฆืŸ ื•ื•ื™ื™ื ื™ืงืขืจ ื–ื™ื›ืขืจ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทืžื– ืื•ืŸ ื“ื™ืกื™ื™ื‘ืึทืœ ืฉื•ืฅ ืงืขื’ืŸ ื–ื™ื™ึทื˜-ืงืึทื ืึทืœ ืื ืคืืœืŸ ื•ื•ืึธืก ืจื™ืงืจื™ื™ื™ื˜ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื“ื•ืจืš ืึทื ืึทืœื™ื™ื–ื™ื ื’ ื“ื™ ื“ื™ืœื™ื™ื– ืฆื•ื•ื™ืฉืŸ ืงื™ืกื˜ืจืึธื•ืงืก ืื•ื™ืฃ ื“ื™ ืงืœืึทื•ื•ื™ืึทื˜ื•ืจ. ืื™ืŸ ื“ื™ Python ื‘ื™ื‘ืœื™ืึธื˜ืขืง AsyncSSH, ืื™ืŸ ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืžื™ื˜ ืึท ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ (CVE-2023-46446) ืื™ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ื™ื ืขืจืœืขืš ืฉื˜ืึทื˜ ืžืึทืฉื™ืŸ, ื“ื™ ื˜ืขืจืึทืคึผื™ืŸ ื‘ืึทืคืึทืœืŸ ืึทืœืึทื•ื– ืื•ื ื“ื– ืฆื• ื•ื•ืขื“ื–ืฉ ื–ื™ืš ืื™ืŸ ืึท SSH ืกืขืกื™ืข.

ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืึทืคืขืงืฅ ืึทืœืข SSH ื™ืžืคึผืœืึทืžืึทื ืฅ ื•ื•ืึธืก ืฉื˜ื™ืฆืŸ ChaCha20-Poly1305 ืึธื“ืขืจ CBC ืžืึธื“ืข ืกื™ืคืขืจืก ืื™ืŸ ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืžื™ื˜ ETM (ืขื ืงืจื™ืคึผื˜-ื“ืขืžืึธืœื˜-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 ืคืึธืŸ, ื•ื•ืึธืก ืื™ื– ืื™ื’ื ืึธืจื™ืจื˜ ื‘ืขืฉืึทืก ืคึผืจืึทืกืขืกื™ื ื’.

ื˜ืขืจืึทืคึผื™ืŸ ืื™ื– ืึท ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ืŸ ื“ื™ SSH ืคึผืจืึธื˜ืึธืงืึธืœ ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ืงืฉืจ ื–ื™ื›ืขืจื”ื™ื™ื˜

ื“ื™ ื‘ืึทืคืึทืœืŸ ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืžื™ื˜ ื˜ื™ื™ึทืš ืกื™ืคืขืจืก ืื•ืŸ CTR, ื•ื•ื™ื™ึทืœ ื“ื™ ืึธืจื ื˜ืœืขื›ืงื™ื™ึทื˜ ื”ื™ืœืขืœ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ื˜ืขืงื˜ืึทื“ ืื•ื™ืฃ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื“ืจื’ื”. ืื™ืŸ ืคื™ืจ, ื‘ืœื•ื™ื– ื“ื™ ChaCha20-Poly1305 ืกื™ื™ืคืขืจ ืื™ื– ืกืึทืกืขืคึผื˜ืึทื‘ืึทืœ ืฆื• ื‘ืึทืคืึทืœืŸ ([ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜]), ืื™ืŸ ื•ื•ืึธืก ื“ื™ ืฉื˜ืึทื˜ ืื™ื– ื˜ืจืึทืงื˜ ื‘ืœื•ื™ื– ื“ื•ืจืš ืึธื ื–ืึธื’ ืกื™ืงื•ื•ืึทื ืก ื ื•ืžืขืจืŸ, ืื•ืŸ ืึท ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืคึฟื•ืŸ ื“ื™ ืขื ืงืจื™ืคึผื˜-ื“ืขืžืึธืœื˜-ืžืึทืง ืžืึธื“ืข (*[ืื™ืžืขื™ืœ ื‘ืืฉื™ืฆื˜]) ืื•ืŸ CBC ืกื™ืคืขืจืก.

ืื™ืŸ OpenSSH 9.6 ืื•ืŸ ืื ื“ืขืจืข ื™ืžืคึผืœืึทืžืึทื ืฅ, ืึท ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืคื•ืŸ ื“ื™ "ืฉื˜ืจืขื ื’ KEX" ืคึผืจืึธื˜ืึธืงืึธืœ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืฆื• ืคืึทืจืฉืคึผืึทืจืŸ ื“ื™ ื‘ืึทืคืึทืœืŸ, ื•ื•ืึธืก ืื™ื– ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืขื ื™ื™ื‘ืึทืœื“ ืื•ื™ื‘ ืขืก ืื™ื– ืฉื˜ื™ืฆืŸ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ ืื•ืŸ ืงืœื™ืขื ื˜ ื–ื™ื™ื˜ืŸ. ื“ื™ ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ื˜ืขืจืžืึทื ื™ื™ืฅ ื“ื™ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ืื•ื™ืฃ ืงืึทื‘ืึธืœืข ืคื•ืŸ โ€‹โ€‹ืงื™ื™ืŸ ืึทื‘ื ืึธืจืžืึทืœ ืึธื“ืขืจ ื•ืžื ื™ื™ื˜ื™ืง ืึทืจื˜ื™ืงืœืขืŸ (ืœืžืฉืœ ืžื™ื˜ ื“ื™ SSH_MSG_IGNORE ืึธื“ืขืจ SSH2_MSG_DEBUG ืคืึธืŸ) ื‘ืืงื•ืžืขืŸ ื‘ืขืฉืึทืก ื“ื™ ืงืฉืจ ืคืึทืจื”ืึทื ื“ืœื•ื ื’ ืคึผืจืึธืฆืขืก, ืื•ืŸ ืื•ื™ืš ื‘ืึทืฉื˜ืขื˜ื™ืง ื“ื™ MAC (Message Authentication Code) ื˜ืึธืžื‘ืึทื ืง ื ืึธืš ื“ื™ ืงืึทืžืคึผืœื™ืฉืึทืŸ ืคื•ืŸ ื™ืขื“ืขืจ ืฉืœื™ืกืœ ื•ื•ืขืงืกืœ.

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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’