Linux ์ปค๋„ ์ˆ˜์ค€์—์„œ ์ฝ”๋“œ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๋Š” eBPF ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ์ทจ์•ฝ์ 

eBPF ํ•˜์œ„ ์‹œ์Šคํ…œ์—์„œ ๋‘ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ์ทจ์•ฝ์ ์ด ์‹๋ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด JIT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ˆ˜ ๊ฐ€์ƒ ๋จธ์‹ ์˜ Linux ์ปค๋„ ๋‚ด์—์„œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ์ทจ์•ฝ์  ๋ชจ๋‘ ๊ฒฉ๋ฆฌ๋œ eBPF ๊ฐ€์ƒ ๋จธ์‹  ์™ธ๋ถ€์—์„œ ์ปค๋„ ๊ถŒํ•œ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” Pwn2Own ๋Œ€ํšŒ๋ฅผ ์šด์˜ํ•˜๋Š” Zero Day Initiative ํŒ€์— ์˜ํ•ด ๊ฒŒ์‹œ๋˜์—ˆ์œผ๋ฉฐ, ์˜ฌํ•ด์—๋Š” ์ด์ „์— ์•Œ๋ ค์ง€์ง€ ์•Š์€ ์ทจ์•ฝ์ ์„ ์‚ฌ์šฉํ•œ Ubuntu Linux์— ๋Œ€ํ•œ XNUMX๊ฑด์˜ ๊ณต๊ฒฉ์ด ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(eBPF์˜ ์ทจ์•ฝ์ ์ด ์ด๋Ÿฌํ•œ ๊ณต๊ฒฉ๊ณผ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ๋ณด๊ณ ๋˜์ง€ ์•Š์Œ). .

  • CVE-2021-3490 - ์ด ์ทจ์•ฝ์ ์€ eBPF ALU32์—์„œ ๋น„ํŠธ AND, OR ๋ฐ XOR ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ 32๋น„ํŠธ ๋ฒ”์œ„ ์™ธ ๊ฒ€์‚ฌ๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์ด ๋ฒ„๊ทธ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ• ๋‹น๋œ ๋ฒ„ํผ ๋ฒ”์œ„ ์™ธ๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. XOR ์—ฐ์‚ฐ ๋ฌธ์ œ๋Š” ์ปค๋„ ๋ฒ„์ „ 5.7-rc1๋ถ€ํ„ฐ ๋‚˜ํƒ€๋‚˜๊ณ  AND ๋ฐ OR - 5.10-rc1๋ถ€ํ„ฐ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
  • CVE-2021-3489 - ํ•ด๋‹น ์ทจ์•ฝ์ ์€ ๋ง ๋ฒ„ํผ ๊ตฌํ˜„ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋ฉฐ, bpf_ringbuf_reserve ํ•จ์ˆ˜๊ฐ€ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์˜ ํฌ๊ธฐ๊ฐ€ ์‹ค์ œ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์„ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•์ธํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ง๋ฒ„ํ”„์˜. ์ด ๋ฌธ์ œ๋Š” ๋ฆด๋ฆฌ์Šค 5.8-rc1๋ถ€ํ„ฐ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌํŒ์˜ ์ทจ์•ฝ์  ํŒจ์น˜ ์ƒํƒœ๋Š” Ubuntu, Debian, RHEL, Fedora, SUSE, Arch ํŽ˜์ด์ง€์—์„œ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ • ์‚ฌํ•ญ์€ ํŒจ์น˜(CVE-2021-3489, CVE-2021-3490)๋กœ๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์•…์šฉ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์‚ฌ์šฉ์ž๊ฐ€ eBPF ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, RHEL์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์—์„œ ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ CAP_SYS_ADMIN ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์™€ ๋ณ„๋„๋กœ, ๋กœ์ปฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ๊ถŒํ•œ์„ ๋ฃจํŠธ ์ˆ˜์ค€์œผ๋กœ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” Linux ์ปค๋„์˜ ๋˜ ๋‹ค๋ฅธ ์ทจ์•ฝ์ ์ธ CVE-2021-32606์— ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” Linux ์ปค๋„ 5.11๋ถ€ํ„ฐ ๋ถ„๋ช…ํ•ด์กŒ์œผ๋ฉฐ CAN ISOTP ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„์˜ ๊ฒฝ์Ÿ ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด isotp_setsockopt() ํ•จ์ˆ˜์—์„œ ์ ์ ˆํ•œ ์ž ๊ธˆ์„ ์„ค์ •ํ•˜์ง€ ์•Š์•„ ์†Œ์ผ“ ๋ฐ”์ธ๋”ฉ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CAN_ISOTP_SF_BROADCAST ํ”Œ๋ž˜๊ทธ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ.

ISOTP ์†Œ์ผ“์ด ๋‹ซํžŒ ํ›„์—๋„ ์ˆ˜์‹ ์ž ์†Œ์ผ“์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๋ฉฐ, ์—ฐ๊ฒฐ๋œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด์ œ๋œ ํ›„์—๋„ ์†Œ์ผ“๊ณผ ์—ฐ๊ฒฐ๋œ ๊ตฌ์กฐ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(isotp_sock ๊ตฌ์กฐ์— ๋Œ€ํ•œ ํ˜ธ์ถœ๋กœ ์ธํ•ด use-after-free). isotp_rcv()๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ์ด๋ฏธ ํ•ด์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค). ๋ฐ์ดํ„ฐ ์กฐ์ž‘์„ ํ†ตํ•ด sk_error_report() ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋ฅผ ์žฌ์ •์˜ํ•˜๊ณ  ์ปค๋„ ์ˆ˜์ค€์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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