Skip to content

Latest commit

ย 

History

History
133 lines (115 loc) ยท 10 KB

File metadata and controls

133 lines (115 loc) ยท 10 KB

9. Security

๐Ÿ“– Contents


๋Œ€์นญํ‚ค์™€ ๋น„๋Œ€์นญํ‚ค ์ฐจ์ด

  1. ๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹ (๋น„๋ฐ€ํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹)
  • ๊ฐœ๋…
    • ํ•˜๋‚˜์˜ ๋น„๋ฐ€ํ‚ค๋ฅผ ์ด์šฉํ•œ ์•”ํ˜ธํ™” ๋ฐฉ์‹
  1. ๋น„๋Œ€์นญํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹ (๊ณต๊ฐœํ‚ค ์•”ํ˜ธํ™” ๋ฐฉ์‹)
  • ๊ฐœ๋…

    • ๊ณต๊ฐœํ‚ค(public)์™€ ๊ฐœ์ธํ‚ค(private)๋ฅผ ์ด์šฉํ•œ ์•”ํ˜ธํ™” ๋ฐฉ์‹
  • ์ข…๋ฅ˜

    1. ๊ณต๊ฐœํ‚ค๋กœ ์•”ํ˜ธํ™”
      • ์•”ํ˜ธ๋กœ์„œ ํšจ์šฉ์„ฑ
    2. ๊ฐœ์ธํ‚ค๋กœ ์•”ํ˜ธํ™”
      • ๊ณต์ธ์ธ์ฆ์ฒด๊ณ„์— ์‚ฌ์šฉํ•˜๋Š” ์ „์ž์„œ๋ช…๋ฒ•

โซTop โ†ฉ๏ธBack โ„น๏ธHome

ํŒจ์Šค์›Œ๋“œ ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•

  1. ๋‹จ์ˆœ ํ…์ŠคํŠธ(plain text)
  2. ๋‹จ๋ฐฉํ–ฅ ํ•ด์‹œ ํ•จ์ˆ˜(one-way hash function)์˜ ๋‹ค์ด์ œ์ŠคํŠธ(digest)
    • ์ˆ˜ํ•™์ ์ธ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์›๋ณธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณ€ํ™˜ํ•˜์—ฌ ์•”ํ˜ธํ™”๋œ ๋ฉ”์‹œ์ง€์ธ ๋‹ค์ด์ œ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
    • ์›๋ณธ ๋ฉ”์‹œ์ง€๋ฅผ ์•Œ๋ฉด ์•”ํ˜ธํ™”๋œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌํ•˜๊ธฐ๋Š” ์‰ฝ์ง€๋งŒ ์•”ํ˜ธํ™”๋œ ๋ฉ”์‹œ์ง€๋กœ๋Š” ์›๋ณธ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌํ•  ์ˆ˜ ์—†์–ด์•ผ ํ•˜๋ฉฐ ์ด๋ฅผ '๋‹จ๋ฐฉํ–ฅ์„ฑ'์ด๋ผ๊ณ  ํ•œ๋‹ค.
    • ํŒจ์Šค์›Œ๋“œ๊ฐ€ "hunter2"๋ผ๋ฉด ์ด ๋ฌธ์ž์—ด์„ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ "SHA-256"์œผ๋กœ ์ธ์ฝ”๋”ฉ
    • avalanche ํšจ๊ณผ
      • ๋Œ€๋ถ€๋ถ„์˜ ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ ๊ฐ’์˜ ์ผ๋ถ€๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ๋‹ค์ด์ œ์ŠคํŠธ๊ฐ€ ์™„์ „ํžˆ ๋‹ฌ๋ผ์ง€๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค.
      • "hunter3"๋ผ๋Š” ๊ฐ’์˜ SHA-256 ๋‹ค์ด์ œ์ŠคํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์œผ๋ฉฐ ์œ„์˜ "hunter2"์™€๋Š” ์™„์ „ํžˆ ๋‹ฌ๋ผ์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋‹จ๋ฐฉํ–ฅ ํ•ด์‹œ ํ•จ์ˆ˜์˜ ๋ฌธ์ œ์ 
        1. ์ธ์‹ ๊ฐ€๋Šฅ์„ฑ(recognizability)
        • "๋ ˆ์ธ๋ณด์šฐ ๊ณต๊ฒฉ(rainbow attack)"
        • ๊ณต๊ฒฉ์ž๊ฐ€ ์ „์ฒ˜๋ฆฌ(pre-computing)๋œ ๋‹ค์ด์ œ์ŠคํŠธ๋ฅผ ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์ด ํ™•๋ณดํ•œ ๋‹ค์Œ ์ด๋ฅผ ํƒˆ์ทจํ•œ ๋‹ค์ด์ œ์ŠคํŠธ์™€ ๋น„๊ตํ•ด ์›๋ณธ ๋ฉ”์‹œ์ง€๋ฅผ ์ฐพ์•„๋‚ด๊ฑฐ๋‚˜ ๋™์ผํ•œ ํšจ๊ณผ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
        1. ์†๋„(speed)
        • ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ์งง์€ ์‹œ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ๊ฒƒ
        • ํ•ด์‹œ ํ•จ์ˆ˜์˜ ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„๋กœ ์ธํ•ด ๊ณต๊ฒฉ์ž๋Š” ๋งค์šฐ ๋น ๋ฅธ ์†๋„๋กœ ์ž„์˜์˜ ๋ฌธ์ž์—ด์˜ ๋‹ค์ด์ œ์ŠคํŠธ์™€ ํ•ดํ‚นํ•  ๋Œ€์ƒ์˜ ๋‹ค์ด์ œ์ŠคํŠธ๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค
  3. ์†”ํŒ…(salting)
    • ์†”ํŠธ(salt)
      • ๋‹จ๋ฐฉํ–ฅ ํ•ด์‹œ ํ•จ์ˆ˜์—์„œ ๋‹ค์ด์ œ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ถ”๊ฐ€๋˜๋Š” ๋ฐ”์ดํŠธ ๋‹จ์œ„์˜ ์ž„์˜์˜ ๋ฌธ์ž์—ด
    • ์†”ํŒ…(salting)
      • ์ด ์›๋ณธ ๋ฉ”์‹œ์ง€์— ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋‹ค์ด์ œ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ
      • ์†”ํŠธ + ์›๋ณธ ๋ฉ”์‹œ์ง€(ํŒจ์Šค์›Œ๋“œ) = ๋‹ค์ด์ œ์ŠคํŠธ
    • ์‚ฌ์šฉ์ž๋ณ„๋กœ ๋‹ค๋ฅธ ์†”ํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋™์ผํ•œ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ๋‹ค์ด์ œ์ŠคํŠธ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ์ƒ์„ฑ๋˜์–ด ์ธ์‹ ๊ฐ€๋Šฅ์„ฑ ๋ฌธ์ œ๊ฐ€ ํฌ๊ฒŒ ๊ฐœ์„ ๋œ๋‹ค.
    • ์†”ํŠธ์™€ ํŒจ์Šค์›Œ๋“œ์˜ ๋‹ค์ด์ œ์ŠคํŠธ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•  ๋•Œ ์ž…๋ ฅํ•œ ํŒจ์Šค์›Œ๋“œ๋ฅผ ํ•ด์‹œํ•˜์—ฌ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ๋ชจ๋“  ํŒจ์Šค์›Œ๋“œ๊ฐ€ ๊ณ ์œ ์˜ ์†”ํŠธ๋ฅผ ๊ฐ–๊ณ  ์†”ํŠธ์˜ ๊ธธ์ด๋Š” 32๋ฐ”์ดํŠธ ์ด์ƒ์ด์–ด์•ผ ์†”ํŠธ์™€ ๋‹ค์ด์ œ์ŠคํŠธ๋ฅผ ์ถ”์ธกํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
  4. ํ‚ค ์ŠคํŠธ๋ ˆ์นญ(key stretching)
    • ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜์—ฌ ๋‹ค์ด์ œ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •
    • ์ž˜ ์„ค๊ณ„๋œ ํŒจ์Šค์›Œ๋“œ ์ €์žฅ ์‹œ์Šคํ…œ์—์„œ๋Š” ํ•˜๋‚˜์˜ ๋‹ค์ด์ œ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์–ด๋А ์ •๋„(์ผ๋ฐ˜์ ์ธ ์žฅ๋น„์—์„œ 0.2์ดˆ ์ด์ƒ)์˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๊ฒŒ ์„ค์ •ํ•œ๋‹ค.
      • "์–ต์ง€ ๊ธฐ๋ฒ• ๊ณต๊ฒฉ(brute-force attack)"์œผ๋กœ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ถ”์ธกํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ
    • ์†”ํŒ…๊ณผ ํ‚ค ์ŠคํŠธ๋ ˆ์นญ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์•”ํ˜ธํ™” ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด ์ด๋ฏธ ๊ฒ€์ฆ๋œ ์•”ํ˜ธํ™” ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

โซTop โ†ฉ๏ธBack โ„น๏ธHome

SQL Injection ๊ณต๊ฒฉ

  • ๊ฐœ๋…
    • SQL ์‚ฝ์ž…๊ณต๊ฒฉ์€ ์›น์—ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•ด์„œ ๊ฐ€ํ•ด์ง€๋Š” ๊ฐ€์žฅ ํ”ํ•œ ๊ณต๊ฒฉ ๊ธฐ๋ฒ• ์ค‘์˜ ํ•˜๋‚˜๋กœ ์—ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ—ˆ์ ์„ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋น„์ •์ƒ์ ์œผ๋กœ ์กฐ์ž‘ํ•˜๋Š” ๊ธฐ๋ฒ•
  • ๋ฐฉ์–ด ๋ฐฉ๋ฒ•
    • mysql_real_escape_string์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๋งŽ์€ ๊ณต๊ฒฉ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

โซTop โ†ฉ๏ธBack โ„น๏ธHome

CSRF ๊ณต๊ฒฉ

  • ๊ฐœ๋…
    • Cross-site request forgery, CSRF, XSRF, ์‚ฌ์ดํŠธ ๊ฐ„ ์š”์ฒญ ์œ„์กฐ
    • ์ผ๋‹จ ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ๋กœ๊ทธ์ธํ•œ ์ƒํƒœ์—์„œ ์‚ฌ์ดํŠธ ๊ฐ„ ์š”์ฒญ ์œ„์กฐ ๊ณต๊ฒฉ ์ฝ”๋“œ๊ฐ€ ์‚ฝ์ž…๋œ ํŽ˜์ด์ง€๋ฅผ ์—ด๋ฉด, ๊ณต๊ฒฉ ๋Œ€์ƒ์ด ๋˜๋Š” ์›น์‚ฌ์ดํŠธ๋Š” ์œ„์กฐ๋œ ๊ณต๊ฒฉ ๋ช…๋ น์ด ๋ฏฟ์„ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐœ์†ก๋œ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•˜๊ฒŒ ๋˜์–ด ๊ณต๊ฒฉ์— ๋…ธ์ถœ๋œ๋‹ค.
  • ๋ฐฉ์–ด ๋ฐฉ๋ฒ•
    • XSS์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ž…๋ ฅ ํ•„ํ„ฐ๋ง์€ ์ค‘์š”ํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
    • ๋ชจ๋“  ๋ฏผ๊ฐํ•œ ๋™์ž‘์— ํ•„์ˆ˜๋กœ ์š”๊ตฌ๋˜๋Š” ํ™•์ธ ์ ˆ์ฐจ๊ฐ€ ํ•ญ์ƒ ์ˆ˜ํ–‰๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฏผ๊ฐํ•œ ๋™์ž‘์— ์‚ฌ์šฉ๋˜๋Š” ์ฟ ํ‚ค๋Š” ์งง์€ ์ˆ˜๋ช…๋งŒ ๊ฐ–๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • [์ฐธ๊ณ ] XSS vs CSRF
    • ์‚ฌ์ดํŠธ ๊ฐ„ ์Šคํฌ๋ฆฝํŒ…(XSS)์„ ์ด์šฉํ•œ ๊ณต๊ฒฉ์ด ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ์›น์‚ฌ์ดํŠธ๋ฅผ ์‹ ์šฉํ•˜๋Š” ์ ์„ ๋…ธ๋ฆฐ ๊ฒƒ์ด๋ผ๋ฉด,
    • ์‚ฌ์ดํŠธ๊ฐ„ ์š”์ฒญ ์œ„์กฐ(CSRF)๋Š” ํŠน์ • ์›น์‚ฌ์ดํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‹ ์šฉํ•˜๋Š” ์ƒํƒœ๋ฅผ ๋…ธ๋ฆฐ ๊ฒƒ์ด๋‹ค.

โซTop โ†ฉ๏ธBack โ„น๏ธHome

XSS ๊ณต๊ฒฉ

  • ๊ฐœ๋…
    • Cross-site ์Šคํฌ๋ฆฝํŒ… ๊ณต๊ฒฉ, ์‚ฌ์ดํŠธ ๊ฐ„ ์Šคํฌ๋ฆฝํŒ… ๊ณต๊ฒฉ
    • ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•˜๋Š” ๊ณต๊ฒฉ๊ธฐ๋ฒ•
    • ์›น์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹Œ ์ด๊ฐ€ ์›น ํŽ˜์ด์ง€์— ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์ด๋‹ค.
    • ์ด ์ทจ์•ฝ์ ์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ ๋ฐ›์€ ๊ฐ’์„ ์ œ๋Œ€๋กœ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋‚˜ํƒ€๋‚œ๋‹ค.
    • ์ด ์ทจ์•ฝ์ ์œผ๋กœ ํ•ด์ปค๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด(์ฟ ํ‚ค, ์„ธ์…˜ ๋“ฑ)๋ฅผ ํƒˆ์ทจํ•˜๊ฑฐ๋‚˜, ์ž๋™์œผ๋กœ ๋น„์ •์ƒ์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ค‘๊ฐ„์—์„œ ์‚ฌ์šฉ์ž์˜ ์„ธ์…˜ ์•„์ด๋””๋ฅผ ํ›”์นœ๋‹ค๋ฉด ๊ทธ ์‚ฌ์šฉ์ž์ฒ˜๋Ÿผ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
  • ๋ฐฉ์–ด ๋ฐฉ๋ฒ•
    • htmlspecialchars ์‚ฌ์šฉ
      • ์ด ํ•จ์ˆ˜๋Š” html ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜์ง€ ์•Š๊ณ  ํ™”๋ฉด์— ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋„๋ก ๋ณ€ํ™˜
    • ์ฟ ํ‚ค๋Š” XSS ๊ณต๊ฒฉ๊ณผ CSRF ๊ณต๊ฒฉ ๋“ฑ์— ์ทจ์•ฝํ•˜๊ธฐ ๋•Œ๋ฌธ์—
      • ์ฟ ํ‚ค ์†์„ฑ HttpOnly ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค.
        • HttpOnly: true๋ฅผ ์ฃผ๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด์„œ ์ฟ ํ‚ค ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.
        • XSS ๊ณต๊ฒฉ ๋ฐฉ์ง€
      • ์„ธ์…˜ ์˜ต์…˜ Secure์„ ํ™œ์„ฑํ™”
        • HTTPS์—์„œ๋งŒ ์ฟ ํ‚ค๊ฐ€ ์ „์†ก๋œ๋‹ค. (์ฆ‰, HTTPS์—์„œ๋งŒ ์„ธ์…˜ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.)
        • XSS ๊ณต๊ฒฉ ๋ฐฉ์ง€
      • ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์š”์ฒญ์€ ์„œ๋ฒ„ ๋‹จ์—์„œ ๊ฒ€์ฆํ•˜๋Š” ๋กœ์ง์„ ๊ผญ ๋งˆ๋ จํ•ด๋‘๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
      • HTTPS๋ฅผ ์ด์šฉํ•ด์„œ ํ†ต์‹  ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

โซTop โ†ฉ๏ธBack โ„น๏ธHome


Reference

๐Ÿ  Home