์ต๊ทผ ์ด์ฌ๋ฆ์๋ CVE-4.92-2019 ์ทจ์ฝ์ ์ผ๋ก ์ธํด Exim์ ๋ฒ์ 10149๋ก ์
๋ฐ์ดํธํด์ผ ํ๋ค๋ ์์ฒญ์ด ๋๋ฆฌ ํผ์ก์ต๋๋ค(
์ด์ ๊ธด๊ธํ๊ฒ ์
๋ฐ์ดํธํ ๋ชจ๋ ์ฌ์ฉ์๋ ๋ค์ "๊ธฐ๋ป"ํ ์ ์์ต๋๋ค. 21๋
2019์ XNUMX์ผ Zerons ์ฐ๊ตฌ์์ ๋ค์์์ ์น๋ช
์ ์ธ ์ทจ์ฝ์ ์ ๋ฐ๊ฒฌํ์ต๋๋ค. TLS ์ฌ์ฉ ์ Exim ๋ฉ์ผ ์ ์ก ์์ด์ ํธ(MTA) ๋ฒ์ ์ ๊ฒฝ์ฐ 4.80 4.92.1 ์ต๋ ํฌํจ, ์๊ฒฉ ํ์ฉ ํน๊ถ์ ์ธ ๊ถํ์ผ๋ก ์ฝ๋ ์คํ (
์ทจ์ฝ์
๋ณด์ TLS ์ฐ๊ฒฐ์ ์ค์ ํ ๋ GnuTLS ๋ฐ OpenSSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ๋ ์ทจ์ฝ์ ์ด ์กด์ฌํฉ๋๋ค.
๊ฐ๋ฐ์ Heiko Schlittermann์ ๋ฐ๋ฅด๋ฉด Exim์ ๊ตฌ์ฑ ํ์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก TLS๋ฅผ ์ฌ์ฉํ์ง ์์ง๋ง ๋ง์ ๋ฐฐํฌํ์์๋ ์ค์น ์ค์ ํ์ํ ์ธ์ฆ์๋ฅผ ์์ฑํ๊ณ ๋ณด์ ์ฐ๊ฒฐ์ ํ์ฑํํฉ๋๋ค. ๋ํ ์ต์ ๋ฒ์ ์ Exim์ ์ต์ ์ ์ค์นํฉ๋๋ค. tls_advertise_hosts=* ํ์ํ ์ธ์ฆ์๋ฅผ ์์ฑํฉ๋๋ค.
๊ตฌ์ฑ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ๋๋ถ๋ถ์ ๋ฐฐํฌํ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฅผ ํ์ฑํํ์ง๋ง Exim์ TLS ์๋ฒ๋ก ์๋ํ๋ ค๋ฉด ์ธ์ฆ์+ํค๊ฐ ํ์ํฉ๋๋ค. ์๋ง๋ Distros๋ ์ค์ ์ค์ ์ธ์ฆ์๋ฅผ ์์ฑํ ๊ฒ์ ๋๋ค. ์ต์ Exim์๋ "*"๋ก ๊ธฐ๋ณธ๊ฐ์ด ์ค์ ๋ tls_advertise_hosts ์ต์ ์ด ์์ผ๋ฉฐ, ์๋ฌด๊ฒ๋ ์ ๊ณต๋์ง ์์ ๊ฒฝ์ฐ ์์ฒด ์๋ช ๋ ์ธ์ฆ์๋ฅผ ์์ฑํฉ๋๋ค.
์ทจ์ฝ์ ์์ฒด๋ ํด๋ผ์ด์ธํธ๊ฐ ๋๋ฉ์ธ ์ด๋ฆ์ ๋ํ ์ฌ๋ฐ๋ฅธ ์ธ์ฆ์๋ฅผ ์์ฒญํ๊ธฐ ์ํด RFC 2003์ 3546๋
์ ๋์
๋ ๊ธฐ์ ์ธ SNI(Server Name Indication)์ ์๋ชป๋ ์ฒ๋ฆฌ์ ์์ต๋๋ค.
Qualys์ ์ฐ๊ตฌ์๋ค์ด string_printing(tls_in.sni) ํจ์์์ โโ์ ์๋ชป๋ ์ด์ค์ผ์ดํ์ ๊ด๋ จ๋ ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฐฑ์ฌ๋์๋ ์ธ์ ์คํ ํค๋ ํ์ผ์ ์ด์ค์ผ์ดํ๋์ง ์์ ์ํ๋ก ๊ธฐ๋ก๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ spool_read_header() ํจ์์ ์ํด ํน๊ถ ๊ถํ์ผ๋ก ์ด ํ์ผ์ ์ฝ์ด ํ ์ค๋ฒํ๋ก๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ์ฌ Exim ๊ฐ๋ฐ์๊ฐ ์ทจ์ฝํ ์๊ฒฉ ์๋ฒ์์ ๋ช ๋ น์ ์คํํ์ฌ ์ทจ์ฝ์ฑ์ ๋ํ PoC๋ฅผ ์์ฑํ์ง๋ง ์์ง ๊ณต๊ฐ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ฒ๊ทธ ์ ์ฉ์ ์ฉ์ด์ฑ์ผ๋ก ์ธํด ์ด๋ ์๊ฐ ๋ฌธ์ ์ผ ๋ฟ์ด๋ฉฐ ์๋นํ ์งง์ต๋๋ค.
Qualys์ ๋ ์์ธํ ์ฐ๊ตฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
TLS์์ SNI ์ฌ์ฉ
์ ์ฌ์ ์ผ๋ก ์ทจ์ฝํ ๊ณต์ฉ ์๋ฒ ์
๋๊ท๋ชจ ํธ์คํ ์ ๊ณต์ ์ฒด์ ํต๊ณ์ ๋ฐ๋ฅด๋ฉด ์ด์ํํธ(์ฃผ) 1์ 4.92์ผ ํ์ฌ ์๋ ์๋ฒ์์๋ ๋ฒ์ 70๊ฐ ํธ์คํธ์ XNUMX% ์ด์์์ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
๋ฒ์
์๋ฒ ์
ํผ์ผํธ
4.92.1
6471
1.28%
4.92
376436
74.22%
4.91
58179
11.47%
4.9
5732
1.13%
4.89
10700
2.11%
4.87
14177
2.80%
4.84
9937
1.96%
๋ค๋ฅธ ๋ฒ์
25568
5.04%
E-Soft Inc ํ์ฌ ํต๊ณ
๊ฒ์์์ง์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
- ์ฝ 3,500,000๋ช ์ด Exim 4.92๋ฅผ ์ฌ์ฉํฉ๋๋ค(์ฝ 1,380,000๋ช ์ด SSL/TLS๋ฅผ ์ฌ์ฉํจ).
- 74,000์ ์ฌ์ฉํ๋ฉด 4.92.1๊ฐ ์ด์(SSL/TLS๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ 25,000๊ฐ)
๋ฐ๋ผ์ ๊ณต๊ฐ์ ์ผ๋ก ์๋ ค์ง๊ณ ์ก์ธ์ค ๊ฐ๋ฅํ Exim์ ์ ์ฌ์ ์ผ๋ก ์ทจ์ฝํ ์๋ฒ ์๋ ์ฝ 1.5M.
Shodan์์ Exim ์๋ฒ ๊ฒ์
๋ณดํธ
- ๊ฐ์ฅ ๊ฐ๋จํ์ง๋ง ๊ถ์ฅ๋์ง ์๋ ์ต์ ์ TLS๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ ์ ๋ฉ์ผ ๋ฉ์์ง๊ฐ ์ํธํ๋์ง ์์ ์ํ๋ก ์ ๋ฌ๋ฉ๋๋ค.
- ์ทจ์ฝ์ ์
์ฉ์ ๋ฐฉ์งํ๋ ค๋ฉด ํด๋น ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธํ๋ ๊ฒ์ด ๋ ๋ฐ๋์งํฉ๋๋ค.
์์ฌ ์ธํฐ๋ท ๋ฉ์ผ๋ฌ 4.92.2 . - ํจ์น ๋ฒ์ ์ ์
๋ฐ์ดํธํ๊ฑฐ๋ ์ค์นํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ต์
์ ๋ํ Exim ๊ตฌ์ฑ์์ ACL์ ์ค์ ํ ์ ์์ต๋๋ค. acl_smtp_mail ๋ค์ ๊ท์น์ ๋ฐ๋ฆ
๋๋ค.
# to be prepended to your mail acl (the ACL referenced # by the acl_smtp_mail main config option) deny condition = ${if eq{}{${substr{-1}{1}{$tls_in_sni}}}} deny condition = ${if eq{}{${substr{-1}{1}{$tls_in_peerdn}}}}
์ถ์ฒ : habr.com