GNU/Linux >> Znalost Linux >  >> Linux

Historie linuxového jádra Live Patching

Instalace nejnovějšího linuxového jádra dříve znamenala restart, dokud nebyla vyvinuta ‚rebootless kernel update‘, metoda, která opravuje servery bez jejich restartování. Vzhledem k tomu, že tato technika je nyní něco málo přes 10 let stará, tento článek se krátce podívá na její původ a současný stav.

2001–2010:The Patent Trail

Pokud budete procházet patentové archivy s klíčovými slovy, jako je hot patching nebo aktualizace systému v reálném čase, vyhrabete mnoho žádostí a zamítnutí, které ukazují, že myšlenka aktualizace počítačového systému bez zastavení není nic nového. Významná data, sledující myšlenku od obecné ke konkrétní, jsou následující:

  • 2001:Hewlett Packard patentuje metodu dynamické aktualizace softwaru, aby se obešly chybějící hardwarové funkce.
  • 2002:Microsoft se připojuje ke hře s přístupem k aktualizaci systému (Windows) bez jeho přerušení. (Jejich původní žádost je zamítnuta na základě „předchozího stavu techniky“ společnosti HP.)
  • 2008:Jeff Arnold oznamuje Ksplice, software pro aktualizaci (záplatování) linuxového jádra bez přerušení (tj. bez restartu).
  • 2010:Patent společnosti Microsoft byl konečně udělen na základě odvolání.

Zajímavé na nich je, že sdílejí snahu opravit pomocí aktualizace softwaru chybu v základním softwaru nebo hardwaru systému, aniž by to ovlivnilo další běh tohoto systému a bez změny hardwaru. Zní to povědomě? (Nápověda:Meltdown, Spectre.)

2009:The Birth of Rebootless

Jeff Arnold byl student MIT a staral se o jeden z jejich serverů. Potřeboval bezpečnostní záplatu, ale on ji zdržel, protože restart by jeho uživatele nepříjemně rušil. Než bylo možné systém aktualizovat, byl hacknut. Utrpěná ostuda a (ironicky) nepříjemnosti inspirovaly Jeffa k tomu, aby našel téma pro svou diplomovou práci v problému provedení aktualizace systému bez prodlení a bez jeho restartu. Příběh může být apokryfní, ale připomíná nám, že techniky živých oprav nevyšly z zájmu o pohodlí, ale o bezpečnost, a právě v této roli by měly být oceněny.

Jeff Arnold se spojil se třemi studentskými kolegy, aby prostudovali problém, jak aktualizovat jádro linuxového serveru, bez prodlení a bez přerušení procesů systému. Řešení přišlo v podobě softwaru Ksplice, jehož technické základy byly položeny v akademické práci z roku 2009. Název dokumentu obsahoval slovo rebootless, dnes již známou zkratku Linuxu pro „nepřetržitou aktualizaci“, ale poprvé vytvořené společností Microsoft v roce 2005, aby se vztahovalo na aktualizace ovladačů Windows.

Po ukončení studia Jeff a jeho kolegové z MIT založili společnost Ksplice Inc. a v květnu 2009 vyhráli cenu MIT $100K Entrepreneurship Competition. Společnost zahájila komerční službu v roce 2010; věci šly dobře.

2011–2016:Oracle a nová vlna

Dne 21. července 2011 společnost Oracle koupila společnost Ksplice, Inc. a integrovala software do své vlastní značky Linux, která je sama o sobě derivátem Red Hatu. Navzdory tomuto dědictví Oracle přestal podporovat Red Hat. Akvizice společnosti Ksplice společností Oracle odstartovala nárůst aktivity mezi dalšími klíčovými prodejci Linuxu, kteří zůstali ve štychu.

Mezi lety 2011 a 2014 pracovaly SUSE a Red Hat izolovaně (a navzájem si neznaly svých cílů) na vydání svých vlastních řešení pro aktualizaci jádra, což udělaly v Kgraft a Kpatch. (Navzdory jejich mírnému náskoku byl Kgraft od SUSE vyroben GA (tj. vhodný pro produkční systémy) až v roce 2016.)

Red Hat sdílel svůj kód Kpatch s komunitou a integroval jej jako podporovanou funkci Red Hat Enterprise Linux.

Rozdíl mezi těmito dvěma inkarnacemi lze odvodit ze zprávy vyzdobené na stránce projektu open-source verze:

VAROVÁNÍ:Používejte opatrně!
Může dojít k selhání jádra, samovolnému restartování
a ztrátě dat!

Během stejného období a souběžně s úsilím SUSE a Red Hat byly do zdrojového kódu linuxového jádra verze 4.0 integrovány základní základy ABI pro podporu živých oprav. Záměrem bylo vzít ty nejlepší nápady z Kpatch i Kgraft a...opravit a naroubovat je do společného přístupu pro hlavní řadu. Říkalo se tomu livepatch a v říjnu 2016 Canonical oznámil, že zavádí svou vlastní komerční službu aktualizace jádra založenou na tom, předvídatelně nazvanou Canonical Livepatch Service. Nejprve k dispozici pouze pro Ubuntu 16.04 LTS, později bylo rozšířeno i na 14.04 LTS. V Ubuntu 18.04 je LTS Livepatch možností instalace a lze ji konfigurovat pomocí vestavěného nástroje pro správu softwaru, což je známkou jeho rostoucího významu ve standardní distribuci softwaru.

2014:New Kid on the Block

Když se hlavní dodavatelé snažili být prvními, kdo spustí životaschopná řešení pro živé opravy, CloudLinux, hlavní hráč v operačních systémech webhostingu založených na Linuxu, spustil v květnu 2014 po úspěšné beta verzi v březnu KernelCare.

Překvapili trh tím, že nabídli nejširší sadu funkcí na většině linuxových platforem a podpořili ji silnou reputací ve vývoji linuxového jádra a zákaznické podpoře. Dalším šokem byla cenová dostupnost, která byla přitažlivá pro hostitele webových stránek, kteří považují náklady KernelCare na server za zvládnutelnější a škálovatelnější než náklady na stránky jejich hlavního konkurenta.

Nedávno se spojení KernelCare s Imunify360 ukázalo na radaru nové eskadry vysoce létajících správců systémů zaměřených na bezpečnost.

Závěr:Hlavní problém v roce 2019

S tím, jak se svět posouvá k automatizovanému zabezpečení, uvidíte, jak se software pro automatickou živou správu patchů jádra integruje do populárních distribucí Linuxu stále těsněji. V současnosti je na trhu pouze pět různých prodejců. Srovnávací tabulka funkcí uvádí jejich hlavní prodejní přednosti. V sekci dalšího čtení najdete zdroje dokumentace a články na pozadí.

Hraní s aktivním jádrem může být špinavé. Není to něco, co by podnik nebo kdokoli provozující servery chtěl svěřit netestovanému a nepodporovanému softwaru. Když se to dělá ve jménu bezpečnosti, je to jedna z mnoha aplikací v Linuxu, za kterou stojí za to zaplatit, jedna z mála, které je absolutně nutné dělat správně.

Kvůli patentové přihlášce Microsoftu z roku 2002 odhalily tehdejší diskuse obavy o dlouhodobou životaschopnost této technologie. Viz lkml.org duben 2008 a lwn.net červenec 2011.

MIT News:„Bringing the world reboot-less updates“ (2014).

Od ledna 2016 je Ksplice k dispozici pouze jako součást produktů Oracle UEK a Oracle Linux 6 &7. V listopadu téhož roku odstranili upstream kód Kpatch společnosti Red Hat.

Linux kernel Live Update Services:Srovnávací tabulka funkcí

Funkce

Ksplice

Kgraft

Kpatch

Živá oprava

KernelCare

Snadná instalace/konfigurace

Ano

N/A

Ano

Ano

Ano

Vrátit zpět

Ano

Ano

Ano

Ano

Ano

Opravené záplaty

Ano

Ne

Ne

Ne

Ano

Vhodné pro firewall

Ano

Ne

Ne

Ne

Ano

Offline aktualizace

Ano

Ne

Ne

Ne

Ano

Oprava řízení přístupu

Ano

Ne

Ne

Ano

Ano

Plně automatizované

Ano

Ne

Ne

Ne

Ano

GUI pro správu

Ano

Ne

Ne

Ano

Ano

Bezplatná podpora 24/7

Ne

Ne

Ne

Ne

Ano

Počet platforem

2

1

1 (4)

1

9

Okamžité záplatování

Ano

Ne

Ano

Ano

Ano

Bezplatná zkušební verze (dny)

30

60

Ne

Ne

30

API (REST)

Ano

Ne

Ne

Ne

Ano

Jiné než nejnovější přepsání

Ano

Ne

Ne

Ne

Ano

Vlastní jádra

Ne

Ne

Ano

Ne

Ano

Podrobnosti viz Poznámky k porovnání.

Další čtení

Obecné články

  • Livepatch:Aktualizace linuxového jádra bez restartu (27. června 2018) linux-audit.com
  • Live Patching Meltdown – výzkumný projekt SUSE Engineer (část 1) (2. května 2018) suse.com
  • Aktualizace o opravách živého jádra (27. září 2017) lwn.net
  • Průvodce kpatch na Red Hat Enterprise Linux 7.2 a novějších (10. listopadu 2016) redhat.com
  • Opravte svá jádra Ubuntu pomocí služby Canonical Livepatch Service! (18. října 2016) blog.dustinkirkland.com
  • Linux vs. Unix Hot Patching – Dosáhli jsme bodu zvratu? (20. května 2016) forrester.com
  • Hrubá záplata pro živé opravy (25. února 2015) lwn.net
  • Živé nástroje pro aktualizaci jádra (září 2014) admin-magazine.com
  • KernelCare:Nový systém oprav Linuxu bez nutnosti restartu (6. května 2014) zdnet.com

Dokumentace

  • Datový list Ksplice (PDF), uživatelská příručka
  • Průvodce Kpatch
  • Datový list Kgraft (PDF), dokumentace
  • Funkce KernelCare, dokumentace
  • Datový list služby Canonical Livepatch (PDF)

Poznámky ke srovnání

Snadná instalace/konfigurace

  • Ksplice – Instalace Uptrack
  • Kgraft je dodáván s předinstalovaným SUSE Linux Enterprise Server 12
  • Instalace nástrojů kpatch
  • Instalace KernelCare

Vrátit zpět

  • Ksplice uptrack-remove
  • Odstranění opravy Kgraft
  • Odebrání hotfix kpatch
  • KernelCare – Uvolněte opravy

Přátelský k firewallu

  • Konfigurace brány firewall a proxy Ksplice
  • Nastavení brány firewall a proxy serveru KernelCare

Offline aktualizace

  • Offline klient Ksplice
  • Offline aktualizace KernelCare dostupné podnikovým zákazníkům prostřednictvím ePortálu

Oprava řízení přístupu

  • Zásady přístupu Ksplice
  • Konfigurace a umístění KernelCare

Plně automatizované

  • Automatické aktualizace Ksplice
  • Základní správa KernelCare

GUI pro správu

  • Ksplice GUI pouze na edicích Ubuntu nebo Fedora pro stolní počítače
  • Canonical Livepatch Service-GUI pouze s Landscape, nástrojem pro správu systémů Ubuntu, možností placené podpory
  • ePortál KernelCare

Bezplatná podpora 24/7

  • Podpora Kpatch (placená)
  • Podpora Kgraft (placená)
  • Ubuntu Advantage (placené)
  • Podpora KernelCare (v ceně)

Počet platforem

  • Ksplice podporovaná jádra (Red Hat Enterprise Linux, Oracle Linux)
  • Datový list Kgraft (SUSE Linux Enterprise Server 12/15)
  • Rozsah podpory Kpatch (RedHat) (Red Hat Enterprise Linux)
  • Kpatch (github.com) (Debian, CentOS, Ubuntu, Gentoo)
  • Datový list služby Canonical Livepatch (PDF) (Ubuntu 14.04 LTS, 16.04 LTS)
  • KernelCare Patch Server (Ubuntu, RHEL, CentOS, CloudLinux OS, Debian, Oracle Linux, Proxmox VE, Virt-SIG/Xen4CentOS, Virtuozzo/OpenVZ)

Bezplatná zkušební verze

  • Bezplatné 30denní zkušební období Ksplice (vyžaduje účet Oracle SSO)
  • Bezplatné 60denní zkušební období Kgraft
  • Bezplatná 30denní zkušební verze KernelCare

API (REST)

  • Ksplice API
  • KernelCare Nagios/Zabbix API

Jiné než nejnovější přepsání

  • Ksplice (konkrétní účinná verze)
  • KernelCare Sticky Patches

Autor Paul Jacobs

Paul je technický evangelista a autor obsahu CloudLinuxu. Využívá svých více než 25 let kaleidoskopických zkušeností v IT, aby rozebral, odhalil a vysvětlil složitost webhostingu a zabezpečení Linuxu.


Linux
  1. Analýza historie Bash v Linuxu

  2. Linux – Kernel IP Forwarding?

  3. Linux – poskvrněné jádro v Linuxu?

  1. Moduly linuxového jádra, bez kterých nemůžeme žít

  2. Historie příkazového řádku v Linuxu

  3. Příkaz historie Linuxu

  1. Linux Kernel Live Patching na Ubuntu 20.04 LTS

  2. Jak nastavit automatické aktualizace jádra bez restartu na serveru Linux

  3. 5 nástrojů pro opravy jádra Live, které pomohou provozovat linuxové servery bez restartování