Solve the paradox Less Downtime – More Security
LinuxCon Berlin, Germany October 4, 12:10 – 13:00
Hannes Kühnemund SUSE Product Management
Solve the paradox Less Downtime More Security LinuxCon Berlin, - - PowerPoint PPT Presentation
Solve the paradox Less Downtime More Security LinuxCon Berlin, Germany October 4, 12:10 13:00 Hannes Khnemund SUSE Product Management Downtime Considerations for your digital architecture Take a holistic approach - End-users
LinuxCon Berlin, Germany October 4, 12:10 – 13:00
Hannes Kühnemund SUSE Product Management
Considerations for your digital architecture Take a holistic approach …
... because we understand that components will fail, ...
... acceptance of any downtime is decreasing and it is critical to ...
... strike a balance.
2
Regular cadence
On the weekend In alignment with all stakeholders Combination of Taks
Optimizable with
3
planned
Regular cadence
On the weekend In alignment with all stakeholders Combination of Taks
Optimizable with
4
planned unplanned
Regular cadence
On the weekend In alignment with all stakeholders Combination of Taks
Optimizable with
5
planned No cadence unplanned
Regular cadence
On the weekend In alignment with all stakeholders Combination of Taks
Optimizable with
6
planned No cadence Usually on Christmas Day unplanned
Regular cadence
On the weekend In alignment with all stakeholders Combination of Taks
Optimizable with
7
planned No cadence Usually on Christmas Day No alignment with stakeholders unplanned
Regular cadence
On the weekend In alignment with all stakeholders Combination of Taks
Optimizable with
8
planned No cadence Usually on Christmas Day No alignment with stakeholders Only one particular problem fixed unplanned
Regular cadence
On the weekend In alignment with all stakeholders Combination of Taks
Optimizable with
9
planned No cadence Usually on Christmas Day No alignment with stakeholders Only one particular problem fixed Optimizable with
unplanned
10
Load Balancer
RAID
Virtualization
System Rollback
High Availability and GEO
Live Patching
11
12
No Downtime Security
13
14
Year # vulnerabilities 2010 4258 2011 3532 2012 4347 2013 4794 2014 7038 2015 8822
2000 4000 6000 8000 10000
2010 2011 2012 2013 2014 2015
38% 16% 18% 28%
Vulnerability type 2015
Operating System Browsers Mobile Devices Applications
Rank Operating System # vulnerabilities 2015 1 Apple OS X 384 2 Microsoft Windows Server 2012 155 3 Canonical Ubuntu Linux 152 4 Microsoft Windows 8.1 151 ... 11 The Linux Kernel 77
Source: [http://www.cvedetails.com] & [https://nvd.nist.gov/] & [http://www.gfi.com/blog/2015s-mvps-the-most-vulnerable-players/]
15
16
Linux Kernel Nov-11, 2015
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
17
Linux Kernel Nov-11, 2015
CVE-2015-6937 CVE-2015-7872 CVE-2015-7990December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
18
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
Linux Kernel Nov-11, 2015
CVE-2015-6937 CVE-2015-7872 CVE-2015-7990CVE: Common Vulnerabilities and Exposures It is a standard naming scheme used by the NVD NVD: National Vulnerability Database (https://nvd.nist.gov/)
19
Linux Kernel Nov-11, 2015
CVE-2015-6937 CVE-2015-7872 CVE-2015-7990December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
20
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015
CVE-2015-6937 CVE-2015-7872 CVE-2015-7990Reboot December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
21
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015
CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2016-0728 CVE-2016-0728December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
22
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016
CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2016-0728 CVE-2016-0728Reboot December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
23
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2016-0728 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2016-0728 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
24
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2016-0728 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2016-0728 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660Reboot December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
25
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-2384 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-2384 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-2384 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-2384December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
26
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-2384 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-2384 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-2384 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-2384Reboot December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
27
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2016-1583 CVE-2016-3134December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
28
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2016-1583 CVE-2016-3134Reboot December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
29
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2016-4997 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2016-4997 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2016-4997 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2016-4997 CVE-2016-1583 CVE-2016-3134 CVE-2016-4997 CVE-2016-4997December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
30
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016 Linux Kernel Aug-16, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2016-4997 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2016-4997 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2016-4997 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-1583 CVE-2016-2384 CVE-2016-3134 CVE-2016-4997 CVE-2016-1583 CVE-2016-3134 CVE-2016-4997 CVE-2016-4997Reboot December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
31
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016 Linux Kernel Aug-16, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-0758 CVE-2016-1583 CVE-2016-2053 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
32
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016 Linux Kernel Aug-16, 2016 Linux Kernel Sep-12, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-0758 CVE-2016-1583 CVE-2016-2053 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829Reboot December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
33
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016 Linux Kernel Aug-16, 2016 Linux Kernel Sep-12, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2016-0758 CVE-2016-1583 CVE-2016-2053 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2016-6480 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829 CVE-2016-6480Sample data taken
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
34
‒ gain privileges or cause a denial of service
‒ local users can bypass intended access restrictions
‒ gain privileges or cause a denial of service
‒ allows local users to cause a denial of service
‒ local users can cause a denial of service (OOPS)
‒ local users can cause a denial of service (NULL pointer dereference and system crash)
‒ local users to bypass intended AF_UNIX socket permissions or cause a denial of service (panic)
35
36
Trinity Test 1945 (Manhattan Project)
were used to crunch the numbers
device test, the question was: “What will the yield be, how much energy will be released?”
three months to complete – recalculating any batches with errors
to fix errors in calculations while the calculator was running
37
kpatch
38
1990 2015 2000 1995 2005 2010 PoDUS Gupta Erlang Ginseng UpStare Ksplice Kitsune kGraft klp
39
→ DWARF to the rescue
→ kernel keeps list: kallsyms
→ using gcc optimization log
→ consistency model
→ send fake signal SIGKGRAFT / ignore
→ not in kGraft right now
→ depends on what the module does ...
40
Requirement: ensure system consistency when deploying live patches
41
Freezing the system (kpatch, ksplice) Lazy migration (kGraft)
Requirement: ensure system consistency when deploying live patches
42
Freezing the system (kpatch, ksplice) Lazy migration (kGraft)
stop_kernel(); check all stacks, whether any thread is stopped within a patched function If yes, resume kernel and try again later If not, flip the switch on all functions and resume the kernel
Requirement: ensure system consistency when deploying live patches
43
Freezing the system (kpatch, ksplice) Lazy migration (kGraft)
stop_kernel(); check all stacks, whether any thread is stopped within a patched function If yes, resume kernel and try again later If not, flip the switch on all functions and resume the kernel For each thread separately: Present the old version of functions to the thread until it leaves the kernel then give it the updated version Wake sleeping threads up by a special signal Prevent the signal from reaching userspace Once all threads have exited the kernel at least once we're DONE
Requirement: ensure system consistency when deploying live patches
44
Freezing the system (kpatch, ksplice) Lazy migration (kGraft)
stop_kernel(); check all stacks, whether any thread is stopped within a patched function If yes, resume kernel and try again later If not, flip the switch on all functions and resume the kernel For each thread separately: Present the old version of functions to the thread until it leaves the kernel then give it the updated version Wake sleeping threads up by a special
userspace Once all threads have exited the kernel at least once we're DONE
Do you have better ideas than those two? Join SUSE as Live Patching developer https://jobs.suse.com/job/prague/live-patching-developer/3486/2529381
The chosen model is a merge of kpatch and kGraft
45
Reliable stack unwinder (needed by kpatch)
upstream → Takes time Kernel thread model cleanup (needed by kGraft)
→ Takes time
46
[ http://mpe.github.io/posts/2016/05/23/kernel-live-patching-for-ppc64le/ ]
47
48
Linux Kernel Nov-11, 2015
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
49
Linux Kernel Nov-11, 2015
CVE-2015-6937 CVE-2015-7872 CVE-2015-7990December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
50
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
51
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015
CVE-2016-0728 CVE-2016-0728December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
52
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
53
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016
CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
54
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
55
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016
CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-2384 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-2384 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-2384 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0774 CVE-2016-2384December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
56
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
57
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016
CVE-2016-1583 CVE-2016-3134 CVE-2016-1583 CVE-2016-3134 CVE-2016-1583 CVE-2016-3134 CVE-2016-1583 CVE-2016-3134 CVE-2016-1583 CVE-2016-3134December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
58
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
59
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016
CVE-2016-4997 CVE-2016-4997 CVE-2016-4997 CVE-2016-4997 CVE-2016-4997 CVE-2016-4997December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
60
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016 Linux Kernel Aug-16, 2016
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
61
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016 Linux Kernel Aug-16, 2016
CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
62
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016 Linux Kernel Aug-16, 2016 Linux Kernel Sep-12, 2016
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
63
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016 Linux Kernel Aug-16, 2016 Linux Kernel Sep-12, 2016
CVE-2016-6480 CVE-2016-6480 CVE-2016-6480 CVE-2016-6480 CVE-2016-6480 CVE-2016-6480 CVE-2016-6480 CVE-2016-6480Sample data taken
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
Sample data taken
64
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016 Linux Kernel Aug-16, 2016 Linux Kernel Sep-12, 2016
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
65
Linux Kernel Nov-11, 2015 Linux Kernel Dec-11, 2015 Linux Kernel Jan-15, 2016 Linux Kernel Feb-10, 2016 Linux Kernel Mar-22, 2016 Linux Kernel Jun-09, 2016 Linux Kernel Aug-16, 2016 Linux Kernel Sep-12, 2016
CVE-2013-7446 CVE-2015-6937 CVE-2015-7872 CVE-2015-7990 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0728 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2013-7446 CVE-2015-8019 CVE-2015-8539 CVE-2015-8660 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2015-8709 CVE-2015-8812 CVE-2015-8816 CVE-2016-0758 CVE-2016-0774 CVE-2016-1583 CVE-2016-2053 CVE-2016-2384 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2016-0758 CVE-2016-1583 CVE-2016-2053 CVE-2016-3134 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-4997 CVE-2016-5829 CVE-2016-6480 CVE-2016-6480 CVE-2016-0758 CVE-2016-2053 CVE-2016-4470 CVE-2016-4565 CVE-2016-5829 CVE-2016-6480Sample data taken
December 2015 January 2016 February 2016 March 2016 April 2016 May 2016 June 2016 July 2016 August 2016 September 2016
66 Available for SLES 12 onwards (x86-64) Provides fixes for Kernel bugs which affect
Security Stability Data Integrity
No runtime performance impact No interruption of applications while patching Allows full review of patch source code Build-in PTF support Patches available for most recent maintenance
kernels (last 12 months)
Currently based on kGraft OpenSource project
67
68
(c) creativecommons.org/licenses/by/3.0
69
(c) creativecommons.org/licenses/by/3.0 http://cdn.slashgear.com/wp- content/uploads/2012/10/google-datacenter-tech-21.jpg
70
(c) creativecommons.org/licenses/by/3.0 http://cdn.slashgear.com/wp- content/uploads/2012/10/google-datacenter-tech-21.jpg (c) openSUSE.org
71
(c) creativecommons.org/licenses/by/3.0 http://cdn.slashgear.com/wp- content/uploads/2012/10/google-datacenter-tech-21.jpg (c) openSUSE.org FUJITSU PRIMEQUEST 2800B, (c) Fujitsu
SAP HANA
72
SLE Live Patching for ppc64le SLE Live Patching for IBM z Systems User Space Live Patching SLE Live Patching for Aarch64 Virtualization Live Patching
73
Join SUSE as Live Patching developer
https://jobs.suse.com/job/prague/live-patching-developer/3486/2529381
SUSE Linux Enterprise Live Patching – 60 day Eval
www.suse.com/products/sles-for-sap/
Forrester – Linux vs. Unix Hot Patching – have we reached the tipping point?
http://blogs.forrester.com/richard_fichera/16-05-20- linux_vs_unix_hot_patching_have_we_reached_the_tipping_point
74
Hannes Kühnemund SUSE Product Management hkuehnemund@suse.com @hakuehnemund www.linkedin.com/in/hanneskuehnemund
75
One hour of downtime costs $100k for 95% of all enterprises
http://itic-corp.com/blog/2013/07/one-hour-of-downtime-costs-100k-for-95-of- enterprises/
Kernel Live Patching for ppc64le
http://mpe.github.io/posts/2016/05/23/kernel-live-patching-for-ppc64le/
Forrester – Linux vs. Unix Hot Patching – have we reached the tipping point?
http://blogs.forrester.com/richard_fichera/16-05-20- linux_vs_unix_hot_patching_have_we_reached_the_tipping_point
Using Live Patching to patch a running SAP HANA system with zero interruption
https://www.youtube.com/watch?v=E9KwTfWeVLg
76