UDP ํŒจํ‚ท ์ „์†ก์„ ํ†ตํ•ด ์•…์šฉ๋˜๋Š” Toxcore์˜ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ

Tox P2P ๋ฉ”์‹œ์ง• ํ”„๋กœํ† ์ฝœ์˜ ์ฐธ์กฐ ๊ตฌํ˜„์ธ Toxcore์—๋Š” ํŠน์ˆ˜ ์ œ์ž‘๋œ UDP ํŒจํ‚ท์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ž ์žฌ์ ์œผ๋กœ ์ฝ”๋“œ ์‹คํ–‰์„ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ (CVE-2021-44847)์ด ์žˆ์Šต๋‹ˆ๋‹ค. UDP ์ „์†ก์ด ๋น„ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์€ Toxcore ๊ธฐ๋ฐ˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” ์ด ์ทจ์•ฝ์ ์˜ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉํ•˜๋ ค๋ฉด ํ”ผํ•ด์ž์˜ IP ์ฃผ์†Œ, ๋„คํŠธ์›Œํฌ ํฌํŠธ ๋ฐ ๊ณต๊ฐœ DHT ํ‚ค๋ฅผ ์•Œ๊ณ  UDP ํŒจํ‚ท์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค(์ด ์ •๋ณด๋Š” DHT์—์„œ ๊ณต๊ฐœ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ณต๊ฒฉ์€ ๋ชจ๋“  ์‚ฌ์šฉ์ž ๋˜๋Š” DHT ๋…ธ๋“œ์—์„œ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

์ด ๋ฌธ์ œ๋Š” toxcore ๋ฆด๋ฆฌ์Šค 0.1.9~0.2.12์—์„œ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ๋ฒ„์ „ 0.2.13์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ค‘์—์„œ ํ˜„์žฌ๊นŒ์ง€ qTox ํ”„๋กœ์ ํŠธ๋งŒ์ด ์ทจ์•ฝ์ ์„ ์ œ๊ฑฐํ•˜๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ TCP ์ง€์›์„ ์œ ์ง€ํ•˜๋ฉด์„œ UDP๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ทจ์•ฝ์ ์€ ๋„คํŠธ์›Œํฌ ํŒจํ‚ท์˜ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ๊ณ„์‚ฐ์ด ์ž˜๋ชป๋˜์–ด ๋ฐœ์ƒํ•˜๋Š” handler_request() ํ•จ์ˆ˜์˜ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ, ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด๋Š” "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE"๋กœ ์ •์˜๋œ ๋งคํฌ๋กœ CRYPTO_SIZE์—์„œ ๊ฒฐ์ •๋˜์—ˆ์œผ๋ฉฐ, ์ดํ›„์— ๋นผ๊ธฐ ์ž‘์—… "๊ธธ์ด - CRYPTO_SIZE"์— ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งคํฌ๋กœ์— ๊ด„ํ˜ธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฐ’์˜ ํ•ฉ์„ ๋นผ๋Š” ๋Œ€์‹  1์„ ๋นผ๊ณ  ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๋”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "๊ธธ์ด - (1 + 32 * 2 + 24)" ๋Œ€์‹  ๋ฒ„ํผ ํฌ๊ธฐ๊ฐ€ "๊ธธ์ด - 1 + 32 * 2 + 24"๋กœ ๊ณ„์‚ฐ๋˜์–ด ๋ฒ„ํผ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด ์Šคํƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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