Libseccomp: RFE: "์ตœ๋Œ€ ์ปค๋„ ๋ฒ„์ „" ์ง€์›

์— ๋งŒ๋“  2015๋…„ 08์›” 21์ผ  ยท  14์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: seccomp/libseccomp

์ปค๋„์— ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์ถ”๊ฐ€๋จ์— ๋”ฐ๋ผ ์ƒˆ๋กœ์šด ๊ณต๊ฒฉ ํ‘œ๋ฉด์— ๊ฐ‘์ž๊ธฐ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ถฉ๋ถ„ํ•œ ๋…ผ์˜๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์˜ ํ‘œ์ค€ ์˜ˆ๋Š” ์ˆ˜๋งŽ์€ CVE์˜ ์†Œ์Šค์ธ perf_event_open() ์ž…๋‹ˆ๋‹ค. perf๋Š” ํ›Œ๋ฅญํ•˜์ง€๋งŒ ๋‚ด(์˜ˆ:) ์›น ์„œ๋ฒ„๋Š” (๊ธฐ๋ณธ์ ์œผ๋กœ) ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋Š˜ seccomp๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ๋Š” ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ฐ€์ง€๋Š” ํŠน์ • ์ปค๋„ ๋ฒ„์ „(์˜ˆ: 3.10)๋ณด๋‹ค ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ํ•„ํ„ฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ๊ฐ์˜ ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์ถ”๊ฐ€๋˜๊ธฐ ์ „์— ์˜ˆ๋ฅผ ๋“ค์–ด ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ™•์ธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด๋„ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ฐ‘์ž๊ธฐ ์ƒˆ๋กœ์šด ๊ณต๊ฒฉ ํ‘œ๋ฉด์— ๋…ธ์ถœ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

@pcmoore ์™€์˜ ํ† ๋ก ์—์„œ ๊ทธ๋Š” ์ด๊ฒƒ์ด arch-x86-syscalls.c ์™€ ๊ฐ™์€ ๊ตฌ์กฐ์ฒด์˜ ๋˜ ๋‹ค๋ฅธ ์ฃผ์„์ด ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค.

enhancement pendininfo prioritmedium

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋ฌธ์ œ #286์€ ์ด ์ž‘์—…์„ ์ถ”์ง„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ตฌ์ฒด์ ์ธ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค... ๊ฑฐ์˜ 5๋…„์ด ์ง€๋‚ฌ์ง€๋งŒ ;)

์ด๋ฅผ ์œ„ํ•œ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” syscall์ด ์ฒ˜์Œ ๋„์ž…๋œ ์‹œ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒˆ ํ•„๋“œ๋ฅผ syscalls.csv ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ~469๊ฐœ์˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์ •์˜๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ(!) ์ข‹์€ ์ž‘์—…์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ "์ •์˜๋˜์ง€ ์•Š์€" ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ๋Œ€ํ•ด ์ด ์ž‘์—…์„ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๋‹จ์ˆœํžˆ ์ƒˆ๋ฒฝ์— ์ƒ์„ฑ๋˜๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  syscalls.csv ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ชจ๋“  ์ƒˆ๋กœ์šด ์ถ”๊ฐ€ ์‚ฌํ•ญ์€ ์ปค๋„ ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋” ๋น ๋ฅธ ์ƒ๊ฐ:

  • syscall.csv ํ˜•์‹
#syscall (v5.8.0-rc5 2020-07-14),kver_min,x86,x86_64,...
accept,<version>,PNR,43,...

... ์—ฌ๊ธฐ์„œ <version> ๋Š” "5_8", "UNDEF" ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฒ„์ „ ํ† ํฐ
enum kernel_version {
    KV_UNDEF = 0,
    KV_1_0,
    KV_1_1,
    KV_1_3,
    KV_2_0,
    ...
    KV_5_8,
    _KV_MAX,
};

๋ชจ๋“  14 ๋Œ“๊ธ€

+1
์ด๋Š” ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์•ˆ ๋ฌธ์ œ ์™„ํ™”์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

@nmav ๋ฅผ ๋ถ„๋ช…ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ์ด RFE๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด Linux ์ปค๋„์— ์ฒ˜์Œ ๋„์ž…๋œ ์‹œ๊ธฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‚ด๋ถ€ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด์ง€, ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์ปค๋„์ด ์ฃผ์–ด์ง„ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ง€์›ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋…ผ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ฐจ๋‹จํ•˜๋ ค๋Š” ๊ฒฝ์šฐ libseccomp๊ฐ€ ํŠน์ • ์•„์น˜/ABI ๋ฐ ์ปค๋„ ๋ฒ„์ „์—์„œ ์ง€์›๋˜๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด libseccomp๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด RFE๋Š” ๊ฑฐ์˜ 5๋…„์ด ์ง€๋‚ฌ๊ณ  @cgwalters ์™€์˜ ๋‹จ์ผ ํ† ๋ก  ์™ธ์—๋Š” ๊ทธ๋Ÿฌํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ๊ด€์‹ฌ์„ ๋ณด๊ฑฐ๋‚˜ ๋“ค์€ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋งŽ์€ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ๋Œ€๋ถ€๋ถ„์€ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋” ๋†’๊ธฐ ๋•Œ๋ฌธ์— ์–ธ์ œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ธ์ง€, ๋˜๋Š” ๊ทธ๋Ÿฌํ•œ ์ž‘์—…์ด ์œ ์šฉํ•œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ธ์ง€๋„ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@cgwalters ๋ฐ @drakenclimber 2020๋…„ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? WONTFIX๋กœ ์ด ์ž‘์—…์„ ์ข…๋ฃŒํ•˜๊ณ  ์‹ถ์ง€๋งŒ ํ•ด๋‹น ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ๋ช‡ ๊ฐ€์ง€ ์˜๊ฒฌ๊ณผ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

@cgwalters ๋ฐ @drakenclimber 2020๋…„ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? WONTFIX๋กœ ์ด ์ž‘์—…์„ ์ข…๋ฃŒํ•˜๊ณ  ์‹ถ์ง€๋งŒ ํ•ด๋‹น ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ๋ช‡ ๊ฐ€์ง€ ์˜๊ฒฌ๊ณผ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์†”์งํžˆ ์ด๊ฑด ์ •๋ง ๋ฉ‹์ง„ ์•„์ด๋””์–ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋‚ด๋ถ€ ๊ณ ๊ฐ ์ค‘ ๋ช‡ ๋ช…์ด ์ด ์ •ํ™•ํ•œ ์ด์œ  ๋•Œ๋ฌธ์— ํ—ˆ์šฉ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ๊ฑฐ๋ถ€ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•˜๊ณ  ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์ปค๋„์— ์ถ”๊ฐ€๋œ๋‹ค๋ฉด ๊ทธ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ๋˜ ๋‹ค๋ฅธ ๊ณต๊ฒฉ ์ˆ˜๋‹จ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์กฐ๊ธˆ๋งŒ ๋” ์—ด์–ด๋‘์ž. Oracle ๋‚ด๋ถ€์— ๋ฌผ์–ด๋ณด๊ณ  ์ด ๊ธฐ๋Šฅ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ณ ๊ฐ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ @cgwalters (๋˜๋Š” ๊ทธ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ)๋Š” ์‹œ๊ฐ„๊ณผ ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ ์†Œ์œ ํ•˜๋Š” ๊ฒƒ์„ ์ „์ ์œผ๋กœ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. :).

์ข‹์•„์š”, ๊ด€์‹ฌ์ด ์žˆ๋Š” ํ•œ, ์ €๋Š” ์ด๊ฒƒ์„ ์—ด์–ด๋‘๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜๋„ ์œ ์šฉํ•  ๊ฒƒ ๊ฐ™์•„์š”!

๋ฌธ์ œ #286์€ ์ด ์ž‘์—…์„ ์ถ”์ง„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ตฌ์ฒด์ ์ธ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค... ๊ฑฐ์˜ 5๋…„์ด ์ง€๋‚ฌ์ง€๋งŒ ;)

์ด๋ฅผ ์œ„ํ•œ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” syscall์ด ์ฒ˜์Œ ๋„์ž…๋œ ์‹œ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒˆ ํ•„๋“œ๋ฅผ syscalls.csv ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ~469๊ฐœ์˜ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์ •์˜๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ(!) ์ข‹์€ ์ž‘์—…์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ "์ •์˜๋˜์ง€ ์•Š์€" ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์— ๋Œ€ํ•ด ์ด ์ž‘์—…์„ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๋‹จ์ˆœํžˆ ์ƒˆ๋ฒฝ์— ์ƒ์„ฑ๋˜๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  syscalls.csv ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๋ชจ๋“  ์ƒˆ๋กœ์šด ์ถ”๊ฐ€ ์‚ฌํ•ญ์€ ์ปค๋„ ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋” ๋น ๋ฅธ ์ƒ๊ฐ:

  • syscall.csv ํ˜•์‹
#syscall (v5.8.0-rc5 2020-07-14),kver_min,x86,x86_64,...
accept,<version>,PNR,43,...

... ์—ฌ๊ธฐ์„œ <version> ๋Š” "5_8", "UNDEF" ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฒ„์ „ ํ† ํฐ
enum kernel_version {
    KV_UNDEF = 0,
    KV_1_0,
    KV_1_1,
    KV_1_3,
    KV_2_0,
    ...
    KV_5_8,
    _KV_MAX,
};

์ปค๋„ ๋ฒ„์ „์„ ์ถ”์ ํ•˜๋Š” ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ๊ฐ€์š”? ์ƒˆ๋กœ์šด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ๋‚ฎ์€ ์•ˆ์ •์ ์ธ ์ปค๋„ ๋ถ„๊ธฐ๋กœ ๋ฐฑํฌํŠธ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๊นŒ?

Red Hat์€ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๊ฒƒ์„ ์ปค๋„์— ๋ฐฑํฌํŠธํ•  ๊ฒƒ์ด๋ฏ€๋กœ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

RedHat์ด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ด์ „ ์ปค๋„ ๋ฒ„์ „์œผ๋กœ ๋ฐฑํฌํŠธํ•˜๋ฉด libseccomp ๋ฒ„์ „๋„ ์ผ์น˜ํ•˜๋„๋ก ํŒจ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์ •ํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ๋Š” ์ด๊ฒƒ์ด ๋” ์ค‘์š”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ #286 ์ˆ˜์ •์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์œผ๋กœ๋Š” ์ƒ๋‹นํžˆ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” ๋” ๋‚˜์€ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์žˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. syscall์€ ๋น„์—ฐ์†์ ์ธ ์ˆœ์„œ๋กœ ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: close_range openat2 ๊ฐ€ ์ถ”๊ฐ€๋จ -- ์ด ์˜ˆ์ œ๋Š” ์นœ์ ˆํ•˜์ง€๋งŒ ๋‚ด ์ž˜๋ชป).

RedHat์ด ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ด์ „ ์ปค๋„ ๋ฒ„์ „์œผ๋กœ ๋ฐฑํฌํŠธํ•˜๋ฉด libseccomp ๋ฒ„์ „๋„ ์ผ์น˜ํ•˜๋„๋ก ํŒจ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. ์—…์ŠคํŠธ๋ฆผ libseccomp ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์–‘ํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ Linux ๋ฐฐํฌํŒ์„ ์ œ์–ดํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ํ•ด๋‹น ๋ฐฐํฌํŒ์ด ์—…์ŠคํŠธ๋ฆผ ํ”„๋กœ์ ํŠธ(Linux ์ปค๋„ ๋˜๋Š” libseccomp)์—์„œ ๋ฒ—์–ด๋‚˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜๋ฉด ์ž์ฒด์ ์œผ๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ตœ์„ ์„ ๋‹คํ•ด ๋„์™€๋“œ๋ฆฌ๊ฒ ์ง€๋งŒ ์ž์ฒด ์ง€์› ๋ฐ ์—”์ง€๋‹ˆ์–ด๋ง ์ง์›์ด ์žˆ๋Š” ์ด๋Ÿฌํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ์—…์ŠคํŠธ๋ฆผ ํ”„๋กœ์ ํŠธ๋ฅผ ํฌ์ƒํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ syscalls(2) ๋งจํŽ˜์ด์ง€์—๋Š” ์ปค๋„์— ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ๋„์ž…๋œ ์‹œ๊ธฐ์— ๊ด€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ก ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ syscall์— ๋Œ€ํ•œ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด syscall spelunking์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์ผํ•œ ์งˆ๋ฌธ์€ ํŠน์ • syscall์ด ๋‹ค๋ฅธ ๋ฆด๋ฆฌ์Šค์˜ ๋‹ค๋ฅธ ์•„ํ‚คํ…์ฒ˜์— ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„ํ‚คํ…์ฒ˜๋ณ„๋กœ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ ธ์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.

... ์œ ์ผํ•œ ์งˆ๋ฌธ์€ ํŠน์ • ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ๋‹ค๋ฅธ ๋ฆด๋ฆฌ์Šค์˜ ๋‹ค๋ฅธ ์•„ํ‚คํ…์ฒ˜์— ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„ํ‚คํ…์ฒ˜๋ณ„๋กœ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ๋“ค์€ ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ฐ€์žฅ ํ™•์‹คํžˆ ๊ทธ๋žฌ๊ณ  ์ง€๊ธˆ๋„ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์•ฝ๊ฐ„ ์„ฑ๊ฐ€์‹œ๊ฒŒ ๋  ๊ฒƒ์ด๊ณ  CSV๋ฅผ ํ™•์‹คํžˆ ํญ๋ฐœ์‹œํ‚ฌ ๊ฒƒ์ด์ง€๋งŒ, ๊ฐ ์•„์น˜/ABI์— ๋Œ€ํ•œ syscall์˜ ์ฒซ ๋ฒˆ์งธ ๋ชจ์Šต์„ ์ถ”์ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋งˆ๋„ ์˜ฌ๋ฐ”๋ฅธ ์ผ์ž…๋‹ˆ๋‹ค.

์ด @cyphar ์— ๋Œ€ํ•ด ๋„์›€์„ ์ฃผ์‹œ๋ฉด ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰