Aurora ๋ชจ๋ฐ์ผ ์ด์ ์ฒด์ (Open Mobile Platform ํ์ฌ์์ ๊ฐ๋ฐํ Sailfish OS์ ํฌํฌ)์ ๊ฐ๋ฐ์๋ Aurora ๋ชจ๋ฐ์ผ ์ด์ ์ฒด์ ์ ๊ฑฐ์ ๋ํ ๊ณต๊ฐ์ ์ธ ์ด์ผ๊ธฐ๋ฅผ ๊ณต์ ํ์ต๋๋ค. ์ฌ๊ฐํ ์ทจ์ฝ์ (CVE-2020-6096)๋ ARMv7 ํ๋ซํผ์๋ง ๋ํ๋๋ Glibc์ ์์ต๋๋ค. ์ทจ์ฝ์ ์ ๋ํ ์ ๋ณด๋ ์ง๋ XNUMX์์ ๊ณต๊ฐ๋์์ง๋ง, ์ทจ์ฝ์ ์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ์ต๊ทผ๊น์ง ์์ ์ฌํญ์ด ์ ๊ณต๋์ง ์์์ต๋๋ค. ํ ๋น๋ ์ํ๋๊ฐ ๋์ผ๋ฉฐ memcpy() ๋ฐ memmove() ํจ์์์ ํน์ ๋ฐฉ์์ผ๋ก ํ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฝ๋ ์คํ์ ๊ตฌ์ฑํ ์ ์๋ ์๋ ์ค์ธ ์ต์คํ๋ก์ ํ๋กํ ํ์
์ด ์์ต๋๋ค. ํจํค์ง ์์ ์ฌํญ ๋ฐ๋น์ ะธ Ubuntu ์์ง ๊ณต๊ฐ๋์ง ์์์ผ๋ฉฐ ์ทจ์ฝ์ ์ ๊ณต๊ฐ๋ ์์ ๋ถํฐ ๊ฑฐ์ XNUMX๊ฐ์, Glibc ๊ฐ๋ฐ์์๊ฒ ํต๋ณด๋ ์์ ๋ถํฐ XNUMX๊ฐ์ ๋์ ์์ ๋์ง ์์ ์ํ๋ก ๋จ์ ์์ต๋๋ค.
ํด๋น ์ทจ์ฝ์ ์ ARMv7์ฉ ์ด์
๋ธ๋ฆฌ ์ธ์ด์ memcpy() ๋ฐ memmove() ๊ตฌํ์์ ๋ํ๋ฌ์ผ๋ฉฐ ๋ณต์ฌ๋ ์์ญ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ ๋งค๊ฐ๋ณ์์ ์์ ๊ฐ์ ์๋ชป ์ฒ๋ฆฌํ์ฌ ๋ฐ์ํ์ต๋๋ค. ํจ์น ๊ฐ๋ฐ ๋ฌธ์ ๋ ํ์ฌ์์ ์์๋์์ต๋๋ค. SUSE ะธ ๋ ๋ํ ์์ฌ ํ๋ซํผ์ 32๋นํธ ARMv7 ์์คํ
์ฉ์ผ๋ก ๋น๋๋์ง ์์๊ณ ์์ ์ฌํญ ์์ฑ์ ์ฐธ์ฌํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ์ ์ํฅ์ ๋ฐ์ง ์๋๋ค๊ณ ๋ฐํํ์ต๋๋ค. ๋ง์ ์๋ฒ ๋๋ ๋ฐฐํฌํ์ ๊ฐ๋ฐ์๋ค์ Glibc ํ์ ์์กดํด ์์ผ๋ฉฐ ์์ ์ฌํญ ์ค๋น์ ์ ๊ทน์ ์ผ๋ก ์ฐธ์ฌํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ต์
๋ฐ์ ๋ฌธ์ ๋ฅผ ์ฐจ๋จํ๊ธฐ ์ํด Huawei๋ ์๋ช
๋ ํผ์ฐ์ฐ์(bge ๋ฐ blt)๋ก ์๋ํ๋ ์กฐ๋ฆฝ ์ง์นจ์ ์๋ช
๋์ง ์์ ์๋ ๋ก๊ทธ(blo ๋ฐ bhs)๋ก ๋์ฒดํ๋ ค๊ณ ์๋ํ๋ค๊ณ ๊ฑฐ์ ์ฆ์ ์ ์ํ์ต๋๋ค. Glibc ๊ด๋ฆฌ์๋ ๋ค์ํ ์ค๋ฅ ์กฐ๊ฑด์ ํ์ธํ๊ธฐ ์ํด ์ผ๋ จ์ ํ
์คํธ๋ฅผ ๊ฐ๋ฐํ ํ Huawei ํจ์น๊ฐ ์ ํฉํ์ง ์์ผ๋ฉฐ ๊ฐ๋ฅํ ๋ชจ๋ ์
๋ ฅ ๋ฐ์ดํฐ ์กฐํฉ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
Aurora OS์๋ ARM์ฉ 32๋นํธ ๋น๋๊ฐ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์๋ ์์ฒด์ ์ผ๋ก ์ทจ์ฝ์ ์ ํด๊ฒฐํ๊ณ ์ปค๋ฎค๋ํฐ์ ์๋ฃจ์
์ ์ ๊ณตํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ ค์ด ์ ์ ํจ์์ ํจ์จ์ ์ธ ์ด์
๋ธ๋ฆฌ ์ธ์ด ๊ตฌํ์ ์์ฑํ๊ณ ์
๋ ฅ ์ธ์์ ๋ํ ๋ค์ํ ์ต์
์ ๊ณ ๋ คํด์ผ ํ๋ค๋ ๊ฒ์ด์์ต๋๋ค. ์๋ช
๋์ง ์์ ์ง์นจ์ ์ฌ์ฉํ์ฌ ๊ตฌํ์ด ๋ค์ ์์ฑ๋์์ต๋๋ค. ํจ์น ์์ ๊ฒ์ผ๋ก ๋ฐํ์ก์ง๋ง ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ์คํ ์๋๋ฅผ ์ ์งํ๊ณ memcpy ๋ฐ memmove ํจ์์ ์ฑ๋ฅ ์ ํ๋ฅผ ํผํ๋ฉด์ ๋ชจ๋ ์
๋ ฅ ๊ฐ ์กฐํฉ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๋ ๊ฒ์ด ์์ต๋๋ค.
3์ ์ด์ Glibc ๊ด๋ฆฌ์์ ํ
์คํธ ํ๋ ์์ํฌ์ Aurora์ ๋ด๋ถ ํ
์คํธ ์ ํ๊ตฐ์ ํต๊ณผํ ๋ ๊ฐ์ง ๋ฒ์ ์ ์์ ์ฌํญ์ด ์ค๋น๋์์ต๋๋ค. XNUMX์ XNUMX์ผ์ ์ต์
์ค ํ๋๊ฐ ์ ํ๋์๊ณ ์ ์ ๋ Glibc ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์. ์ผ์ฃผ์ผ ํ
์์๋ค ์ ์ ์ ๊ทผ ๋ฐฉ์์ด ์ ์ฌํ ๋ ๋ค๋ฅธ ํจ์น๋ Huawei๊ฐ ์ด์ ์ ์์ ํ๋ ค๊ณ ์๋ํ ๋ค์ค ์ํคํ
์ฒ ๊ตฌํ์ ๋ฌธ์ ๋ฅผ ์์ ํ์ต๋๋ค. ํ
์คํธ๋ ํ ๋ฌ์ด ๊ฑธ๋ ธ๊ณ ๋ฒ์ ๋ฑ๋ก ํจ์น์ ์ค์์ฑ ๋๋ฌธ์
๋๋ค.
8์ XNUMX์ผ ์ ์ ๋ฐ์๋ค์ฌ์ก๋ค ๊ณง ์ถ์๋ glibc 2.32 ๋ฆด๋ฆฌ์ค์ ๋ฉ์ธ ๋ธ๋์น๋ก ์ด๋ํฉ๋๋ค. ๊ตฌํ์๋ ๋ ๊ฐ์ง ํจ์น๊ฐ ํฌํจ๋ฉ๋๋ค. ะฟะตัะฒัะน ARMv7์ฉ memcpy์ ๋ค์ค ์ํคํ
์ฒ ๊ตฌํ ์ด ARM์ฉ memcpy() ๋ฐ memmove()์ ์ผ๋ฐ ์ด์
๋ธ๋ฆฌ ์ธ์ด ๊ตฌํ์ ์ํ ๊ฒ์
๋๋ค.
์ด ๋ฌธ์ ๋ Linux๋ฅผ ์คํํ๋ ์๋ฐฑ๋ง ๋์ ARMv7 ์ฅ์น์ ์ํฅ์ ๋ฏธ์น๋ฉฐ ์ ์ ํ ์
๋ฐ์ดํธ๊ฐ ์์ผ๋ฉด ์์ ์๊ฐ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ ๋ ์ํ์ ์ฒํ๊ฒ ๋ฉ๋๋ค(ํฌ๊ธฐ ์ ํ ์์ด ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ๋ ๋คํธ์ํฌ ์ก์ธ์ค ๊ฐ๋ฅ ์๋น์ค ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ด ๊ณต๊ฒฉ๋ฐ์ ์ ์์). ์๋ฅผ ๋ค์ด, ์ทจ์ฝ์ ์ ์๋ณํ ์ฐ๊ตฌ์๋ค์ด ์ค๋นํ ์ต์คํ๋ก์์ ๋งค์ฐ ํฐ GET ์์ฒญ์ ๋ณด๋ด๊ณ ์์คํ
์ ๋ํ ๋ฃจํธ ์ก์ธ์ค ๊ถํ์ ํ๋ํ์ฌ ์๋์ฐจ ์ ๋ณด ์์คํ
์ ๋ด์ฅ๋ HTTP ์๋ฒ๋ฅผ ๊ณต๊ฒฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์ถ์ฒ : opennet.ru