공유할 서비스 선택

TECH


TECH

OS Live kernel patch - 온라인 커널 업데이트

페이지 정보

작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 623회 좋아요 0회 작성일 23-08-20 21:14

본문

안녕하세요~

 

오늘 살펴볼 기술은 Live kernel patch 입니다.

 

모든 사이트에서의 고민이 커널업데이트를 하면, 꼭 리부팅을 해야하는데 이번 Live kernel patch 는 그 고민을 해결해줄 기술입니다.

 

일단 바로 설치에서 사용 방법을 알아보도록하겠습니다.

 

1. 설치

 

1)현재 커널 버전을 확인합니다. 

# uname -a 

Linux RHEL84-sample 4.18.0-305.el8.x86_64 #1 SMP Thu Apr 29 08:54:30 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux 


2) 커널 버전에 해당하는 라이브 패치 패키지를 검색합니다. 

 # yum search $(uname -r) 

Updating Subscription Management repositories. Last metadata expiration check: 0:04:17 ago on Mon 20 Feb 2023 06:41:20 PM KST. ====================== Summary Matched: 4.18.0-305.7.1.el8_4.x86_64================================ kpatch-patch-4_18_0-305_7_1.x86_64 : Live kernel patching module for kernel-4.18.0-305.7.1.el8_4.x86_64 


3) 라이브 패치 패키지를 설치합니다. 

# yum install "kpatch-patch = $(uname -r)" 


4) 설치된 라이브 패치 패키지 확인 

. kpatch list 명령어로 현재 로딩된 커널 버전을 확인 할 수 있습니다. 

. uname -a 로 확인하는 건 현재로써 무의미한 것입니다. 단, 리부팅하면 현재 로딩된 커널버전으로 변경됩니다.

  

# kpatch list       

Loaded patch modules:

kpatch_4_18_0_305_7_1_1_4 [enabled]

 

Installed patch modules:

kpatch_4_18_0_305_7_1_1_4 (4.18.0-305.7.1.el8_4.x86_64)

kpatch_4_18_0_305_1_6 (4.18.0-305.el8.x86_64)   <-- 이전에 테스트로 설치한 버전들

kpatch_4_18_0_348_1_4 (4.18.0-348.el8.x86_64)   <--


 

2. 커널 업데이트 된 내용 확인

. changelog를 보면 패키된 커널에 변경된 내용을 확인 할 수 있습니다.

. 아래 표를 보시면 8.4 버전에서 8.5 버전 이전의 보안취약점들이 업데이트된것을 날짜로 확인할수있습니다.

(이 말 뜻은 커널 온라인 업데이트는 마이너버전 이상으로 업데이트는 불가하다는 얘기입니다.

단, EUS 서브스크립션을 보유중인 분들은 1단계의 마이너버전까지 지원이 가능합니다. ....하단 이미지 참고)

 

 

# yum changelog kpatch-patch-4_18_0-305_7_1.x86_64

Updating Subscription Management repositories.

Last metadata expiration check: 0:18:03 ago on Mon 20 Feb 2023 06:41:20 PM KST.

Listing all changelogs

 

Changelogs for kpatch-patch-4_18_0-305_7_1-1-4.el8_4.x86_64

* Wed Oct 27 12:00:00 AM 2021 Artem Savkov <asavkov@redhat.com> [1-4.el8_4]

- out-of-bounds write due to a heap buffer overflow in __hidinput_change_resolution_multipliers() [1979028] {CVE-2021-0512}

- use-after-free in drivers/infiniband/core/ucma.c ctx use-after-free [1981706] {CVE-2020-36385}


* Wed Sep 01 12:00:00 AM 2021 Artem Savkov <asavkov@redhat.com> [1-3.el8_4] 

- powerpc: KVM guest OS users can cause host OS memory corruption [1988230] {CVE-2021-37576}


* Tue Jul 27 12:00:00 AM 2021 Artem Savkov <asavkov@redhat.com> [1-2.el8_4] 

- race condition in net/can/bcm.c leads to local privilege escalation [1975066] {CVE-2021-3609}

- out-of-bounds write in xt_compat_target_from_user() in net/netfilter/x_tables.c [1980520] {CVE-2021-22555}

- Improper handling of VM_IO|VM_PFNMAP vmas in KVM can bypass RO checks [1975762] {CVE-2021-22543}


* Mon Jul 12 12:00:00 AM 2021 Artem Savkov <asavkov@redhat.com> [1-1.el8_4]

- kernel: size_t-to-int conversion vulnerability in the filesystem layer [1975190] {CVE-2021-33909}

- kernel: race condition for removal of the HCI controller [1971478] {CVE-2021-32399}


* Wed Jun 16 12:00:00 AM 2021 Yannick Cote <ycote@redhat.com> [0-0.el8_4]

- An empty patch to subscribe to kpatch stream for kernel-4.18.0-305.7.1.el8_4 [1972823]


 

Release

General Availability Date

Kernel Version

RHEL 8.4

2021-05-18

4.18.0-305

RHEL 8.5

2021-11-09

4.18.0-348


 

> 구조적 설명

 

79a3f86403c27446855dcbd25fdd64fe_1692532786_9364.png
- 'Before Patching' 에서는 Call이 들어오면 현재 커널에서 바로 응답을 합니다.

- 하지만 온라인 패키된 상태에서는 우측 그림처럼 Call이 들어오면 ftrace에서 패키된 커널에 관련된 것이라고 판단하면 kpartch 에 문의하여, 해당하는 변경된 응답을 주게됩니다.

 

 

>>>>>> 그럼 요약해보도록하겠습니다.

- 현재 RHEL8.4를 사용 중이고 나의 서브스크립션이 Standard면 RHEL8.5 이전까지의 보안취약점에 대해서 라이브 커널 업데이트로 문제를 해소 할 수 있다.

단, RHEL8.4 이상을 못 벗어난다.

 

- 현재 RHEL8.4를 사용 중이고 나의 서브스크립션중 EUS 가 있다면 약 2년까지 보안취약점에 대해서 라이브 커널 업데이트로 문제를 해소 할 수 있다.

ex) RHEL8.4 최대 RHEL8.6까지 가능 할 수 도있다. (맨 아래 이미지 참고)  

 

 

[ kpatch의 범위 및 한계 ] 

- RHEL 8.1, RHEL 7.7, RHEL-7.6 및 커널 3.10.0-957.35.1.el7부터는 라이브 커널 패치를 CDN(Red Hat Content Delivery Network)에서 사용할 수 있으며 yum 명령을 통해 설치할 수 있습니다.

- RHEL 8.3, 7.8, RHEL 6 및 RHEL 5용으로 출시된 라이브 패치가 없습니다. 

- 서브스크립션이 활성화 되어 있는 고객에게는 실시간 커널 패치가 지원됩니다. 

- 라이브 커널 패치는 누적됩니다. 이것은 당신이 커널에 대한 새로운 라이브 커널 패치를 얻었을 때, 그것은 새로운 수정들과 함께 이전 라이브 커널 패치의 모든 수정들을 가질 것이라는 것을 의한다. 로드된 라이브 커널 패치를 최신 버전으로 안전하게 업그레이드할 수 있습니다.


- 마이너 커널 릴리스 간에 발생하는 CVE용 라이브 커널 패치는 표준 구독을 통해 사용할 수 있습니다. EUS(Extended Update Support)를 구매하는 고객은 EUS 가입의 경우 2년,SAP 솔루션 가 기능의 경우 4년 등 전체 EUS 지원 기간 동안 라이브 패치를 사용할 수 있습니다. 각 커널 에라타는 커널 에라타가 출시된 지 6개월 후에 라이브 커널 패치 수신을 중지합니다. KPatch 업데이트를 계속 받으려면 고객이 커널을 업그레이드하고 적어 1년에 두 번 재부팅해야 합니다. 


- 커널에서 kpatch 언로드는 지원되지 않습니다. 해결 방법은 kpatch를 제거하고 재 부팅하는 것입니다.

 

 79a3f86403c27446855dcbd25fdd64fe_1692533997_9462.png 

 

 

 

참고 링크 : https://www.youtube.com/watch?v=RHKESTHFm0o&t=219s

https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/applying-patches-with-kernel-live-patching_managing-monitoring-and-updating-the-kernel

 

 

 

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
174 OS OSworker 아이디로 검색 전체게시물 10-26 739
RPM 명령어와 Yum 명령어에 대해 알아보겠습니다. #실무 #꿀

카테고리 : OS

739 0
작성자 : OSworker 23/10/26
173 Middleware 미들웨어 아이디로 검색 전체게시물 10-23 786
(오픈소스 활용-22) 리눅스에 Jenkins-2.4 설치 가이드

카테고리 : Middleware

786 0
작성자 : 미들웨어 23/10/23
172 OS OSworker 아이디로 검색 전체게시물 10-15 636
OS 내에서 Java 설치 및 설정 하기 #java version

카테고리 : OS

636 0
작성자 : OSworker 23/10/15
171 Middleware 미들웨어 아이디로 검색 전체게시물 10-11 390
(MSA 개발-3) MSA 파일(JAVA)분석

카테고리 : Middleware

390 0
작성자 : 미들웨어 23/10/11
170 OS OSworker 아이디로 검색 전체게시물 10-09 795
authselect를 사용하여 사용자 인증 구성에 대해 알아보겠습니다. #pam_faillock #pam.d

카테고리 : OS

795 0
작성자 : OSworker 23/10/09
169 OS OSworker 아이디로 검색 전체게시물 09-30 2017
Red Hat Subscription-Manager 사용법에 대해 알아보겠습니다~

카테고리 : OS

2,017 0
작성자 : OSworker 23/09/30
168 OS OSworker 아이디로 검색 전체게시물 09-25 565
Stratis 파일시스템에 대해 들어보셨나요?

카테고리 : OS

565 0
작성자 : OSworker 23/09/25
167 Middleware 미들웨어 아이디로 검색 전체게시물 09-22 406
(MSA 개발-2) Oracle DB & SpringBoot MSA 응용 프로그램 테스트

카테고리 : Middleware

406 0
작성자 : 미들웨어 23/09/22
166 OS OSworker 아이디로 검색 전체게시물 09-21 760
Kdump 에 대해 알아보는 시간~!!

카테고리 : OS

760 0
작성자 : OSworker 23/09/21
165 Middleware 미들웨어 아이디로 검색 전체게시물 09-11 726
(MSA 개발-1) Oracle DB를 사용한 SpringBoot 마이크로서비스

카테고리 : Middleware

726 0
작성자 : 미들웨어 23/09/11
Total 204건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top