๐ ์ทจ์ฝ์ ๋ถ์ ๋ณด๊ณ ์: A04 – ์ํธํ ๊ฒฐํจ
OWASP Top 10 ๋ถ๋ฅ:
A04:2025 – Cryptographic Failures (์ํธํ ๊ฒฐํจ)
์ทจ์ฝ์ ๊ฐ์: ๋์ ์์คํ ์ ์ฌ์ฉ์ ์ธ์ฆ ๊ณผ์ ์์ ๋ฏผ๊ฐ ์ ๋ณด(๋น๋ฐ๋ฒํธ)๋ฅผ ๋ณดํธํ๊ธฐ ์ํ ์ํธํ ์กฐ์น๊ฐ ์ ๊ตฌ๊ฐ(์ ์ก ๋ฐ ์ ์ฅ)์์ ๋๋ฝ๋์ด ์์ต๋๋ค. ์ด๋ ๊ณต๊ฒฉ์๊ฐ ๋คํธ์ํฌ ํจํท์ ๊ฐ๋ก์ฑ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ์ ๋ ์ฆ๊ฐ์ ์ธ ๊ณ์ ํ์ทจ๋ก ์ด์ด์ง ์ ์๋ ์ฌ๊ฐํ ๊ฒฐํจ์ ๋๋ค.
1. ์ทจ์ฝ์ ๋ถ์ ๊ฒฐ๊ณผ
๊ฐ. ๋ณด์๋์ง ์์ ํ๋กํ ์ฝ ๋ฐ ํ๋ฌธ ์ ์ก (Insecure Transmission)
- ํ์: ์ ์ก ๊ณ์ธต ์ํธํ(SSL/TLS)๊ฐ ์ ์ฉ๋์ง ์์ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์๋ฒ์ ํต์ ํฉ๋๋ค.
- ๋ฐ์ดํฐ ๋ ธ์ถ: Burp Suite๋ฅผ ์ด์ฉํ ํจํท ๋ถ์ ๊ฒฐ๊ณผ, POST /auth/login.php ์์ฒญ ์ Body ๋ฐ์ดํฐ์ pw ํ๋ผ๋ฏธํฐ๊ฐ์ด **admin**๊ณผ ๊ฐ์ด ํ๋ฌธ์ผ๋ก ์ ์ก๋จ์ ํ์ธํ์์ต๋๋ค.
- ์ํ์ฑ: ์ค๋ํ(Sniffing) ๊ณต๊ฒฉ์ ํตํด ์ 3์๊ฐ ๋คํธ์ํฌ์์์ ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฆ์ ํ๋ํ ์ ์์ต๋๋ค.
๋. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด ๋น๋ฐ๋ฒํธ ํ๋ฌธ ์ ์ฅ (Insecure Storage)
- ํ์: ์๋ฒ ์ธก ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)๋ฅผ ํ์ธํ ๊ฒฐ๊ณผ, ๋น๋ฐ๋ฒํธ๊ฐ ํด์(Hash) ์ฒ๋ฆฌ๋์ง ์์ ์๋ฌธ ๊ทธ๋๋ก ์ ์ฅ๋์ด ์์ต๋๋ค.
- ์ํ์ฑ: SQL Injection ๋ฑ์ ๊ณต๊ฒฉ์ผ๋ก DB๊ฐ ์ ์ถ๋ ๊ฒฝ์ฐ, ๋ณ๋์ ๋ณตํธํ ๊ณผ์ ์์ด ๋ชจ๋ ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๊ฐ ์ฆ์ ๋ ธ์ถ๋ฉ๋๋ค. ์ด๋ ํ ์ฌ์ดํธ์ ๊ณ์ ๊น์ง ์ํํ๋ 'ํฌ๋ฆฌ๋ด์ ์คํฐํ' ๊ณต๊ฒฉ์ ์์ธ์ด ๋ฉ๋๋ค.
2. ๊ณต๊ฒฉ ์๋๋ฆฌ์ค (Attack Scenario)
- ์ฌ์ ์กฐ์ฌ: ๊ณต๊ฒฉ์๋ ๋์ ์น์ฌ์ดํธ๊ฐ https://๊ฐ ์๋ http:// ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํ์ธํฉ๋๋ค.
- ํจํท ๊ฐ๋ก์ฑ๊ธฐ: ๋์ผ ๋คํธ์ํฌ(์: ๊ณต์ฉ Wi-Fi) ๋ด์์ ํ๋ก์ ๋๊ตฌ(Burp Suite)๋ฅผ ํ์ฑํํ์ฌ ํฌ์์์ ๋ก๊ทธ์ธ ์์ฒญ ํจํท์ ์บก์ฒํฉ๋๋ค.
- ์ ๋ณด ํ๋: ์บก์ฒ๋ ํจํท ๋ด id=admin&pw=admin ๋ฌธ์์ด์ ํตํด ๊ด๋ฆฌ์ ๊ณ์ ์ ๋ณด๋ฅผ ํ๋ฌธ์ผ๋ก ํ๋ํฉ๋๋ค.
- 2์ฐจ ๊ณต๊ฒฉ: ํ๋ณดํ ํ๋ฌธ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌ์ ํ์ด์ง์ ๋ฌด๋จ ์ ์ํ๊ฑฐ๋, ์ ์ถ๋ DB ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ ์ ์กฐ์ฌ๋ฅผ ์ค์ํ์ฌ ์ ์ฒด ์ฌ์ฉ์ ๊ณ์ ์ ํ์ทจํฉ๋๋ค.
3. ๋ณด์ ๋์ฑ (Countermeasures)
- HTTPS ํ๋กํ ์ฝ ์๋ฌดํ: ์ ๊ตฌ๊ฐ ์ํธํ ํต์ ์ ์ํด SSL/TLS ์ธ์ฆ์๋ฅผ ๋์ ํ๊ณ , HTTP ์ ์ ์ HTTPS๋ก ๊ฐ์ ๋ฆฌ๋ค์ด๋ ํธ(HSTS) ์ค์ ์ ์ ์ฉํด์ผ ํฉ๋๋ค.
- ์์ ํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ ์ ์ฉ: ๋น๋ฐ๋ฒํธ ์ ์ฅ ์ ๋ฐ๋์ ๋ณตํธํ๊ฐ ๋ถ๊ฐ๋ฅํ **๋จ๋ฐฉํฅ ํด์ ํจ์(Argon2, bcrypt, scrypt ๋ฑ)**๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ์ํ (Salting) ๊ธฐ์ ๋์ : ํด์ ์ฒ๋ฆฌ ์ ์ฌ์ฉ์๋ง๋ค ๊ณ ์ ์ ๋๋ค ๊ฐ(Salt)์ ์ถ๊ฐํ์ฌ ๋ ์ธ๋ณด์ฐ ํ ์ด๋ธ(Rainbow Table) ๊ณต๊ฒฉ์ ๋ฌด๋ ฅํํด์ผ ํฉ๋๋ค.






