์น ์ทจ์ฝ์
ํ์ต ๋ฐฐ๊ฒฝ
- WAF ์ ์ฉ ์ cloud์ ๊ด๋ฆฌํ ๊ท์น์ ๋ฐ๋ผ ์ ์์ ์ธ ์์ฒญ๋ค์ด ์คํจ๋ก ๋๋๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด, ํน์ ๋ชจ๋ฅผ ํดํน์ ๋๋นํด ์น ์ทจ์ฝ์ ์ ๋ํด ์ ๋ฆฌํ๊ณ ์ ํ๋ค.
๊ณผ๊ฑฐ ์๋ฃ ๊ธฐ์ค ์์ 5๊ฐ์ ์น ๋ณด์ ์ทจ์ฝ์
1. SQL Injection (SQLI)
SQL, NoSQL ์์ ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ๊ฐ ๋ช ๋ น ๋๋ ์ฟผ๋ฆฌ์ ์ผ๋ถ๋ก ์ ์ก๋ผ ์คํ๋๋ ์ทจ์ฝ์
-
์ดํดํ๊ธฐ ์ฝ๊ฒ ์๋ฅผ ๋ค๋ฉด SQL๋ฌธ์ ํตํด DB์ ์ ๊ทผํ์ฌ ๋ฏผ๊ฐ์ ๋ณด๊ฐ ์ ์ถ๋ ์ ์๋ ์ทจ์ฝ์
- admin table์ ์กฐํํ๋ query์์ ํ๋ผ๋ฏธํฐ๋ก
or 1=1์ ํฌํจํ ๋ฌธ์์ด์ ๋๊ธฐ๋ ๊ฒฝ์ฐ admin table์ ๋ชจ๋ ๋ด์ฉ์ด ์กฐํ๋ ์ ์๋ค. ์ด๋ฐ์์ผ๋ก ์ฌ์ฉ์ ์ ๋ณด๊ฐ ์ ์ถ๋๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์์ - ํ๋ผ๋ฏธํฐ๋ก
; delete from admin;์ด๋ฐ์์ ๋ฌธ์์ด์ ๋๊ธฐ๋ ๊ฒฝ์ฐ ์ค์ํ ํ ์ด๋ธ ์ ๋ณด๊ฐ ์ญ์ ๋ ์๋ ์๋ค - ์ผ๋ถ๋ฌ ์๋ฌ๋ฅผ ๋ฐ์์ํฌ ์ ์๋ ๋ฌธ์์ด์ ๋๊ธฐ๋ฉด DB์ ๊ตฌ์กฐ๊ฐ ์ ์ถ ๋ ์๋ ์๋ค
- admin table์ ์กฐํํ๋ query์์ ํ๋ผ๋ฏธํฐ๋ก
-
JPA๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ฌํ Injection์์ ์์ ํ๋ค (์ถ์ฒ link)
-
JPA๊ฐ ๊ตฌํํ๋ hibernate์ ๊ฒฝ์ฐ PreparedStatement๋ฅผ ์ฌ์ฉ
-> ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ธํ sql ๊ตฌ๋ฌธ์ ๋ฏธ๋ฆฌ ์คํ๊ณํ์ ๋ฃ์ด๋๊ณ , ์คํ์์๋ ํ๋ผ๋ฏธํฐ๋ง ๊ฐ์๋ผ์์ ์ฌ์ฉ
-> ํ๋ผ๋ฏธํฐ์ sql๋ฌธ์ด ํฌํจ๋์ด ์์ด๋ ๋ฌธ์์ด๋ก ์ฒ๋ฆฌ๋จ
-
๋จ, ์ง์ EntityManager์ query๋ฅผ ์์ฑํ์ฌ ์คํํ๋ ๊ฒฝ์ฐ์๋ ์ ์ํด์ผํจ
-
-
myBatis๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋
#{}๋ฐฉ์์ผ๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ๋งคํํ๋ฉด PreparedStatement๋ฅผ ์ฌ์ฉํ๊ณ${}๋ฐฉ์์ผ๋ก ๋งคํํ๋ฉด Statement๋ฅผ ์ฌ์ฉํ๊ฒ ๋์ด SQLI์ ์ ์ํด์ผ ํ๋ค
2. XSS(Cross-Site Scripting)
์ ์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์ฝ์ ๋ ๊ฒ์๊ธ ํด๋ฆญ์ ์ ๋ํ์ฌ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํ์ทจ
-
Reflected XSS
XSS ๊ณต๊ฒฉ์ ์ํ ์คํฌ๋ฆฝํธ๊ฐ ํฌํจ๋ url์ ๊ณต๊ฒฉ ๋์์์๊ฒ ๋ ธ์ถ์ํค๋ฉด ๊ณต๊ฒฉ ๋์์๊ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ง์ ์คํํ๊ฒ ๋๋ค
-
Stored XSS
๊ณต๊ฒฉ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฒ์๊ธ ๋ฑ db์ ์ ์ฅ๋ ์ ์๋ ๊ณณ์ ์ ์ฅํ ๋ค ๊ณต๊ฒฉ ๋์์๊ฐ ํด๋น ๊ฒ์๊ธ ๋ฑ์ ์ ๊ทผํ ์ ์๋๋ก ์ ๋ํ๋ค ์ด ๋ํ ๊ณต๊ฒฉ ๋์์๊ฐ ์๋ฒ๋ก ์คํฌ๋ฆฝํธ ๋ด์ฉ์ ์ ์กํ๊ฒ ๋๋ค
-
DOM Based XSS
์ฟผ๋ฆฌ๋ก ์ง์ ์ ์ธ DOM์ ์ ์ด๋ฅผ ํ๋ ๊ฒฝ์ฐ ๊ณต๊ฒฉ์๋ client-side์ ์์ฑ๋ DOM์ ์ง์ ์ ์ดํ์ฌ ๊ณต๊ฒฉ์ ์ผ์ผํฌ ์ ์๋ค
3. ์ทจ์ฝํ ์ธ์ฆ ๋ฐ ์ธ์ ๊ด๋ฆฌ
-
์ทจ์ฝํ ๊ฐ์ฒด ์์ค ์ธ๊ฐ
- ์ฌ์ฉ์๊ฐ ํธ์ถํ๋ ค๋ ๊ธฐ๋ฅ, ๋ฐ์ดํฐ ๋์์ ์ ๊ทผํ ๋ ์ฌ์ฉ์์๊ฒ ๋ถ์ฌ๋ ๊ถํ์ ๋ง๊ฒ ์ ํจ์ฑ ์ฒดํฌ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค
/shops/{shopName}/data.json๊ฐ์ ์์ฒญ์ ๊ฒฝ์ฐ ์ ๋๋ก ๊ถํ ์ฒดํฌ๋ฅผ ํ์ง ์์ผ๋ฉด ๊ณต๊ฒฉ์๊ฐ ๋ค๋ฅธ ๊ฐ๊ฒ์ ์ ๋ณด๋ฅผ ๋นผ๋ผ ์ ์๋ค
-
์ทจ์ฝํ ์ฌ์ฉ์ ์ธ์ฆ
- ๊ณต๊ฒฉ์๊ฐ ํจ์ค์๋๋ฅผ ๋ฌด์์๋ก ๋์ ํด ๋ก๊ทธ์ธ ์๋๋ฅผ ํ ์ ์๋ ๊ฒฝ์ฐ(๋ก๊ทธ์ธ ์คํจ ํ์๊ฐ ์ ํด์ง์ง ์์)
- ์ทจ์ฝํ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ฉํ ๊ฒฝ์ฐ
- ํ ํฐ์ ์ง์ ์ฌ๋ถ๋ฅผ ํ์ธํ์ง ์๊ฑฐ๋ ์ฌ์ฉ ๋ง๊ธฐ ๊ธฐ๊ฐ์ ๊ท์ ํ์ง ์์ ๊ฒฝ์ฐ
-
์ทจ์ฝํ ๊ธฐ๋ฅ ์์ค ์ธ๊ฐ
- ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ๊ด๋ฆฌ์ API์ ์ ๊ทผํ ์ ์๋ ๊ฒฝ์ฐ
- ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ์์ฑ/๋ณ๊ฒฝ/์ญ์ ๋ฑ ๋ถ์ฌ๋ฐ์ง ์์ ์์ ์ ์ํํ ์ ์๋ ๊ฒฝ์ฐ
- ๊ทธ๋ฃน๋ง๋ค ์ ๊ทผํ ์ ์๋ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ ๊ฐ๋จํ URL ์ ๋ ฅ๋ง์ผ๋ก ์ ๊ทผํ ์ ์๊ฒ ๋๋ ๊ฒฝ์ฐ
4. CSRF(Cross Script Request Forgery)
- ์ฌ์ฉ์๊ฐ ์์ ์ ์์ง์ ๋ฌด๊ดํ๊ฒ ๊ณต๊ฒฉ์๊ฐ ์๋ํ ํ์(๋ฐ์ดํฐ ์์ , ์ญ์ , ๋ฑ๋ก ๋ฑ)์ ์๋ฒ์ ์์ฒญํ๊ฒ ๋๋ ๊ณต๊ฒฉ
- ๊ณต๊ฒฉ์๋ ์ฟ ํค ๊ธฐ๋ฐ์ ์๋ฒ ์ธ์ ์ ๋ณด๋ฅผ ํ๋ํ ๋ค ์ฌ์ฉ์๊ฐ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋๋ก ์ ๋ํ๋ค
- Referer check๋ฅผ ํตํด ๊ณต๊ฒฉ ๋ฐฉ์ด๊ฐ ๊ฐ๋ฅํจ
- api ์๋ฒ์ ๊ฒฝ์ฐ ์ธ์ ์์ด stateless ์ํ๋ก ์ด์๋๊ธฐ ๋๋ฌธ์ csrf ๋์์ ํ ํ์๊ฐ ์๋ค(์ถ์ฒ link)
5. ๋ถ์ํ ์ํธํ
๋ฏผ๊ฐ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ DB์ ์ ์ฅํ์ฌ ์กฐ์นํ ์ ์๋ค
OWASP-10 2023 version
์ถ์ฒ : LG CNS ๋ธ๋ก๊ทธ
OWASP-10
- Open Web Application Security Project ๋จ์ฒด์์ ์ ๊ณตํ๋ ์น์ฑ ๋ณด์ ์ทจ์ฝ์ TOP 10
- ๊ธฐ์กด์ ์ต์ํ๊ฒ ๋ค์ด๋ดค๋ Injection์ด ์ญ์ ๋๊ณ ์๋ก์ด ์ทจ์ฝ์ ๋ค์ด ์ถ๊ฐ๋ ๊ฒ์ด ํฅ๋ฏธ๋กญ๋ค
- ์น ๋ณด์ ์ ์ง๋ฅผ ์ํด ์ด๋ฐ ์๋ฃ๋ค์ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ธํ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค
SSRF(Server-Side Request Forgery)
๊ณต๊ฒฉ์๊ฐ ์ฌ์ฉ์๊ฐ ์๋ ์๋ฒ๋ฅผ ํตํด ํน์ ์์ ์ ์ํํ๋๋ก ๊ณต๊ฒฉํ๋ ์ ํ
client๊ฐ ๋ฐ๋ก ๋ด๋ถ resource์ ์ ๊ทผํ ์๋ ์์ง๋ง ์๋ฒ์๋ ์ ๊ทผํ ์ ์๋ ๊ฒฝ์ฐ ์ด resource๋ฅผ ๊ณต๊ฒฉํ๋ ๋ฐฉ๋ฒ์ด๋ค
- ๋
ผ ๋ธ๋ผ์ธ๋ SSRF : url ํ๋ผ๋ฏธํฐ๋ก url์ ๋๊ธฐ๋ ์น ์ดํ๋ฆฌ์ผ์ด์
์ ๊ฒฝ์ฐ
?url=file:///etc/passwd๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์ password ๊ฐ์ ์ ๋ณด์ ์ ๊ทผ - ๋ธ๋ผ์ธ๋ SSRF : ๋ฐ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ ๊ฒ์ ์๋๊ณ ์๋ฒ ๋ฐฑ์๋์ ๋ฌด๋จ ์์ ์ ์ํํ๋๋ก ํ๋ ๊ณต๊ฒฉ(์๋ฒ์ ์ด๋ค ๊ฒ์ ๋ณ๊ฒฝ, ํ์ผ ์์ /์ญ์ , ๊ถํ ๋ณ๊ฒฝ ๋ฑ) ๋ ผ ๋ธ๋ผ์ธ๋ SSRF ์์์ ๋น์ทํ๊ฒ url ํ๋ผ๋ฏธํฐ์ ์ธ๋ถ ์๋ฒ์ ๋น์ ์์ ์ผ๋ก ํฐ ์ฉ๋์ ํ์ผ ์ฃผ์๋ฅผ ๋ฃ๊ฒ ๋๋ฉด ๊ฒฐ๊ตญ ์๋ฒ๋ฅผ ๋ฉ์ถ๊ฒ ํ ์ ์๋ค
- url์ ํต์ฑ๋ก ๋๊ธฐ์ง ์๊ณ ๊ด๋ จ ๋ฆฌ์์ค์ id๋ง ๋๊ธฐ๋๋ก ํ๋ ๋ฐฉ์์ผ๋ก ์ทจ์ฝ์ ์ ์ํํ ์ ์๋ค
๊ทธ๋ฐ์ ์ทจ์ฝ์
LFI, RFI
- LFI(Local File Inclusion)
- ์น ์ดํ๋ฆฌ์ผ์ด์ ์์ ๋ก์ปฌ ํ์ผ์ ๋ก๋ํ๋๋ก ์ ๋
- ์ผ๋ฐ์ ์ผ๋ก ๊ฒฝ๋ก ์กฐ์ ๊ธฐ๋ฒ์ ์ด์ฉํ์ฌ ๊ณต๊ฒฉ(../../....)
- RFI(Remote File Inclusion)
- ์น ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ธ๋ถ ํ์ผ์ ๋ก๋ํ๋๋ก ์ ๋
- url์ ์ธ๋ถ ํ์ผ์ด ์กด์ฌํ๋ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๊ณ ๊ทธ ํ์ผ์ ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ฌ ๊ณต๊ฒฉ
- ํด๊ฒฐ ๋ฐฉ์
- ๊ฒฝ๋ก ์ด๋ ๋ฌธ์๋ฅผ ์ฝ์ ํ ์ ์๋๋ก ํํฐ๋ง (../)
- realpath๋ฅผ ํตํ ๊ฒฝ๋ก์์๋ง ๊ฐ์ ๋ฐ์์ฌ ์ ์๋๋ก ์ค์ (์์๊บผ ์ฌ์ฉ ๋ชปํ๋๋ก)
- ํ์ผ ํ์ฅ์ ๊ฒ์ฌ