์บ์ ์๋จธ๊ฐ ์ด์ด์ค ๋ท๋ฌธ — Mirasvit Full Page Cache์ ์ ๋ขฐํ ์ ์๋ ์ญ์ง๋ ฌํ ์ด์ผ๊ธฐ
์ผํ๋ชฐ ๊ด๋ฆฌ์ ์ ์ฅ์์ '์บ์ ์๋จธ(Cache Warmer)'๋ ๊ณ ๋ง์ด ๋๊ตฌ์. ์๋์ด ๋ชฐ๋ฆฌ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ํ์ด์ง๋ฅผ ๋ฐ์๋๋ ์ฒซ ๋ฐฉ๋ฌธ์๋ ๋น ๋ฅธ ํ๋ฉด์ ๋ง๋๊ฒ ๋จ. ๊ทธ๋ฐ๋ฐ ๊ทธ ๋ฐ๋ปํจ์ ๋คํธ์์, Magento์ฉ Mirasvit Full Page Cache ํ์ฅ ๊ธฐ๋ฅ์ด ์ธ๋ถ์์ ๋ค์ด์จ ๋ฐ์ดํฐ๋ฅผ ๋๋ฌด ์์ํ PHP ๊ฐ์ฒด๋ก ๋์ด๋ ค๋ด๋ ๊ธธ์ ์ด์ด๋๋ค๋ ์ ์ด CVE-2026-45247๋ก ์ ๋ฆฌ๋์์. ํธ์ ๊ธฐ๋ฅ์ด ๊ณต๊ฒฉ ํ๋ฉด์ด ๋๋, ๋ณด์์์ ์์ฃผ ๋ณด๋ ๊ทธ ์ฅ๋ฉด์.
- Mirasvit Full Page Cache Warmer๊ฐ ์ ๋ขฐํ ์ ์๋ ์ ๋ ฅ์ ์ญ์ง๋ ฌํ(unserialize)ํด PHP ๊ฐ์ฒด ์ฃผ์ ์ผ๋ก ์ด์ด์ง ์ ์๋ ์ทจ์ฝ์ ์(CVE-2026-45247).
- Magento(์ ์์๊ฑฐ๋) ํ๊ฒฝ์์ ์บ์ ๊ด๋ จ ์ ๋ ฅ๊ฐ์ด ๊ฐ์ฒด๋ก ๋ณต์๋๋ฉฐ, ๋งค์ง ๋ฉ์๋ ์ฒด์ธ์ ํตํ ์ฝ๋ ์คํ·ํ์ผ ์กฐ์ ๊ฐ๋ฅ์ฑ์ด ์ฐ๋ ค๋จ.
- ๋ฐฉ์ด๋ ํ์ฅ ๊ธฐ๋ฅ ์ ๋ฐ์ดํธ, ์ ๋ ฅ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ, unserialize ์ฌ์ฉ ์ง์ ์ ๊ฒ, WAF·๋ก๊ทธ ๋ชจ๋ํฐ๋ง์ ์กฐํฉ์ผ๋ก ์ ๊ทผํจ.
์ญ์ง๋ ฌํ๊ฐ ์ ๊ทธ๋ ๊ฒ ์ํํ๊ฐ
์ง๋ ฌํ๋ ๊ฐ์ฒด๋ฅผ ์ ์ฅ·์ ์กํ๊ธฐ ์ข์ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๋ ์ผ์ด๊ณ , ์ญ์ง๋ ฌํ๋ ๊ทธ ๋ฌธ์์ด์ ๋ค์ ๊ฐ์ฒด๋ก ๋์ด๋ฆฌ๋ ์ผ์. ๋ฌธ์ ๋ ์ด '๋์ด๋ฆฌ๋' ๊ณผ์ ์์ PHP๊ฐ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๋ฉด์ __wakeup(), __destruct() ๊ฐ์ ๋งค์ง ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ํธ์ถํ๋ค๋ ์ ์. ๊ณต๊ฒฉ์๊ฐ ์ง๋ ฌํ ๋ฌธ์์ด์ ํด๋์ค ์ด๋ฆ๊ณผ ์์ฑ๊ฐ์ ๋ง์๋๋ก ์ง์ ํ ์ ์์ผ๋ฉด, ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ด๋ฏธ ์กด์ฌํ๋ ํด๋์ค๋ค์ ๋ถํ์ฒ๋ผ ์ฎ์ด(์ด๊ฑธ ๊ฐ์ ฏ ์ฒด์ธ์ด๋ผ๊ณ ๋ถ๋ฆ) ํ์ผ์ ์ฐ๊ฑฐ๋ ์ง์ฐ๊ณ , ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ฝ๋ ์คํ๊น์ง ๋ ธ๋ฆด ์ ์์.
์ฆ ์ทจ์ฝ์ ์ ๋ณธ์ง์ '๋ฏฟ์ด๋ ๋๋ ๋ฐ์ดํฐ์ธ์ง ํ์ธํ์ง ์๊ณ unserialize์ ๋๊ธฐ๋ ๊ฒ'์ ์์. Mirasvit Full Page Cache Warmer์ ๊ฒฝ์ฐ, ์บ์๋ฅผ ๋ฐ์ฐ๋ ํ๋ฆ์์ ์ธ๋ถ ์ํฅ์ ๋ฐ์ ์ ์๋ ๊ฐ์ด ๊ฒ์ฆ ์์ด ๊ฐ์ฒด๋ก ๋ณต์๋๋ ๊ฒฝ๋ก๊ฐ ์ฝ์ ์ผ๋ก ์ง๋ชฉ๋จ. ๊ณต๊ฒฉ ์ฌํ์ ๊ฐ๋ ์์ค์์๋ง ์ดํดํ๋ฉด ์ถฉ๋ถํ๊ณ , ์ฌ๊ธฐ์ ๋์ํ๋ ํ์ด๋ก๋๋ฅผ ๋ง๋ค์ด ๋ณด์ผ ์ด์ ๋ ์์.
๋ฐฉ์ด์๊ฐ ๊ฐ์ฅ ๋จผ์ ๋ณผ ๊ณณ
ํ์ง์ ์ํ๋ฅผ ๊ฐ์ด ๊ฐ์ ธ๊ฐ์ผ ํจ. ์ฐ์ ์์๋ฅผ ๋งค๊ธฐ์๋ฉด ์ด๋ ๊ฒ ์ ๋ฆฌ๋จ.
- ๋ฒ์ ํ์ธ๊ณผ ์ ๋ฐ์ดํธ: ๊ฐ์ฅ ํ์คํ ๋ฐฉ์ด์. ์ค์น๋ Mirasvit Full Page Cache ํ์ฅ์ ๋ฒ์ ์ ์ ๊ฒํ๊ณ , ๋ฒค๋๊ฐ ๋ฐฐํฌํ ํจ์น ๋ฒ์ ์ผ๋ก ์ฌ๋ฆฌ๋ ๊ฒ์ด ๋จผ์ ์. ์ ํํ ์ํฅ ๋ฒ์ ๊ณผ ์ ์๋ ๋ฒค๋ ๊ณต์ง์ NVD ํญ๋ชฉ์ ์ง์ ๋์กฐํด ํ์ธํ๋ ํธ์ ๊ถํจ.
- unserialize ์ฌ์ฉ ์ง์ ๊ฐ์ฌ: ์ฝ๋๋ฒ ์ด์ค์์ unserialize() ํธ์ถ์ ์ ๋ถ ์ฐพ์, ์ ๋ ฅ ์ถ์ฒ๊ฐ ์ ๋ขฐ ๊ฐ๋ฅํ์ง ๋ฐ์ ธ๋ด. ๊ผญ ๊ฐ์ฒด ๋ณต์์ด ํ์ ์๋ค๋ฉด json_decode ๊ฐ์ ๋ฐ์ดํฐ ์ ์ฉ ํ์์ผ๋ก ๋ฐ๊พธ๊ณ , ๋ถ๊ฐํผํ๋ค๋ฉด allowed_classes ์ต์ ์ผ๋ก ๋ณต์ ๊ฐ๋ฅํ ํด๋์ค๋ฅผ ํ์ดํธ๋ฆฌ์คํธ๋ก ์ ํํ๋ ๋ฐฉ์์ด ์์ ํจ.
- ์ ๋ ฅ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ: ์บ์ ํค·ํ๋ผ๋ฏธํฐ์ฒ๋ผ ์ธ๋ถ์์ ๋ฟ์ ์ ์๋ ๊ฐ์๋ ์๋ช (HMAC)์ด๋ ์๊ฒฉํ ํ์ ๊ฒ์ฆ์ ๋ถ์ฌ, ๋ณ์กฐ๋ ์ง๋ ฌํ ๋ฌธ์์ด์ด ์ญ์ง๋ ฌํ ๋จ๊ณ๊น์ง ๋๋ฌํ์ง ๋ชปํ๊ฒ ๋ง์.
ํ์ง·๋ชจ๋ํฐ๋ง ๊ด์
์๋ฒฝํ ์ฐจ๋จ์ด ์ด๋ ต๋ค๋ฉด '๋นจ๋ฆฌ ์์์ฑ๋' ์ชฝ์ผ๋ก ๋ณด์ํจ. ์น ์์ฒญ ๋ก๊ทธ์์ ์ง๋ ฌํ ํจํด(์: O:๋ก ์์ํ๋ ๊ฐ์ฒด ํ๊ธฐ, ๋น์ ์์ ์ผ๋ก ๊ธด ์ธ์ฝ๋ฉ ๋ฌธ์์ด)์ด ์บ์ ๊ด๋ จ ์๋ํฌ์ธํธ๋ก ๋ค์ด์ค๋์ง ์ดํด๋ด. WAF๊ฐ ์๋ค๋ฉด ์ญ์ง๋ ฌํ ์์ฌ ํ์ด๋ก๋๋ฅผ ํ์ง·์ฐจ๋จํ๋ ๊ท์น์ ์บ์ ์๋จธ ๊ฒฝ๋ก์ ๋ง์ถฐ ์ ๊ฒํจ. Magento ์ด์์ด๋ผ๋ฉด ํ์ผ์์คํ ๋ฌด๊ฒฐ์ฑ ๋ชจ๋ํฐ๋ง์ ํจ๊ป ์ผ์, ๊ฐ์์ค๋ฌ์ด ํ์ผ ์์ฑ·์์ ์ด ๊ฐ์ฒด ์ฃผ์ ์ ํ์ ์ ์๋์ง ํ์ธํ๋ ํ๋ฆ์ด ๋์์ด ๋จ. ๊ฐ์ธ์ ์ผ๋ก๋ ์์ฌ์ค๋ฌ์ด ์๋ํฌ์ธํธ๋ฅผ ์ ํด ํ๋์ ์์ธ ๋ก๊น ์ ์ผ๋๊ณ ํจํด์ ๋ชจ์๋ณด๋ ๋ฐฉ์์ ์ถ์ฒํจ — ์ฌํ ๋ถ์ํ ๋ ์ด๋งํ ์๋ฃ๊ฐ ์์.
์ ์์๊ฑฐ๋๋ผ์ ๋ ์ ๊ฒฝ ์ฐ์ด๋ ์ด์
์ผํ๋ชฐ์ ๊ฒฐ์ ·ํ์ ์ ๋ณด๊ฐ ๋ชจ์ด๋ ๊ณณ์ด๋ผ, ์ฝ๋ ์คํ์ผ๋ก ์ด์ด์ง ์ ์๋ ์ทจ์ฝ์ ์ ๊ณง ์นด๋ ์คํค๋ฐ(๋งค์ง์นดํธ๋ฅ) ๊ฐ์ ํ์ ๊ณต๊ฒฉ์ ๋ฐํ์ด ๋๊ธฐ ์ฌ์. ์บ์ ์๋จธ๋ ์ฑ๋ฅ์ ์ํด ๋๊ฒ ๋์ํ๋ค ๋ณด๋ ๊ณต๊ฒฉ์๊ฐ ๋ ธ๋ฆฌ๊ธฐ ์ข์ ๊ธธ๋ชฉ์ด๊ธฐ๋ ํจ. ๊ทธ๋์ ๋จ์ํ 'ํจ์น ํ๋ ์ฌ๋ฆฌ๊ณ ๋'์ด ์๋๋ผ, ๊ฐ์ ํ์ฅ ์ํ๊ณ์ ๋ค๋ฅธ ์ง๋ ฌํ ์ง์ , ๊ด๋ฆฌ์ ๊ถํ ๋ถ๋ฆฌ, ์ธ๋ถ ๋ ธ์ถ ์ต์ํ๊น์ง ํ ๋ฒ์ ์ ๊ฒํด๋๋ ํธ์ด ๋ง์์ด ๋์.
์ ๋ฆฌํ๋ฉฐ
์ด๋ฒ ๊ฑด์ ์๋ก์ด ๋ง๋ฒ์ด ์๋๋ผ, PHP ์ญ์ง๋ ฌํ๋ผ๋ ์ค๋๋ ์ฝ์ ์ด ๋ ํ ๋ฒ ์ค์ ์ ํ์์ ๋๋ฌ๋ ์ฌ๋ก์. ํต์ฌ์ ๋ ๊ฐ์ — ๋ฏฟ์ ์ ์๋ ์ ๋ ฅ์ ๊ฐ์ฒด๋ก ๋์ด๋ฆฌ์ง ์๋๋ค. ์ด์ ์ค์ธ Magento์ Mirasvit ์บ์ ํ์ฅ์ ์ฐ๊ณ ์๋ค๋ฉด, ์ค๋ ๋ฒ์ ๋ถํฐ ํ์ธํ๊ณ unserialize ์ง์ ์ ํ ๋ฒ ํ์ด๋ณด๋ ๊ฑธ๋ก ์์ํด๋ณด๋ฉด ์ข๊ฒ ์. ๋น์ทํ ์ญ์ง๋ ฌํ ์ฌ๋ก๋ฅผ ๋ถ์ํ ๊ฒฝํ์ด ์๋ค๋ฉด ๋๊ธ๋ก ํ์ง ๋ ธํ์ฐ ๋๋ ์ฃผ์ธ์. ๊ฐ์ด ๋ณด์ ๊ทผ์ก ํค์๋ด์!