Linux Kernel Live Patching mit kpatch und kgraft



Ähnliche Dokumente
Dynamische Änderung von Ressourcen in OpenStack

Btfs das Dateisystem der Zukunft?

owncloud Unternehmensdaten sicher in eigener Hand

Migration einer bestehenden Umgebung in eine private Cloud mit OpenStack

SDN mit OpenStack Neutron & Arista EOS

Ausrollen von Multi-Tier-Applikationen mit Docker

Systemmanagement mit Puppet und Foreman

OpenStack bei der SAP SE

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Systemmanagement mit Puppet und Foreman

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

GeODin 7 Installationsanleitung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Informationen zum neuen Studmail häufige Fragen

Anleitung über den Umgang mit Schildern

Professionelle Seminare im Bereich MS-Office

Lizenzen auschecken. Was ist zu tun?

How to do? Projekte - Zeiterfassung

Benutzerhandbuch MedHQ-App

Karten-Freischaltung mit dem UNLOCK MANAGER

Die Post hat eine Umfrage gemacht

Was meinen die Leute eigentlich mit: Grexit?

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Virtual System Cluster: Freie Wahl mit Open Source

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Neun Strategien der Partnerarbeit

Lokale Installation von DotNetNuke 4 ohne IIS

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Installation SQL- Server 2012 Single Node

Urlaubsregel in David

macs Support Ticket System

360 - Der Weg zum gläsernen Unternehmen mit QlikView am Beispiel Einkauf

Terminabgleich mit Mobiltelefonen

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Step by Step Webserver unter Windows Server von Christian Bartl

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

How to install freesshd

Live Update (Auto Update)

Lehrer: Einschreibemethoden

Restore Exchange Server 2007 SP2

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Bedienungsanleitung für den Online-Shop

1. Loggen Sie sich mit Ihrem Benutzernamen in den Hosting-Manager (Confixx) auf Ihrer entsprechenden AREA ein.

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Lizenz Verwaltung. Adami Vista CRM

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Speicher in der Cloud

MongoDB Big Data mit Open Source

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

ANLEITUNG NETZEWERK INSTALATION

Telefonieren mit App's"! iphone mit Bria Informationen zur Nutzung von TeScript

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

IBIS Professional. z Dokumentation zur Dublettenprüfung

Avira Server Security Produktupdates. Best Practice

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

TYPO3 CMS 6.2 LTS. Die neue TYPO3- Version mit Langzeit- Support

Leichte-Sprache-Bilder

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Xerox Device Agent, XDA-Lite. Kurzanleitung zur Installation

System-Update Addendum

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Anleitung Thunderbird Verschlu sselung

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Updatehinweise für die Version forma 5.5.5

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Treiber- und Software-Update für ITRA-Geräte

Zeichen bei Zahlen entschlüsseln

Installationsanleitung für Magento-Module

Installationsanleitung WibuKey Treiber

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Winoffice BUSINESS Plus Jahresabschluss

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Nicht über uns ohne uns

ICS-Addin. Benutzerhandbuch. Version: 1.0

Einzelplatz - USB-Lizenz

Hilfe zur ekim. Inhalt:

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Proxmox VE - mit OpenSource Virtualisierung leicht gemacht

AutoCAD Dienstprogramm zur Lizenzübertragung

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

Das Einzelplatz-Versionsupdate unter Version Bp810

4D Server v12 64-bit Version BETA VERSION

Getting Started Guide CRM Online, 2013 & 2015 xrm1 Verpflegungspauschalen

Print2CAD 2017, 8th Generation. Netzwerkversionen

Qualitätsbedingungen schulischer Inklusion für Kinder und Jugendliche mit dem Förderschwerpunkt Körperliche und motorische Entwicklung

Transkript:

und kgraft GUUG-Frühjahrsfachgespräch 2015 26. März 2015 Stefan seife Seyfried Linux Consultant & Developer seife@b1-systems.de Christan Rost Linux Consultant rost@b1-systems.de - Linux/Open Source Consulting, Training, Support & Development

Vorstellung B1 Systems gegründet 2004 primär Linux/Open Source-Themen national & international tätig über 60 Mitarbeiter unabhängig von Soft- und Hardware-Herstellern Leistungsangebot: Beratung & Consulting Support Entwicklung Training Betrieb Lösungen dezentrale Strukturen und kgraft 2 / 24

Schwerpunkte Virtualisierung (XEN, KVM & RHEV) Systemmanagement (Spacewalk, Red Hat Satellite, SUSE Manager) Konfigurationsmanagement (Puppet & Chef) Monitoring (Nagios & Icinga) IaaS Cloud (OpenStack & SUSE Cloud & RDO) Hochverfügbarkeit (Pacemaker) Shared Storage (GPFS, OCFS2, DRBD & CEPH) Dateiaustausch (owncloud) Paketierung (Open Build Service) Administratoren oder Entwickler zur Unterstützung des Teams vor Ort und kgraft 3 / 24

Was ist Live Patching? und kgraft 4 / 24

Was ist Live Patching? Kernel Update ohne Reboot Warum nicht einfach gefixtes Modul laden? Das alte Modul muss dazu entladen werden Schwierig z. B. beim Treiber für das Root-Dateisystem Unmöglich bei fest einkompilierten Kernelteilen und kgraft 5 / 24

Warum Kernel Live Patching? und kgraft 6 / 24

Warum Kernel Live Patching? Warum überhaupt Kernel Updates? Security Fixes Bugfixes Neue Funktionen, Verbesserung vorhandener Funktionen Warum Live und nicht Rebooten? Business Critical Anwendungen keine Downtime möglich oder gewünscht Keine HA Konfiguration/Applikation nicht HA-fähig Lange laufende Berechnungen/Simulationen Manager: Müssen wir wirklich rebooten? und kgraft 7 / 24

Welche Möglichkeiten gibt es? und kgraft 8 / 24

Welche Möglichkeiten gibt es? (Chronologische Reihenfolge) Ksplice kgraft (in SLES 12) kpatch (in RHEL 7) Kernel Live Patching (ab Kernel 4.0) und kgraft 9 / 24

Ksplice Erstes Release 2008 Software war Open Source, Ksplice, Inc. bot Service an 2011 von Oracle gekauft Nur noch für Oracle Linux, RHEL, Fedora und Ubuntu verfügbar Letztes Release 2011 und kgraft 10 / 24

kgraft Erste Ankündigung Januar 2014 Erstes Release März/April 2014 In SUSE Linux Enterprise Server 12 enthalten (extra Subscription, nicht im Default-Supportumfang) Für den Mainline-Linux-Kernel eingereicht im April 2014 und kgraft 11 / 24

kpatch Erstes Release Februar 2014 In Red Hat Enterprise Linux 7.0 als technology preview enthalten Für den Mainline-Linux-Kernel eingereicht im Mai 2014 und kgraft 12 / 24

Kernel Live Patching Im Mainline Linux Kernel ab 4.0 (April 2015) Schnittmenge aus kpatch und kgraft In Zusammenarbeit von SUSE, Red Hat und der Kernel Community und kgraft 13 / 24

Technische Details und kgraft 14 / 24

Ksplice Userspace kompiliert original und gepatchten Code Vergleich von Quellcode und erzeugtem Binary Erzeugt Patch-Modul stop_machine() based patching Funktionspointer werden direkt umgebogen (alle anderen Methoden verwenden die FTrace-Infrastruktur) und kgraft 15 / 24

kgraft Der Ziel-Kernel muss mit CONFIG_KGRAFT kompiliert sein Der Patch-Code wird für den jeweiligen Fix geschrieben Erzeugt ein Patch-Modul Userspace-Tools verfügbar, um Patch-Code zu erstellen Deren Benutzung ist momentan eine Herausforderung kein stop_machine(), stattdessen fließender Übergang von nicht gepatcht zu gepatcht und kgraft 16 / 24

kpatch Der Ziel-Kernel muss nicht besonders vorbereitet sein Tools verfügbar, die aus dem Diff einen binären Patch erzeugen Erzeugt ein Patch-Modul und ein Modul kpatch.ko, das die Infrastruktur bereitstellt Der Patch-Code ist dabei nicht sichtbar, alles geht automatisch Die Userspace-Tools funktionieren, zumindest für relativ einfache Beispiele und auf den supporteten Distributionen Patches können rückgängig gemacht und das Patch-Modul entladen werden stop_machine() based patching und kgraft 17 / 24

Kernel Live Patching Ab Kernel 4.0 Upstream Zu patchender Kernel muss mit CONFIG_LIVEPATCH=y konfiguriert sein Noch keine Userspace-Tools verfügbar, Patch muss manuell erzeugt werden Patches können an- und ausgeschaltet werden, aber das Patch-Modul kann (noch) nicht wieder entladen werden und kgraft 18 / 24

(einige) Details zur Implementierung und kgraft 19 / 24

Gemeinsamkeiten der Implementierungen (KSplice nicht beachtet) FTrace-Infrastruktur wird benutzt, um gepatchte Funktionsaufrufe umzuleiten Problematisch: Patches, die die Datenstrukturen im Kernel ändern Problem: Konsistenz beim Umschalten zwischen ungepatcht und gepatcht und kgraft 20 / 24

Unterschiede der Implementierungen Konsistenz beim Übergang Zu lösendes Problem: die zu patchende Funktion darf in diesem Moment nicht genutzt werden Kernel Live Patching: noch nicht implementiert kpatch: alle Prozesse werden angehalten, geprüft ob alle Prozesse in einem sicheren Zustand sind, wenn ja wird gepatcht und alles wieder gestartet kgraft: für jeden Prozess wird einzeln umgeschaltet, wenn er gerade patchbar ist. Prozesse müssen eventuell mit einem Signal geweckt werden, damit sie in den gepatchten Modus wechseln und kgraft 21 / 24

Unterschiede der Implementierungen Konsistenz beim Übergang Zu lösendes Problem: die zu patchende Funktion darf in diesem Moment nicht genutzt werden kpatch: es ist theoretisch möglich, dass ein Patch nicht angewendet werden kann, weil nie alle Prozesse gleichzeitig die kritische Funktion verlassen kgraft: es ist theoretisch möglich, dass ein Patch niemals fertig wird, weil ein Prozess nicht aufgeweckt werden kann. Alle anderen Prozesse benutzen dann aber schon den gepatchten Code. und kgraft 22 / 24

Unterschiede der Implementierungen Kernel Live Patching (in Kernel 4.0): This first version does not implement any consistency mechanism that ensures that old and new code do not run together. In practice, ~90% of CVEs are safe to apply in this way, since they simply add a conditional check. However, any function change that can not execute safely with the old version of the function can _not_ be safely applied in this version. und kgraft 23 / 24

Vielen Dank für Ihre Aufmerksamkeit! Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de oder +49 (0)8457-931096 - Linux/Open Source Consulting, Training, Support & Development