์น์ ๊ธธ๋ชฉ์ ์งํค๋ NGINX, ๊ทธ ๊ธธ๋ชฉ ์์ฒด์ ๊ตฌ๋ฉ์ด ๋ ๊ฐ ๋ซ๋ ธ๋ค
์ธํฐ๋ท์์ ์์ฒญ ํ๋๊ฐ ์ด๋ค ์ฌ์ดํธ์ ๋์ฐฉํ๊ธฐ๊น์ง, ๋๋ถ๋ถ์ NGINX๋ผ๋ ๊ด๋ฌธ์ ํ ๋ฒ์ ๊ฑฐ์น๋ค. ์ ์ ํ์ผ์ ๋ด๋ ค์ฃผ๊ณ , ๋คํธ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ก ํธ๋ํฝ์ ๋๋ ์ฃผ๊ณ , ๋๋ก๋ TLS๋ฅผ ๋์ด์ฃผ๋ ๊ทธ ์กฐ์ฉํ ์ค๊ฐ์ ๋ง์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฒ์ F5๊ฐ ๋ด๋์ ํจ์น๋, ๋ฐ๋ก ๊ทธ ๊ธธ๋ชฉ์ ์งํค๋ NGINX Open Source ์์์ ์๊ฒฉ ์ฝ๋ ์คํ์ผ๋ก ์ด์ด์ง ์ ์๋ ์น๋ช ์ ๊ฒฐํจ ๋ ๊ฐ๋ฅผ ๋ง์ ๊ฒ์ด๋ผ ๋ฌด๊ฒ๊ฐ ๋ค๋ฅด๋ค.
- F5๊ฐ NGINX Open Source์ ์น๋ช ์ ๊ฒฐํจ ๋ ๊ฑด์ ํจ์นํ์ผ๋ฉฐ, ์กฐ๊ฑด์ด ๋ง์ผ๋ฉด ์๊ฒฉ ์ฝ๋ ์คํ์ผ๋ก ์ด์ด์ง ์ ์์.
- NGINX๋ ์๋ง์ ์น์ฌ์ดํธ·API ๊ฒ์ดํธ์จ์ด ์๋จ์ ๋์ฌ ์์ด, ํ ์ธ์คํด์ค๊ฐ ๋ซ๋ฆฌ๋ฉด ๊ทธ ๋ค์ ์๋น์ค ์ ์ฒด๊ฐ ์ฌ์ ๊ถ์ ๋ค์ด๊ฐ.
- ๋ฐฉ์ด๋ ๋จ์ํจ — ์ต์ ๋น๋๋ก์ ์ ์ํ ํจ์น, ๋ ธ์ถ๋ฉด ์ ๊ฒ, ๋น์ ์ ์๋ต·์์ปค ํ๋ก์ธ์ค ํ๋ ๋ชจ๋ํฐ๋ง.
์ '๊ด๋ฌธ'์ ์ทจ์ฝ์ ์ด ๋ ๋ฌด์์ด๊ฐ
์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ๊ทธ๋ ๊ทธ ์ฑ ํ๋์ ๋ฌธ์ ๋ก ๋๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์. ํ์ง๋ง NGINX๋ ์์น๊ฐ ๋ค๋ฆ. ์ธ๋ถ์์ ๋ค์ด์ค๋ ํธ๋ํฝ์ด ๊ฐ์ฅ ๋จผ์ ๋ฟ๋ ์๋ฆฌ, ์ฆ ์ ๋ขฐ ๊ฒฝ๊ณ์ ๋งจ ์์ ์ ์๋ ์ํํธ์จ์ด์. ์ด ์๋ฆฌ์์ ์๊ฒฉ ์ฝ๋ ์คํ์ด ์ฑ๋ฆฝํ๋ค๋ ๊ฒ์, ๊ณต๊ฒฉ์๊ฐ ์ธ์ฆ ์ ์ฐจ๋ฅผ ๊ฑฐ์น๊ธฐ๋ ์ ์ ๋ฐฉ์ด์ ์ ์ฒซ ์นธ์์ ์ฝ๋๋ฅผ ๋๋ฆด ์ ์๋ค๋ ๋ป๊ณผ ๊ฐ์.
๊ฒ๋ค๊ฐ NGINX๋ ๋ฆฌ๋ฒ์ค ํ๋ก์·๋ก๋๋ฐธ๋ฐ์·API ๊ฒ์ดํธ์จ์ด๋ก ์๋ ํญ๋๊ฒ ์ฐ์ฌ์, ํ ๋๊ฐ ์ฅ์ ๋๋ฉด ๊ทธ ๋ค์ ์จ๊ฒจ๋ ๋ด๋ถ ์๋น์ค๋ค์ด ํ๊บผ๋ฒ์ ๋ ธ์ถ๋๊ธฐ ์ฌ์. '์๋จ๋ง ์ธํฐ๋ท์ ์ด๊ณ ๋ค๋ ์ฌ์ค๋ง์ ์จ๊ฒผ๋ค'๋ ์ ํ์ ์ธ ๊ตฌ์ฑ์ด, ์ญ์ค์ ์ผ๋ก ์๋จ ํ ๊ณณ์ด ๋ซ๋ฆฌ๋ ์๊ฐ ๋ด๋ถ๋ก ๋ค์ด๊ฐ๋ ๋ฐํ์ด ๋๋ ๊ตฌ์กฐ์.
์ด๋ฐ ๊ฒฐํจ์ด RCE๋ก ์ด์ด์ง๋ ๊ฐ๋
์น ์๋ฒ์์ ์๊ฒฉ ์ฝ๋ ์คํ์ด ์ฑ๋ฆฝํ๋ ๊ฒฝ๋ก๋ ๋๊ฐ ๋น์ทํ ๊ฒฐ์ ๊ฐ์ง. ๊ณต๊ฒฉ์๊ฐ ํต์ ํ๋ ์ ๋ ฅ์ด ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ ๊ณผ์ ์์ ๊ฒฝ๊ณ๋ฅผ ๋๊ฑฐ๋, ์๋ฒ๊ฐ ๊ทธ ์ ๋ ฅ์ ์ ๋ขฐํด ์๋ชป๋ ๋ถ๊ธฐ·ํด์์ ํ๋๋ก ์ ๋ํ๋ ์์. ์ฌ๊ธฐ์๋ ๊ฐ๋ ์์ค์ผ๋ก๋ง ์ง์ด๋๋ ๊ฒ์ด ๋ง์.
- ํน์ํ๊ฒ ์กฐ์๋ ์์ฒญ์ด๋ ํค๋๊ฐ ํ์ฑ ๋จ๊ณ์์ ์์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ผ์ผํค๋ ๊ฒฝ์ฐ.
- ํน์ ๊ธฐ๋ฅ(ํ๋ก์, ์บ์ฑ, ํน์ ํ๋กํ ์ฝ ์ฒ๋ฆฌ ๋ฑ)์ด ์ผ์ ธ ์์ ๋๋ง ์ํ ์กฐ๊ฑด์ด ์ฑ๋ฆฝํ๋ ๊ฒฝ์ฐ — ์ฆ ๋ชจ๋ ์ค์ ์ด ๋์ผํ๊ฒ ์ํํ ๊ฒ์ ์๋.
- ๊ทธ ๊ฒฐ๊ณผ๋ก ์์ปค ํ๋ก์ธ์ค์ ํ๋ฆ์ด ๊ณต๊ฒฉ์ ์๋๋๋ก ๊บพ์ด๋ฉด์, ์ต์ข ์ ์ผ๋ก ์์ ์ฝ๋ ์คํ์ ๋ฟ๋ ๊ฒฝ์ฐ.
์ค์ํ ์ ์, ์ด๋ฐ ๊ฒฐํจ์ ๋ณดํต 'ํน์ ๋น๋ + ํน์ ์ค์ '์ด๋ผ๋ ์กฐ๊ฑด์ด ๋ง์๋จ์ด์ง ๋ ๋ฌด๊ฒ๊ฐ ์ปค์ง๋ค๋ ๊ฒ์. ๊ทธ๋์ ๋ฐฉ์ด์ ์ ์ฅ์์๋ ์ฐ๋ฆฌ ํ๊ฒฝ์ด ๊ทธ ์กฐ๊ฑด์ ํด๋นํ๋์ง๋ถํฐ ๋น ๋ฅด๊ฒ ์์๋ด๋ ์ผ์ด ๋จผ์ ์.
๋ฐฉ์ด์๊ฐ ์ง๊ธ ํ ์ผ
ํ๋ คํ ๋์์ด ํ์ํ ๊ฒ ์๋. ์ด๋ฐ ๋ฅ์ ๊ฒฐํจ์ '์ผ๋ง๋ ๋นจ๋ฆฌ ์ต์ ๋น๋๋ก ์ฌ๋ฆฌ๋๋'๊ฐ ์ฌ์ค์ ์น๋ถ์ ์ ๋ถ์.
- ๋ฒ์ ์๋ณ: ์ด์ ์ค์ธ NGINX์ ์ ํํ ๋น๋๋ฅผ ๋จผ์ ํ์ธ. ์ง์ ์ค์น๋ณธ๋ฟ ์๋๋ผ ์ปจํ ์ด๋ ์ด๋ฏธ์ง, ์ดํ๋ผ์ด์ธ์ค ๋ด์ฅ๋ณธ, ๋ค๋ฅธ ์ ํ์ ๋ฒ๋ค๋ NGINX๊น์ง ๋น ์ง์์ด ๋ชฉ๋กํํ๋ ๊ฒ์ด ํต์ฌ์. ์ํ์ง ์ธ์คํด์ค๊ฐ ๊ฐ์ฅ ์ํํจ.
- ํจ์น ์ ์ฉ: F5๊ฐ ๊ณต๊ฐํ ์์ ๋ฒ์ ์ผ๋ก ์ ์ํ ์ ๋ฐ์ดํธ. ์ฆ์ ์ฌ๋ฆฌ๊ธฐ ์ด๋ ค์ด ํ๊ฒฝ์ด๋ผ๋ฉด, ๋ฌธ์ ์ ์ฐ๊ด๋ ๊ธฐ๋ฅ ๋ชจ๋์ ์ ์ ๋นํ์ฑํํ๊ฑฐ๋ ๋ ธ์ถ์ ์ค์ด๋ ์์ ์ํ์ฑ ์ ๊ฒํ .
- ๋ ธ์ถ๋ฉด ์ถ์: ์ธ๋ถ์ ๊ตณ์ด ์ด๋ ค ์์ ์ด์ ๊ฐ ์๋ ๊ด๋ฆฌ·๋ถ๊ฐ ์๋ํฌ์ธํธ๋ ๋ด๋ถ๋ง์ด๋ ์ ๋ขฐ IP๋ก ์ ํ. ์ธํฐ๋ท์ ๋ ์๋ NGINX๊ฐ ์ ๋ง ๋ค ๋ ์์ด์ผ ํ๋์ง ๋์ง์ด๋ณด๋ ๊ฒ๋ง์ผ๋ก๋ ๊ณต๊ฒฉ ๋ฉด์ ์ด ์ค์ด๋ฆ.
- ํ์ง: ํ์์ ๋ค๋ฅธ ํํ์ ํค๋·์์ฒญ, ๋น์ ์์ ์ผ๋ก ์งง์ ๊ฐ๊ฒฉ์ ์ค๋ฅ ์๋ต, ์์ปค ํ๋ก์ธ์ค๊ฐ ์๊ธฐ์น ์๊ฒ ์ฃฝ๊ฑฐ๋ ์ฌ์์๋๋ ํจํด์ ๋ก๊ทธ·APM์์ ์ดํ. WAF ์๋จ์ ๋๋ค๋ฉด ์๋ ค์ง ์ต์คํ๋ก์ ์๋ ์๊ทธ๋์ฒ ๊ฐฑ์ ๋ ๊ฐ์ด.
ํ ๊ฐ์ง ๋ง๋ถ์ด๋ฉด, ํจ์น๋ฅผ ์ ์ฉํ๋ค๊ณ ๋์ด ์๋. ๊ฒฐํจ์ด ๊ณต๊ฐ๋ ์์ ๊ณผ ์ฐ๋ฆฌ๊ฐ ๋ง์ ์์ ์ฌ์ด์ ์ด๋ฏธ ๋๊ตฐ๊ฐ ๋ค์ด์์ ๊ฐ๋ฅ์ฑ์ ํญ์ ์์ฌํด์ผ ํจ. ํจ์น ํ์๋ ํด๋น ์๋ฒ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ๊ณ , ์ต๊ทผ ์ ๊ทผ ๋ก๊ทธ๋ฅผ ๊ฑฐ๊พธ๋ก ํ์ด ์ด์ ์งํ๋ฅผ ํ ๋ฒ ๋ ํ์ธํ๋ ์ฌํ ์ ๊ฒ์ด ๊ฐ์ด ๊ฐ์ผ ํจ.
๋ง๋ฌด๋ฆฌ
๊ฐ์ธ์ ์ผ๋ก๋ ์ด๋ฐ '์๋จ ์ธํ๋ผ' ์ทจ์ฝ์ ์ด ๋์ฌ ๋๋ง๋ค, ํ๋ คํ ์ ์ข ์ ์ฑ์ฝ๋๋ณด๋ค ๋ ๊ธด์ฅํ๊ฒ ๋จ. ์ฐ๋ฆฌ๊ฐ ๋งค์ผ ์์งํ๋ฉด์๋ ์ ์ ๋ฒ์ ํ ๋ฒ ์ ๋ค์ฌ๋ค๋ณธ ๊ทธ ์กฐ์ฉํ ๊ด๋ฌธ๋ค์ด, ์๊ณ ๋ณด๋ฉด ๊ฐ์ฅ ๋์ ๋ฌธ์ผ ๋๊ฐ ๋ง๊ธฐ ๋๋ฌธ์. ์ค๋์ ์ฐ๋ฆฌ ํ๊ฒฝ์ NGINX ๋ชฉ๋ก๋ถํฐ ํ ์ค๋ก ์ ๋ฆฌํด๋ณด๋ ๊ฑด ์ด๋จ๊น. ์๊ณ ์๋ ์ธ์คํด์ค ํ๋๋ฅผ ์ฐพ์๋ด๋ ๊ฒ, ๊ทธ๊ฒ ์ด๋ฒ ์ฃผ์ ๊ฐ์ฅ ๊ฐ์ง ๋ณด์ ์์ ์ผ์ง๋ ๋ชจ๋ฆ. ์ ๊ฒํ๋ค ๋งํ๋ ๋ถ๋ถ ์์ผ๋ฉด ๋๊ธ๋ก ๊ฐ์ด ํ์ด๋ด์.
# ๋๊ธ