JavaScript ๋ณด์ ๊ฐ์ฌ์ ๋ํ ์ฌ์ธต ๋ถ์์ผ๋ก, ์ ์ธ๊ณ์ ์ผ๋ก ์์ ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ์ทจ์ฝ์ ํ์ง ๋ฐฉ๋ฒ๊ณผ ์ฝ๋ ๋ถ์ ๊ธฐ์ ์ ๋น๊ตํฉ๋๋ค.
JavaScript ๋ณด์ ๊ฐ์ฌ: ์ทจ์ฝ์ ํ์ง ๋ ์ฝ๋ ๋ถ์
๋์งํธ ํ๊ฒฝ์ ๋์์์ด ์งํํ๊ณ ์์ผ๋ฉฐ, ์ด์ ๋ฐ๋ผ ์ฌ์ด๋ฒ ์ํ์ ์ ๊ตํจ๋ ๋ฐ์ ํ๊ณ ์์ต๋๋ค. ์น์ ๋ณดํธ์ ์ธ ์ธ์ด์ธ JavaScript๋ ์ ์์ ์ธ ๊ณต๊ฒฉ์๋ค์ ์ฃผ์ ํ์ ์ ๋๋ค. ๋ฐ๋ผ์ JavaScript ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณดํธํ๋ ๊ฒ์ ์ ์ธ๊ณ ์กฐ์ง๊ณผ ๊ฐ๋ฐ์์๊ฒ ๋งค์ฐ ์ค์ํ ๊ด์ฌ์ฌ์ ๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋์์๋ JavaScript ๋ณด์ ๊ฐ์ฌ์ ํ์ ๊ธฐ์ ์ ํ๊ตฌํ๋ฉฐ, ์ทจ์ฝ์ ํ์ง ๋ฐฉ๋ฒ๊ณผ ์ฝ๋ ๋ถ์ ์ ๊ทผ ๋ฐฉ์์ ๋น๊ต ๋ถ์ํฉ๋๋ค. ์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ ์ฌ์ ์ํ์ ์ํํ๊ณ ์ ์ธ๊ณ์ ์ผ๋ก ์์ ํ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํ์ฌ, ์ฌ๋ฌ๋ถ์ด ์์ ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์๋ ์ง์์ ๊ฐ์ถ๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
JavaScript ๋ณด์์ ์ค์์ฑ ์ดํดํ๊ธฐ
Node.js ๋๋ถ์ JavaScript๋ ํด๋ผ์ด์ธํธ ์ธก๊ณผ ์๋ฒ ์ธก ๋ชจ๋์์ ์ฌ์ฉ๋๋ฉฐ, ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ฌ ๊ตฌ์ฑ ์์๊ฐ ๋์์ต๋๋ค. ์ด๋ฌํ ๊ด๋ฒ์ํ ์ฑํ์ ์๋ง์ ๋ณด์ ์ทจ์ฝ์ ์ ์ผ๊ธฐํฉ๋๋ค. ์ฑ๊ณต์ ์ธ ๊ณต๊ฒฉ์ ๋ฐ์ดํฐ ์ ์ถ, ์ฌ์ ์ ์์ค, ํํ ์์ ๋ฐ ๋ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ์ ์๋ฐฉ์ ์ธ ๋ณด์ ์กฐ์น๋ ๋จ์ํ ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ์๋๋ผ, ์์น์ ๊ด๊ณ์์ด ๋ชจ๋ ๊ท๋ชจ์ ์กฐ์ง์๊ฒ ๋น์ฆ๋์ค ํ์ ์๊ฑด์ ๋๋ค. ์ธํฐ๋ท์ ๊ธ๋ก๋ฒํ ํน์ฑ์ ์ทจ์ฝ์ ์ด ์ ์ธ๊ณ ์ด๋์์๋ ์ ์ฉ๋ ์ ์์ผ๋ฉฐ, ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ์กฐ์ง์ ๋ณด์์ ๋ํด ๊ธ๋ก๋ฒํ ๊ด์ ์ ์ฑํํด์ผ ํฉ๋๋ค.
์ทจ์ฝ์ ํ์ง: ๊ธฐ์กด ๊ฒฐํจ ์๋ณํ๊ธฐ
์ทจ์ฝ์ ํ์ง๋ JavaScript ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ์กด ์ฝ์ ์ ์๋ณํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ์ด ๊ณผ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์๋ ค์ง ์ทจ์ฝ์ ๊ณผ ์ ์ฌ์ ์ธ ๋ณด์ ๊ฒฐํจ์ ์ฒด๊ณ์ ์ผ๋ก ์ค์บํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ทจ์ฝ์ ํ์ง์๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋ฉ๋๋ค:
1. ๋์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ ์คํธ(DAST)
DAST๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ณ ๊ณต๊ฒฉ์ ์๋ฎฌ๋ ์ด์ ํ์ฌ ์ทจ์ฝ์ ์ ์๋ณํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ธ๋๋ฐ์ค๋ก ์ทจ๊ธํ๋ฉฐ ์ธ๋ถ์์ ์๋ํฉ๋๋ค. DAST ๋๊ตฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฑ ํ์ด๋ก๋๋ฅผ ๋ณด๋ด๊ณ ์๋ต์ ๋ถ์ํ์ฌ ์ทจ์ฝ์ ์ ํ์งํฉ๋๋ค. DAST๋ ํนํ ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ (XSS), SQL ์ธ์ ์ ๋ฐ ๊ธฐํ ์ธ์ ์ ๊ณต๊ฒฉ๊ณผ ๊ฐ์ด ๋ฐํ์ ์ค์ ๋ํ๋๋ ์ทจ์ฝ์ ์ ์ฐพ๋ ๋ฐ ํจ๊ณผ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ์ผ๋ณธ์ ๊ธฐ๋ฐ์ ๋ ๊ธ๋ก๋ฒ ์ ์ ์๊ฑฐ๋ ํ๋ซํผ์ด ์ฌ์ฉ์ ์ํธ ์์ฉ์ ์ํด JavaScript๋ฅผ ๊ด๋ฒ์ํ๊ฒ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. DAST ์ค์บ์ ์ ์์ ์ธ ๊ณต๊ฒฉ์๊ฐ ๊ณ ๊ฐ ์ ์ฉ ์นด๋ ์ ๋ณด๋ฅผ ํ์น ์ ์๊ฒ ํ๋ ์ทจ์ฝ์ ์ ์๋ณํ ์ ์์ต๋๋ค.
DAST์ ์ฅ์ :
- ์์ค ์ฝ๋์ ์ ๊ทผํ ํ์๊ฐ ์์ต๋๋ค.
- ์ ์ ๋ถ์์ผ๋ก ํ์งํ๊ธฐ ์ด๋ ค์ด ์ทจ์ฝ์ ์ ์๋ณํ ์ ์์ต๋๋ค.
- ์ค์ ๊ณต๊ฒฉ์ ์๋ฎฌ๋ ์ด์ ํฉ๋๋ค.
DAST์ ๋จ์ :
- ์คํ(False Positive)์ ์์ฑํ ์ ์์ต๋๋ค.
- ํนํ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ์๊ฐ์ด ๋ง์ด ์์๋ ์ ์์ต๋๋ค.
- ์ทจ์ฝ์ ์ ๊ทผ๋ณธ ์์ธ์ ๋ํ ๊ฐ์์ฑ์ด ์ ํ์ ์ ๋๋ค.
2. ๋ชจ์ ํดํน(Penetration Testing)
๋ชจ์ ํดํน(Pentesting)์ ์ค๋ฆฌ์ ํด์ปค๊ฐ ์ํํ๋ ์๋ ๋ณด์ ํ๊ฐ์ ๋๋ค. ์ด ํ ์คํฐ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๊ณต๊ฒฉ์ ์๋ฎฌ๋ ์ด์ ํ์ฌ ์ทจ์ฝ์ ์ ์๋ณํฉ๋๋ค. ๋ชจ์ ํดํน์ ์๋ํ๋ ์ค์บ์ ๋์ด์ ์ธ๊ฐ์ ์ง๋ฅ๊ณผ ์ ๋ฌธ์ฑ์ ํ์ฉํ์ฌ ๋ณต์กํ ๊ณต๊ฒฉ ์๋๋ฆฌ์ค๋ฅผ ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ชจ์ ํด์ปค๋ ์ธ๊ธฐ ์๋ ์ฌํ ์์ฝ ์น์ฌ์ดํธ์์ ์ฌ์ฉํ๋ API์ ์ทจ์ฝ์ ์ ์ ์ฉํ์ฌ ์ฌ์ฉ์ ๊ณ์ ์ ๋ํ ๋ฌด๋จ ์ ๊ทผ์ ์๋ํ ์ ์์ต๋๋ค. ๋ธ๋ผ์ง์ ์์ ์คํํธ์ ๋ถํฐ ๋ ์ผ์ ๋ณธ์ฌ๋ฅผ ๋ ๋ค๊ตญ์ ๊ธฐ์ ์ ์ด๋ฅด๊ธฐ๊น์ง ์ ์ธ๊ณ ๊ธฐ์ ๋ค์ ๋ณด์ ํ์ธ๋ฅผ ์ธก์ ํ๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก ๋ชจ์ ํดํน์ ์ฌ์ฉํฉ๋๋ค.
๋ชจ์ ํดํน์ ์ฅ์ :
- ์ทจ์ฝ์ ์ ๋ํ ๋ ๊น์ ์ดํด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์๋ํ๋ ๋๊ตฌ๊ฐ ๋์น ์ ์๋ ์ทจ์ฝ์ ์ ์๋ณํฉ๋๋ค.
- ์์ ์ ๋ํ ๋ง์ถคํ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํฉ๋๋ค.
๋ชจ์ ํดํน์ ๋จ์ :
- ๋น์ฉ์ด ๋ง์ด ๋ค ์ ์์ต๋๋ค.
- ๋ชจ์ ํด์ปค์ ๊ธฐ์ ๊ณผ ๊ฒฝํ์ ์์กดํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์ธก๋ฉด์ ๋ค๋ฃจ์ง ๋ชปํ ์ ์์ต๋๋ค.
3. ์ํํธ์จ์ด ๊ตฌ์ฑ ๋ถ์(SCA)
SCA๋ JavaScript ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์ฌ์ฉ๋๋ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ข ์์ฑ์ ์ทจ์ฝ์ ์ ์๋ณํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์๋์ผ๋ก ์ค์บํ์ฌ ์ด๋ฌํ ๊ตฌ์ฑ ์์๋ฅผ ์๋ณํ๊ณ ์ทจ์ฝ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๊ตํฉ๋๋ค. SCA ๋๊ตฌ๋ ์คํ ์์ค ๊ตฌ์ฑ ์์์ ๊ด๋ จ๋ ์ ์ฌ์ ์ํ์ ๋ํ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ตญ์ ๊ธ์ต ๊ธฐ๊ด์ SCA ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ ๋ฑ ํน ํ๋ซํผ์์ ์ฌ์ฉ๋๋ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ณด์์ ํ๊ฐํ๊ณ , ์๋ ค์ง ์ทจ์ฝ์ ์ ์๋ณํ๋ฉฐ ๋ชจ๋ ์ข ์์ฑ์ด ์ต์ ์ํ์ธ์ง ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ JavaScript ํ๋ก์ ํธ๊ฐ ์คํ ์์ค ํจํค์ง์ ํฌ๊ฒ ์์กดํ๊ธฐ ๋๋ฌธ์ ํนํ ์ค์ํฉ๋๋ค.
SCA์ ์ฅ์ :
- ์๋ํํฐ ๊ตฌ์ฑ ์์์ ์ทจ์ฝ์ ์ ์๋ณํฉ๋๋ค.
- ์ข ์์ฑ์ ๋ํ ๊ฐ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ํํธ์จ์ด ๋ผ์ด์ ์ค ์๊ตฌ ์ฌํญ ์ค์๋ฅผ ๋ณด์ฅํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
SCA์ ๋จ์ :
- ๋ง์ ์์ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- ์ทจ์ฝ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ํญ์ ์ ๊ณตํ์ง๋ ์์ต๋๋ค.
- ์ทจ์ฝ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํฌ๊ด์ฑ์ ์ํด ์ ํ๋ ์ ์์ต๋๋ค.
์ฝ๋ ๋ถ์: ์ฝ๋ ๊ฒํ ๋ฅผ ํตํ ์ทจ์ฝ์ ๋ฐ๊ฒฌ
์ฝ๋ ๋ถ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ค ์ฝ๋๋ฅผ ๊ฒ์ฌํ์ฌ ์ ์ฌ์ ์ธ ๋ณด์ ๊ฒฐํจ์ ์๋ณํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ๋ณด์์ ๋ํ ์ฌ์ ์๋ฐฉ์ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ(SDLC) ์ด๊ธฐ์ ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ๋๋ก ๋์ต๋๋ค. ์ฝ๋ ๋ถ์ ๋ฐฉ๋ฒ์๋ ์ ์ ๋ถ์๊ณผ ์๋ ์ฝ๋ ๊ฒํ ๊ฐ ํฌํจ๋ฉ๋๋ค.
1. ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ณด์ ํ ์คํธ(SAST)
SAST๋ ์ ์ ์ฝ๋ ๋ถ์์ด๋ผ๊ณ ๋ ํ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ์ง ์๊ณ ์์ค ์ฝ๋๋ฅผ ๋ถ์ํฉ๋๋ค. SAST ๋๊ตฌ๋ ์ฝ๋์์ ์ ์ฌ์ ์ธ ๋ณด์ ์ทจ์ฝ์ , ์ฝ๋ฉ ์ค๋ฅ ๋ฐ ์ฝ๋ฉ ํ์ค ์ค์ ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ์ข ์ข ๊ท์น๊ณผ ํจํด์ ์ฌ์ฉํ์ฌ ์ผ๋ฐ์ ์ธ ๋ณด์ ๊ฒฐํจ์ ์๋ณํฉ๋๋ค. ๋ฏธ๊ตญ๊ณผ ์ธ๋์ ํ์ ๋ ๊ธ๋ก๋ฒ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ์ฌ๋ฅผ ์์ํด ๋ณด์ญ์์ค. SAST ๋๊ตฌ๋ CI/CD ํ์ดํ๋ผ์ธ์ ํตํฉ๋์ด ๋ฐฐํฌ ์ ์ ์ฝ๋์ ๋ณด์ ์ทจ์ฝ์ ์ ์๋์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค. SAST๋ ์์ค ์ฝ๋ ๋ด์์ ์ทจ์ฝ์ ์ ์ ํํ ์์น๋ฅผ ํ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
SAST์ ์ฅ์ :
- SDLC ์ด๊ธฐ์ ์ทจ์ฝ์ ์ ์๋ณํฉ๋๋ค.
- ์ทจ์ฝ์ ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
- CI/CD ํ์ดํ๋ผ์ธ์ ํตํฉ๋ ์ ์์ต๋๋ค.
SAST์ ๋จ์ :
- ์คํ์ ์์ฑํ ์ ์์ต๋๋ค.
- ์์ค ์ฝ๋์ ๋ํ ์ ๊ทผ์ด ํ์ํฉ๋๋ค.
- ๊ฒฐ๊ณผ๋ฅผ ๊ตฌ์ฑํ๊ณ ํด์ํ๋ ๋ฐ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
2. ์๋ ์ฝ๋ ๊ฒํ
์๋ ์ฝ๋ ๊ฒํ ๋ ๊ฐ๋ฐ์๋ ๋ณด์ ์ ๋ฌธ๊ฐ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ค ์ฝ๋๋ฅผ ๊ฒํ ํ์ฌ ์ทจ์ฝ์ ์ ์๋ณํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ์ฝ๋์ ๋ํ ํฌ๊ด์ ์ธ ์ดํด๋ฅผ ์ ๊ณตํ๋ฉฐ ์๋ํ๋ ๋๊ตฌ๊ฐ ๋์น ์ ์๋ ๋ณต์กํ๊ฑฐ๋ ๋ฏธ๋ฌํ ๋ณด์ ๊ฒฐํจ์ ํ์งํ ์ ์๊ฒ ํฉ๋๋ค. ์ฝ๋ ๊ฒํ ๋ ์์ ํ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ด์์ ๋๋ค. ์๋ฅผ ๋ค์ด, ์บ๋๋ค์ ๋ณธ์ฌ๋ฅผ ๋ ํต์ ํ์ฌ์ ๊ฐ๋ฐ์๋ค์ ๋ฏผ๊ฐํ ๊ณ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ JavaScript ์ฝ๋์ ๋ณด์์ ํ์ธํ๊ธฐ ์ํด ์๋ ์ฝ๋ ๊ฒํ ๋ฅผ ์ํํ ์ ์์ต๋๋ค. ์๋ ์ฝ๋ ๊ฒํ ๋ ์ง์ ๊ณต์ ์ ์์ ํ ์ฝ๋ฉ ๊ดํ์ ์ฑํ์ ์ฅ๋ คํฉ๋๋ค.
์๋ ์ฝ๋ ๊ฒํ ์ ์ฅ์ :
- ๋ณต์กํ ์ทจ์ฝ์ ์ ์๋ณํฉ๋๋ค.
- ์ฝ๋ ํ์ง๊ณผ ์ ์ง๋ณด์์ฑ์ ํฅ์์ํต๋๋ค.
- ์ง์ ๊ณต์ ๋ฅผ ์ด์งํฉ๋๋ค.
์๋ ์ฝ๋ ๊ฒํ ์ ๋จ์ :
- ์๊ฐ๊ณผ ๋น์ฉ์ด ๋ง์ด ๋ค ์ ์์ต๋๋ค.
- ๊ฒํ ์์ ๊ธฐ์ ๊ณผ ๊ฒฝํ์ ์์กดํฉ๋๋ค.
- ๋๊ท๋ชจ ์ฝ๋๋ฒ ์ด์ค์๋ ์ค์ฉ์ ์ด์ง ์์ ์ ์์ต๋๋ค.
JavaScript ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฃผ์ ์ทจ์ฝ์
JavaScript ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํฅ์ ์ค ์ ์๋ ์ทจ์ฝ์ ์ ํ์ ์ดํดํ๋ ๊ฒ์ ํจ๊ณผ์ ์ธ ๊ฐ์ฌ๋ฅผ ์ํด ๋งค์ฐ ์ค์ํฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ทจ์ฝ์ ์ค ์ผ๋ถ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
1. ํฌ๋ก์ค ์ฌ์ดํธ ์คํฌ๋ฆฝํ (XSS)
XSS ๊ณต๊ฒฉ์ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋ณด๋ ์น์ฌ์ดํธ์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฃผ์ ํฉ๋๋ค. ์ด๋ฌํ ์คํฌ๋ฆฝํธ๋ ์ฟ ํค ๋ฐ ์ธ์ ํ ํฐ๊ณผ ๊ฐ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ํ์น ์ ์์ต๋๋ค. XSS๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์ฌ์ฉ์ ์ ๋ ฅ์ ์ ์คํ ์ฒ๋ฆฌ, ์ถ๋ ฅ ์ธ์ฝ๋ฉ ๋ฐ ์ฝํ ์ธ ๋ณด์ ์ ์ฑ (CSP) ์ฌ์ฉ์ด ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์ธ๊ณ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ธ๊ธฐ ์๋ ์์ ๋ฏธ๋์ด ํ๋ซํผ์ ์๊ฐํด ๋ณด์ญ์์ค. ๊ณต๊ฒฉ์๋ ๋๊ธ ์น์ ์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฃผ์ ํ์ฌ ๊ด๋ฒ์ํ ๊ณ์ ํ์ทจ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์ ์ ํ ์ ๋ ฅ๊ฐ ๊ฒ์ฆ ๋ฐ ์ถ๋ ฅ ์ธ์ฝ๋ฉ์ XSS ์ทจ์ฝ์ ์ ๋ฐฉ์งํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
2. SQL ์ธ์ ์
SQL ์ธ์ ์ ๊ณต๊ฒฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ์ ์ ์ฑ SQL ์ฝ๋๋ฅผ ์ฃผ์ ํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ์ ๋ํ ๋ฌด๋จ ์ ๊ทผ, ๋ฐ์ดํฐ ์กฐ์ ๋ฐ ๋ฐ์ดํฐ ์ ์ถ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. SQL ์ธ์ ์ ์ ๋ฐฉ์งํ๋ ค๋ฉด ์ฟผ๋ฆฌ์ ๋งค๊ฐ๋ณ์ํ์ ์ ๋ ฅ๊ฐ ๊ฒ์ฆ์ด ํ์ํฉ๋๋ค. ์ฌ์ฉ์ ๊ณ์ ์ด ์๋ ๊ธ๋ก๋ฒ ์ ์ ์๊ฑฐ๋ ํ๋ซํผ์ ์๊ฐํด ๋ณด์ญ์์ค. ๋ง์ฝ JavaScript ์ฝ๋๊ฐ SQL ์ฟผ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ ๋ ์ฌ์ฉ์ ์ ๋ ฅ์ ์ ๋๋ก ์ด๊ท (sanitize)ํ์ง ๋ชปํ๋ฉด, ๊ณต๊ฒฉ์๋ ์ ์ฌ์ ์ผ๋ก ๋ชจ๋ ๊ณ ๊ฐ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
3. ์ฌ์ดํธ ๊ฐ ์์ฒญ ์์กฐ(CSRF)
CSRF ๊ณต๊ฒฉ์ ์ฌ์ฉ์๊ฐ ํ์ฌ ์ธ์ฆ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์น ์๋ ์์ ์ ์ํํ๋๋ก ์์ ๋๋ค. CSRF๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์ํฐ-CSRF ํ ํฐ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ตญ์ ์ ์ธ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํด ๋ณด์ญ์์ค. ๊ณต๊ฒฉ์๋ ์ฑ๊ณตํ ๊ฒฝ์ฐ ํผํด์์ ์ง์ ์์ด ํผํด์ ๊ณ์ข์์ ๊ณต๊ฒฉ์ ๊ณ์ข๋ก ์๊ธ์ ์ด์ฒดํ๋ ์ ์ฑ ์์ฒญ์ ๋ง๋ค ์ ์์ต๋๋ค. CSRF ํ ํฐ์ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
4. ์์ ํ์ง ์์ ์ง์ ๊ฐ์ฒด ์ฐธ์กฐ(IDOR)
IDOR ์ทจ์ฝ์ ์ ๊ณต๊ฒฉ์๊ฐ ์ ๊ทผ ๊ถํ์ด ์๋ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๊ฒ ํฉ๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์ ํ ์ธ๊ฐ ํ์ธ ์์ด ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ID๋ก ๊ฐ์ฒด๋ฅผ ์ง์ ์ฐธ์กฐํ ๋ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ธ๋ก๋ฒ ํ๋ก์ ํธ ๊ด๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ์ ํ ์ ๊ทผ ์ ์ด ๋ฉ์ปค๋์ฆ์ด ์๋ค๋ฉด ์ฌ์ฉ์๋ URL์ ํ๋ก์ ํธ ID๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๋ง์ผ๋ก ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ธ๋ถ ์ ๋ณด๋ฅผ ์์ ํ ์ ์์ต๋๋ค. ์ผ๊ด๋๊ณ ์ ์คํ ์ ๊ทผ ์ ์ด ํ์ธ์ด ํ์ํฉ๋๋ค.
5. ๋ณด์ ์ค์ ์ค๋ฅ
๋ณด์ ์ค์ ์ค๋ฅ๋ ๋ถ์ ์ ํ๊ฒ ๊ตฌ์ฑ๋ ์์คํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌํจํฉ๋๋ค. ์ด๋ ๋ ธ์ถ๋ API ํค, ๊ธฐ๋ณธ ์ํธ ๋ฐ ์์ ํ์ง ์์ ํ๋กํ ์ฝ๊ณผ ๊ฐ์ ์ทจ์ฝ์ ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์ ์ ํ ๋ณด์ ๊ตฌ์ฑ์ ์์ ํ ํ๊ฒฝ์ ๊ธฐ๋ณธ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ํธ์ฃผ์์ ํธ์คํ ๋๋ ์๋ชป ๊ตฌ์ฑ๋ ์๋ฒ๋ ์๋์น ์๊ฒ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ฌด๋จ ์ ๊ทผ์ ๋ ธ์ถ์์ผ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ ๊ธฐ์ ์ผ๋ก ๊ตฌ์ฑ์ ๊ฐ์ฌํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค.
6. ์ข ์์ฑ ์ทจ์ฝ์
์ค๋๋๊ฑฐ๋ ์ทจ์ฝํ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ข ์์ฑ์ ์ฌ์ฉํ๋ ๊ฒ์ ์ผ๋ฐ์ ์ธ ์ทจ์ฝ์ ์ ์์ธ์ ๋๋ค. ์ ๊ธฐ์ ์ผ๋ก ์ข ์์ฑ์ ์ ๋ฐ์ดํธํ๊ณ SCA ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์ํ์ ์ํํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ๋ง์ JavaScript ํ๋ก์ ํธ๋ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ๋ฏ๋ก ์ด๋ฌํ ์ข ์์ฑ์ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๊ณ ํ๊ฐํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ์ ์ธ๊ณ์ ์ผ๋ก ๋ค์ํ ๊ณ ๊ฐ์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์ฑ ๊ฐ๋ฐ ํ์ฌ๋ ์๋ํํฐ ํจํค์ง์ ์๋ ค์ง ์ทจ์ฝ์ ์ ํฌ์์์ด ๋์ง ์๋๋ก ์ ๋ฐ์ดํธ๋ ์ข ์์ฑ์ ์ ์งํด์ผ ํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ์ ์ ํ: ์ทจ์ฝ์ ํ์ง ๋ ์ฝ๋ ๋ถ์
์ทจ์ฝ์ ํ์ง์ ์ฝ๋ ๋ถ์ ๋ชจ๋ JavaScript ๋ณด์์ ๋ณด์ฅํ๋ ๋ฐ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ ๊ทผ ๋ฐฉ์์ ์ ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌ๊ธฐ, ๋ณต์ก์ฑ ๋ฐ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ๊ฐ์ ์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ด์์ ์ผ๋ก ์กฐ์ง์ ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ ์กฐํฉํ์ฌ ๋ค์ธต์ ์ธ ๋ณด์ ์ ๋ต์ ์ฑํํด์ผ ํฉ๋๋ค. ๋ค์์ ๋น๊ต ๊ฐ์์ ๋๋ค:
๊ธฐ๋ฅ | ์ทจ์ฝ์ ํ์ง | ์ฝ๋ ๋ถ์ |
---|---|---|
๋ชฉํ | ๊ธฐ์กด ์ทจ์ฝ์ ์๋ณ | ์ ์ฌ์ ์ทจ์ฝ์ ์๋ณ |
๋ฐฉ๋ฒ๋ก | ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ | ์์ค ์ฝ๋ ๊ฒํ |
์์ | DAST, ๋ชจ์ ํดํน, SCA | SAST, ์๋ ์ฝ๋ ๊ฒํ |
์๊ธฐ | ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ | ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ ๋์ |
์ฅ์ | ๋ฐํ์ ์ค ์ทจ์ฝ์ ์๋ณ, ์ค์ ๊ณต๊ฒฉ ์๋ฎฌ๋ ์ด์ | ์กฐ๊ธฐ์ ์ทจ์ฝ์ ์๋ณ, ์์ธ ์ ๋ณด ์ ๊ณต, ์ฝ๋ ํ์ง ํฅ์ |
๋จ์ | ์ทจ์ฝ์ ์ ๋์น ์ ์์, ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆด ์ ์์, ์คํ ์์ฑ ๊ฐ๋ฅ | ์คํ ์์ฑ ๊ฐ๋ฅ, ์์ค ์ฝ๋ ์ ๊ทผ ํ์, ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆด ์ ์์ |
์กฐ์ง์ DAST์ SAST๋ฅผ ๋ชจ๋ ๋ณด์ ๊ดํ์ ํตํฉํด์ผ ํฉ๋๋ค. ๋ชจ์ ํดํน์ ์๋ํ๋ ๋๊ตฌ๊ฐ ๋์น ์ ์๋ ์ทจ์ฝ์ ์ ์ฐพ์ ์ด๋ฌํ ๋๊ตฌ๋ฅผ ๋ณด์ํฉ๋๋ค. ๋น๋ ํ๋ก์ธ์ค์ SCA๋ฅผ ํตํฉํ๋ ๊ฒ๋ ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค. ๋ํ ์ฝ๋ ๊ฒํ ๋ฅผ ํตํฉํ๋ ๊ฒ์ ์ฝ๋ ํ์ง์ ๋ณด์ฅํ๋ ํต์ฌ ์์์ ๋๋ค. ์ด๋ ๋ ํฌ๊ด์ ์ด๊ณ ๊ฒฌ๊ณ ํ ๋ณด์ ํ์ธ๋ฅผ ๋ณ์ ๊ฒ์ ๋๋ค.
์์ ํ JavaScript ๊ฐ๋ฐ์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
์์ ํ ์ฝ๋ฉ ๊ดํ์ ๊ตฌํํ๋ ๊ฒ์ JavaScript ์ ํ๋ฆฌ์ผ์ด์ ์ ์ทจ์ฝ์ ์ ์๋ฐฉํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ๋ค์์ ๋ฐ๋ผ์ผ ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค:
1. ์ ๋ ฅ๊ฐ ๊ฒ์ฆ ๋ฐ ์ด๊ท (Sanitization)
XSS, SQL ์ธ์ ์ ๋ฐ ๊ธฐํ ์ธ์ ์ ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํญ์ ๋ชจ๋ ์ฌ์ฉ์ ์ ๋ ฅ์ ๊ฒ์ฆํ๊ณ ์ด๊ท ํ์ญ์์ค. ์ด๋ ๋ฐ์ดํฐ ์ ํ, ํ์ ๋ฐ ์ ๋ ฅ ๊ธธ์ด๋ฅผ ํ์ธํ๊ณ ์ ์ฌ์ ์ผ๋ก ์ ์์ ์ธ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ์ธ์ฝ๋ฉํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด ๋ชจ๋ฒ ์ฌ๋ก๋ ์ฌ์ฉ์์ ์์น์ ๊ด๊ณ์์ด ๋ณดํธ์ ์ผ๋ก ์ํ๋์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ธ๋ก๋ฒ ์จ๋ผ์ธ ์ฌํ์ฌ๋ฅผ ์๊ฐํด ๋ณด์ญ์์ค. ๊ฒ์ ์ฟผ๋ฆฌ, ์์ฝ ์ธ๋ถ ์ ๋ณด ๋ฐ ๊ฒฐ์ ์์์ ์ฌ์ฉ์ ์ ๋ ฅ์ ๊ด๋ฒ์ํ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด ์๊ฒฉํ๊ฒ ๊ฒ์ฆ๋๊ณ ์ด๊ท ๋์ด์ผ ํฉ๋๋ค.
2. ์ถ๋ ฅ ์ธ์ฝ๋ฉ
XSS ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ถ๋ ฅ์ ์ธ์ฝ๋ฉํ์ญ์์ค. ์ด๋ ์ถ๋ ฅ์ด ํ์๋๋ ์ปจํ ์คํธ์ ๋ฐ๋ผ ์ถ๋ ฅ์ ํน์ ๋ฌธ์๋ฅผ ์ด์ค์ผ์ดํํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ์๊ตญ์์ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ์น์ฌ์ดํธ๋ฅผ ์ด์ํ๋ ์กฐ์ง์ด๋ ์ฑ๊ฐํฌ๋ฅด์์ ์ด์ํ๋ ์กฐ์ง์๊ฒ๋ ๋๊ฐ์ด ์ค์ํฉ๋๋ค. ์ธ์ฝ๋ฉ์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฌดํดํ๊ฒ ๋ง๋๋ ํต์ฌ์ ๋๋ค.
3. ์์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ๋ ์์ํฌ ์ฌ์ฉ
ํ๋ฆฝ๋๊ณ ์์ ํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ๋ ์์ํฌ๋ฅผ ํ์ฉํ์ญ์์ค. ๋ณด์ ์ทจ์ฝ์ ์ ํจ์นํ๊ธฐ ์ํด ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ๋ ์์ํฌ๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ์ญ์์ค. ํ๋ ์์ํฌ๋ ๋ณด์์ ์ฐ์ ์ํด์ผ ํฉ๋๋ค. ๊ธ๋ก๋ฒ ๋ฑ ํน ์์คํ ์ ์๋ํํฐ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌ๊ฒ ์์กดํฉ๋๋ค. ๊ฐ๋ ฅํ ๋ณด์ ๊ธฐ๋ก์ ๊ฐ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ํํ๊ณ ์ทจ์ฝ์ ์ ํจ์นํ๊ธฐ ์ํด ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
4. ์ฝํ ์ธ ๋ณด์ ์ ์ฑ (CSP)
๋ธ๋ผ์ฐ์ ๊ฐ ํน์ ์น ํ์ด์ง์ ๋ํด ๋ก๋ํ ์ ์๋ ๋ฆฌ์์ค๋ฅผ ์ ์ดํ๊ธฐ ์ํด CSP๋ฅผ ๊ตฌํํ์ญ์์ค. ์ด๋ XSS ๊ณต๊ฒฉ์ ์๋ฐฉํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. CSP๋ ์ค์ํ ๋ฐฉ์ด์ ์ ๋๋ค. ๊ธ๋ก๋ฒ ๋ด์ค ๊ธฐ๊ด์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํ ์ ์๋ ์์ค๋ฅผ ์ ํํ๊ธฐ ์ํด CSP๋ฅผ ์ฌ์ฉํ์ฌ XSS ๊ณต๊ฒฉ์ ์ํ์ ํฌ๊ฒ ์ค์ด๊ณ ์ฌ๋ฌ ๊ตญ๊ฐ์ ๋ ์์๊ฒ ํ์๋๋ ์ฝํ ์ธ ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
5. ์์ ํ ์ธ์ฆ ๋ฐ ์ธ๊ฐ
์ฌ์ฉ์ ๊ณ์ ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ์์ ํ ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ์ญ์์ค. ๊ฐ๋ ฅํ ๋น๋ฐ๋ฒํธ, ๋ค๋จ๊ณ ์ธ์ฆ ๋ฐ ์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด๋ฅผ ์ฌ์ฉํ์ญ์์ค. ๊ธฐ๋ฐ ํด๋ผ์ด์ธํธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธ๋ก๋ฒ ์กฐ์ง์ ๊ฒฝ์ฐ ์์ ํ ์ธ์ฆ์ ํ์์ ์ฌ์ง๊ฐ ์์ต๋๋ค. ์ธ์ฆ์ ์ฝ์ ์ ๊ธ๋ก๋ฒ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น๋ ๋ฐ์ดํฐ ์ ์ถ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
6. ์ ๊ธฐ์ ์ธ ๋ณด์ ๊ฐ์ฌ ๋ฐ ํ ์คํธ
์ทจ์ฝ์ ํ์ง์ ์ฝ๋ ๋ถ์์ ํฌํจํ์ฌ ์ ๊ธฐ์ ์ธ ๋ณด์ ๊ฐ์ฌ ๋ฐ ํ ์คํธ๋ฅผ ์ํํ์ญ์์ค. ์ด๋ ์๊ฐ์ด ์ง๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ ํ๊ฒ ์ ์ง๋๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด ํ ์คํธ ๋ฐ ๊ฐ์ฌ๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๋ ์ํํ์ญ์์ค. ์ ์ธ๊ณ์ ์ผ๋ก ๋ถ์ฐ๋ ์ ์ ์๊ฑฐ๋ ํ๋ซํผ์ ์๋ก์ด ๊ฒฐ์ ๋ฐฉ๋ฒ์ด๋ ์๋ก์ด ์ง์ญ๊ณผ ๊ฐ์ ์ ์ฌ์ ์ทจ์ฝ์ ์ ์๋ณํ๊ณ ํด๊ฒฐํ๊ธฐ ์ํด ๋น๋ฒํ ๋ชจ์ ํดํน๊ณผ ์ฝ๋ ๊ฒํ ๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
7. ์ข ์์ฑ ์ต์ํ
์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋๋ ์๋ํํฐ ์ข ์์ฑ์ ์๋ฅผ ์ค์ด์ญ์์ค. ์ด๋ ๊ณต๊ฒฉ ํ๋ฉด๊ณผ ์ทจ์ฝ์ ์ ์ํ์ ์ค์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉํ๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ข ์์ฑ์ด ์ ์์๋ก ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ทจ์ฝ์ ์ด ์์ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ญ๋๋ค. ์ข ์์ฑ์ ์ ์คํ๊ฒ ์ ํํ๊ณ ์ ๊ธฐ์ ์ผ๋ก ๋ณด์์ ํ๊ฐํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค.
8. ์์ ํ ๋ฐ์ดํฐ ์ ์ฅ
๋น๋ฐ๋ฒํธ ๋ฐ API ํค์ ๊ฐ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ์ญ์์ค. ์ด ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ์ํธํ ๋ฐ ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ญ์์ค. ๊ธ๋ก๋ฒ ์๋ฃ ํ๋ซํผ์ ๋ฏผ๊ฐํ ํ์ ๊ธฐ๋ก์ ๋ณดํธํ๊ธฐ ์ํด ๊ฐ๋ ฅํ ์ํธํ ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ๋ ํด๋ผ์ฐ๋์ ์๋ ๋ก์ปฌ ์๋ฒ์ ์๋ ์์ ํ๊ฒ ์ ์ฅ๋์ด์ผ ํฉ๋๋ค.
9. ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ๋ก๊น
๋ณด์ ๋ฌธ์ ๋ฅผ ํ์งํ๊ณ ์ง๋จํ๊ธฐ ์ํด ์ ์ ํ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ๋ก๊น ์ ๊ตฌํํ์ญ์์ค. ์ค๋ฅ ๋ฉ์์ง์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋ ธ์ถํ์ง ๋ง์ญ์์ค. ๋ชจ๋ ์ค๋ฅ ๋ฉ์์ง๋ ์ ์ตํด์ผ ํ์ง๋ง ๋ณด์ ์ทจ์ฝ์ ์ ๋ ธ์ถํ ์ ์๋ ์ ๋ณด๋ ์์ด์ผ ํฉ๋๋ค. ์ ์ ํ ๋ก๊น ์ ์ํ์ ๋ชจ๋ํฐ๋งํ๊ณ ์ฌ์ ์๋ฐฉ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๊ฒ ํฉ๋๋ค.
10. ์ต์ ์ ๋ณด ์ ์ง
์ต์ ๋ณด์ ์ํ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํ ์ ๋ณด๋ฅผ ๊ณ์ ํ์ ํ์ญ์์ค. ๋ณด์ ๋ด์ค๋ ํฐ๋ฅผ ๊ตฌ๋ ํ๊ณ , ์ ๊ณ ๋ธ๋ก๊ทธ๋ฅผ ํ๋ก์ฐํ๋ฉฐ, ๋ณด์ ์ปจํผ๋ฐ์ค์ ์ฐธ์ํ์ฌ ์ ๋ณด๋ฅผ ์ป์ผ์ญ์์ค. ๊ธ๋ก๋ฒ ์กฐ์ง์ ๊ฒฝ์ฐ ์ด๋ ๋ค์ํ ๊ธ๋ก๋ฒ ์์ค๋ก๋ถํฐ ์๋ก์ด ์ํ๊ณผ ๋ชจ๋ฒ ์ฌ๋ก์ ๋ํ ์ ๋ณด๋ฅผ ์ ์งํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค๋ฅธ ์ง์ญ์์ ๊ฐ์ต๋๋ ๋ณด์ ์ปจํผ๋ฐ์ค ์ฐธ์ฌ๋ ๋ค์ํ ์ธ์ด๋ก ์ํ์ ๋ค๋ฃจ๋ ๋ณด์ ๊ฒ์ํ ๊ตฌ๋ ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
JavaScript ๋ณด์ ๊ฐ์ฌ๋ฅผ ์ํ ๋๊ตฌ ๋ฐ ๊ธฐ์
JavaScript ๋ณด์ ๊ฐ์ฌ๋ฅผ ์ง์ํ๋ ์ฌ๋ฌ ๋๊ตฌ์ ๊ธฐ์ ์ด ์์ต๋๋ค:
- SAST ๋๊ตฌ: SonarQube, ESLint ๋ณด์ ํ๋ฌ๊ทธ์ธ, Semgrep
- DAST ๋๊ตฌ: OWASP ZAP, Burp Suite, Netsparker
- SCA ๋๊ตฌ: Snyk, WhiteSource, Mend (์ด์ WhiteSource)
- ๋ชจ์ ํดํน ๋๊ตฌ: Metasploit, Nmap, Wireshark
- JavaScript ๋ณด์ ํ๋ ์์ํฌ: Helmet.js (Express.js์ฉ), CSP ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ ์ ํ ๋๊ตฌ์ ์ ํ์ ์กฐ์ง์ ํน์ ์๊ตฌ ์ฌํญ๊ณผ ์์ฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ํน์ ํ๋ก์ ํธ์ ์๊ตฌ ์ฌํญ์ ๊ณ ๋ คํ์ญ์์ค. ๋๊ตฌ๋ฅผ ํ๊ฐํ ๋๋ ํญ์ ๊ธฐ๋ฅ๊ณผ ๋น์ฉ์ ๋น๊ต ๊ฒํ ํ์ญ์์ค.
์ํํธ์จ์ด ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ(SDLC)์ ๋ณด์ ํตํฉํ๊ธฐ
SDLC์ ๋ณด์์ ํตํฉํ๋ ๊ฒ์ ์์ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด๋ ์ด๊ธฐ ์ค๊ณ ๋จ๊ณ๋ถํฐ ๋ฐฐํฌ ๋ฐ ์ ์ง๋ณด์์ ์ด๋ฅด๊ธฐ๊น์ง ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ ๋ฐ์ ๊ฑธ์ณ ๋ณด์ ๊ดํ์ ํตํฉํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
1. ์๊ตฌ์ฌํญ ์์ง
์๊ตฌ์ฌํญ ์์ง ๋จ๊ณ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์ ์๊ตฌ์ฌํญ์ ์๋ณํ์ญ์์ค. ์ฌ๊ธฐ์๋ ๋ฐ์ดํฐ ๋ฏผ๊ฐ๋, ์ํ ๋ชจ๋ธ ๋ฐ ๋ณด์ ์ ์ฑ ์ ์๊ฐ ํฌํจ๋ฉ๋๋ค. ์ ์ฌ์ ์ํ๊ณผ ์ทจ์ฝ์ ์ ์๋ณํ๊ธฐ ์ํด ์ํ ๋ชจ๋ธ๋ง ์ธ์ ์ ์ํํ์ญ์์ค. ์๋ฅผ ๋ค์ด, ๊ธ๋ก๋ฒ ๊ฒฐ์ ์ฒ๋ฆฌ ํ๋ซํผ์ ์๊ตฌ์ฌํญ์ ์์งํ ๋ ๋ค์ํ ์ง์ญ์ ๋ฐ์ดํฐ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๊ท์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
2. ์ค๊ณ ๋จ๊ณ
์ค๊ณ ๋จ๊ณ์์๋ ๋ณด์์ ์ผ๋์ ๋๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณํ์ญ์์ค. ์ฌ๊ธฐ์๋ ์์ ํ ์ฝ๋ฉ ํจํด ์ฌ์ฉ, ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๋ฉ์ปค๋์ฆ ๊ตฌํ, ์์ ํ API ์ค๊ณ๊ฐ ํฌํจ๋ฉ๋๋ค. ์ค๊ณ๊ฐ ๊ฒฌ๊ณ ํ๋๋ก ์์ ํ ๊ฐ๋ฐ ์์น์ ํ์ฉํ์ญ์์ค. ์ ์ธ๊ณ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์์ ๋ฏธ๋์ด ํ๋ซํผ์ ๋ณด์์ ์ผ๋์ ๋๊ณ ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ์ธ๊ฐ ์์คํ ์ ์ค๊ณํด์ผ ํฉ๋๋ค.
3. ๊ฐ๋ฐ ๋จ๊ณ
๊ฐ๋ฐ ๋จ๊ณ์์๋ ์์ ํ ์ฝ๋ฉ ๊ดํ์ ๊ตฌํํ๊ณ , SAST ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ฝ๋ ๊ฒํ ๋ฅผ ์ํํ์ญ์์ค. ๊ฐ๋ฐ์์๊ฒ ์์ ํ ์ฝ๋ฉ ์์น์ ๊ต์กํ์ญ์์ค. ์์ ํ ์ฝ๋ฉ ํ์ค ์ฌ์ฉ์ ๊ฐ์ ํ๊ณ SAST ๋๊ตฌ๋ฅผ CI/CD ํ์ดํ๋ผ์ธ์ ํตํฉํ์ญ์์ค. ์ด ๋จ๊ณ๋ ์ข ์ข ๋ณด์ ๊ฒฐํจ์ ๋ฐ๊ฒฌํ๊ธฐ ์ํด ์ฒดํฌ๋ฆฌ์คํธ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค. ์ฌ๋ฌ ๊ตญ๊ฐ์ ๊ฐ๋ฐํ์ด ์๊ณ ๋ชจ๋ ๋ณด์ ์ง์นจ์ ๋ฐ๋ผ ์์ ํด์ผ ํ๋ ํ์ฌ๋ฅผ ์๊ฐํด ๋ณด์ญ์์ค.
4. ํ ์คํธ ๋จ๊ณ
ํ ์คํธ ๋จ๊ณ์์๋ DAST, ๋ชจ์ ํดํน ๋ฐ SCA๋ฅผ ์ํํ์ญ์์ค. ์๋ํ๋ ๋ณด์ ํ ์คํธ์ ์๋ ๋ณด์ ํ ์คํธ๋ฅผ ๋ชจ๋ ์ํํ์ญ์์ค. ์ด๋ ์ค์ํ ๋จ๊ณ์ ๋๋ค. ํ ์คํธ ํ๋ก์ธ์ค์ ๋ณด์ ํ ์คํธ๋ฅผ ํตํฉํ์ญ์์ค. ํ ์คํธ์๋ ๊ณต๊ฒฉ ์๋ฎฌ๋ ์ด์ ์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค. ๋ฐฐํฌ ์ ์ ์ ๊ธฐ์ ์ธ ๋ณด์ ํ ์คํธ๊ฐ ์ํ๋๋์ง ํ์ธํ์ญ์์ค. ๊ตญ์ ๋ด์ค ์น์ฌ์ดํธ๋ XSS ์ํ์ ์ต์ํํ๊ธฐ ์ํด ๋ชจ๋ JavaScript ์ฝ๋์ ๋ํด ๊ด๋ฒ์ํ ํ ์คํธ๋ฅผ ์ํํ ๊ฒ์ ๋๋ค.
5. ๋ฐฐํฌ ๋จ๊ณ
๋ฐฐํฌ ๋จ๊ณ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ ํ๊ฒ ๋ฐฐํฌ๋๋๋ก ํ์ญ์์ค. ์ฌ๊ธฐ์๋ ์น ์๋ฒ๋ฅผ ์์ ํ๊ฒ ๊ตฌ์ฑํ๊ณ , HTTPS๋ฅผ ํ์ฑํํ๋ฉฐ, ์ ์ ํ ๋ณด์ ํค๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค. ์ฌ์ฉ์๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ๋ฐฐํฌ๋ ์์ ํ๊ณ ํ์คํด์ผ ํฉ๋๋ค. ์ ๋ฐ์ดํธ๋ฅผ ๋ฐฐํฌํ ๋๋ ํนํ ์ ์ธ๊ณ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์์คํ ์ ๊ฒฝ์ฐ ์์ ํ ์ ์ฐจ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
6. ์ ์ง๋ณด์ ๋จ๊ณ
์ ์ง๋ณด์ ๋จ๊ณ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์ ์ทจ์ฝ์ ์ ๋ชจ๋ํฐ๋งํ๊ณ , ๋ณด์ ํจ์น๋ฅผ ์ ์ฉํ๋ฉฐ, ์ ๊ธฐ์ ์ธ ๋ณด์ ๊ฐ์ฌ๋ฅผ ์ํํ์ญ์์ค. ์์คํ ์ ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง์ด ๋ณด์์ ํต์ฌ์ ๋๋ค. ์๋ก ๋ฐ๊ฒฌ๋ ์ํ์ ํฌ์ฐฉํ๊ธฐ ์ํด ์ ๊ธฐ์ ์ผ๋ก ์ทจ์ฝ์ ์ค์บ์ ์์ฝํ์ญ์์ค. ์ ๊ธฐ์ ์ธ ๋ชจ๋ํฐ๋ง๊ณผ ์ ๋ฐ์ดํธ๋ ์๋ก์ด ์ํ์ผ๋ก๋ถํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณดํธํ๋ ๋ฐ ์ค์ํฉ๋๋ค. ์ถ์ ํ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ ํ ์ทจ์ฝ์ ์ ๋ํด ๋ชจ๋ํฐ๋ง๋๊ณ ๊ฐ์ฌ๋์ด์ผ ํฉ๋๋ค.
๊ฒฐ๋ก : JavaScript ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ ๋ฏธ๋ ๊ตฌ์ถ
JavaScript ๋ณด์ ๊ฐ์ฌ๋ ์ฌ์ด๋ฒ ์ํ์ผ๋ก๋ถํฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณดํธํ๋ ์ค์ํ ๊ณผ์ ์ ๋๋ค. ์ทจ์ฝ์ ํ์ง์ ์ฝ๋ ๋ถ์์ ์ฐจ์ด์ ์ ์ดํดํ๊ณ , ์์ ํ ์ฝ๋ฉ ๊ดํ์ ๊ตฌํํ๋ฉฐ, ์ ์ ํ ๋๊ตฌ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ์ ์ธ๊ณ์ ๊ฐ๋ฐ์์ ์กฐ์ง์ ๋ ์์ ํ๊ณ ํ๋ ฅ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ด ๊ฐ์ด๋๋ JavaScript ๋ณด์ ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๊ธฐ ์ํ ๊ธฐ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. SDLC์ ๋ชจ๋ ๋จ๊ณ์ ๋ณด์์ ํตํฉํจ์ผ๋ก์จ ๊ธฐ์ ์ ์งํํ๋ ๋ณด์ ์ํ์ ์ง๋ฉดํ์ฌ ์ฌ์ฉ์, ๋ฐ์ดํฐ ๋ฐ ํํ์ ๋ณดํธํ๊ณ ๊ธ๋ก๋ฒ ์ฌ์ฉ์ ๊ธฐ๋ฐ๊ณผ์ ์ ๋ขฐ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ฌ์ ์๋ฐฉ์ ์ด๊ณ ์ง์์ ์ธ ๋ณด์ ๋ ธ๋ ฅ์ JavaScript ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณดํธํ๊ณ ๋ชจ๋๋ฅผ ์ํ ๋ ์์ ํ ๋์งํธ ๋ฏธ๋๋ฅผ ๋ณด์ฅํ๋ ๋ฐ ๊ฐ์ฅ ์ค์ํฉ๋๋ค.