XSS ๊ณต๊ฒฉ, ๊ฐ์ ํ๋๋ก ๋ง์คํฐ!
๋ณด์ ์ค๋ฌด์์ ํจ๊ป ์ฒด๊ณ์ ์ผ๋ก ๋ฐฐ์๋ด์.
ํด๋ผ์ด์ธํธ ๊ณต๊ฒฉ์ ์ ์, XSS! ๐
XSS๋?
XSS๋ Cross-Site Scripting
(์ฌ์ดํธ ๊ฐ ์คํฌ๋ฆฝํ
)์ ์ฝ์๋ก,
์น ํ์ด์ง์ ์ฝ์
๋ ์
์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ํตํด
์ฌ์ดํธ ๊ต์ฐจ๊ฐ ๋๋ฉฐ ๋ฐ์ํ๋ ์ทจ์ฝ์ ์
๋๋ค.
XSS๋ ํด๋ผ์ด์ธํธ ์ธก ์คํฌ๋ฆฝํธ(Script)๋ฅผ ํตํด ์ฌ์ดํธ ๊ต์ฐจ๊ฐ ๋จ์ผ๋ก์จ ๋ฐ์๋๋ ์ทจ์ฝ์ ์
๋๋ค. ์ต๊ทผ ์ด์๊ฐ ๋๊ณ ์๋ ๋์ฌ์จ์ด ๊ฐ์ผ ๋ํ XSS๋ฅผ ํตํด ์ ํฌ ๋ฐ ๊ฐ์ผ์ด ๋๋ ๊ฒฝ์ฐ๋ ๋ง์ต๋๋ค.
๋ํ ์น ๊ณต๊ฒฉ์ ํธ๋ ๋๊ฐ ์๋ฒ ์ธก์์ ํด๋ผ์ด์ธํธ ์ธก์ผ๋ก ์ด๋์ด ๋๋ฉด์, ๊ณต๊ฒฉ ์๋ฆฌ์ ์น ์ดํ๋ฆฌ์ผ์ด์
์์ ๋์ ํ๋ฅ ๋ก ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ์ด ๋๊ณ ์์ต๋๋ค. ์ด์ ๋ฐ๋ผ XSS ๊ณต๊ฒฉ์ ์ค์์ฑ๊ณผ ๊ด์ฌ์ด ๋์ด ์ฌ๋ผ๊ฐ๊ณ ์์ต๋๋ค.
์ด ๊ฐ์๋ง์ ํน์ฅ์ ! โจ
๋ค๋ฅธ ์น ํดํน ๊ฐ์์ ์ด๋ป๊ฒ ๋ค๋ฅผ๊น์?
๋จ์ธ์ปจ๋, ์ด๋ฐ ๋ฐฉ์์ ๊ต์ก์ ์์ ๊ฑฐ๋ผ ์๋ถํฉ๋๋ค!
๋๋ถ๋ถ์ ์น ํดํน ๊ต์ก ๋ฐ ์์ ์์๋ ๊ณต๊ฒฉ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋
์ ๋ํด์๋ง ์ค๋ช
ํ๊ธฐ ๋ง๋ จ์
๋๋ค.
๊ทธ๋ฌ๋ ๋ณธ ๊ฐ์๋ ๊ธฐ๋ณธ ๊ฐ๋
๋ถํฐ ๊ณต๊ฒฉ ์๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ๋ฌด์๋ณด๋ค ์ค์ํ โ์ด๋ค ํ๋ก์ธ์ค๋ก ๊ณต๊ฒฉ ์ ์ฐจ๋ฅผ ๊ฑฐ์ณ์ผํ๋์งโ์ ๋ํด ๋ณด๋ค ์ฒด๊ณ์ ์ผ๋ก ํ์ตํ์ค ์ ์์ต๋๋ค.
ํ์ต ๋ด์ฉ ๐
์น์
1. XSS ๊ณต๊ฒฉ์ ๋ํ ์ดํด

XSS ๊ณต๊ฒฉ์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋
๊ณผ ์๋ฆฌ์ ๋ํด ์์๋ด
๋๋ค. ๋ํ XSS ๊ณต๊ฒฉ์ ํตํด ๋ฌด์์ ํ ์ ์์ผ๋ฉฐ, ์ค๋ฌด ๊ด์ ์์๋ ์ด๋ป๊ฒ ํ์ฉ์ด ๋๋ฉฐ ํ๊ณ์ ์ ๋ฌด์์ธ์ง์ ๋ํด ์ดํด๋ด
๋๋ค.
์น์
2. XSS ๊ณต๊ฒฉ์ ์ํ, ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํ ์ดํด

์ํํ XSS ๊ณต๊ฒฉ์ ์ํด, ๊ณต๊ฒฉ์ ์ฌ์ฉ๋๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์ ๋ํด์ ์ดํด๋ด
๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํ ์ธ์ธํ ์ดํด๋ณด๋ค๋ XSS ๊ณต๊ฒฉ์ ์ฐ์ด๋ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋
์ ์ค์ฌ์ผ๋ก ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค.
์น์
3. ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ ์ข
๋ฅ์ ๊ณต๊ฒฉ ์๋ฆฌ ์์ธ ๋ถ์

XSS ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ธ DOM-Based XSS, Reflected XSS, Stored XSS์ ๊ฐ๋
๊ณผ ์๋ฆฌ์ ๋ํด ์ดํด๋ณด๊ณ , ์ด๋ค ์ฐจ์ด์ ์ผ๋ก ์ธํด ์ด๋ฌํ ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ด ๋ถ๋ฅ๋๋์ง ์์ธํ ์์๋ด
๋๋ค.
ํด๋น ์น์
์ ํ์ตํ๊ณ ๋๋ฉด, ์์ ๊ฐ์ XSS ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ ๋ํ ๊ตฌ๋ถ๊ณผ ํ๋จ์ ์ ํํ๊ฒ ํ ์ ์๊ฒ ๋ฉ๋๋ค. ํนํ, Dom-Based XSS์ Reflected XSS ๊ณต๊ฒฉ์ ๊ตฌ๋ถํ์ง ๋ชปํ๋ ๋ถ๋ค์ ๋ง์ ๋์์ด ๋ ๊ฒ์
๋๋ค.
์น์
4. ๊ณต๊ฒฉ ์์ธ ๋ฐฉ๋ฒ๋ก
์์ธํ ๋ด์ฉ์ ๊ฐ์์์ ํ์ธํด์ฃผ์ธ์!
ํด๋น ์น์
์ ๋ณธ ๊ฐ์์ ํต์ฌ ๋ด์ฉ์ผ๋ก, ๊ธฐ์กด์ ๋์๋ ๊ต์ก์์๋ ๋ณผ ์ ์๋ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ๋ก ์
๋๋ค. ์ด๋ป๊ฒ ๊ณต๊ฒฉ์ ์ ๊ทผํด์ผ ํ ์ง, ํน์ ํ ์ํฉ ๋ฐ ํ๊ฒฝ์์ ์ด๋ป๊ฒ ๊ณต๊ฒฉ์ ํด์ผ ํ๋์ง ์์์ผ ์ ๋๋ก ๊ณต๊ฒฉ์ ํ ์ ์์ต๋๋ค.
๋ฟ๋ง ์๋๋ผ, ๊ณต๊ฒฉ ์ ๋ฐ๋์ ์์๋ฌ์ผ ํ ํ์ ๋ํด์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
์น์
5. ๊ฒ์ฆ ๋ก์ง์ ๋ฐ๋ฅธ ๊ฐ์ข
์ฐํ ๊ธฐ๋ฒ
๊ฒ์ฆ ๋ก์ง์ ๋ฐ๋ผ ์ด๋ป๊ฒ ์ฐํ๋ฅผ ํด์ผ ํ๋์ง์ ๋ํ ๋ค์ํ ๋ฐฉ๋ฒ๋ค์ ์ดํด๋ด
๋๋ค. XSS ๊ณต๊ฒฉ ํน์ฑ์ ์ฌ๋ฌ ๊ฐ์ง ์ฐํ ๊ธฐ๋ฒ์ด ์กด์ฌํ์ง๋ง, ์ด๋ฒ ์น์
์์๋ ๊ทธ์ค์์๋ ํนํ ์ค๋ฌด์์ ๋ง์ด ์ฌ์ฉ๋๋ ๊ธฐ์ ์ ๋ํด ๋ค๋ฃจ๊ฒ ๋ฉ๋๋ค.
์น์
6. ์ธ์
ํ์ด์ฌํน ๊ณต๊ฒฉ์ ๋ํ ์๋ฆฌ ์ดํด์ ๊ณต๊ฒฉ ์ค์ต

XSS ๊ณต๊ฒฉ์ ํตํด ํ ์ ์๋ ๊ณต๊ฒฉ ์ค ํ๋์ธ, ์ธ์
ํ์ด์ฌํน(Session Hijacking) ๊ณต๊ฒฉ์ ๋ํด ์ดํด๋ด
๋๋ค. ์ธ์
ํ์ด์ฌํน ๊ณต๊ฒฉ์ ๋ํ ๊ฐ๋
๊ณผ ๊ณต๊ฒฉ ์๋ฆฌ ๊ทธ๋ฆฌ๊ณ ๊ณต๊ฒฉ ์ค์ต์ ์งํํฉ๋๋ค.
์น์
7. ํค๋ก๊น
๊ณต๊ฒฉ์ ๋ํ ์๋ฆฌ ์ดํด์ ๊ณต๊ฒฉ ์ค์ต

XSS ๊ณต๊ฒฉ์ ํตํด ํ ์ ์๋ ๊ณต๊ฒฉ ์ค ํ๋์ธ, ํค๋ก๊น
(Key Logging) ๊ณต๊ฒฉ์ ๋ํด ์ดํด๋ด
๋๋ค. ํค๋ก๊น
๊ณต๊ฒฉ์ ๋ํ ๊ฐ๋
๊ณผ ๊ณต๊ฒฉ ์๋ฆฌ ๊ทธ๋ฆฌ๊ณ ๊ณต๊ฒฉ ์ค์ต์ ์งํํฉ๋๋ค.
์น์
8. ์ค๋ฌด ์ง๋จ ์ ์ฃผ์์ฌํญ
์ด๋ฒ ์น์
์์๋ ๋ง์ ์ง๋จ์๋ค์ด ์ทจ์ฝ์ ์ง๋จ์ ํ ๋ ์ค์ํ๋ ๋ถ๋ถ์ด๊ธฐ๋ ํ, ์ค๋ฌด ์ง๋จ ์ ์ฃผ์ํ ์ฌ๋ฌ ๊ฐ์ง ์ฌํญ์ ๋ํด์ ์ดํด๋ด
๋๋ค.
์น์
9. ๋์ ๋ฐฉ์
์์ธํ ๋ด์ฉ์ ๊ฐ์์์ ํ์ธํด์ฃผ์ธ์!
๊ณต๊ฒฉ๋ฟ๋ง ์๋๋ผ ๋์ ๋ฐฉ์์ ๋ํด์๋ ๋ฐ๋์ ์์์ผ ์ง์ ํ ์ ๋ณด๋ณด์ ์ ๋ฌธ๊ฐ๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๋ง์ง๋ง ์น์
์์๋ XSS ๊ณต๊ฒฉ์ ๋ํ ๋ฐฉ์ด๋ฅผ ํ๊ธฐ ์ํด ํ์ํ ์ํ์ด ์ฝ๋ฉ ๋ฐฉ๋ฒ๊ณผ ๋ณด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ๋ํด ์ดํด๋ด
๋๋ค. ๋ํ, ์ธ์
ํ์ด์ฌํน ๊ณต๊ฒฉ์ ๋ฐฉ์ดํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์ดํด๋ด
๋๋ค.
์์ ์ง๋ฌธ Q&A ๐ฌ
Q. ๊ฐ์ ์๊ฐ ์ ์๊ณ ์์ด์ผ ํ ๊ฒ๋ค์ด ์๋์?
์น ๊ธฐ์ด ๊ด๋ จ ์ง์์ด ์์ผ๋ฉด ๋์์ด ๋ฉ๋๋ค. ์ ๊ฐ์ ์ค ๋ค์ ๊ฐ์๋ฅผ ๋จผ์ ์๊ฐํ์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค.
Q. ์ ๋ณด๋ณด์ ๊ด๋ จ ์ง์์ด ์๋ ๋น์ ๊ณต์ ํน์ ํ์์ธ๋ฐ, ์๊ฐํด๋ ๋ ๊น์?
์์๋ ์ธ๊ธํ๋ฏ ์น ๊ธฐ์ด ๊ฐ์๋ฅผ ์๊ฐํ์ ๋ค๋ฉด ๋ฌด๋ฆฌ ์์ด ์๊ฐํ์ค ์ ์์ต๋๋ค. ๋ํ ์ฝ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ง์์ด ์๋ค๋ฉด ํ์ต์ ๋ง์ ๋์์ด ๋ ์ ์์ต๋๋ค.
Q. "์น ๊ฐ๋ฐ์์ ์ ๋ณด๋ณด์ ์
๋ฌธ์๋ค์ด ๋ฐ๋์ ์์์ผ ๋ , ์น ํดํน๊ณผ ๋ณด์ ๊ทธ๋ฆฌ๊ณ ์ํ์ด ์ฝ๋ฉ" ๊ฐ์์์ ๋ค๋ฃจ๋ XSS ๊ณต๊ฒฉ ๋ด์ฉ๊ณผ ๋ณธ ๊ฐ์์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์?
์ธ๊ธํ์ ๊ฐ์์๋ XSS ๊ด๋ จ ๋ด์ฉ์ ๋ค๋ฃจ์ง๋ง, ๊ธฐ์กด ๊ต์ก์ด๋ ๋์์์ ์ธ๊ธํ๋ ์์ค์ ๋ด์ฉ์ ํ์ตํ๊ฒ ๋ฉ๋๋ค. ๋ณธ ๊ฐ์์์๋ ๊ณต๊ฒฉ์ ๋ํด ์ด๋ป๊ฒ ์ง๋จ์ ํด์ผ ๋ ์ง ๋ฐฉ๋ฒ๋ก ์ ์ธ ๋ถ๋ถ๊ณผ ํ๋ก์ธ์ค๋ค์ ์์ธํ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
Q. ์ ๋ณด๋ณด์ ์ค๋ฌด์๋ ๋ค์ด๋ ๋ ๊น์?
๋น์ฐํฉ๋๋ค. ์คํ๋ ค ๋ ๋ง์ ๋์์ด ๋์ค ๊ฒ๋๋ค. ๊ทธ๋์์ ์ ๊ฐ์๋ก ์ด ๋ถ๋ถ์ ์ด๋ฏธ ์
์ฆ์ด ๋์์ ๊ฒ์ด๋ผ ๋ด
๋๋ค. ^^
ํฌ๋ฆฌํตํฐ๋ธ์ ๋ ๋ง์ ๊ฐ์๊ฐ ๊ถ๊ธํ๋ค๋ฉด? (ํด๋ฆญ)
ํ์ ์์ฒญ ๊ฐ์ข ๐ก
โป ๋ณธ ๊ต์ก PPT์๋ ๋ค์ด๋ฒ์์ ์ ๊ณตํ ๋๋๊ธ๊ผด์ด ์ ์ฉ๋์ด ์์ต๋๋ค.