


{"id":367,"date":"2024-02-06T02:35:32","date_gmt":"2024-02-06T02:35:32","guid":{"rendered":"https:\/\/oracle.human-design.jp\/en\/?p=367"},"modified":"2024-02-27T03:08:02","modified_gmt":"2024-02-27T03:08:02","slug":"20220922","status":"publish","type":"post","link":"https:\/\/oracle.human-design.jp\/en\/knowledge-base\/20220922\/","title":{"rendered":"4.Have You Ever Used Ksplice?"},"content":{"rendered":"\n<p>In this article, we will introduce Ksplice, one of the features of Oracle Linux. Ksplice is a live patching system that allows you to apply patches to the kernel without rebooting the OS. It has a history of more than 10 years, and it is an excellent feature that is unmatched at this time. However, even among people using Oracle Linux, those who use Ksplice may be in the minority. So in this article, we will aim to deepen your understanding of Ksplice.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What is Ksplice?<\/h2>\n\n\n\n<p>Ksplice is a feature that allows you to apply patches to the Linux kernel and some user space libraries without rebooting the OS. For example, if you install a newly released kernel, you still need to reboot the OS to enable it. However, Ksplice allows you to enable the latest update without having to reboot.<\/p>\n\n\n\n<p>In other words, you can get the following benefits with Ksplice:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Minimize system downtime<\/li>\n\n\n\n<li>Respond quickly to security vulnerabilities<\/li>\n\n\n\n<li>Minimize patch application time<\/li>\n<\/ul>\n\n\n\n<p>The ability to enable updates without rebooting is a particularly important feature in &#8220;externally accessible servers&#8221; and &#8220;KVM hosts with many virtual machines running&#8221;. Externally accessible servers need to respond quickly to security vulnerabilities. In addition, multiple virtual servers run on KVM hosts. Therefore, when an OS reboot is needed, various pre-adjustments are required, and the actual work time is also required.<\/p>\n\n\n\n<p>In other words, Ksplice is a feature that is particularly effective in enterprise use, helping to reduce operational costs and enhance security.<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Ksplice FAQ<\/h2>\n\n\n\n<p>In order to help you quickly understand Ksplice, we will give you an overview titled Ksplice FAQ.<\/p>\n\n\n\n<div class=\"wp-block-group has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"background-color:#eeeeee;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--30)\">\n<h3 class=\"wp-block-heading\">What OSs can I use with Ksplice?<\/h3>\n\n\n\n<p style=\"padding-top:0;padding-bottom:0\">At this time (September 2022), the following Linux OSs are supported. Ksplice also supports both the Red Hat-compatible kernel and the Unbreakable Enterprise kernel for Oracle Linux.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Oracle Linux 6<\/li>\n\n\n\n<li>Oracle Linux 7<\/li>\n\n\n\n<li>Oracle Linux 8<\/li>\n\n\n\n<li>Oracle Linux 9<\/li>\n\n\n\n<li>CentOS and RHEL 7<\/li>\n\n\n\n<li>CentOS and RHEL 8<\/li>\n\n\n\n<li>Ubuntu 18.04<\/li>\n\n\n\n<li>Ubuntu 20.04<\/li>\n<\/ul>\n\n\n\n<p>In addition to Intel\/AMD (x86_64), it also supports 64-bit Arm. However, it only supports Unbreakable Enterprise Kernel for Arm.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"background-color:#eeeeee;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--30)\">\n<h3 class=\"wp-block-heading\">Do I need an Internet connection to use Ksplice?<\/h3>\n\n\n\n<p>Ksplice has online and offline modes. Online mode connects to the Unbreakable Linux Network (ULN) provided by Oracle, so you need to be able to connect to the Internet (this may be via an Internet proxy).<\/p>\n\n\n\n<p>In addition, in offline mode, you can use Ksplice without connecting to the Internet by setting up a Ksplice mirror. However, the server that is used as the Ksplice mirror must be able to connect to the Internet.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"background-color:#eeeeee;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--30)\">\n<h3 class=\"wp-block-heading\">What components are covered by Ksplice&#8217;s live patch?<\/h3>\n\n\n\n<p>In addition to the following two kernels, it supports the user space packages glibc and openssl. However, only Oracle Linux supports user space packages.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Red Hat compatible kernel<\/li>\n\n\n\n<li>Unbreakable Enterprise Kernel<\/li>\n\n\n\n<li>glibc<\/li>\n\n\n\n<li>openssl<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"background-color:#eeeeee;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--30)\">\n<h3 class=\"wp-block-heading\">Is there a fee for using Ksplice?<\/h3>\n\n\n\n<p>To use Ksplice, you need a paid Oracle Linux Premier Support contract. However, Ksplice is available for free on Oracle Linux on Oracle Cloud Infrastructure (set up by default). Exceptionally, you can use it for free on Ubuntu.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"background-color:#eeeeee;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--30)\">\n<h3 class=\"wp-block-heading\">Is there a trial program for Ksplice?<\/h3>\n\n\n\n<p>A 30-day <a href=\"https:\/\/ksplice.oracle.com\/try\/trial\" target=\"_blank\" rel=\"noreferrer noopener\">trial program<\/a> is available. In addition, if you want to try Ksplice easily, we recommend Oracle Cloud Infrastructure&#8217;s Always Free. The Oracle Linux image is already set up with Ksplice, so you can use it right away.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"background-color:#eeeeee;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--30)\">\n<h3 class=\"wp-block-heading\">Are there other live patching systems like Ksplice?<\/h3>\n\n\n\n<p>Other Linux distributions also have the following live patching systems. However, all of them have just been provided in recent years, and have not yet proven their performance.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>RHEL-based Linux kpatch<\/li>\n\n\n\n<li>SUSE KLP<\/li>\n\n\n\n<li>Ubuntu Livepatch Service<\/li>\n<\/ul>\n\n\n\n<p>In addition, on Windows, there is a feature called Windows hot patch. However, it is limited to Windows Server 2022 Datacenter: Azure Edition.<\/p>\n<\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Let\u2019s try out Ksplice<\/h2>\n\n\n\n<p>To understand Ksplice, it is better to see how it actually works. In this article, we will explain using Oracle Linux 8 of Oracle Cloud Infrastructure, which is easy to try. The setup and details will be explained in the next article.<\/p>\n\n\n\n<p>In addition, Oracle Linux 7 and Oracle Linux 9 are almost the same, but there may be slight differences depending on the image version you are using.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Check the status of your Ksplice setup<\/h3>\n\n\n\n<p>To use Ksplice, you need a Ksplice client. So, check if the Ksplice client is installed. If you search for a package, you will find that the <strong>uptrack<\/strong> package (= Ksplice client) is installed.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ rpm -qa | grep -e ksplice -e uptrack | sort\nksplice-release-el8-1.0-4.el8.x86_64\nksplice-uptrack-release-1-5.noarch\nuptrack-1.2.75-0.el8.noarch<\/code><\/pre>\n\n\n\n<p>Next, check the configuration file \/etc\/uptrack\/uptrack.conf. You can use Ksplice if the configuration file exists and the accesskey is configured.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ grep -v -e '^\\s*#' -e '^\\s*$' \/etc\/uptrack\/uptrack.conf\n&#91;Auth]\naccesskey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\uff08The  key for Ksplice Uptrack is retrieved from ULN\uff09\n&#91;Network]\nhttps_proxy =\ngconf_proxy_lookup = no\n&#91;Settings]\ninstall_on_reboot = yes\nautoinstall = no<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Learn the basics of Ksplice<\/h2>\n\n\n\n<p>Now that you know that Ksplice is set up, we will actually use Ksplice. Since most operations require root privileges, we will use <strong>su<\/strong>. Alternatively, you can add <strong>sudo<\/strong> every time.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo su -<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Check the kernel version<\/h3>\n\n\n\n<p>Check the currently enabled Linux kernel version. UEK6 <strong>&#8220;5.4.17-2136.306.1.3&#8221; <\/strong>is enabled.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># uname -r\n5.4.17-2136.306.1.3.el8uek.x86_64<\/code><\/pre>\n\n\n\n<p>If you check the latest version of the repository, it is <strong>&#8220;5.4.17-2136.310.7.1&#8221;<\/strong>. So you can see that a new version has been released.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># yum check-update kernel-uek\nkernel-uek.x86_64              5.4.17-2136.310.7.1.el8uek              ol8_UEKR6<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">View updates<\/h3>\n\n\n\n<p>In the traditional method, the kernel is updated and rebooted as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># yum update kernel-uek -y\n# reboot\n\n<\/code><\/pre>\n\n\n\n<p>In Ksplice, use the <strong>uptrack-upgrade<\/strong> command. You can view the applicable Ksplice updates by entering &#8220;uptrack-upgrade -n&#8221; as follows. Each row is a separate update.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># uptrack-upgrade -n\nEffective kernel version is 5.4.17-2136.306.1.3.el8uek\nThe following steps will be taken:\nInstall &#91;n9kprcm6] Known exploit detection.\nInstall &#91;qivpmdlu] Known exploit detection for CVE-2019-9213.\nInstall &#91;50qj7qw1] Known exploit detection for CVE-2017-1000253.\nInstall &#91;3iw8b16t] Known exploit detection for CVE-2016-5195.\nInstall &#91;sgxyx32m] Known exploit detection for CVE-2021-27363.\nInstall &#91;92k7sosn] Known exploit detection for CVE-2021-27364.\n\u2605Omitted below<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Apply the update<\/h3>\n\n\n\n<p>Apply all these updates. The time to apply varies depending on the number of updates and machine specifications, and this time it took about 1 minute. The key point to note here is &#8220;<strong>5.4.17-2136.310.7<\/strong>&#8221; in the last line. Due to Ksplice, it has the same kernel version as the latest version.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># uptrack-upgrade -y\nThe following steps will be taken:\nInstall &#91;n9kprcm6] Known exploit detection.\nInstall &#91;qivpmdlu] Known exploit detection for CVE-2019-9213.\nInstall &#91;50qj7qw1] Known exploit detection for CVE-2017-1000253.\nInstall &#91;3iw8b16t] Known exploit detection for CVE-2016-5195.\n\u2605omission\nInstalling &#91;dad581dd] CVE-2022-2588: Use-after-free in IP Route Classifier.\nYour kernel is fully up to date.\nEffective kernel version is 5.4.17-2136.310.7.el8uek<\/code><\/pre>\n\n\n\n<p>The effective kernel version enabled by the Ksplice update can be viewed with the <strong>uptrack-uname<\/strong> command.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># uptrack-uname -r\n5.4.17-2136.310.7.el8uek.x86_64<\/code><\/pre>\n\n\n\n<p>Normal <strong>uname<\/strong> displays the installed kernel version.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># uname -r\n5.4.17-2136.306.1.3.el8uek.x86_64<\/code><\/pre>\n\n\n\n<p>The list of installed UEKs is as follows. The latest &#8220;<strong>5.4.17-2136.310.7<\/strong>&#8221; is not installed. In other words, only the incremental Ksplice update (patch) is installed.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># rpm -q kernel-uek | sort -n\nkernel-uek-5.4.17-2102.201.3.el8uek.x86_64\nkernel-uek-5.4.17-2136.304.4.1.el8uek.x86_64\nkernel-uek-5.4.17-2136.306.1.3.el8uek.x86_64<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">View updates<\/h3>\n\n\n\n<p>The Ksplice update you are applying can be viewed with the <strong>uptrack-show<\/strong> command.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># uptrack-show\nInstalled updates:\n&#91;n9kprcm6] Known exploit detection.\n&#91;qivpmdlu] Known exploit detection for CVE-2019-9213.\n&#91;50qj7qw1] Known exploit detection for CVE-2017-1000253.\n\u2605omission\n&#91;fza3q2mo] CVE-2022-2153: Denial-of-service in Kernel-based Virtual Machine.\n&#91;4eaq3lov] CVE-2022-21505: Lockdown bypass in Integrity Measurement Architecture.\n&#91;dad581dd] CVE-2022-2588: Use-after-free in IP Route Classifier.\nEffective kernel version is 5.4.17-2136.310.7.el8uek<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Deleting updates<\/h3>\n\n\n\n<p>You can easily delete the applied updates with the <strong>uptrack-remove<\/strong> command.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># uptrack-remove --all -y\nThe following steps will be taken:\nRemove &#91;dad581dd] CVE-2022-2588: Use-after-free in IP Route Classifier.\nRemove &#91;4eaq3lov] CVE-2022-21505: Lockdown bypass in Integrity Measurement Architecture.\nRemove &#91;jjafy1ef] CVE-2022-29582: Use-after-free in asynchronous io_uring API.\n\u2605omission\nRemoving &#91;qivpmdlu] Known exploit detection for CVE-2019-9213.\nRemoving &#91;n9kprcm6] Known exploit detection.\nEffective kernel version is 5.4.17-2136.306.1.3.el8uek<\/code><\/pre>\n\n\n\n<p>You are now back to the original state of not applying the Ksplice updates. In this case, we&#8217;ve applied the updates in bulk, but you can also apply them individually by specifying their IDs.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># uptrack-uname -r\n5.4.17-2136.306.1.3.el8uek.x86_64\n\n# uname -r\n5.4.17-2136.306.1.3.el8uek.x86_64<\/code><\/pre>\n\n\n\n<p>As a reminder, you won&#8217;t see anything when you view the applied Ksplice updates.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># uptrack-show\nInstalled updates:\nNone\n\nEffective kernel version is 5.4.17-2136.306.1.3.el8uek<\/code><\/pre>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Did you understand what Ksplice is? In addition, we believe that when you actually use it, you will see that it is very easy to use. In the next article, we will discuss Ksplice in more detail.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.oracle.com\/en\/operating-systems\/oracle-linux\/ksplice-user\/#Oracle-Linux\" target=\"_blank\" rel=\"noreferrer noopener\">Oracle Linux Ksplice User&#8217;s Guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.ksplice.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">ksplice.com<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.oracle.com\/linux\/security\/\" target=\"_blank\" rel=\"noreferrer noopener\">Oracle Linux &#8211; Security<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/twitter.com\/ksplice\" target=\"_blank\" rel=\"noreferrer noopener\">Ksplice Twitter<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will introduce Ksplice, one of the features of Oracle Linux. Ksplice is a live patching sy [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[7],"class_list":["post-367","post","type-post","status-publish","format-standard","hentry","category-knowledge-base","tag-linux"],"_links":{"self":[{"href":"https:\/\/oracle.human-design.jp\/en\/wp-json\/wp\/v2\/posts\/367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oracle.human-design.jp\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oracle.human-design.jp\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oracle.human-design.jp\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oracle.human-design.jp\/en\/wp-json\/wp\/v2\/comments?post=367"}],"version-history":[{"count":9,"href":"https:\/\/oracle.human-design.jp\/en\/wp-json\/wp\/v2\/posts\/367\/revisions"}],"predecessor-version":[{"id":560,"href":"https:\/\/oracle.human-design.jp\/en\/wp-json\/wp\/v2\/posts\/367\/revisions\/560"}],"wp:attachment":[{"href":"https:\/\/oracle.human-design.jp\/en\/wp-json\/wp\/v2\/media?parent=367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oracle.human-design.jp\/en\/wp-json\/wp\/v2\/categories?post=367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oracle.human-design.jp\/en\/wp-json\/wp\/v2\/tags?post=367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}