Canonical maakt Ubuntu livepatching beschikbaar voor hardware Enablement-kernels

Canonical maakt de livepatchingservice van Ubuntu Pro voortaan ook beschikbaar voor hardware enablement-kernels. De HWE-releases bestaan dan naast de long term support-versie van het besturingssysteem.

Canonical schrijft dat de feature vanaf kernelversie 6.2 beschikbaar komt. Dat is de kernel die voor het eerst in Ubuntu 23.04 Lunar Lobster wordt gebruikt, die later deze maand uit komt. Vanaf juli 2023 komt HWE-kernelondersteuning ook beschikbaar voor de 22.04 LTS-release, Jammy Jellyfish.

Het livepatchen is een feature in Ubuntu Pro, de professionele variant van het besturingssysteem dat enkele extra beveiligingsfuncties bevat. Een van de meest belangrijke functies in Pro is livepatching, waarbij patches direct in het geheugen worden doorgevoerd zodat een systeem niet hoeft te worden herstart.

De livepatches waren eerder alleen beschikbaar op LTS-kernelreleases, maar nog niet op hardware enablement-kernels of HWE's. Dat zijn kernels voor het besturingssysteem dat op nieuwe hardware draait waar anders alleen de general availability-kernel op kan draaien. De HWE-release krijgt livepatchondersteuning zolang die kernel nog ondersteund wordt.

Door Tijs Hofmans

Nieuwscoördinator

13-04-2023 • 21:08

32

Submitter: TheVivaldi

Reacties (32)

32
32
18
0
0
9
Wijzig sortering
Ik vind dit nog steeds een vorm van magie. Hoe kun je nou delen van de kernel in-memory vervangen als die kernel eigenlijk geen microseconde niets staat te doen? Wat als er een verzoek binnenkomt juist op het moment dat je dat specifieke kernel onderdeel herschrijft? Is het eigenlijk allemaal veel gegoochel met scheduling dat je zo'n opdracht dan even een fractie van een seconde parkeert totdat de update klaar is?
Als je bedenkt dat een Hypervisor als VMWare vSphere in staat is om machines live te migreren van de ene ESX host naar de andere terwijl de VM gewoon draait... Je verliest enkel 1 ping. Hooguit. Ook kan er een schaduw VM worden onderhouden waar alle bewerkingen real time op doorgevoerd worden. Gaat de eerste door zijn hoeven dan pakt de tweede het direct over.

Een processor werkt in principe sequentieel. Met meer cores draait het ding een aantal berekeningen tegelijk maar per core gaat het weer sequentieel. Met trucjes als het voorspellen wat er zal gaan gebeuren worden ze wel steeds sneller. De acties die het OS op de cores uitvoert kan je dan heel even pauzeren en vervolgens je kernel herladen om daarna weer door te gaan.

Het is een heel mooi systeem waarbij hele kritieke systemen gewoon kunnen blijven draaien en gepatched blijven. Overigens kan Ubuntu dit al langer. Ook in 20.04 zat live patching al. Ik heb nergens gelezen dat andere distro's het ook kunnen.
Elke distro kan dit in principe vanaf kernel 5.1.x, want toen is de feature in de mainline kernel geïntroduceerd. RHEL kon het trouwens ook al eerder, maar met de release van 5.1 is dit naar het "mainline" component gemigreerd, zie ook https://www.redhat.com/sysadmin/kernel-live-patching-linux
Ik gebruik RHEL niet, alleen Fedora. Dat zou de speeltuin moeten zijn en alles wat voldoende is uitgekauwd wordt naar RHEL gezet. Ik heb de installer van Fedora nooit iets zien melden over live patching waar Ubuntu dat altijd wel doet. Fedoras Software Updater wil altijd herstarten.

Weer wat geleerd :) .

[Reactie gewijzigd door asing op 22 juli 2024 15:52]

Ik denk dat een desktop georiënteerde distributie zoals Fedora het live patchen van de kernel niet snel in hun installer zal adverteren, desktops gaan over het algemeen bijna elke dag wel een keer uit dus dan vindt een herstart van het systeem al automatisch plaats. Ik weet ook niet of Ubuntu je wel de mogelijkheid geeft om kernel livepatching al in de installer te activeren, het is lang geleden dat ik een Ubuntu installatie heb gedaan. Ik weet wel dat je er in het geval van Ubuntu een account voor nodig hebt en de gratis versie je limiteert tot het live patchen van 5 systemen.

[Reactie gewijzigd door rbr320 op 22 juli 2024 15:52]

Ik heb het diverse keren in de installer van Ubuntu desktop gezien. Dat is iedere keer een "zal ik wel of zal ik niet" momentje. Tot nu toe nooit ingezet.

Anaconda (Fedora) gaf mij die optie nooit. Nu moet ik erbij zeggen dat Anaconda echt een steentijdperk installer is, en ze nu bezig zijn met een web gebaseerde installer. Ik heb er verder ook niet naar gezocht in Fedora.

Ik vond overigens wel een mooie beschrijving https://en.wikipedia.org/wiki/Kpatch voor degenen die zich afvragen hoe dit in hemelsnaam zou kunnen werken.
Naast dat het een kernel feature is, zijn er verschillende distro's die deze feature ondersteund aanbieden. Een redelijk overzicht van de voor en tegens is deze https://ostechnix.com/5-k...-servers-without-reboots/ en deze https://tuxcare.com/the-u...l-live-patching-software/
Zeker geen feature die door Ubuntu is ingebracht, voor zover ik weet zijn RedHat en SUSE de kartrekkers van deze functie.

[Reactie gewijzigd door sebati op 22 juli 2024 15:52]

Kijk dat zocht ik, bedankt!
Is dat niet verschillend? Een virtuele omgeving hoeft alleen maar te zorgen dat er geen directe interactie met fysieke hardware voorkomt. Daarna kun je alles selectief pauzeren en lokaal of over het netwerk schuiven wat je wil.
Hoe Ubuntu dit doet vraag ik me af. Is nog wel aanwijsbaar wat precies de kernel is? Je zou denken dat er een bovenliggende "loop" moet zijn die gecontroleerd system space kan overschrijven. Het komt in de buurt van een hypervisor maar hoeft nog niet meerdere virtuele kernels te coördineren.
Dat is inderdaad verschillend, maar meer om aan te geven wat ook mogelijk is. VMWare noemt het vMotion en Microsoft noemt het Live Migration. Er zitten wat haken en ogen aan maar het werkt prima. Je kan dus een VM stoppen met alles wat het doet, en dan verder laten gaan op andere fysieke hardware alsof er niets aan de hand is.

Ubuntu pakt denk ik kpatch als basis. Of kpatch zit nu in de mainline kernel. Net zoals de driver voor WireGuard is ingevoegd in de kernel. Ik vind het een soort toveren en heb het gelukkig niet nodig. Wel mooi dat het erin zit.
Ik probeer me het voor te stellen bij FreeBSD. Wat valt te proberen is de kernel tot het minimale te strippen en alles naar modules verplaatsen die tijdelijk functies dubbel actief houden als error-opvang nij het vervangen. Dan kun je er 1 veranderen en uitproberen. Alleen blijft de hoofdstructuur over omdat iets de controle moet houden en nooit onderbroken mag worden. Wat daarmee moet kunnen is een soort van fallback-systeem waarbij de pre-kernel loader gewoon opnieuw probeert als het hele proces gestopt blijkt te zijn. Normaal is dat een permanente freeze of reset/panic...
Volgens mij is het vooral kunst om zoiets op kernel-niveau te laten draaien zonder dat het performance inlevert.
Je kan een thread, en dus ook meerdere threads. Tijdelijk blokkeren totdat er een event heeft plaatsgevonden. Zo kan je ervoor zorgen dat er niet een stuk code wordt gedraaid die tijdens het draaien ineens veranderd en maar half dingen gaat doen. In Windows kan je bijvoorbeeld ook DLL’s van draaiende programma’s herladen. Dat is hetzelfde trucje maar dan in vergelijking met dit veel minder gecompliceerd.
Hoe kan live patchen achter een betaalmuur zitten als het een feature van de Linux kernel zelf is?

Of staat de update repository achter een login, maar kan je de patches ook zelf compileren?

(op basis van een aanname dat het een kernel feature is)
Je kunt inderdaad zelf kernels bouwen waar live-patching in zit, zowel Debian (https://tuxcare.com/devel...linux-kernel-with-kpatch/) alsook RHEL-gebaseerd (https://www.digitalocean....y-linux-8-servers-updated)

Wat Ubuntu Pro toevoegt (gratis beschikbaar voor 5 computers) is natuurlijk de repos, builden, testen, ondersteuning etc.
Je kunt inderdaad zelf kernels bouwen waar live-patching in zit, zowel Debian (https://tuxcare.com/devel...linux-kernel-with-kpatch/) alsook RHEL-gebaseerd (https://www.digitalocean....y-linux-8-servers-updated)
En Arch Linux-gebaseerd. Niet zo verbazingwekkend, want de gebruikte tooling wordt 'gewoon' uitgegeven onder de GPL2-licentie.

[Reactie gewijzigd door The Zep Man op 22 juli 2024 15:52]

Het is vooral een feature van de uitgever die het mogelijk maakt de Linux kernel "hot" te patchen. Het is geen feature die standaard in de Linux kernel zit.

Red Hat ondersteunt dit ook door middel van hun "kpatch": https://en.wikipedia.org/wiki/Kpatch

[Reactie gewijzigd door weebl15 op 22 juli 2024 15:52]

Live patching zit sinds enige tijd gewoon in de kernel (weet uit mijn hoofd even niet wanneer), het is dus vooral de tooling die het gebruik hiervan makkelijk maakt waar je (soms) voor betaald.

Hiermee krijg je dan meer services/mogelijkheden dan alleen de mogelijkheid te livepatchen, waardoor je tijd bespaard, issues voorkomt, geld bespaard, etc.

Dit is vergelijkbaar met bijvoorbeeld container technologie, waaronder docker, die gebruik maken van Kernel features in linux (en windows). Docker maakt voor zijn containers bijvoorbeeld gebruik van namespaces en cgroups net als andere container oplossingen.

Betalen is nooit leuk, maar op zich een goed ding dat er commerciele belangen zijn, daardoor gaan de ontwikkelingen veel sneller, die vaak weer doordruppelen naar gratis varianten (eventueel vanuit de opensource communities). De opensource community geeft altijd wel aan dat ze alles kunnen, maar gelijktijd doen ze ook vaak "alles" waardoor veel dingen niet van de grond komen. Beschouw het soms als een Kip-Ei probleem. Projectmanagement op diverse hybride stacks (open and partial closed source) is hierbij is echt een pita soms.
Wat in de kernel zit is functionaliteit met een API waartegen onder andere je update toolkit moet kunnen praten. Dit geheel moet natuurlijk goed getest en onderhouden worden. Klanten die dit gebruiken zitting in Trading, banken, verzekeringen en telefonie... het mag dus wel wat kosten.
Leuk dat het kan, maar juist als professionele beheerder heb je toch gezorgd voor voldoende reduncy en automatisering waardoor een reboot niet meer uitmaakt.
Hangt van scenario af. Bv. In het ISS (waar ook Linux systemen gebruikt worden) heb je die redundantie vast wel. Maar is het misschien handiger het actieve systeem toch niet te hoeven rebooten. Nochtans allemaal professionele ITer bij NASA en ESA
Fault tolerance is duur en complex. Soms is het beter om te kiezen voor een simpele correcte implementatie die helaas 8 uur werk opnieuw moet doen als de server er sporadisch precies tijdens dat proces uitknalt. Dan is live patching een uitkomst, om de reboot even uit te kunnen stellen zonder dat je vulnerable bent.
Waarom zou je tijdelijk je redundantie uit zetten als het niet hoeft? Redundantie is niet primair voor patching en upgrades geïmplementeerd. Dat is een leuke bijvangst. Redundantie is gebouwd om ongeplande outages te voorkomen.
Nice, alleen jammer dat je een duur abo nodig hebt voor die livepatching (edit: voor particulieren heb je er idd 5 gratis, dat is waar)

Ik vraag me af of er ook distro's zijn die deze functie helemaal standaard aanbieden?

[Reactie gewijzigd door GekkePrutser op 22 juli 2024 15:52]

Volgens mij is t gratis voor particulieren tot 5 pc's.
Oh ja goed punt, daar was ik mee bekend maar ik wil mijn gegevens niet graag geven. Als ik Linux draai wil ik dat het helemaal anoniem is (geen telemetrie enzo), anders kan ik net zo goed Windows nemen :) Bovendien heb ik een hekel aan snaps.

Ik had gehoopt dat debien het ook zou gaan doen maar vooralsnog niet, vandaar mijn vraag of er misschien een andere distro is die het wel gewoon standaard doet.

[Reactie gewijzigd door GekkePrutser op 22 juli 2024 15:52]

Red Hat biedt het "standaard" in de vorm van kpatch, maarja voor Red Hat moet je ook betalen (meestal). :9

[Reactie gewijzigd door weebl15 op 22 juli 2024 15:52]

RHEL is gratis voor 16 computers.
wait whut.... RHEL is meer gratis (voor particulieren) 16 devices dan Ubuntu (pro) 5 devices? .... GE-NI-AAL |:(

wil natuurlijk nog steeds niet zeggen dat ik ubuntu (of liever debian of mint) niet prefereer boven RHEL maar dat is persoonlijk. ik verbaasde me gewoon over hoeveel machines je mag draaien onder de Rhel trial.
Ik vraag me af of er ook distro's zijn die deze functie helemaal standaard aanbieden?
In principe élke distro die kernel >= 5.1 heeft, want dit zit tegenwoordig standaard in de kernel. Zie ook sfranken in 'Canonical maakt Ubuntu livepatching beschikbaar voor hardware enabled-kernels'
Als.iets gratis is betaal je op een andere manier.

Op dit item kan niet meer gereageerd worden.