๊ฒฝ์ ์กฐ๊ฑด์ด๋?
๋ ํ๋ก์ธ์ค๊ฐ์ ๋ฆฌ์์ค(resource)๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ๋คํฌ๋ ๊ณผ์ ์ผ๋ก, ๋ณธ๋ ํดํน๊ธฐ๋ฒ์ ์นญํ๋ ๊ฒ์ด ์๋๋ค.
์๋ ค์ง ์ฝ๋๋ฅผ ํตํด ๊ฒฝ์ ์กฐ๊ฑด์ ์๋ ์๋ฏธ๋ฅผ ์์๋ณด์.
์ฌ๊ธฐ์ fork()๋ผ๋ ํจ์๋ ๋์ผํ ์์
์ ํ๋ ํ๋ก์ธ์ค๋ฅผ ํ๋ ๋ ๋์ฐ๋ ํจ์๋ก์จ fork()๋ฅผ ํธ์ถํ ๋, ๊ฒฐ๊ณผ ๊ฐ์ ์๋ก ๋ง๋ค์ด์ง ํ๋ก์ธ์ค์ ๋ฒํธ๊ฐ ๋๋ค. ์ด๋ก ํ๋ก์ธ์ค๋ฅผ ๊ตฌ๋ถํ๋ค.
if(a%2 ==0) => printf("O")๊ฐ /*๋ถ๋ชจ ํ๋ก์ธ์ค*/์์ 50๋ฒ์ ์ถ๋ ฅํ๊ณ
if(a%2 ==1) => printf("X")๊ฐ /*์์ ํ๋ก์ธ์ค*/์์ 50๋ฒ์ ์ถ๋ ฅํ๋ค๊ณ ํ๋ค. ๊ทธ๋ผ ๊ธฐ๋ณธ์ ์ผ๋ก OXOXOXOXOXOXOX์ด๋ฌํ ์์ผ๋ก ์ถ๋ ฅ์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ ์ด์๋ค๋ฅด๊ฒ XXOXXOOOOOOOXXOXOOOOO ์ด๋ฌํ์์ผ๋ก ์ถ๋ ฅ์ด ๋๋ค. ์ด๋ฌํ ๊ฒ์ด ๋ฐ๋ก ๊ฒฝ์ ์กฐ๊ฑด(race condition)์ ๊ฒฐ๊ณผ์ด๋ค.
์ฌ๋ณผ๋ฆญ ๋งํฌ(symbolic link)?
unix๋ linux์๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ(symbolic link)๋ผ๋ ๊ธฐ๋ฅ์ด ์ด์๋ค. ์ด๋ ์ด๋ค ํ์ผ์ ์ ๊ทผํ๊ณ ์ ํ ๋, ๊ทธ ์ ์ฒด ๊ฒฝ๋ก๋ช ์ ์ ๋ ฅํ๋ ๊ฒ์ ์๋นํ ๊ท์ฐฎ์ ์ผ์ด๋ค. PATH๋ผ๋ ์ข์ ํ๊ฒฝ๋ณ์๊ฐ ์กด์ฌํ๊ธฐ๋ ํ๋, ์กฐ๊ธ ๋ถ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํ ์ ์๋ ๊ฒ์ด๋ค. ์ด๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ํด๋น ๊ฒฝ๋ก๋ช ์ผ๋ก ๋ฐ๋ก ์ฐ๊ฒฐํด ์ฃผ๋ ๊ธฐ๋ฅ์ผ๋ก ๋ณด๋ฉด ๋๋ค.
์๋ฅผ ๋ค์ด๋ณด์ ์ ์ฒด ๊ฒฝ๋ก๊ฐ /BOB/PWNPLAY/PnP/Z3alous๋ผ๊ณ ํ ๋ ๋งค์ผ๋งค์ผ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ cd ๋ช ๋ น์ด๋ฅผ ์คํ ์ํค๊ธฐ ๊ท์ฐฎ์ ๊ฒ์ด๋ค. ์ด๋ฅผ ln -s /BOB/PWNPLAY/PnP/Z3alous ./pwnplay๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๊ฑธ์ด ๋๊ฒ ๋๋ฉด ./pwnplay๋ง ์ ๋ ฅํ์ฌ๋ /BOB/PWNPLAY/PnP/Z3alous ๋๋ ํ ๋ฆฌ๋ก ์ด๋ ํ ์ ์๋ค.
๊ณผ์ฐ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ์ข์ ์ ๋ง ์๋ ๊ฒ์ผ๊น?
๊ทธ๋ฌ์น๋ ์๋ค. ํธํ๊ฒ ์ฌ์ฉํ๋ ๋งํผ ์ํ์ฑ์ ๊ฐ์ง๊ณ ์๋๋ฐ ๋จผ์ Alpha๋ ํ๋ก๊ทธ๋จ์ด pwnplay๋ผ๋ ํ์ผ์ ์ด์ด์, ๊ทธ๊ณณ์ ๋ฌด์ธ๊ฐ๋ฅผ ์จ์ค๋ค๊ณ ํ์. ์ด๋ ๋ง์ฝ ๊ถํ(permission)์ ๊ฐ์ง๋ค๋ฉด pwnplay๋ผ๋ ํ์ผ์ ์ง์ฐ๊ณ , ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ด์ฉํ์ฌ 'ln -s ~xxx/.rhosts pwnplay' ๋ผ๊ณ ๋ณ๊ฒฝ์ ํ๊ฒ ๋๋ฉด ๋ถ๋ช pwnplay๋ฅผ ์คํ์ํค๋๋ฐ ~xxx/.rhosts pwnplay ์ชฝ์ผ๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ๋์ด ์์ผ๋ฏ๋ก ~xxx/.rhosts pwnplay๊ฐ ์คํ๋๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
๋ ์ด์ค ์ปจ๋์ ์ ๊ณต๊ฒฉ์ ๊ธฐ๋ณธ
1. ์ทจ์ฝ ํ๋ก๊ทธ๋จ์ด ์์ฑํ๋ ์์ ํ์ผ์ ์ด๋ฆ์ ํ์
2. ์์ฑ๋ ์์ ํ์ผ๊ณผ ๊ฐ์ ์ด๋ฆ์ ํ์ผ์ ์์ฑ
3. ์ด์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์์ฑ
4. ์๋ณธ ํ์ผ์ ์ง์ด ์ฑ ์ทจ์ฝ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๊ฑด ํ์ผ๊ณผ ๊ฐ์ ํ์ผ์ ์์ฑํ ๋๋ฅผ ๊ธฐ๋ค๋ฆฐ๋ค.
5. ์์ฑ๋์์ ๋, ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ด์ฉํด ํ์ผ ๋ด์ฉ์ ๋ณ๊ฒฝ
6. ์์คํ ์ ๋ณ๊ฒฝ๋ ํ์ผ์ ์์ ์ด ์์ฑํ ์์ ํ์ผ๋ก ์๊ฐํ๊ณ ํ๋ก์ธ์ค๋ฅผ ์งํ์ํฌ ๊ฒ์ด๊ณ ,
๊ณต๊ฒฉ์๋ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ๋ผ์ด๋ค์ด ๋ฌด์ธ๊ฐ๋ฅผ ํ ์์๋ ์ฌ์ง๋ฅผ ๋ง๋ ๋ค.
[์ฐธ์กฐ] ์๋ฉ race_condition
'Security Study > System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
memory ์์ญ (0) | 2015.10.07 |
---|---|
C์ธ์ด์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ (0) | 2015.09.21 |
system /bin/sh ์ฃผ์ ์ฐพ๊ธฐ (0) | 2015.09.15 |
system 2 (0) | 2015.09.13 |
system 1์ผ์ฐจ (0) | 2015.09.12 |
๋๊ธ