Proponi li tieqaf tuża utmp biex teħles lil Glibc mill-problema Y2038

Thorsten Kukuk, mexxej tal-grupp ta' żvilupp tat-teknoloġija fil-futur f'SUSE (Future Technology Team, jiżviluppa openSUSE MicroOS u SLE Micro), li qabel mexxa l-proġett SUSE LINUX Enterprise Server għal 10 snin, issuġġerixxa li jeħles mill-fajl /var/run/utmp fid-distribuzzjonijiet biex tiġi indirizzata bis-sħiħ il-problema tal-2038 fi Glibc. L-applikazzjonijiet kollha li jużaw utmp, wtmp u lastlog huma proposti li jiġu kkonvertiti biex tinkiseb lista ta' utenti bl-użu ta' systemd-logind.

Fid-19 ta' Jannar, 2038, il-counters tal-ħin epochal speċifikati mit-tip time_t ta' 32 bit se overflow. Glibc, minkejja li jintroduċi tip time_t 64-bit, ikompli juża tip time_t 32-bit f'xi każijiet fuq pjattaformi 64-bit biex iżżomm il-kompatibilità ma 'applikazzjonijiet ta' spazju għall-utent ta '32-bit. Każ wieħed bħal dan huwa l-fajl /var/run/utmp, li jaħżen id-dejta dwar l-utenti li bħalissa ddaħħlu fis-sistema. Il-qasam tal-ħin f'utmp huwa speċifikat bl-użu ta' valur time_t ta' 32 bit.

Sempliċement li tissostitwixxi l-qasam tal-ħin f'utmp minn tip ta' 32-bit għal 64-bit ma taħdimx, peress li dan iwassal għal bidla fil-Glibc ABI (it-tip se jinbidel f'funzjonijiet bħal login(), getutid() u utmpname ()) u tkissir tal-kompatibilità ma 'applikazzjonijiet li jużaw utmp, inklużi w, who, uptime, login, su, sudo, useradd, systemd, sysvinit, tcsh, xterm display managers, emacs, openssh, qemu, samba, rsyslog, eċċ. Minħabba l-abbundanza ta 'nases possibbli u kumplessità, l-idea li tissostitwixxi t-tip time_t f'utmp ġiet miċħuda mill-iżviluppaturi Glibc. Għall-istess raġuni, l-għażla li jintuża l-ispazju ħieles disponibbli fl-istruttura utmp biex iżżid qasam tal-ħin addizzjonali ta '64-bit twarrbet.

Barra minn hekk, il-bidla tat-tip bit depth f'utmp ma ssolvix problemi eżistenti oħra, li nixtieq neħles ukoll. Pereżempju, il-kitba lil utmp teħtieġ drittijiet speċjali, li teħtieġ li l-proċessi jingħataw privileġġi addizzjonali. Problema oħra hija li l-arkitettura utmp tippermetti lill-utenti lokali biex iwettqu attakki DoS, li jwasslu għal tfixkil tas-servizz utmp permezz ta 'manipulazzjoni ta' serraturi tal-fajls, li jagħmilha impossibbli li jkun żgur li l-kontenut ta 'utmp jirrifletti l-istat reali fis-sistema. Ġie propost li jintuża proċess ta' sfond addizzjonali biex jiġi mmaniġġjat l-aċċess għal utmp, iżda għal kompiti bħal dawn diġà hemm proċess systemd-login u t-tnedija ta' proċess speċjalizzat ieħor mhux rakkomandabbli (l-applikazzjonijiet se jkollhom jittrasferixxu data lil żewġ handlers simultanjament).

Fl-istess ħin, anke meta ssolvi l-problema bl-attakki DoS, il-kontenut ta 'utmp jibqa' biss informattiv u ma jiggarantixxix riflessjoni tar-realtà. Pereżempju, emulaturi differenti u multiplexers tat-terminals jirriflettu l-istat tagħhom b'mod differenti - it-tnedija ta' ħames terminals GNOME se tirriżulta f'utent wieħed jiġi rifless f'utmp, u t-tnedija ta' ħames terminals konsole jew xterm f'KDE se tirriżulta f'sitta. L-imġieba ta 'screen u tmux hija differenti bl-istess mod: fl-ewwel każ, kull sessjoni tingħadd bħala utent separat, u fit-tieni, utent wieħed biss huwa rifless għas-sessjonijiet kollha.

Bħala riżultat, bħala l-aktar soluzzjoni sempliċi, huwa propost li l-applikazzjonijiet kollha jiġu trasferiti biex jużaw is-servizz alternattiv ta 'systemd-logind diġà eżistenti u, wara li ma jkunx hemm programmi attwali li jaċċessaw utmp, tieqaf tirrekordja għal utmp. Biex tissostitwixxi wtmp, huwa propost li jitħejjew interfaces tas-softwer għall-kitba u l-qari ta 'informazzjoni dwar l-utenti li jużaw systemd-journald. Il-codebase għar-rilaxx li jmiss ta 'systemd 254 diġà tinkludi l-funzjonalità meħtieġa biex tipprovdi data ta' sostituzzjoni utmp permezz ta 'libsystemd bl-użu tal-API sd-login.h jew permezz ta' DBUS.

Sors: opennet.ru

Żid kumment