๊ฐ๋ฐ ์ค์ธ Linux ์ปค๋ 5.12์๋ ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ, ๋ฒํผ ์ค๋ฒ๋ฐ ์ก๊ธฐ, ํด์ ํ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค ๋ฐ ์ ์ฌํ ํด๋์ค์ ๊ธฐํ ์ค๋ฅ๋ฅผ ๊ฒ์ฌํ๋ KFence(Kernel Electric Fence) ๋ฉ์ปค๋์ฆ์ ๊ตฌํ์ด ํฌํจ๋์ด ์์ต๋๋ค.
๋น์ทํ ๊ธฐ๋ฅ์ด KASAN ๋น๋ ์ต์ (์ปค๋ ์ฃผ์ ์๋ํ์ด์ , ์ต์ gcc ๋ฐ clang์์ Address Sanitizer ์ฌ์ฉ)์ ํํ๋ก ์ด๋ฏธ ์ปค๋์ ์กด์ฌํ์ง๋ง ์ฃผ๋ก ๋๋ฒ๊น ์ฉ์ผ๋ก ๋ฐฐ์น๋์์ต๋๋ค. KFence ํ์ ์์คํ ์ ์๋ ์๋๊ฐ ๋น ๋ฅด๋ค๋ ์ ์์ KASAN๊ณผ ๋ค๋ฅด๋ฏ๋ก ์์ ์์คํ ์ ์ฝ์ด์์๋ ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ก๋์ ์์คํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฉํ๋ฉด ํ ์คํธ ์คํ์๋ ๋ํ๋์ง ์๊ณ ์ํฌ๋ก๋ ๋๋ ์ฅ๊ธฐ ์์ (๊ฐ๋ ์๊ฐ์ด ๊ธด) ์ค์๋ง ๋ํ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ๋ฅผ ํฌ์ฐฉํ ์ ์์ต๋๋ค. ๋ํ, ํ๋ก๋์ ์์คํ ์์ KFence๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ์ปค๋์ ์๋์ ํ์ธํ๋ ๋ฐ ๊ด๋ จ๋ ์์คํ ์ ์๋ฅผ ํฌ๊ฒ ๋๋ฆด ์ ์์ต๋๋ค.
KFence๋ ๊ณ ์ ๋ ๊ฐ๊ฒฉ์ผ๋ก ๊ฐ๋ ํ์ด์ง๋ฅผ ํ์ ์ฝ์ ํ์ฌ ๋ก๋์ ๋ฌด๊ดํ ์ค๋ฒํค๋๋ฅผ ์ต์ํํฉ๋๋ค. ๋ค์ ๋ณดํธ ๊ฐ๊ฒฉ์ด ๋ง๋ฃ๋ ํ KFence๋ ํ์ค ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์์คํ (SLAB ๋๋ SLUB ํ ๋น์)์ ํตํด KFence ๊ฐ์ฒด ํ์์ ๋ค์ ๋ณดํธ ํ์ด์ง๋ฅผ ์ถ๊ฐํ๊ณ ์๋ก์ด ์๊ฐ ์นด์ดํฐ ๋ณด๊ณ ๋ฅผ ์์ํฉ๋๋ค. ๊ฐ KFence ๊ฐ์ฒด๋ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง์ ์์นํ๋ฉฐ ์ผ์ชฝ ๋ฐ ์ค๋ฅธ์ชฝ ๊ฒฝ๊ณ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง๋ ๊ฐ๋ ํ์ด์ง๋ฅผ ํ์ฑํ๋ฉฐ ํฌ๊ธฐ๋ ๋ฌด์์๋ก ์ ํ๋ฉ๋๋ค.
๋ฐ๋ผ์ ๊ฐ์ฒด๊ฐ ์๋ ํ์ด์ง๋ ์ก์ธ์ค ์ "ํ์ด์ง ํดํธ"๋ฅผ ์์ฑํ๋๋ก ๊ตฌ์ฑ๋ ๋ณดํธ ํ์ด์ง์ ์ํด ์๋ก ๋ถ๋ฆฌ๋ฉ๋๋ค. ๊ฐ์ฒด ํ์ด์ง ๋ด๋ถ์ ๊ฒฝ๊ณ๋ฅผ ๋ฒ์ด๋ ์ฐ๊ธฐ๋ฅผ ๊ฐ์งํ๊ธฐ ์ํด ํจํด ๊ธฐ๋ฐ์ "๋นจ๊ฐ์ ์์ญ"์ด ์ถ๊ฐ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์์ญ์ ๊ฐ์ฒด์์ ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ํ๊ณ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ํฌ๊ธฐ๊ฐ ์ ๋ ฌ๋ ๋ ๋จ์ ์์ต๋๋ค. โ+โโโโ+โโโโ+โโโโ+โโโโ+โโโโ+โ | xxxxxxxxx | ์ค: | xxxxxxxxx | :์ค | xxxxxxxxx | | xxxxxxxxx | ใด: | xxxxxxxxx | :B | xxxxxxxxx | | x ๊ฐ๋ x | J : ๋ ๋- | x ๊ฐ๋ x | ๋ ๋- : J | x ๊ฐ๋ x | | xxxxxxxxx | E: ๊ตฌ์ญ | xxxxxxxxx | ๊ตฌ์ญ: E | xxxxxxxxx | | xxxxxxxxx | ์จ: | xxxxxxxxx | :C | xxxxxxxxx | | xxxxxxxxx | ํฐ: | xxxxxxxxx | : ํฐ | xxxxxxxxx | โ+โโโโ+โโโโ+โโโโ+โโโโ+โโโโ+โ
๋ฒํผ ๊ฒฝ๊ณ ์ธ๋ถ ์์ญ์ ์ ๊ทผํ๋ ค๋ ์๋๊ฐ ๋ฐ์ํ๋ฉด ์์
์ด ๋ณดํธ ํ์ด์ง์ ์ํฅ์ ๋ฏธ์น๊ณ ์ด๋ก ์ธํด KFence๋ฅผ ๊ฐ๋ก์ฑ๊ณ ๊ฐ์ง๋ ๋ฌธ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๋ "ํ์ด์ง ํดํธ"๊ฐ ์์ฑ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก KFence๋ ์ค๋ฅ๋ฅผ ์ฐจ๋จํ์ง ์๊ณ ๋ก๊ทธ์ ๊ฒฝ๊ณ ๋ง ํ์ํ์ง๋ง, ์ค๋ฅ๊ฐ ๊ฐ์ง๋๋ฉด ์ปค๋์ ํจ๋ ์ํ๋ก ๋ง๋ค ์ ์๋ โpanic_on_warnโ ์ค์ ์ด ์์ต๋๋ค.
์ถ์ฒ : opennet.ru