Ksplice: a Linux kernel patch-elése működés közben, reboot nélkül

Címkék

A MIT berkeiből származó Ksplice segítségével az adminisztrátorok alkalmazhatják a biztonsági javításokat a Linux kernelen annak futása közben úgy, hogy szükségtelenné válik az újraindítás. A Ksplice használatához nincs szükség a kernel előzetes speciális preparálására. A Ksplice bizonyos megfontolásokból úgy van tervezve, hogy csak olyan változtatásokat fogad el, amelyek nem változtatják meg jelentős mértékben az adatszerkezeteket. Szerencsére a legtöbb biztonsági patch nem hoz ilyen változtatásokat. A 2005 májusa és 2007 decembere közt napvilágot látott 50 fontosabb biztonsági javítás 84%-a automatikusan alkalmazható a Ksplice segítségével menet közben.

A Ksplice elérhető 32 bites és 64 bites x86 rendszerekhez. A használata előtt azt mindenképpen figyelembe kell venni, hogy a szoftver meglehetősen új, nem kizárt, hogy olyan bugokat tartalmaz, amelyek komolyabb problémákat okozhatnak. A Ksplice szabad szoftver, a GPLv2 feltételei szerint terjeszthető.

A menet közbeni patch-eléshez a Ksplice-on kívül szükség van a természetesen a forrásszintű változtatásra (unified diff), a futó kernel kernelkonfig állományára (.config), a System.map-jére és teljes forrására. A projekt weboldalán egy egyszerű példán keresztül mutatják be a készítők a Ksplice használatát.

Néhány jellemző:

  • működik a legtöbb 2.6-os Linux kernellel
  • működik a legtöbb kernelkonfigurációval
  • legjobban akkor működik, ha a kernel fordításához használt fordítóprogrammal, linker-rel használjuk (működik különbözővel is, de automatikusan megszakítja a patch-elési folyamatot, ha az szükséges (túl nagy az eltérés))
  • tesztelve a 2.6.8-as kerneltől a 2.6.25-ig
  • tesztelve Debian, Ubuntu, RHEL, Gentoo terjesztéseken

Referenciák:
Bejelentés az LKML-en
A Ksplice honlapja
Technikai áttekintés a szerzőtől, Jeff Arnold-tól

Hozzászólások

Azta, amiga rulez or what? :)

--
"There are two kinds of people in this world, and you're not one of them."

Mokas, legutobb mikor erre szukseg lett volna, akkor a vmsplice() hivas korul volt a difi...:] Olyan 170 nap korul jart akkor ma'r az uptime...

A masik, ami erdekes/hasznos lenne, hogy a disztrok a kernel sec fixeket opcionalisan ilyforma'n is szallithana'k.

Ügyes, főleg LTS os-eknél, szervereken jól jöhet. Már csak az kéne, hogy a csomagkezelők is tudják ezen keresztül alkalmazni a frissítéseket, habár ez már annyira nem nagy cucc, simán lefuttat egy scriptet.

Ez egy mezei kernelmodul, tehat az szabvany cleanup callback elvileg felhasznalhato arra, hogy visszaallitsa az eredeti allapotot, ha valakinek epp ez a szive vagya.
Gyakorlatilag meg nem neztem.

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

Csomagkezelők is megoldhatnák, hogy csak bináris patch-eket kelljen letölteniük...

Nesze neked monolithic kernel! Ehhez mit szólna Tannenbaum?

"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

azok a régi szép idők, amikor win9xen egy IPt sem lehetett beállítani reboot nélkül...

max annyival, hogy itt nem csak egy syscall-t írányítanak át, hanem kicsit mélyebben meg tudják patchelni a bináris kernelt, és ezt még annyira könnyen észre sem veszed, nem tudod ellenőrizni a kernel épségét. de lehet, hogy én tudom rosszul

debian gnu/linux @ linux-2.6.22.22-op1-rc1 | patch
info

".. nem hogy még egy eset, hanem mégveszélyesebb!" :))

Benne van a FAQ-jában:

Q: Mi lesz a rosszfiúk ezt rossz dolgokra használják?
A: A rosszfiúk már régen birtokában vannak annak a tudásnak, hogy ezt hogyan lehet megcsinálni.

Q: Doesn't Ksplice help bad guys introduce non-GPL code in the kernel and/or create malware?
A: The bad guys already know how to accomplish their goals using ad hoc kernel inspection and modification techniques"

Szóval ez nekik többet / újat nem fog nyújtani, az ellenük dolgozóknak talán igen.

--
trey @ gépház

Nem az access controll fogna meg, hanem maga a driver tolna vissza -EPERM-et, mint ahogy ezt a grsec is teszi.
Viszont beleneztem a kodba, es vanilla kernelben tenyleg nem sok dolog van, ami sikitana erte (ugy tunik, anno valami hackelt disztro-kernelen probaltam, csak nem tunt fel).

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!