๐ก ๊ฐ์ ํน์ง
์ด ๊ฐ์๋ ๋ฆฌ๋
์ค ์ปค๋ ํดํน์ ๋ํ ์ ๋ฐ์ ์ธ ์ง์์ ํ์ตํ๋ ๊ฐ์์
๋๋ค.
๋ฆฌ๋
์ค ์ปค๋ ํดํน์ ๊ตญ๋ด์์ ๊ณต๋ถํ ์ ์๋ ์๋ฃ๊ฐ ๋งค์ฐ ๋ถ์กฑํ ๋ถ์ผ์ด๋ฉฐ, ํ๊ฒฝ ๊ตฌ์ฑ ๋จ๊ณ๋ถํฐ ์๋ง์ ์ ๋ก ์ฌํญ์ด ์๋ ๋ถ์ผ์
๋๋ค. ํ์ง๋ง, ์ด ๊ฐ์๋ฅผ ์๊ฐํ์๋ฉด ํ๊ฒฝ ๊ตฌ์ฑ์ ๋ฌผ๋ก ์ด๊ณ ๋ค์ํ ๋ณดํธ ๊ธฐ๋ฒ์ ์ฐํ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ข
์ทจ์ฝ์ ์ ๋ํด ์ฝ๊ฒ ๊ณต๋ถํ์ค ์ ์์ต๋๋ค.
๋, ๋จ์ํ ํน์ ํด ์ฌ์ฉ๋ฒ๋ง์ ๊ฐ๋ฅด์น๊ฑฐ๋ ์ด๋ฏธ ์ ์๋ ค์ง ํดํน ๊ธฐ์ ๋ค์ ๋ค์ ์๊ฐํ๋ ์์ค์ ๋ถ๊ณผํ ์ฌํ ์ ๋ณด๋ณด์ ๊ฐ์๋ค๊ณผ ๋ฌ๋ฆฌ, low-level์์์ ๋์ ์๋ฆฌ์ ์
๊ฐํ์ฌ ๊ฐ์ข
์ต์คํ๋ก์ ํ
ํฌ๋๋ค์ ์๊ฐํ๋ค๋ ๊ฒ์ด ์ด ๊ฐ์์ ํน์ง์
๋๋ค.
โฒ ๋ฆฌ๋
์ค ์ปค๋์ ์ทจ์ฝ์ ์ ์ด์ฉํด ๊ถํ ์์น์ ์ผ์ผํจ ๋ชจ์ต
์ต๊ทผ ๋ช ๋
๊ฐ major ํ CTF์์๋ ๋ฆฌ๋
์ค ์ปค๋ ๋ฌธ์ ๊ฐ ๊พธ์คํ ์ถ์ ๋์ต๋๋ค. ์ต๊ทผ์ ๊ฒฝ์ฐ ์ถ์ ๋น๋๊ฐ ๋์ฑ ์ฆ๊ฐํ๋ ์ถ์ธ๊ณ ์. ์ด ๊ฐ์๋ฅผ "์๋ฒฝํ" ์ดํดํ์ ๋ค๋ฉด, CTF์์ ์ถ์ ๋๋ ๋ฆฌ๋
์ค ์ปค๋ ๋ฌธ์ ๋ค์ ๋๋ถ๋ถ ํด๊ฒฐํ์ค ์ ์์ ๊ฒ์ด๋ฉฐ, ๋ฆฌ์ผ ์๋์์ ์ทจ์ฝ์ ์ ์ฐพ๋ ๋ฐ๋ ํฐ ๋์์ ๋ฐ์ผ์ค ์ ์์ ๊ฑฐ๋ผ ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ด ๊ฐ์์ ๊ฐ์ฅ ํฐ ํน์ง์, ๊ฐ์๋ง๋ค ๊ฐ์ฌ๊ฐ ์ง์ ์ ์ํ ์ค์ต ์์ ํ์ผ์ ์ ๊ณตํด ์ค๋ค๋ ์ ์
๋๋ค. ์ด๋ฌํ ์ค์ต ์์ ํ์ผ์ ํตํด ์๊ฐ์ ์ฌ๋ฌ๋ถ๋ค์ด ์ง์ ๊ฐ์๋ฅผ ๋ฐ๋ผ ํด ๋ณด๊ณ , ๋๋ฒ๊น
์ ํด๋ณด์ค ์ ์์ต๋๋ค.
๐ ๊ฐ ์น์
์์๋ ๋ฌด์์ ๋ฐฐ์ฐ๋์?
โฒ ์น์
4.6. userfaultfd ํ์ฉ ๊ธฐ๋ฒ ๊ฐ์ ์๋ฃ
์ด ๊ฐ์๋ ๋๋ถ๋ถ ์์ ์์์ ๊ฐ์ด ํค๋
ธํธ๋ฅผ ์ด์ฉํ ๋ฐํ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- ์น์
0. ๊ฐ์ ํ๋กค๋ก๊ทธ
๋ณธ๊ฒฉ์ ์ผ๋ก ๊ฐ์๋ฅผ ์์ํ๊ธฐ์ ์์, ๊ฐ์ฌ์ ๋ํ ๊ฐ๋จํ ์๊ฐ์ ๊ฐ์ ๊ณํ์ ์ค๋ช
ํด ๋๋ฆฌ๋ ์น์
์
๋๋ค.
- ์น์
1. ๋ฆฌ๋
์ค ์ปค๋ ํดํน ๋ฐฐ๊ฒฝ์ง์
๋ฆฌ๋
์ค ์ปค๋์ ํดํนํ๊ธฐ ์ํ ๊ธฐ๋ณธ์ ์ธ ๋ฐฐ๊ฒฝ์ง์์ ๊ณต๋ถํ๋ ์น์
์
๋๋ค.
- ์น์
2. ๋ฆฌ๋
์ค ์ปค๋ ๋ถ์ ํ๊ฒฝ ์ธํ
๋ฆฌ๋
์ค ์ปค๋์ ๋๋ฒ๊น
ํ ์ ์๋ ํ๊ฒฝ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ์น์
์
๋๋ค. ๋ฆฌ์ผ ์๋๋ฅผ ์ํ ํ๊ฒฝ ์ธํ
๊ณผ์ ์์๋ ๋ฆฌ๋
์ค ์ปค๋๊ณผ ํ์ผ ์์คํ
์ ์ง์ ๋น๋ํด๋ณผ ๊ฒ์ด๋ฉฐ, CTF๋ฅผ ์ํ ํ๊ฒฝ ์ธํ
๊ณผ์ ์์๋ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํ ์ค๋น ๊ณผ์ ์ ์์๋ณผ ์์ ์
๋๋ค.
- ์น์
3. ๋ฆฌ๋
์ค ์ปค๋์ ๋ณดํธ ๊ธฐ๋ฒ ๋ฐ ์ฐํ ๋ฐฉ์
๋ฆฌ๋
์ค ์ปค๋์ ๋ค์ํ ๋ณดํธ ๊ธฐ๋ฒ์ ๋ํด ์์๋ณด๊ณ , ๊ฐ ๋ณดํธ ๊ธฐ๋ฒ๋ค์ ์ฐํํ ์ ์๋ ํ
ํฌ๋๋ค์ ์ค์ต์ ํตํด ๊ณต๋ถํด๋ณด๋ ์น์
์
๋๋ค. ๊ณต๋ถํด๋ณผ ๋ณดํธ ๊ธฐ๋ฒ๋ค์ ์ธํ
๊ณ์ด ์ํคํ
์ณ์ ๋ณดํธ ๊ธฐ๋ฒ๋ค์ด๋ฉฐ, ์ด 6๊ฐ์ง์ ๋ณดํธ ๊ธฐ๋ฒ์ ๊ณต๋ถํด ๋ณผ ์์ ์
๋๋ค. ๋, ์ด๋ฒ ์น์
๋ถํฐ๋ ๊ฐ ๊ฐ์๋ง๋ค ์ค์ต ์์ ํ์ผ์ด ์ ๊ณต๋ฉ๋๋ค.
- ์น์
4. ๋ค์ํ ์ปค๋ ๊ณต๊ฒฉ ํ
ํฌ๋ ์ค์ต
๋ฆฌ๋
์ค ์ปค๋ ์ทจ์ฝ์ ์ด ํฐ์ง๋ ์ํฉ์์ ๊ถํ ์์น์ ์ผ์ผํฌ ์ ์๋ ๋ค์ํ ํ
ํฌ๋๋ค์ ๊ณต๋ถํด๋ณด๋ ์น์
์
๋๋ค.
- ์น์
5. ๋ค์ํ ๋ฆฌ๋
์ค ์ปค๋ ์ทจ์ฝ์ ๋ถ์
๋ฆฌ๋
์ค ์ปค๋์์ ๋ฐ์ํ ์ ์๋ ๋ค์ํ ์ ํ์ ์ทจ์ฝ์ ์ ์์๋ณด๋ ์น์
์
๋๋ค.
- ์น์
6. ๋ํ ๋ฌธ์ ์ค์ต - Input Test Driver
์ค์ ๋ก CTF์ ์ถ์ ๋ ๋ฆฌ๋
์ค ์ปค๋ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ ์น์
์
๋๋ค. ํ์ด๋ณผ ๋ฌธ์ ๋, ๊ฐ์ฌ๊ฐ ์์๋ ํ์์ ์ด์ํ๋ ๋ํ์ธ 2020 Defenit CTF์์ ์ถ์ ๋ Input Test Driver ๋ฌธ์ ์
๋๋ค.
- ์น์
7. ๊ฐ์ ์ํ๋ก๊ทธ
๋ฆฌ๋
์ค ์ปค๋์ ๊ณต๋ถํ ๋ ๋์์ด ๋๋ ๋ ํผ๋ฐ์ค๋ฅผ ์๊ฐํ ๋ค, ๊ฐ์๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ ์น์
์
๋๋ค.
โ๏ธ ๊ฐ์๋ฅผ ๋ฃ๊ธฐ ์ํ ๋ฐฐ๊ฒฝ์ง์
1. C ์ธ์ด
1. ์์คํ
ํดํน ๊ด๋ จ ์ง์ (BOF, ROP, UAF ๋ฑ)
2. ์ด์
๋ธ๋ฆฌ ์ธ์ด (x86_64)
๐๐ปโโ๏ธ ์์ ์ง๋ฌธ Q&A
Q. ์ ๋ ์์คํ
ํดํน์ ํด๋ณธ ์ ๋ ์๊ณ ์ด์
๋ธ๋ฆฌ ์ธ์ด๋ ๋ชจ๋ฅด๋๋ฐ ๊ฐ์๋ฅผ ๋ค์ด๋ ๋ ๊น์?
A. ๊ฐ ๊ฐ์๋ฅผ ์ ์ํ ๋, ์์คํ
ํดํน์ด ์ฃผ ๋ถ์ผ๊ฐ ์๋์ ๋ถ๋ค๋ ๋ค์ ์ ์๋๋ก ์ ์ํ๊ธฐ ๋๋ฌธ์, ์๋ก์ด ์ฉ์ด๊ฐ ๋ฑ์ฅํ ๋๋ง๋ค ๊ฐ์์ ๊ทธ์ ๋ํ ์ค๋ช
์ด ๋ค์ด๊ฐ ์์ต๋๋ค.
ํ์ง๋ง, ์ด๋ ์์ฝ๋ ์ค๋ช
์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ฅด๋ ๊ฐ๋
์ด ๋ฑ์ฅํ์ ๋ ๊ตฌ๊ธ ๊ฒ์๊ณผ ๋ณํํด์ ๊ณต๋ถํ์
์ผ ํ๋ฉฐ, ์์คํ
ํดํน ๊ด๋ จ ์ง์์ด ์๋ ์ํ์์ ์๊ฐํ์ค ๊ฒฝ์ฐ ํ์ต ๊ธฐ๊ฐ์ด ํจ์ฌ ๊ธธ์ด์ง๋ค๋ ์ ์ ์ผ๋์ ๋์
์ผ ํฉ๋๋ค.
Q. ๋ฆฌ๋
์ค๋ ์ด๋ค ๋ฒ์ ์ ์ฌ์ฉํ์๋์?
A. ์ ๊ฒฝ์ฐ ์ฐ๋ถํฌ 18.04 ๋ฒ์ ์ ์ฌ์ฉํ์ต๋๋ค.(https://releases.ubuntu.com/18.04/)
Q. ๊ฐ์๊ฐ ์ฐ์ฌ์ ๊ฐ์๋๋ฐ, ๋จ์ ๊ฐ์๋ ์ธ์ ์ฌ๋ผ์ค๋์?
A. ํ์ฌ ๋ชจ๋ ๊ฐ์์ ์
๋ก๋๊ฐ ์๋ฃ๋์์ต๋๋ค.