Linux์˜ ํŒŒ์ผ ๊ถŒํ•œ

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„. ์šฐ๋ฆฌ๋Š” ์ ๊ทน์ ์œผ๋กœ ์ž‘์—…์— ์ฐฉ์ˆ˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋ฏธ XNUMX์›”์— ๋งŽ์€ ๊ฐ•๋ ฅํ•œ ์ถœ์‹œ๋ฅผ ์ค€๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘์—์„œ๋„ ๋ชจ๋‘๊ฐ€ ์ข‹์•„ํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ณผ์ •์˜ ๋“ฑ๋ก์ด ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "๋ฆฌ๋ˆ…์Šค ๊ด€๋ฆฌ์ž". ์ถœ์‹œ๋ฅผ ์˜ˆ์ƒํ•˜์—ฌ ์šฐ๋ฆฌ๋Š” ์ „ํ†ต์ ์œผ๋กœ ์œ ์šฉํ•œ ์ž๋ฃŒ์˜ ๋ฒˆ์—ญ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

Linux์˜ ํŒŒ์ผ ๊ถŒํ•œ

ํŒŒ์ผ ๊ถŒํ•œ์€ SUID ์‹คํ–‰ ํŒŒ์ผ์— ๋Œ€ํ•œ ์•ˆ์ „ํ•œ ๋Œ€์•ˆ์„ ์ œ๊ณตํ•˜์ง€๋งŒ ์ฒ˜์Œ์—๋Š” ์•ฝ๊ฐ„ ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. SUID ์•„๋ฅด ะฟะปะพั…ะธะผ ั€ะตัˆะตะฝะธะตะผ ั ั‚ะพั‡ะบะธ ะทั€ะตะฝะธั ะฑะตะทะพะฟะฐัะฝะพัั‚ะธ. ๋‹คํ–‰ํžˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ œํ•œ๋œ ๊ถŒํ•œ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณด๋‹ค ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ๊ถŒํ•œ.

์œ„์˜ ๊ธฐ์‚ฌ๋ฅผ ์ž์„ธํžˆ ์ฝ์ง€ ์•Š์œผ๋ ค๋ฉด ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒŒ์ผ ๊ถŒํ•œ์€ ๋ฃจํŠธ๋กœ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋ฏ€๋กœ ํŠน์ • ๊ธฐ๋Šฅ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชฉ๋ก๊ถŒํ•œ์„ ์‚ญ์ œํ•˜๊ณ  ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํ–‰ํ•  ๋•Œ. ์ด๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ๋˜๋Š” ๊ธฐํƒ€ ์•…์šฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์†์ƒ์‹œํ‚ค๋Š” ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์Šค์— ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ํŠน์ • ์ตœ์†Œ ๊ถŒํ•œ ์™ธ์—๋Š” ์–ด๋–ค ๊ฒƒ๋„ ์ด์šฉํ•  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ถŒํ•œ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ญ์ƒ ๋ฃจํŠธ๋กœ ์‹คํ–‰๋˜๋Š” ์„œ๋น„์Šค์— ์œ ์šฉํ•˜์ง€๋งŒ ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋‹คํ–‰ํžˆ๋„ ์˜ฌ๋ฐ”๋ฅธ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ์ด ๊ธฐ๋Šฅ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. Ubuntu๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์˜ˆ๋ฅผ ๋“ค์–ด ํŒจํ‚ค์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. libcap2-bin. ๋˜ํ•œ ๋น„๊ตฌ์‹ ์ปค๋„(๋ฒ„์ „๋ถ€ํ„ฐ)์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 2.6.24).

์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด SUID ๋น„ํŠธ ์„ค์ •๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๊ถŒํ•œ์„ ์‹คํ–‰ ํŒŒ์ผ๊ณผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํŠน์ • ๊ถŒํ•œ ์ง‘ํ•ฉ์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ณต์ต์‚ฌ์—… setcap ํŒŒ์ผ์—์„œ ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ์ง„๋‹จ ๋„๊ตฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. tracewalk, ์ด๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์›์‹œ ์†Œ์ผ“. ์ผ๋ฐ˜์ ์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฃจํŠธ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•˜์ง€๋งŒ ๋ณผ ๋•Œ ๋ชฉ๋ก ํ—ˆ๊ฐ€๋งŒ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค CAP_NET_RAW.

๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. tracewalk, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

sudo setcap cap_net_raw=eip tracewalk

์ง€๊ธˆ์€ ์ ‘๋ฏธ์‚ฌ๋ฅผ ๋ฌด์‹œํ•˜์„ธ์š”. =eip ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ๋ช‡ ์ดˆ ํ›„์— ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ถŒํ•œ ์ด๋ฆ„์€ ์†Œ๋ฌธ์ž์ž…๋‹ˆ๋‹ค. ์ด์ œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ถŒํ•œ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑํ–ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

setcap -v cap_new_raw=eip tracewalk

๋˜๋Š” ํŠน์ • ์‹คํ–‰ ํŒŒ์ผ์— ๋Œ€ํ•ด ์„ค์ •๋œ ๋ชจ๋“  ๊ถŒํ•œ์„ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

getcap tracewalk

์ฐธ๊ณ ๋กœ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ ํŒŒ์ผ์—์„œ ๋ชจ๋“  ๊ถŒํ•œ์„ ์ œ๊ฑฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

setcap -r tracewalk

์ด ์‹œ์ ์—์„œ ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๋กœ ์‹คํ–‰ ํŒŒ์ผ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ์›์‹œ ์†Œ์ผ“์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ๋ฃจํŠธ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ–๋Š” ๋‹ค๋ฅธ ๊ถŒํ•œ์€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ด ์ด์ƒํ•œ ์ ‘๋ฏธ์‚ฌ๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š” ๊ฑธ๊นŒ์š”? =eip? ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ถŒํ•œ์˜ ์„ฑ๊ฒฉ์„ ์–ด๋Š ์ •๋„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ”„๋กœ์„ธ์Šค์—๋Š” ์„ธ ๊ฐ€์ง€ ๊ถŒํ•œ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํšจ๊ณผ์ ์ด๊ณ  ์ƒ์† ๊ฐ€๋Šฅํ•˜๋ฉฐ ํ—ˆ์šฉ๋จ:

  • ํšจ๊ณผ์ ์ธ ๊ถŒํ•œ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ๊ถŒํ•œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์›์‹œ ์†Œ์ผ“์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. CAP_NET_RAW ์œ ํšจ ์„ธํŠธ์— ์—†์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๊ถŒํ•œ์€ ์ ์ ˆํ•œ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ถŒํ•œ์„ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์ž‘์„ฑ๋˜์ง€ ์•Š์€ ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ค ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๊ธฐ๊ฐ„ ๋™์•ˆ์—๋งŒ ์œ ํšจ ์ง‘ํ•ฉ์— ์ค‘์š”ํ•œ ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒ์† ๊ฐ€๋Šฅ ๊ถŒํ•œ์€ ์ƒ์„ฑ๋œ ์ž์‹ ํ”„๋กœ์„ธ์Šค์˜ ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ ์ง‘ํ•ฉ์—์„œ ์ƒ์†๋  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ž…๋‹ˆ๋‹ค. ์ˆ˜์ˆ  ์ค‘ fork() ๋˜๋Š” clone() ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค์—๋Š” ํ•ด๋‹น ์‹œ์ ์— ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์‹คํ–‰ ํŒŒ์ผ์ด ์‹คํ–‰ ์ค‘์ด๋ฏ€๋กœ ํ•ญ์ƒ ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค์˜ ๊ถŒํ•œ ์‚ฌ๋ณธ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ƒ์† ๊ฐ€๋Šฅํ•œ ์„ธํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. exec() (๋˜๋Š” ์ด์— ์ƒ์‘ํ•˜๋Š”)์ด ํ˜ธ์ถœ๋˜์–ด ์‹คํ–‰ ํŒŒ์ผ์„ ๋‹ค๋ฅธ ํŒŒ์ผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ํ”„๋กœ์„ธ์Šค์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ง‘ํ•ฉ์€ ์ƒˆ ํ”„๋กœ์„ธ์Šค์— ์‚ฌ์šฉ๋  ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ ์ง‘ํ•ฉ์„ ์–ป๊ธฐ ์œ„ํ•ด ์ƒ์† ๊ฐ€๋Šฅํ•œ ์ง‘ํ•ฉ์œผ๋กœ ๋งˆ์Šคํฌ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์œ ํ‹ธ๋ฆฌํ‹ฐ setcap ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ์‹คํ–‰ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ด ์„ธ ๊ฐ€์ง€ ์„ธํŠธ์˜ ๊ถŒํ•œ์„ ๋…๋ฆฝ์ ์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฃน์˜ ์˜๋ฏธ๋Š” ํŒŒ์ผ ๊ถŒํ•œ์— ๋”ฐ๋ผ ์•ฝ๊ฐ„ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„๋ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํŒŒ์ผ ๊ถŒํ•œ์€ ์‹คํ–‰ ํŒŒ์ผ์„ ํ˜ธ์ถœํ•œ ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค์— ๊ถŒํ•œ์ด ์—†๋”๋ผ๋„ ์‹คํ–‰ ํŒŒ์ผ์— ํ•ญ์ƒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ž…๋‹ˆ๋‹ค. ์˜ˆ์ „์—๋Š” '๊ฐ•์ œ' ํ—ˆ๊ฐ€๋ผ๊ณ  ๋ถˆ๋ €์Šต๋‹ˆ๋‹ค.
  • ์ƒ์†๋จ ํŒŒ์ผ ๊ถŒํ•œ์€ ํ˜ธ์ถœ ํ”„๋กœ์„ธ์Šค ์„ธํŠธ์—์„œ ๊ถŒํ•œ์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ๋งˆ์Šคํฌ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ถœ ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์†๋œ ์ง‘ํ•ฉ์— ์ถ”๊ฐ€๋กœ ์ ์šฉ๋˜๋ฏ€๋กœ ๋‘ ์ง‘ํ•ฉ์— ๋ชจ๋‘ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ถŒํ•œ์ด ์ƒ์†๋ฉ๋‹ˆ๋‹ค.
  • ์œ ํšจํ•œ ํŒŒ์ผ ๊ถŒํ•œ์€ ์‹ค์ œ๋กœ ์„ธํŠธ๊ฐ€ ์•„๋‹Œ ๋‹จ์ผ ๋น„ํŠธ์— ๋ถˆ๊ณผํ•˜๋ฉฐ, ์„ค์ •๋˜๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ „์ฒด ์„ธํŠธ๊ฐ€ ์ƒˆ ํ”„๋กœ์„ธ์Šค์˜ ์œ ํšจ ์„ธํŠธ์—๋„ ๋ณต์‚ฌ๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ถŒํ•œ์„ ์š”์ฒญํ•˜๋„๋ก ํŠน๋ณ„ํžˆ ์ž‘์„ฑ๋˜์ง€ ์•Š์€ ํ”„๋กœ์„ธ์Šค์— ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. XNUMX๋น„ํŠธ์ด๋ฏ€๋กœ ์–ด๋–ค ๊ถŒํ•œ์— ๋Œ€ํ•ด ์„ค์ •ํ–ˆ๋‹ค๋ฉด ๋ชจ๋“  ๊ถŒํ•œ์— ๋Œ€ํ•ด ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ๋ ˆ๊ฑฐ์‹œ ๋น„ํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ํ†ตํ•ด ๊ถŒํ•œ์„ ์ง€์ •ํ•  ๋•Œ setcap ์„ธ ๊ธ€์ž e, i ะธ p ๊ด€๋ จํ•˜๋‹ค ํšจ๊ณผ์ ์ด๊ณ  ์ƒ์† ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ ‘๊ทผ ๊ฐ€๋Šฅ ๊ฐ๊ฐ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ „ ์‚ฌ์–‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

sudo setcap cap_net_raw=eip tracewalk

...ํ•ด์ƒ๋„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. CAP_NET_RAW ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ์ƒ์† ๊ฐ€๋Šฅํ•œ ์„ธํŠธ์— ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•˜๋ฉฐ ์œ ํšจ ๋น„ํŠธ๋„ ์„ค์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŒŒ์ผ์— ๋Œ€ํ•ด ์ด์ „์— ์„ค์ •๋œ ๊ถŒํ•œ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๋ ค๋ฉด ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

sudo setcap cap_net_admin,cap_net_raw=eip tracewalk

๊ถŒํ•œ ์•ˆ๋‚ด ์ด ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ๋…ผ์˜ํ•˜์ง€๋งŒ, ์ด ๊ฒŒ์‹œ๋ฌผ์ด ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์ข€ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์–ธ๊ธ‰ํ•  ๋ช‡ ๊ฐ€์ง€ ์ฃผ์˜ ์‚ฌํ•ญ๊ณผ ์š”๋ น๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค.

์ฒซ์งธ, ํŒŒ์ผ ๊ธฐ๋Šฅ์€ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ์ž์ฒด(์ฆ‰, ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์˜ ๋Œ€์ƒ)์— ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‘˜์งธ, ํ•ด์„๋œ ์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ถŒํ•œ์„ ํ• ๋‹นํ•˜๋ ค๋Š” Python ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ Python ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ž์ฒด์— ํ• ๋‹นํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์ด๊ฒƒ์€ ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ•ด๋‹น ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋กœ ์‹คํ–‰๋œ ๋ชจ๋“  ์Šคํฌ๋ฆฝํŠธ๋Š” ์ง€์ •๋œ ๊ถŒํ•œ์„ ๊ฐ–๊ฒŒ ๋˜์ง€๋งŒ SUID๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ๋ณด๋‹ค ์—ฌ์ „ํžˆ ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์Šคํฌ๋ฆฝํŠธ์—์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ„๋„์˜ ์‹คํ–‰ ํŒŒ์ผ์„ C ๋˜๋Š” ์ด์— ์ƒ์‘ํ•˜๋Š” ์–ธ์–ด๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Wireshark์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. /usr/bin/dumpcap ๊ถŒํ•œ ์žˆ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ getcap /usr/bin/dumpcap 
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

์…‹์งธ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŒŒ์ผ ๊ถŒํ•œ์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. LD_LIBRARY_PATH ๋ช…๋ฐฑํ•œ ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ(1). ์—๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ LD_PRELOAD, ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ.

1. ๊ณต๊ฒฉ์ž๋Š” ๋ถ„๋ช…ํžˆ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ต์ฒดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ LD_LIBRARY_PATHํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ณด๋‹ค ์šฐ์„ ์ ์œผ๋กœ ํ˜ธ์ถœ๋˜๋„๋ก ํ•˜์—ฌ ํ˜ธ์ถœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋™์ผํ•œ ๊ถŒํ•œ์œผ๋กœ ์ž์ฒด ์ž„์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋‹ค์•ผ. ๊ฐ•์ขŒ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 24์›” XNUMX์ผ์— ์—ด๋ฆฌ๋Š” ์›จ๋น„๋‚˜์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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