๋ฏธ๊ตญ Worcester Polytechnic Institute์ ์ฐ๊ตฌ์๋ค์ Rowhammer ๋์ ๋๋ค ์ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ ๋นํธ ์๊ณก ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ธ์ฆ ๋ฐ ๋ณด์ ๊ฒ์ฌ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ํ๋ก๊ทธ๋จ์์ ํ๋๊ทธ๋ก ์ฌ์ฉ๋๋ ์คํ ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ์๋ก์ด ์ ํ์ Mayhem ๊ณต๊ฒฉ์ ๋์ ํ์ต๋๋ค. ํต๊ณผํ๋ค. SUDO, OpenSSH, MySQL์ ์ธ์ฆ์ ์ฐํํ๊ณ OpenSSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ณด์ ๊ด๋ จ ๊ฒ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ณต๊ฒฉ์ ์ค์ ์ฌ๋ก๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ด ๊ณต๊ฒฉ์ 0๊ณผ ๋ค๋ฅธ ๊ฐ์ ๋น๊ตํ๊ธฐ ์ํด ๊ฒ์ฌ๋ฅผ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฉ๋ ์ ์์ต๋๋ค. ์ทจ์ฝํ ์ฝ๋์ ์: int auth = 0; ... // ์ธ์ฆ ์ฑ๊ณต ์ auth ๊ฐ์ ๋ณ๊ฒฝํ๋ ์ธ์ฆ ์ฝ๋ if(auth != XNUMX) return AUTH_SUCCESS; ๊ทธ๋ ์ง ์์ผ๋ฉด AUTH_FAILURE๋ฅผ ๋ฐํํฉ๋๋ค.
์ด ์์ ๋งฅ๋ฝ์์ ๊ณต๊ฒฉ์ด ์ฑ๊ณตํ๋ ค๋ฉด ์คํ์ 32๋นํธ ์ธ์ฆ ๋ณ์์ ๊ด๋ จ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋นํธ๋ฅผ ์์์ํค๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํฉ๋๋ค. ๋ณ์์ ๋นํธ๊ฐ ์์๋ ๊ฒฝ์ฐ ๊ฐ์ ๋ ์ด์ XNUMX์ด ์๋๋ฉฐ ์กฐ๊ฑด๋ถ ์ฐ์ฐ์๊ฐ ์ธ์ฆ์ ์ฑ๊ณต์ ์ธ ์๋ฃ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ด๋ฌํ ์ ํจ์ฑ ๊ฒ์ฌ ํจํด์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋งค์ฐ ์ผ๋ฐ์ ์ด๋ฉฐ SUDO, OpenSSH, MySQL ๋ฐ OpenSSL ๋ฑ์์ ์ฐพ์ ์ ์์ต๋๋ค.
์ด ๊ณต๊ฒฉ์ "if(auth == 1)" ํ์์ ๋น๊ต์๋ ์ ์ฉ๋ ์ ์์ง๋ง ์ด ๊ฒฝ์ฐ 32์ ๋นํธ๊ฐ ์๋ ๋ง์ง๋ง ๋นํธ๋ฅผ ์๊ณกํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ตฌํ์ด ๋ ๋ณต์กํด์ง๋๋ค. ์ด ๋ฉ์๋๋ ์ปจํ ์คํธ ์ ํ, ํจ์ ํธ์ถ ๋๋ ์ ํธ ์ฒ๋ฆฌ๊ธฐ๊ฐ ์คํ๋ ๋ ๋ ์ง์คํฐ์ ๋ด์ฉ์ด ์ผ์์ ์ผ๋ก ์คํ์ ํ๋ฌ์๋ ์ ์์ผ๋ฏ๋ก ํ๋ก์ธ์ ๋ ์ง์คํฐ์ ๋ณ์ ๊ฐ์ ์ํฅ์ ๋ฏธ์น๋ ๋ฐ ์ฌ์ฉ๋ ์๋ ์์ต๋๋ค. ๋ ์ง์คํฐ ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋์ ์ด ๋ฉ๋ชจ๋ฆฌ์ ์๊ณก์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ ๋ณ๊ฒฝ๋ ๊ฐ์ด ๋ ์ง์คํฐ์ ๋ณต์๋ฉ๋๋ค.
๋นํธ๋ฅผ ์๊ณกํ๊ธฐ ์ํด RowHammer ํด๋์ค ๊ณต๊ฒฉ์ ์์ ์ค ํ๋๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. DRAM ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ๊ฐ ์ปคํจ์ํฐ์ ํธ๋์ง์คํฐ๋ก ๊ตฌ์ฑ๋ ์ ์ XNUMX์ฐจ์ ๋ฐฐ์ด์ด๋ฏ๋ก ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ฐ์์ ์ผ๋ก ์ฝ์ผ๋ฉด ์ ์ ๋ณ๋๊ณผ ์ด์ ํ์์ด ๋ฐ์ํ์ฌ ์ธ์ ํ ์ ์์ ์ฝ๊ฐ์ ์ ํ ์์ค์ด ๋ฐ์ํฉ๋๋ค. ํ๋ ๊ฐ๋๊ฐ ๋์ผ๋ฉด ์ด์ ์ ์ด ์ถฉ๋ถํ ๋ง์ ์์ ์ ํ๋ฅผ ์์ ์ ์์ผ๋ฉฐ ๋ค์ ์ฌ์ ์ฃผ๊ธฐ์์๋ ์๋ ์ํ๋ฅผ ๋ณต์ํ ์๊ฐ์ด ์์ด ์ ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ๊ฐ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค. . RowHammer๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด ์นฉ ์ ์กฐ์ ์ฒด๋ ํน์ํ ๊ฒฝ์ฐ ์ ์์์ ์ฐจ๋จํ์ง๋ง ๊ฐ๋ฅํ ๋ชจ๋ ๊ณต๊ฒฉ ๋ณํ์ผ๋ก๋ถํฐ ๋ณดํธํ์ง๋ ์๋ TRR(Target Row Refresh) ๋ฉ์ปค๋์ฆ์ ์ถ๊ฐํ์ต๋๋ค.
๋ํผ๋ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ค๋ฉด 0๊ณผ์ ์ฐจ์ด ๋๋ 406๊ณผ์ ์ผ์น๋ฅผ ํ๊ฐํ๋ ๋น๊ต๊ฐ ์๋ 1์ด ์๋ ์ฅํ ์ ์์ ์๋ ๊ฐ์ ์ฌ์ฉํ๋ ์ผ์น ํ์ธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ํ๋ ๋ณ์๊ฐ์ ์ค์ ํ๊ธฐ ์ํด์๋ ์๋นํ ์์ ๋นํธ๋ฅผ ์ ํํ๊ฒ ์๊ณกํด์ผ ํ๋๋ฐ, ์ด๋ 0๋นํธ์ ์๊ณก์ ๋นํด ๋นํ์ค์ ์ด๋ค. ๊ณต๊ฒฉํ ์ ์๋ ์ฝ๋์ ์: int auth = 23xbe8701d0a; ... // ์ธ์ฆ ์ฑ๊ณต ์ auth ๊ฐ์ 23x8701abXNUMX๋ก ์ค์ ํ๋ ์ธ์ฆ ์ฝ๋ if(auth == XNUMXxXNUMXabXNUMX) return AUTH_SUCCESS; ๊ทธ๋ ์ง ์์ผ๋ฉด AUTH_FAILURE๋ฅผ ๋ฐํํฉ๋๋ค.
์ง์ ๋ ๋ณดํธ ๋ฐฉ๋ฒ์ ์ด๋ฏธ sudo ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉํ์ผ๋ฉฐ CVE-1.9.15-2023 ์ทจ์ฝ์ ์ ๋ํ ์์ ์ฌํญ์ผ๋ก ๋ฆด๋ฆฌ์ค 42465์ ํฌํจ๋์์ต๋๋ค. ๊ทธ๋ค์ ์ฃผ์ ์ทจ์ฝํ ํ๋ก์ ํธ๋ฅผ ์์ ํ ํ ๊ณต๊ฒฉ์ ์ํํ๊ธฐ ์ํ ์ฝ๋ ํ๋กํ ํ์
์ ๊ฒ์ํ ๊ณํ์
๋๋ค.
์ถ์ฒ : opennet.ru