์บ๋ฆฌํฌ๋์ ๋ํ๊ต ๋ฆฌ๋ฒ์ฌ์ด๋(University of California, Riverside) ์ฐ๊ตฌ์ง์ ์๋ ์ CVE-2021-20322 ์ทจ์ฝ์ ์ ์ฐจ๋จํ๊ธฐ ์ํด ์ถ๊ฐ๋ ๋ณดํธ ๊ธฐ๋ฅ์๋ ๋ถ๊ตฌํ๊ณ ์๋ํ๋ SAD DNS ๊ณต๊ฒฉ(CVE-2020-25705)์ ์๋ก์ด ๋ณ์ข ์ ๋ฐํํ์ต๋๋ค. ์๋ก์ด ๋ฐฉ๋ฒ์ ์ผ๋ฐ์ ์ผ๋ก ์๋ ์ ์ทจ์ฝ์ ๊ณผ ์ ์ฌํ๋ฉฐ ํ์ฑ UDP ํฌํธ๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋ค๋ฅธ ์ ํ์ ICMP ํจํท์ ์ฌ์ฉํ๋ค๋ ์ ๋ง ๋ค๋ฆ ๋๋ค. ์ ์๋ ๊ณต๊ฒฉ์์๋ ๊ฐ์์ ๋ฐ์ดํฐ๋ฅผ DNS ์๋ฒ ์บ์๋ก ๋์ฒดํ ์ ์์ผ๋ฉฐ, ์ด๋ ์บ์์ ์๋ ์์ ๋๋ฉ์ธ์ IP ์ฃผ์๋ฅผ ๋์ฒดํ๊ณ ํด๋น ๋๋ฉ์ธ์ ๋ํ ์์ฒญ์ ๊ณต๊ฒฉ์์ ์๋ฒ๋ก ๋ฆฌ๋๋ ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ์ํ ๋ฐฉ๋ฒ์ Linux์ ICMP ํจํท ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ํน์ฑ๊ณผ ์ฐ๊ฒฐ๋์ด Linux ๋คํธ์ํฌ ์คํ์์๋ง ์๋ํฉ๋๋ค. ICMP ํจํท ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ์๋ฒ๊ฐ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ UDP ํฌํธ ๋ฒํธ ๊ฒฐ์ ์ ๋จ์ํํ๋ ๋ฐ์ดํฐ ์ ์ถ ์์ค ์ญํ ์ ํฉ๋๋ค. ์ธ๋ถ ์์ฒญ. ์ ๋ณด ์ ์ถ์ ์ฐจ๋จํ๋ ๋ณ๊ฒฝ ์ฌํญ์ 5.15์ ๋ง Linux ์ปค๋์ ์ ์ฉ๋์์ต๋๋ค(์์ ์ฌํญ์ ์ปค๋ XNUMX ๋ฐ ์ปค๋์ LTS ๋ถ๊ธฐ์ ๋ํ XNUMX์ ์ ๋ฐ์ดํธ์ ํฌํจ๋์์ต๋๋ค). ์์ ์ฌํญ์ Jenkins Hash ๋์ ๋คํธ์ํฌ ์บ์์์ SipHash ํด์ฑ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋๋ก ์ ํํ๋ ๊ฒ์ผ๋ก ์์ฝ๋ฉ๋๋ค. ๋ฐฐํฌํ์ ์ทจ์ฝ์ ์์ ์ํ๋ Debian, RHEL, Fedora, SUSE, Ubuntu ํ์ด์ง์์ ํ๊ฐํ ์ ์์ต๋๋ค.
๋ฌธ์ ๋ฅผ ํ์ธํ ์ฐ๊ตฌ์์ ๋ฐ๋ฅด๋ฉด OpenDNS ๋ฐ Quad38(9)์ ๊ฐ์ ์ธ๊ธฐ ์๋ DNS ์๋น์ค๋ฅผ ํฌํจํ์ฌ ๋คํธ์ํฌ์ ๊ฐ๋ฐฉํ ํ์ธ์ ์ค ์ฝ 9.9.9.9%๊ฐ ์ทจ์ฝํฉ๋๋ค. ์๋ฒ ์ํํธ์จ์ด์ ๊ฒฝ์ฐ ๋ฆฌ๋ ์ค ์๋ฒ์์ BIND, Unbound, dnsmasq ๋ฑ์ ํจํค์ง๋ฅผ ์ด์ฉํ์ฌ ๊ณต๊ฒฉ์ด ๊ฐ๋ฅํ๋ค. Windows ๋ฐ BSD ์์คํ ์์ ์คํ๋๋ DNS ์๋ฒ์๋ ๋ฌธ์ ๊ฐ ๋ํ๋์ง ์์ต๋๋ค. ๊ณต๊ฒฉ์ ์ฑ๊ณต์ ์ผ๋ก ์ํํ๋ ค๋ฉด IP ์คํธํ(Spoofing)์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ณต๊ฒฉ์์ ISP๋ ๊ฐ์ง ์์ค IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ ํจํท์ ์ฐจ๋จํ์ง ์์์ผ ํฉ๋๋ค.
SAD DNS ๊ณต๊ฒฉ์ Dan Kaminsky๊ฐ 2008๋ ์ ์ ์ํ ์ ํต์ ์ธ DNS ์บ์ ์ค๋ ๋ฐฉ๋ฒ์ ์ฐจ๋จํ๊ธฐ ์ํด DNS ์๋ฒ์ ์ถ๊ฐ๋ ๋ณดํธ ๊ธฐ๋ฅ์ ์ฐํํฉ๋๋ค. Kaminsky์ ๋ฐฉ๋ฒ์ 16๋นํธ์ ๋ถ๊ณผํ DNS ์ฟผ๋ฆฌ ID ํ๋์ ์์ ํฌ๊ธฐ๋ฅผ ์กฐ์ํฉ๋๋ค. ํธ์คํธ ์ด๋ฆ ์คํธํ์ ํ์ํ ์ฌ๋ฐ๋ฅธ DNS ํธ๋์ญ์ ์๋ณ์๋ฅผ ์ ํํ๋ ค๋ฉด ์ฝ 7000๊ฐ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์ฝ 140๋ง ๊ฐ์ ๊ฐ์ ์๋ต์ ์๋ฎฌ๋ ์ด์ ํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค. ์ด ๊ณต๊ฒฉ์ ๊ฐ์์ IP ๋ฐ์ธ๋ฉ๊ณผ ๋ค์ํ DNS ํธ๋์ญ์ ์๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ DNS ํ์ธ์์๊ฒ ๋๋์ ํจํท์ ๋ณด๋ด๋ ๊ฒ์ผ๋ก ์์ฝ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์๋ต์ ์บ์ฑ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ฐ ๋๋ฏธ ์๋ต์๋ ์ฝ๊ฐ ์์ ๋ ๋๋ฉ์ธ ์ด๋ฆ(1.example.com, 2.example.com, 3.example.com ๋ฑ)์ด ํฌํจ๋ฉ๋๋ค.
์ด๋ฌํ ์ ํ์ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด DNS ์๋ฒ ์ ์กฐ์ ์ฒด๋ ํ์ธ ์์ฒญ์ด ์ ์ก๋๋ ์์ค ๋คํธ์ํฌ ํฌํธ ์๋ฅผ ๋ฌด์์๋ก ๋ฐฐํฌํ์ฌ ์๋ณ์์ ํฌ๊ธฐ๊ฐ ์ถฉ๋ถํ์ง ์์ ๊ฒ์ ๋ณด์ํ์ต๋๋ค. ๊ฐ์ ์๋ต ์ ์ก์ ์ํ ๋ณดํธ๋ฅผ ๊ตฌํํ ํ 16๋นํธ ์๋ณ์๋ฅผ ์ ํํ๋ ๊ฒ ์ธ์๋ 64๊ฐ์ ํฌํธ ์ค ํ๋๋ฅผ ์ ํํด์ผ ํ์ผ๋ฉฐ ์ด๋ก ์ธํด ์ ํ ์ต์ ์๊ฐ 2^32๋ก ๋์ด๋ฌ์ต๋๋ค.
SAD DNS ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋คํธ์ํฌ ํฌํธ ๋ฒํธ ๊ฒฐ์ ์ ๊ทผ๋ณธ์ ์ผ๋ก ๋จ์ํํ๊ณ ๊ณต๊ฒฉ์ ๊ณ ์ ์ ์ธ Kaminsky ๋ฐฉ๋ฒ์ผ๋ก ์ค์ผ ์ ์์ต๋๋ค. ๊ณต๊ฒฉ์๋ ICMP ์๋ต ํจํท์ ์ฒ๋ฆฌํ ๋ ๋คํธ์ํฌ ํฌํธ ํ๋์ ๋ํ ์ ์ถ๋ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ๋์ง ์๊ฑฐ๋ ํ์ฑ์ธ UDP ํฌํธ์ ๋ํ ์ก์ธ์ค๋ฅผ ํ์งํ ์ ์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๊ฒ์ ์ต์ ์๋ฅผ 4๋ฐฐ(2^16 ๋์ 2^16+2^32(131_072_4_294 ๋์ 967_296))๋งํผ ์ค์ผ ์ ์์ต๋๋ค. ํ์ฑ UDP ํฌํธ๋ฅผ ์ ์ํ๊ฒ ํ์ธํ ์ ์๋ ์ ๋ณด ์ ์ถ์ ์กฐ๊ฐํ ์์ฒญ(ICMP ์กฐ๊ฐํ ํ์ ํ๋๊ทธ) ๋๋ ๋ฆฌ๋๋ ์ (ICMP ๋ฆฌ๋๋ ์ ํ๋๊ทธ)์ด ํฌํจ๋ ICMP ํจํท์ ์ฒ๋ฆฌํ๋ ์ฝ๋์ ๊ฒฐํจ์ผ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ํจํท์ ๋ณด๋ด๋ฉด ๋คํธ์ํฌ ์คํ์ ์บ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฏ๋ก ์๋ฒ์ ์๋ต์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ค UDP ํฌํธ๊ฐ ํ์ฑํ๋์ด ์๊ณ ์ด๋ค ํฌํธ๊ฐ ํ์ฑํ๋์ง ์์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
๊ณต๊ฒฉ ์๋๋ฆฌ์ค: DNS ํ์ธ์๋ ๋๋ฉ์ธ ์ด๋ฆ ํ์ธ์ ์๋ํ ๋ ๋๋ฉ์ธ์ ์ ๊ณตํ๋ DNS ์๋ฒ์ UDP ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋
๋๋ค. ํ์ธ์๊ฐ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ๊ณต๊ฒฉ์๋ ์์ฒญ์ ๋ณด๋ด๋ ๋ฐ ์ฌ์ฉ๋ ์์ค ํฌํธ ๋ฒํธ๋ฅผ ์ ์ํ๊ฒ ํ์ธํ๊ณ ์ฌ๊ธฐ์ ๊ฐ์ง ์๋ต์ ๋ณด๋ด IP ์ฃผ์ ์คํธํ์ ์ฌ์ฉํ์ฌ ๋๋ฉ์ธ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ DNS ์๋ฒ๋ฅผ ๊ฐ์ฅํ ์ ์์ต๋๋ค. DNS ํ์ธ์๋ ๊ฐ์ง ์๋ต์ผ๋ก ์ ์ก๋ ๋ฐ์ดํฐ๋ฅผ ์บ์ํ๊ณ ์ผ๋ง ๋์ ๋๋ฉ์ธ ์ด๋ฆ์ ๋ํ ๋ค๋ฅธ ๋ชจ๋ DNS ์์ฒญ์ ๋ํด ๊ณต๊ฒฉ์๊ฐ ๋์ฒดํ IP ์ฃผ์๋ฅผ ๋ฐํํฉ๋๋ค.
์ถ์ฒ : opennet.ru