Skip to content

Latest commit

ย 

History

History
146 lines (93 loc) ยท 4.59 KB

security.md

File metadata and controls

146 lines (93 loc) ยท 4.59 KB

๋ณด์•ˆ


XSS์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์‹œ์˜ค

์˜ˆ๋น„ ๋‹ต์•ˆ ๋ณด๊ธฐ (๐Ÿ‘ˆ Click)
  • ๊ฐœ๋…

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

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

Ref. XSS ๊ณต๊ฒฉ Github. WeareSoft




ํ•ด์‰ฌ ํ•จ์ˆ˜์˜ ํŠน์ง•

์˜ˆ๋น„ ๋‹ต์•ˆ ๋ณด๊ธฐ (๐Ÿ‘ˆ Click)
  • ๋‹ค์–‘ํ•œ ๊ฐ€๋ณ€ ๊ธธ์ด์˜ ์ž…๋ ฅ์— ์ ์šฉ๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ๊ณ ์ •๋œ ๊ธธ์ด์˜ ์ถœ๋ ฅ์„ ๋งŒ๋“ ๋‹ค.
  • ์ฃผ์–ด์ง„ ์ž…๋ ฅ๊ฐ’์„ ํ•ด์‰ฌํ•˜๋Š” ๊ฒƒ์€ ์‰ฝ๋‹ค.
  • ํ•ด์‰ฌ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์ž…๋ ฅ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋‹ค.
  • ๋™์ผํ•œ ํ•ด์‰ฌ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€ ์Œ์ด ์—†๋‹ค.

Ref. ํ•ด์‰ฌ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ํ•ด์‰ฌํ•จ์ˆ˜์˜ ํŠน์ง•๊ณผ ์ข…๋ฅ˜์—๋Š” ์–ด๋– ํ•œ ๊ฒƒ๋“ค์ด ์žˆ๋‚˜์š”? Kisa




์•Œ๊ณ ์žˆ๋Š” ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์‹œ์˜ค

์˜ˆ๋น„ ๋‹ต์•ˆ ๋ณด๊ธฐ (๐Ÿ‘ˆ Click)

ํŒŒ์ƒ ๋ฌธ์ œ : ๋Œ€์นญ ์•”ํ˜ธํ™”, ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์„ธ์š”[V์‚ฌ]

[ Points ] ๋Œ€์นญ ์•”ํ˜ธํ™”์™€ ๋น„๋Œ€์นญ ์•”ํ˜ธํ™”๋กœ ๊ตฌ๋ถ„ ์ง“๊ณ  ์„ค๋ช…ํ•˜๋Š”๊ฒŒ ์ข‹์Œ

  • DES, 3DES
  • AES, SHA-1, SHA-256

[ ์ฃผ์˜ ] MD-1, MD-5 ํ•ด์‰ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์–ธ๊ธ‰ํ•˜๋ฉด ์•ˆ๋จ. ๋‹จ ๋ชจ๋ฐ”์ผ ์‹ค์‹œ๊ฐ„ ๊ฒŒ์ž„ ๊ณผ ๊ฐ™์ด ์—ฐ์‚ฐ๋Ÿ‰๊ณผ ์ฒ˜๋ฆฌ๋Ÿ‰, ์‹ค์‹œ๊ฐ„์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ MD-5๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์–ธ๊ธ‰

Ref. AES์™€ SHA์ฐจ์ด. Tistory brownbears




CSRF์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์„ธ์š”

์˜ˆ๋น„ ๋‹ต์•ˆ ๋ณด๊ธฐ (๐Ÿ‘ˆ Click)
  • CSRF(Cross Site Request Forgery): XSS๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•œ ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์—์„œ ๊ณต๊ฒฉ ๋Œ€์ƒ์˜ ๊ถŒํ•œ(์„ธ์…˜)์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„ํ•˜์ง€ ์•Š์€ ํ–‰์œ„๋ฅผ ํ•˜๊ฒŒ ํ•˜๋Š” ๊ณต๊ฒฉ(๋Œ€๋ถ€๋ถ„์˜ ๊ณต๊ฒฉ์ด XSS๋ฅผ ํ†ตํ•ด ํŠธ๋ฆฌ๊ฑฐ๋˜์ง€๋งŒ ๋งํฌ ํ”ผ์‹ฑ๊ณผ ๊ฐ™์€ ์‚ฌํšŒ ๊ณตํ•™์  ๊ธฐ๋ฒ•๋„ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ๊ผญ XSS๊ฐ€ ๋ฐœ์ƒ ํ•ด์•ผ CSRF๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋‹จ์ • ํ•  ์ˆ˜๋Š” ์—†์Œ)

  • ์˜ˆ์‹œ: ์‚ฌ์šฉ์ž ๋ช…์˜์˜ ๊ธ€์ž‘์„ฑ, ๊ธ€์‚ญ์ œ, ํšŒ์› ํƒˆํ‡ด, ํฌ์ธํŠธ ์ „์†ก

  • ๋ฐฉ์–ด ๋ฐฉ๋ฒ•: CSRF ํ† ํฐ ๊ฐ™์€ ๊ณต๊ฒฉ์ž๊ฐ€ ์‚ฌ์ „์— ์˜ˆ์ƒ ํ•  ์ˆ˜ ์—†๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์ž‘์ด ์•„๋‹ˆ๋ผ๋ฉด ์‹คํ–‰ ๋  ์ˆ˜ ์—†๊ฒŒ ํ•จ

(์ฃผ์˜) ์šฉ์–ด๊ฐ€ ๋น„์Šทํ•˜์—ฌ SSRF์™€ ํ˜ผ๋™ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ณต๊ฒฉ ๋Œ€์ƒ์ด ์ „ํ˜€ ๋‹ค๋ฅธ ๊ธฐ๋ฒ•




๊ณต๊ฐœํ‚ค, ๋น„๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์‹œ์˜ค.

๋‹ต์•ˆ ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.




SSL์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์„ธ์š”

๋‹ต์•ˆ ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.




๋ฐฉํ™”๋ฒฝ์ด๋ž€? ๋ผ์šฐํ„ฐ์™€ ๋ฐฉํ™”๋ฒฝ์˜ ์ฐจ์ด

๋‹ต์•ˆ ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.





์šฉ๊ฐํ•œ ์นœ๊ตฌ๋“ค with ๋‚จ์†ก๋ฆฌ ์‚ผ๋ฒˆ์ง€