Glibc 2038. aasta probleemi lahendamiseks on soovitatud lÔpetada utmp kasutamine

Thorsten Kukuk, tuleviku tehnoloogiate arengu grupi juht ettevÔttes SUSE, kes arendab openSUSE MicroOS ja SLE Micro, pakkus vÀlja, et distsipliinides tuleks loobuda failist /var/run/utmp, et tÀielikult lahendada 2038. aasta probleem Glibc-s. KÔiki rakendusi, mis kasutavad utmp, wtmp ja lastlog, soovitatakse suunata kasutajate loendi saamiseks systemd-logindile.

19. jaanuaril 2038 toimub ajamotiivide arvu ĂŒleujutus, mis on mÀÀratud 32-bitise time_t tĂŒĂŒbi jĂ€rgi. Glibc raamatukogus, vaatamata 64-bitise time_t tĂŒĂŒbi kasutuselevĂ”tule, sĂ€ilitatakse 32-bitise time_t tĂŒĂŒbi ĂŒhilduvuse tagamiseks mĂ”nes kasutaja ruumis 64-bitistes keskkondades. Üks selline juhtum on fail /var/run/utmp, mis salvestab andmed kasutajatest, kes on praegu sĂŒsteemis töös. Aja vĂ€li utmp-s mÀÀratakse 32-bitise time_t vÀÀrtusega.

Ainult utmp-s aja vĂ€lja asendamine 32-bitisega 64-bitise tĂŒĂŒbiga ei ole vĂ”imalik, kuna see tooks kaasa Glibc ABI muutumise (tugevus muutub funktsioonides, nagu login(), getutid() ja utmpname()) ja rikuks ĂŒhilduvust rakendustega, mis kasutavad utmp-i, sealhulgas w, who, uptime, login, su, sudo, useradd, systemd, sysvinit, tcsh, xterm graafikuhaldurid, emacs, openssh, qemu, samba, rsyslog jne. Paljude potentsiaalsete probleemide tĂ”ttu ning töö mahukuse tĂ”ttu lĂŒkati idee utmp-s time_t tĂŒĂŒbi muutmiseks Glibc arendajate poolt tagasi. Sama pĂ”hjuse tĂ”ttu lĂŒkati tagasi ka vĂ”imalus kasutada struktuuris utmp olemasolevat vaba ruumi tĂ€iendava 64-bitise aja vĂ€lja lisamiseks.

Lisaks ei lahenda tĂŒĂŒbi bittide muutmine utmp-s muid olemasolevaid probleeme, millest soovitakse samuti vabaneda. NĂ€iteks nĂ”uab utmp-sse kirjutamiseks spetsiaalseid Ă”igusi, mis nĂ”uab protsesside tĂ€iendavate privileegide andmist. Teine probleem on seotud sellega, et utmp arhitektuur vĂ”imaldab kohalike kasutajate DoS-rĂŒnnakuid, mis viib utmp teenuse töö katkemiseni failide lukustamisega manipuleerimise tĂ”ttu, mistĂ”ttu ei saa olla kindel, et utmp sisu kajastab sĂŒsteemi tegelikku seisukorda. Utmp juurde pÀÀsemiseks on soovitatud kasutada tĂ€iendavat taustaprotsessi, kuid selliste ĂŒlesannete jaoks on juba olemas systemd-logind protsess ja veel ĂŒhe spetsialiseeritud protsessi kĂ€ivitamine ei ole otstarbekas (rakendustel tuleb edastada andmeid samaaegselt kahe töötleja juurde).

Isegi kui DoS-rĂŒnnaku probleem on lahendatud, jÀÀb utmp sisu ainult informatiivseks, mis ei garanteeri tegelikkuse kajastamist. NĂ€iteks erinevad emulaatorid ja terminali multiplexers kajastavad oma seisundit erinevalt - viie GNOME terminali kĂ€ivitamine toob utmp-sse ainult ĂŒhe kasutaja, samas kui viie konsooli vĂ”i xterm'i kĂ€ivitamine KDE-s toob kuus. Samuti erineb kĂ€itumine screen-i ja tmux-i puhul, kus esimesel juhul arvestatakse iga seanss eraldi kasutajana, samas kui teisel juhul kajastub kĂ”ikide seansside kohta ainult ĂŒks kasutaja.

LĂ”puks pakutakse kĂ”ige lihtsama lahendusena kĂ”igi rakenduste ĂŒleviimist juba olemasoleva alternatiivse teenuse systemd-logind kasutusse ja pĂ€rast seda, kui pole enam aktuaalseid programme, mis pöörduvad utmp poole, lĂ”petada utmp-sse kirjutamine. Wtmp asendamiseks soovitatakse ette valmistada tarkvaraliideseid kasutajainformatsiooni kirjutamiseks ja lugemiseks systemd-journald abil. JĂ€rgmise systemd 254 vĂ€ljaande koodibaasi on juba kaasatud vajalikud funktsioonid, et pakkuda asendavaid utmp andmeid lĂ€bi libsystemd sd-login.h API vĂ”i DBUS-i kaudu.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster