Security Study/System

race condition(๊ฒฝ์Ÿ ์กฐ๊ฑด)attack

๐“›๐“พ๐“ฌ๐“ฎ๐“ฝ๐“ฎ_๐“ข๐“ฝ๐“ฎ๐“ต๐“ต๐“ช 2015. 9. 17.
728x90
๋ฐ˜์‘ํ˜•

๊ฒฝ์Ÿ ์กฐ๊ฑด์ด๋ž€?


๋‘ ํ”„๋กœ์„ธ์Šค๊ฐ„์— ๋ฆฌ์†Œ์Šค(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


728x90
๋ฐ˜์‘ํ˜•

'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

๋Œ“๊ธ€