Pwopoze yo sispann itilize utmp pou debarase Glibc de pwoblèm Y2038

Thorsten Kukuk, lidè gwoup devlopman teknoloji nan lavni nan SUSE (Future Technology Team, devlope openSUSE MicroOS ak SLE Micro), ki te deja dirije pwojè SUSE LINUX Enterprise Server pou 10 ane, te sijere debarase m de /var/run/utmp fichye a. nan distribisyon pou adrese konplètman pwoblèm 2038 nan Glibc. Tout aplikasyon ki sèvi ak utmp, wtmp ak lastlog yo pwopoze pou konvèti pou jwenn yon lis itilizatè yo lè l sèvi avèk systemd-logind.

Nan dat 19 janvye 2038, kontè tan epòk yo espesifye nan kalite time_t 32-bit la pral debòde. Glibc, malgre entwodwi yon kalite time_t 64-bit, kontinye sèvi ak yon kalite time_t 32-bit nan kèk ka sou platfòm 64-bit pou kenbe konpatibilite ak aplikasyon espas itilizatè 32-bit. Youn nan ka sa yo se fichye /var/run/utmp, ki estoke done sou itilizatè ki konekte kounye a nan sistèm nan. Se jaden an tan nan utmp espesifye lè l sèvi avèk yon valè time_t 32-bit.

Senpleman ranplase jaden tan an nan utmp soti nan yon kalite 32-bit nan yon kalite 64-bit pa pral travay, paske sa a pral mennen nan yon chanjman nan Glibc ABI la (kalite a pral chanje nan fonksyon tankou login (), getutid () ak utmpname. ()) ak kraze konpatibilite ak aplikasyon ki itilize utmp, ki gen ladan w, who, uptime, login, su, sudo, useradd, systemd, sysvinit, tcsh, manadjè ekspozisyon xterm, emacs, openssh, qemu, samba, rsyslog, elatriye. Akòz abondans enkonvenyans posib ak konpleksite, lide pou ranplase kalite time_t nan utmp te rejte pa devlopè Glibc yo. Pou menm rezon an, opsyon pou yo sèvi ak espas lib ki disponib nan estrikti utmp pou ajoute yon lòt jaden tan 64-bit yo te abandone.

Anplis de sa, chanje pwofondè nan ti jan kalite nan utmp pa rezoud lòt pwoblèm ki egziste deja, ki mwen ta renmen tou debarase m de. Pou egzanp, ekri nan utmp mande pou otorizasyon espesyal, ki mande pou pwosesis yo akòde privilèj adisyonèl. Yon lòt pwoblèm se ke achitekti utmp pèmèt itilizatè lokal yo pote atak DoS, ki mennen ale nan dezòd sèvis utmp nan manipilasyon kadna dosye, ki fè li enposib asire w ke sa ki nan utmp reflete eta reyèl la nan sistèm nan. Li te pwopoze yo sèvi ak yon pwosesis background adisyonèl pou okipe aksè nan utmp, men pou travay sa yo deja gen yon pwosesis systemd-login ak lanse yon lòt pwosesis espesyalize se pa rekòmande (aplikasyon yo pral oblije transfere done nan de moun kap okipe ansanm).

An menm tan an, menm lè rezoud pwoblèm nan ak atak DoS, sa ki nan utmp rete sèlman enfòmasyon epi yo pa garanti yon refleksyon nan reyalite. Pou egzanp, diferan emulateur ak multiplexeur tèminal yo reflete eta yo yon fason diferan - lansman senk tèminal GNOME pral lakòz yon sèl itilizatè yo reflete nan utmp, epi lanse senk tèminal konsole oswa xterm nan KDE pral lakòz sis. Konpòtman an nan ekran ak tmux se menm jan an diferan: nan premye ka a, yo konte chak sesyon kòm yon itilizatè separe, ak nan dezyèm lan, se sèlman yon itilizatè reflete pou tout sesyon yo.

Kòm yon rezilta, kòm solisyon ki pi senp, yo pwopoze pou transfere tout aplikasyon yo sèvi ak sèvis altènatif systemd-login ki deja egziste deja epi, apre pa gen okenn pwogram aktyèl ki gen aksè a utmp, sispann anrejistreman nan utmp. Pou ranplase wtmp, yo pwopoze pou prepare entèfas lojisyèl pou ekri ak li enfòmasyon sou itilizatè yo lè l sèvi avèk systemd-journald. Kodbaz pou pwochen lage systemd 254 la deja gen ladann fonksyonalite ki nesesè pou bay done ranplasman utmp atravè libsystemd lè l sèvi avèk API sd-login.h oswa atravè DBUS.

Sous: opennet.ru

Add nouvo kòmantè