XSS(Cross-site Scripting) ๊ณต๊ฒฉ
๊ฐ๋
Cross-site Scripting์ ์ฝ์๋ก ๊ฒ์ํ์ด๋ ์น ๋ฉ์ผ ๋ฑ์ ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ฝ์ ํด ๊ฐ๋ฐ์๊ฐ ๊ณ ๋ คํ์ง ์์ ๊ธฐ๋ฅ์ด ์๋ํ๊ฒ ํ๋ ์น ํดํน ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ด๋ค. ์ฃผ๋ก ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ ๊ณต๊ฒฉ์ด๋ค.
SQL injection๊ณผ ํจ๊ป ์น ์์์ ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ์ทจ์ฝ์ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ์ ์ผ์ข ์ด๋ค.
์ฃผ๋ก CSRF๋ฅผ ํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ข ์ข CSRF์ ํผ๋๋๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋, XSS๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํ์ํค๋ ๊ฒ์ด๊ณ , CSRF๋ ํน์ ํ ํ๋์ ์ํค๋ ๊ฒ์ด๋ฏ๋ก ๋ค๋ฅด๋ค.
(CSS๋ Cascading Style Sheets์ ์ฝ์ด๋ก ์ฌ์ฉ๋๊ณ ์์ด XSS๋ผ๊ณ ํ๋ค.)
์ข ๋ฅ
- Reflected XSS
- Stored XSS
1. Reflected XSS
๋ณดํต URL ํ๋ผ๋ฏธํฐ(ํนํ GET ๋ฐฉ์)์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ์ด ์๋ฒ์ ์ ์ฅํ์ง ์๊ณ ๊ทธ ์ฆ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋๋ ๋ฐฉ์์ด๋ค.
๊ณต๊ฒฉ์๋ ์คํฌ๋ฆฝํธ ์ฝ์ ์ ์คํ์ด๋๋ ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ํ์ํ ํ, XSS ๊ณต๊ฒฉ์ ์ํ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋ URL์ ๊ณต๊ฒฉ ๋์์์๊ฒ ๋ ธ์ถ์ํค๋ ๋ฐฉ๋ฒ์ผ๋ก ์ํํ ์ ์๋ค.
ํ์ ๋ ๋ด์ฉ ๋๋ถ๋ถ์ Stored XSS๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. Reflected XSS์ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ์์ฒด์์ ์ฐจ๋จํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ์๋์ ์ผ๋ก ๊ณต๊ฒฉ์ ์ฑ๊ณต์ํค๊ธฐ ์ด๋ ต๋ค.
2. Stored XSS
์น ์ฌ์ดํธ์ ๊ฒ์ํ์ด๋ ๋๊ธ, ๋๋ค์ ๋ฑ ์คํฌ๋ฆฝํธ๊ฐ ์๋ฒ์ ์ ์ฅ๋์ด ์คํ๋๋ ๋ฐฉ์์ด๋ค. ๊ณต๊ฒฉ์๋ ๊ฒ์ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ ํ ๊ณต๊ฒฉ ๋์์๊ฐ ํด๋น ๊ฒ์๊ธ์ ํด๋ฆญํ๋๋ก ์ ๋ํ๋ค.
๊ณต๊ฒฉ์๋ XSS ๊ณต๊ฒฉ์ ์ทจ์ฝํ ์น ์ฌ์ดํธ๋ฅผ ํ์ํ๊ณ XSS๊ณต๊ฒฉ์ ์ํ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ ๊ฒ์๊ธ์ ์น ์ฌ์ดํธ์ ์ ๋ก๋ํ๋ค. ๊ฒ์๊ธ์ URL์ ์ฌ์ฉ์์๊ฒ ๋ ธ์ถํ๊ณ ์ฌ์ฉ์๊ฐ ๊ฒ์๊ธ์ ํ์ธํ๋ฉด URL์ ๋ํ ์์ฒญ์ ์๋ฒ์ ์ ์กํ๋ค. ์น ์๋ฒ์์ ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ ์๋ต์ด ์ฌ์ฉ์์๊ฒ ์ ์ก๋์ด ๊ณต๊ฒฉ์ด ์ํ๋๋ค.
XSS ํผํด ์ฌ๋ก
- ์ฟ ํค ์ ๋ณด ๋ฐ ์ธ์
ID ํ๋
- ์ธ์ ID ๋ฑ์ ์ฟ ํค์ ํฌํจํ๋ ๊ฒฝ์ฐ, XSS ๊ณต๊ฒฉ์ ํตํด ์ฌ์ฉ์์ ์ธ์ ID๋ฅผ ํ๋ํด ๊ณต๊ฒฉ์๊ฐ ๋ถ๋ฒ์ ์ผ๋ก ์ ์ ์ฌ์ฉ์์ธ์ฒ ํ ์ ์๋ค.
- ์์คํ
๊ด๋ฆฌ์ ๊ถํ ํ๋
- ๋ค์ํ ์ ์ฑ ๋ฐ์ดํฐ๋ฅผ ํฌํจ์ํจ ํ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ฑ ๋ฐ์ดํฐ๋ฅผ ์คํํ๊ฒ๋ ์ ๋ํ ์ ์๋ค. ์ด๋ก ์ธํด ์ฌ์ฉ์์ ์์คํ ์ ํต์ ํ์ฌ ์ค์ ์ ๋ณด๊ฐ ํ์ทจ๋ ์ ์๋ค.
- ์
์ฑ์ฝ๋ ๋ค์ด๋ก๋ (์ ๋)
- ์ ์ฑ ์คํฌ๋ฆฝํธ ์์ฒด๋ก ์ ์ฑ ํ๋ก๊ทธ๋จ์ ๋ค์ด๋ก๋ํ ์๋ ์์ง๋ง, ์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋ URL ํด๋ฆญ์ ์ ๋ํด ์ ์ฑ ํ๋ก๊ทธ๋จ์ ๋ค์ด๋ฐ๋ ์ฌ์ดํธ๋ก ๋ฆฌ๋ค์ด๋ ํธํ ์ ์๋ค.
- ๊ฑฐ์ง ํ์ด์ง ๋
ธ์ถ
- <img> ํ๊ทธ๋ฅผ ์ฌ์ฉํด ์๋ ํ์ด์ง์๋ ์ ํ ๊ด๋ จ ์๋ ํ์ด์ง๋ฅผ ํ์ํ ์ ์๋ค.
- ๊ฐ์ธ ์ ๋ณด ์ ์ถ ๋ฑ์ ์ํ์ด ์๋ค.
XSS ๋ฐฉ์ง๋ฒ
IPS, IDS, ๋ฐฉํ๋ฒฝ์ผ๋ก๋ ๋ฐฉ์งํ ์ ์๊ธฐ ๋๋ฌธ์ ๋จ์ํ ๋ฌธ์๋ฅผ ํํฐ๋งํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ๋ง์ด ์กด์ฌํ๋ค.
- ํํฐ ์ ์
- XSS ๊ณต๊ฒฉ์ ์
๋ ฅ๊ฐ์ ๋ํ ๊ฒ์ฆ์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์์ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ด๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ์
๋ ฅ๊ฐ์ ๋ํด ํํฐ๋งํด์ผ ํ๋ค.
- HTML ์ฝ๋๊ฐ ์๋ ๋จ์ ๋ฌธ์๋ก ์ธ์ํ๊ฒ ํ๋ค. (HTMLEntities)
- ๋ชจ๋ ํน์๋ฌธ์๋ฅผ HTML ์ํฐํฐ๋ก ๋ณํํ๋ค.
- HTML ์ํฐํฐ๋ '&์ฝ์ด;' ๋ฐ '&#์ซ์;' ํํ๋ก ํํํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
- <์ >๋ฅผ ๊ฐ๊ฐ '<'์ '>' ๋ก ๋ณํ
- XSS ๊ณต๊ฒฉ์ ์
๋ ฅ๊ฐ์ ๋ํ ๊ฒ์ฆ์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์์ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ด๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ์
๋ ฅ๊ฐ์ ๋ํด ํํฐ๋งํด์ผ ํ๋ค.
- BBCode ์ฌ์ฉ
- ๋ฐ๋ก ํํฐ๋ฅผ ๋ง๋ค๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์๋ค. ๋ง๋ค๊ธฐ ํธํ๊ณ , ์์ ์ฑ๋ ๋์ ํธ์ด๋ค.
- ์ฟ ํค์ ๋ณด์ ์ต์
์ฌ์ฉ
- ์ฟ ํค ์์ฑ์ '๋ณด์ ์ฟ ํค'๋ผ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ง์ ํ๋ฉด TLS ์์์๋ง ์ฌ์ฉํ๊ฒ ํ ์ ์๋ค.
- ์ฝํ
์ธ ๋ณด์ ์ ์ฑ
(CSP) ์ฌ์ฉ
- ์คํฌ๋ฆฝํธ ์คํ์ ๋ํ ์ ์ฑ (์กฐ๊ฑด)์ ์ค์ ํด ์๋ฐฉํ๋ ๋ฐฉ๋ฒ
- ์ถ์ฒ๊ฐ ์๊ธฐ ์๋ฒ์ธ ์คํฌ๋ฆฝํธ๋ง ์คํ๋ ์ ์๋๋ก ํ๋ค.
์ฐธ๊ณ