์ทจ์•ฝ์ ์ด ์ œ๊ฑฐ๋œ OpenSSH 9.6 ์ถœ์‹œ

SSH 9.6 ๋ฐ SFTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„์˜ ๊ฐœ๋ฐฉํ˜• ๊ตฌํ˜„์ธ OpenSSH 2.0 ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์—์„œ๋Š” ์„ธ ๊ฐ€์ง€ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • SSH ํ”„๋กœํ† ์ฝœ(CVE-2023-48795, โ€œTerrapinโ€ ๊ณต๊ฒฉ)์˜ ์ทจ์•ฝ์ ์œผ๋กœ ์ธํ•ด MITM ๊ณต๊ฒฉ์ด ์—ฐ๊ฒฐ์„ ๋กค๋ฐฑํ•˜์—ฌ ๋œ ์•ˆ์ „ํ•œ ์ธ์ฆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์ง€์—ฐ์„ ๋ถ„์„ํ•˜์—ฌ ์ž…๋ ฅ์„ ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋Š” ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ๋ณดํ˜ธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‚ค๋ณด๋“œ์˜ ํ‚ค ์ž…๋ ฅ ์‚ฌ์ด. ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์€ ๋ณ„๋„์˜ ๋‰ด์Šค ๊ธฐ์‚ฌ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŠน์ˆ˜ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ๋กœ๊ทธ์ธ ๋ฐ ํ˜ธ์ŠคํŠธ ๊ฐ’์„ ์กฐ์ž‘ํ•˜์—ฌ ์ž„์˜์˜ ์…ธ ๋ช…๋ น์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ssh ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๊ฐ€ ssh, ProxyCommand ๋ฐ LocalCommand ์ง€์‹œ๋ฌธ์— ์ „๋‹ฌ๋œ ๋กœ๊ทธ์ธ ๋ฐ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๊ฐ’์„ ์ œ์–ดํ•˜๊ฑฐ๋‚˜ %u ๋ฐ %h์™€ ๊ฐ™์€ ์™€์ผ๋“œ์นด๋“œ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ "match exec" ๋ธ”๋ก์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ฒฝ์šฐ ์ทจ์•ฝ์ ์ด ์•…์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Git์—์„œ ํ˜ธ์ŠคํŠธ ๋ฐ ์‚ฌ์šฉ์ž ์ด๋ฆ„์— ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Git์—์„œ ํ•˜์œ„ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ๋Š” ์ž˜๋ชป๋œ ๋กœ๊ทธ์ธ ๋ฐ ํ˜ธ์ŠคํŠธ๊ฐ€ ๋Œ€์ฒด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์Šทํ•œ ์ทจ์•ฝ์ ์ด libssh์—๋„ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
  • ssh-agent์—๋Š” PKCS#11 ๊ฐœ์ธ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ PKCS#11 ํ† ํฐ์—์„œ ๋ฐ˜ํ™˜๋œ ์ฒซ ๋ฒˆ์งธ ํ‚ค์—๋งŒ ์ œํ•œ์ด ์ ์šฉ๋˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์ผ๋ฐ˜ ๊ฐœ์ธ ํ‚ค, FIDO ํ† ํฐ ๋˜๋Š” ๋ฌด์ œํ•œ ํ‚ค์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐํƒ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • ProxyJump ์ง€์‹œ์–ด๋ฅผ ํ†ตํ•ด ์ง€์ •๋œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ํ™•์žฅํ•˜์—ฌ SSH์— "%j" ๋Œ€์ฒด๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ssh๋Š” ๋น„ํ™œ์„ฑ ์ฑ„๋„์„ ์ข…๋ฃŒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ChannelTimeout ์„ค์ •์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • PEM PKCS25519 ํ˜•์‹์˜ ED8 ๊ฐœ์ธ ํ‚ค๋ฅผ ssh, sshd, ssh-add ๋ฐ ssh-keygen์— ์ฝ๊ธฐ ์œ„ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ด์ „์—๋Š” OpenSSH ํ˜•์‹๋งŒ ์ง€์›๋จ).
  • ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ๋ฐ›์€ ํ›„ ๊ณต๊ฐœ ํ‚ค ์ธ์ฆ์„ ์œ„ํ•œ ๋””์ง€ํ„ธ ์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์žฌํ˜‘์ƒํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœํ† ์ฝœ ํ™•์žฅ์ด ssh ๋ฐ sshd์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด "์‚ฌ์šฉ์ž ์ผ์น˜" ๋ธ”๋ก์— PubkeyAcceptedAlgorithms๋ฅผ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉ์ž์™€ ๊ด€๋ จํ•˜์—ฌ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • PKCS#11 ํ‚ค๋ฅผ ๋กœ๋“œํ•  ๋•Œ ์ธ์ฆ์„œ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ssh-add ๋ฐ ssh-agent์— ํ”„๋กœํ† ์ฝœ ํ™•์žฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ PKCS#11 ๊ฐœ์ธ ํ‚ค์™€ ์—ฐ๊ฒฐ๋œ ์ธ์ฆ์„œ๋ฅผ ssh๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ssh-agent๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  OpenSSH ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • clang์˜ "-fzero-call-used-regs"์™€ ๊ฐ™์€ ์ง€์›๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ถˆ์•ˆ์ •ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ํ”Œ๋ž˜๊ทธ์— ๋Œ€ํ•œ ๊ฐ์ง€ ๊ธฐ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • sshd ํ”„๋กœ์„ธ์Šค์˜ ๊ถŒํ•œ์„ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด getpflags() ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง€์›ํ•˜๋Š” OpenSolaris ๋ฒ„์ „์€ PRIV_LIMIT ๋Œ€์‹  PRIV_XPOLICY ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€