10๋ ๋์ SUSE LINUX Enterprise Server ํ๋ก์ ํธ๋ฅผ ์ด๋์๋ SUSE(Future Technology Team, openSUSE MicroOS ๋ฐ SLE Micro ๊ฐ๋ฐ)์ Future Technology Team ๋ฆฌ๋์ธ Thorsten Kukuk์ ๋ค์์์ /var/run/utmp ํ์ผ์ ์ ๊ฑฐํ ๊ฒ์ ์ ์ํ์ต๋๋ค. Glibc์ Y2038 ๋ฌธ์ ๋ฅผ ์์ ํ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฐํฌํ. utmp, wtmp ๋ฐ lastlog๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ systemd-logind๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๋ ๊ฒ์ผ๋ก ์ด๋ํ๋๋ก ์ ์๋ฉ๋๋ค.
19๋ 2038์ 32์ผ์ 64๋นํธ time_t ์ ํ์ผ๋ก ์ง์ ๋ epoch ์๊ฐ ์นด์ดํฐ๊ฐ ์ค๋ฒํ๋ก๋ฉ๋๋ค. Glibc์์๋ 32๋นํธ time_t ์ ํ์ ๋์ ์๋ ๋ถ๊ตฌํ๊ณ 64๋นํธ ์ฌ์ฉ์ ๊ณต๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๊ธฐ ์ํด 32๋นํธ ํ๋ซํผ์์ ์ผ๋ถ ๊ฒฝ์ฐ์ 32๋นํธ time_t ์ ํ์ด ์ฌ์ ํ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฌํ ๊ฒฝ์ฐ ์ค ํ๋๋ ํ์ฌ ์์คํ ์ ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ /var/run/utmp ํ์ผ์ ๋๋ค. utmp์ ์๊ฐ ํ๋๋ XNUMX๋นํธ time_t ๊ฐ์ ์ฌ์ฉํ์ฌ ์ค์ ๋ฉ๋๋ค.
์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ utmp์ ํ๋๋ฅผ 32๋นํธ ์ ํ์์ 64๋นํธ ์ ํ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ Glibc ABI๋ฅผ ๋ณ๊ฒฝํ๋ฏ๋ก ์๋ํ์ง ์์ต๋๋ค(์ ํ์ login(), getutid() ๋ฐ utmpname()๊ณผ ๊ฐ์ ํจ์์์ ๋ณ๊ฒฝ๋ฉ๋๋ค) ) ๋ฐ w, who, uptime, login, su, sudo, useradd, systemd, sysvinit, tcsh, xterm ๋์คํ๋ ์ด ๊ด๋ฆฌ์, emacs, openssh, qemu, samba, rsyslog ๋ฑ์ ํฌํจํ์ฌ utmp๋ฅผ ์ฌ์ฉํ๋ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ์ ํธํ์ฑ์ ์ค๋จํฉ๋๋ค. ๊ฐ๋ฅํ ํจ์ ๊ณผ ๋ฒ๊ฑฐ๋ก์์ด ๋ง๊ธฐ ๋๋ฌธ์ utmp์์ time_t ์ ํ์ ๋นํธ ๊ธธ์ด๋ฅผ ๋์ฒดํ๋ ค๋ ์์ด๋์ด๋ Glibc ๊ฐ๋ฐ์์ ์ํด ๊ฑฐ๋ถ๋์์ต๋๋ค. ๊ฐ์ ์ด์ ๋ก ์ถ๊ฐ 64๋นํธ ์๊ฐ ํ๋๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด utmp ๊ตฌ์กฐ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ์ฌ์ฉํ๋ ์ต์ ์ด ์ญ์ ๋์์ต๋๋ค.
๋ํ utmp์์ ์ ํ์ ๋นํธ ์ฌ๋๋ฅผ ๋ณ๊ฒฝํด๋ ๊ธฐ์กด์ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ ์ ๊ฑฐํ๊ณ ์ถ์ต๋๋ค. ์๋ฅผ ๋ค์ด utmp์ ์ฐ๋ ค๋ฉด ํน์ ๊ถํ์ด โโํ์ํ๋ฉฐ, ์ด๋ฅผ ์ํด์๋ ํ๋ก์ธ์ค์ ์ถ๊ฐ ๊ถํ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค. ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ utmp ์ํคํ ์ฒ๊ฐ ๋ก์ปฌ ์ฌ์ฉ์๊ฐ ํ์ผ ์ ๊ธ ์กฐ์์ ํตํด utmp ์๋น์ค๋ฅผ ์ค๋จ์ํค๋ DoS ๊ณต๊ฒฉ์ ์ํํ ์ ์๋๋ก ํ์ฉํ์ฌ utmp์ ๋ด์ฉ์ด ์์คํ ์ ์ค์ ์ํ๋ฅผ ๋ฐ์ํ๋์ง ํ์ธํ ์ ์๊ฒ ํ๋ค๋ ๊ฒ์ ๋๋ค. utmp์ ๋ํ ์ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ถ๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์๋์์ง๋ง ์ด๋ฌํ ์์ ์๋ ์ด๋ฏธ systemd-logind ํ๋ก์ธ์ค๊ฐ ์์ผ๋ฉฐ ๋ค๋ฅธ ํน์ ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ ๊ฒ์ ๋ฐ๋์งํ์ง ์์ต๋๋ค(์์ฉ ํ๋ก๊ทธ๋จ์ ๋์์ ๋ ํธ๋ค๋ฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ผ ํจ). .
๋์์, DoS ๊ณต๊ฒฉ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ผ๋ utmp์ ๋ด์ฉ์ ์ ๋ณด์ฉ์ผ๋ก๋ง ๋จ๊ณ ํ์ค ๋ฐ์์ ๋ณด์ฅํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค๋ฅธ ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ์ ๋ฉํฐํ๋ ์๋ ์ํ๋ฅผ ๋ค๋ฅด๊ฒ ๋ฐ์ํฉ๋๋ค. XNUMX๊ฐ์ GNOME ํฐ๋ฏธ๋์ ์คํํ๋ฉด ํ ๋ช ์ ์ฌ์ฉ์๊ฐ utmp์ ๋ฐ์๋๋ ๋ฐ๋ฉด, KDE์์ XNUMX๊ฐ์ konsole ๋๋ xterm ํฐ๋ฏธ๋์ ์คํํ๋ฉด XNUMX๊ฐ๊ฐ ๋ฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก screen๊ณผ tmux์ ๋์๋ ๋ค๋ฆ ๋๋ค. ์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ๊ฐ ์ธ์ ์ด ๋ณ๋์ ์ฌ์ฉ์๋ก ๊ณ์ฐ๋๊ณ ๋ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ํ ๋ช ์ ์ฌ์ฉ์๋ง ๋ชจ๋ ์ธ์ ์ ๋ฐ์๋ฉ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ์ฅ ๊ฐ๋จํ ์๋ฃจ์
์ผ๋ก ๊ธฐ์กด์ ๋์ฒด systemd-logind ์๋น์ค๋ฅผ ์ฌ์ฉํ๋๋ก ๋ชจ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ์กํ๊ณ utmp์ ์ก์ธ์คํ๋ ์ค์ ํ๋ก๊ทธ๋จ์ด ์์ผ๋ฉด utmp์ ์ฐ๊ธฐ๋ฅผ ์ค์งํ๋ ๊ฒ์ด ์ ์๋ฉ๋๋ค. wtmp๋ฅผ ๋์ฒดํ๊ธฐ ์ํด systemd-journald๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์ ๋ํ ์ ๋ณด๋ฅผ ์ฐ๊ณ ์ฝ๋ API๋ฅผ ์ค๋นํ๋ ๊ฒ์ด ์ ์๋ฉ๋๋ค. systemd 254์ ๋ค์ ๋ฆด๋ฆฌ์ค์ ๋ํ ์ฝ๋๋ฒ ์ด์ค์๋ sd-login.h API๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ DBUS๋ฅผ ํตํด libsystemd๋ฅผ ํตํด ๋์ฒด utmp ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๋ฐ ํ์ํ ๊ธฐ๋ฅ์ด ์ด๋ฏธ ํฌํจ๋์ด ์์ต๋๋ค.
์ถ์ฒ : opennet.ru