software engineering/์†Œํ”„ํŠธ์›จ์–ด๊ฐœ๋ฐœ๋ณด์•ˆ

[Secure] ์‹œ๊ฐ„ ๋ฐ ์ƒํƒœ ๋ณด์•ˆ ์•ฝ์ 

jjingle 2023. 10. 30. 14:36

์‹œ๊ฐ„ ๋ฐ ์ƒํƒœ ๋ณด์•ˆ ์•ฝ์ 

๋™์‹œ ๋˜๋Š” ๊ฑฐ์˜ ๋™์‹œ ์ˆ˜ํ–‰์„ ์ง€์›ํ•˜๋Š” ๋ณ‘๋ ฌ ์‹œ์Šคํ…œ์ด๋‚˜, ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ž‘๋˜๋Š” ํ™˜๊ฒฝ์—์„œ ์‹œ๊ฐ„ ๋ฐ ์ƒํƒœ๋ฅผ ๋ถ€์ ์ ˆํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜์—ฌ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ์•ฝ์ 

 

* ๊ฒฝ์Ÿ์กฐ๊ฑด: ๊ฒ€์‚ฌ์‹œ์ ๊ณผ ์‚ฌ์šฉ ์‹œ์ (TOCTOU)

  • ์›์ธ : ๋ณ‘๋ ฌ ์‹คํ–‰ ํ™˜๊ฒฝ์˜ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ ์ž์›(ํŒŒ์ผ, ์†Œ์ผ“ ๋“ฑ)์„ ๊ฒ€์‚ฌํ•˜๋Š” ์‹œ์ ๊ณผ, ์ž์›์„ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์ ์˜ ์ƒํƒœ๊ฐ€ ๋‹ฌ๋ผ ์˜ค๋™์ž‘์„ ์ผ์œผํ‚ค๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒ
  • ์˜ํ–ฅ : ํ”„๋กœ๊ทธ๋žจ์ด ๊ต์ฐฉ ์ƒํƒœ(dead lock)์— ๋น ์ง€๊ฑฐ๋‚˜, ๊ฒฝ์Ÿ(๊ณต์œ ) ์ž์›์˜ ๋ณ€์กฐ๋‚˜ ์‚ญ์ œ ๋ฐ ๊ธฐํƒ€ ๋™๊ธฐํ™” ์˜ค๋ฅ˜ ๋“ฑ์ด ๋ฐœ์ƒ
  • ๋Œ€์‘
    • ๋™๊ธฐํ™” ๊ตฌ๋ฌธ(Synchronized, Mutex ๋“ฑ) ์„  ์ด์šฉํ•˜์—ฌ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ
    • ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ž„๊ณ„์ฝ”๋“œ ์ฃผ๋ณ€๋งŒ ๋™๊ธฐํ™” ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉ

 

* ์ข…๋ฃŒ๋˜์ง€ ์•Š๋Š” ๋ฐ˜๋ณต๋ฌธ ๋˜๋Š” ์žฌ๊ท€ํ•จ์ˆ˜

  • ์›์ธ : ์žฌ๊ท€ํ•จ์ˆ˜์˜ ์ˆœํ™˜ ํšŸ์ˆ˜๋ฅผ ์ œ์–ดํ•˜์ง€ ๋ชปํ•˜์—ฌ, ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ํ”„๋กœ๊ทธ๋žจ ์Šคํƒ ๋“ฑ์˜ ์ž์›์„ ๊ณผ๋‹คํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
  • ์˜ํ–ฅ : ๋ฌดํ•œ ๋ฃจํ”„์— ๋น ์ง€๊ฒŒ ๋˜๊ณ , ์ž์› ๊ณ ๊ฐˆ์„ ์œ ๋ฐœํ•จ์œผ๋กœ์จ ์‹œ์Šคํ…œ์˜ ์ •์ƒ์ ์ธ ์„œ๋น„์Šค ๋ฐฉํ•ด
  • ๋Œ€์‘ : ๋ชจ๋“  ์žฌ๊ท€ ํ˜ธ์ถœ ์‹œ, ์žฌ๊ท€ ํ˜ธ์ถœ ํšŸ์ˆ˜๋ฅผ ์ œํ•œํ•˜๊ฑฐ๋‚˜, ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •(์ƒ์ˆ˜)ํ•˜์—ฌ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ œํ•œ