Theo de Raadt๋ ์ฌ์ฉ์ ๊ณต๊ฐ ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ฑ ๋ณดํธํ๊ธฐ ์ํด OpenBSD ์ฝ๋๋ฒ ์ด์ค์ ์ผ๋ จ์ ํจ์น๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๊ฐ๋ฐ์์๊ฒ๋ ์๋ก์ด ์์คํ ํธ์ถ๊ณผ ๋์ผํ ์ด๋ฆ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ฅ์ด ์ ๊ณต๋ฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ํ ๋ ์ก์ธ์ค ๊ถํ์ ์์ ํ ์ ์์ต๋๋ค(๋ฉ๋ชจ๋ฆฌ ๋งคํ). ์์ ํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ค์ ๋ ๊ถํ(์: ์ฐ๊ธฐ ๋ฐ ์คํ ๊ธ์ง)์ mmap(), mprotect() ๋ฐ munmap() ํจ์์ ๋ํ ํ์ ํธ์ถ์ ํตํด ๋์ค์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. EPERM ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ฐ์ฒด ํ์ผ์ ๋ํ ๋ฏธ๋ฌ๋ง๋ ๋ฉ๋ชจ๋ฆฌ ๊ถํ์ ๋ณ๊ฒฝํ๋ ๊ธฐ๋ฅ์ ์ ์ดํ๊ธฐ ์ํด ์๋ก์ด ๊ฐ๋ณ BSS ์น์
(.openbsd.mutable, ๊ฐ๋ณ ๋ธ๋ก ์์ ๊ธฐํธ)์ด ์ ์๋์์ผ๋ฉฐ ์๋ก์ด ํ๋๊ทธ PF_MUTABLE ๋ฐ UVM_ET_IMMUTABLE์ด ์ถ๊ฐ๋์์ต๋๋ค. "openbsd.mutable" ์น์
์ ์ ์ํ๊ณ ์ด๋ฅผ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ๊ฒฝ๊ณ์ ์ ๋ ฌ๋ BSS์ ๋ณ๋ ์์ญ์ ๋ฐฐ์นํ๊ธฐ ์ํ ๋ง์ปค์ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ๋ณ๊ฒฝ ๊ฐ๋ฅ ๊ธฐ๋ฅ ํธ์ถ์ ํตํด "openbsd.mutable"๋ก ํ์๋ ์น์
์ ์ ์ธํ๊ณ ๋ฏธ๋ฌ๋ง๋ ๋ชจ๋ ์์ญ์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ์ผ๋ก ํ์ํ ์ ์์ต๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ์ OpenBSD 7.3 ๋ฆด๋ฆฌ์ค์์ ์ฌ์ฉ์์๊ฒ ์ถ์๋ ์์ ์
๋๋ค.
์ถ์ฒ : opennet.ru