본문 바로가기

PRODUCT/OS

Rockplace Newsletter Vol48 : 다운타임 없이 긴급 CVE 대응! ‘라이브 커널 패치(Kpatch)’

IT 관리자의 대표적인 일상 중 하나를 꼽자면? 패치 작업이 떠오를 것입니다. 보안 취약점이 발견되면 해당 CVE(Common Vulnerabilities and Exposures)에 대한 패치가 나오죠. IT 관리자는 가능한  빨리 이를 적용해야 마음이 편합니다. 마음 같아서는 긴급 CVE 메시지를 받자마자 하고 싶지만, 회사의 정책 때문에 다운타임을 확보할 수 있는 시간대에 작업해야 합니다. 작업 시간을 따로 잡지 않고 바로 적용할 수는 없을까? 이런 현장의 마음을 헤아려 나온 도구가 있습니다. 바로 ‘라이브 커널 패치(Kpatch)’입니다.

 

다운타임 제로 패치

 

Kpatch는 레드햇 엔터프라이즈 리눅스(RHEL) 8.1, 7.7 이후부터 운영체제 일부로 포함된 도구입니다. 참고로         RHEL 8.3, 7.8, RHEL 6 RHEL 5 용으로 출시된 라이브 패치는 없습니다. 활성 구독이 있는 고객을 위해 라이브 커널 패치가 지원되며, 중요 CVE에 대한 패치를 이를 통해 할 수 있습니다.

 

Kpatch가 포함된 이후 IT 관리자는 긴급 CVE를 한결 더 마음 편히 패치합니다. 다운타임 없이 커널을 패치할 수 있게 되었기 때문입니다. 어떤 식으로 패치가 나오고 이를 이떻게 Kpatch로 적용할 수 있는지 간단히 알아보겠습니다.

 

업스트림 엔지니어는 특정 CVE에 대한 수정 사항을 작성하고 새 리눅스 커널에 릴리즈합니다. 레드햇은 이 수정 사항을 RHEL에 백포트하고 공식 레드햇 리포지토리를 통해 제공하는 표준 업데이트(RPM) 및 라이브 커널 패치로 제공합니다. 이중 라이브 커널 패치를 적용하면 대상 RHEL 시스템을 재부팅 없이 패치할 수 있습니다. 시스템이 중단되지 않음으로 회사의 유지보수 정책을 위배하지 않고 패치 작업을 완료할 수 있습니다.

 

손쉬운 사용

 

라이브 커널 패치는 Red Hat CDN(Content Delivery Network)에서 사용할 수 있으며 명령 kernel-3.10.0-957.35.1.el7을 통해 설치할 수 있습니다. 명령줄이 어색하다면 웹 콘솔에서 직관적으로 쓸 수도 있습니다.

이제 본격적으로 라이브 커널 패치를 적용하는 과정을 알아보겠습니다. 7.7 또는 8.1보다 높은 버전의 RHEL 인스턴스를 실행 중인 경우 Kpatch를 이용할 수 있습니다.

 

# yum install -y kpatch
Updating Subscription Management repositories.
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) 25 MB/s | 37 MB 00:01   
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs) 42 MB/s | 41 MB 00:00    
Dependencies resolved.
=========================================================================================================================
 Package Architecture Version Repository Size
=========================================================================================================================
Installing:
 kpatch noarch 0.9.2-5.el8 rhel-8-for-x86_64-baseos-rpms 17 k
Installing weak dependencies:
 kpatch-dnf noarch 0.2-5.el8 rhel-8-for-x86_64-baseos-rpms 17 k
<<< OUTPUT TRUNCATED >>>

Kpatch 패키지를 설치하면 사용 가능한 패치를 확인할 수 있습니다. 아래 예에서 첫 번째 명령은 실행 중인 커널 버전을 보여 줍니다. 두 번째 명령은 해당 커널에 적용 가능한 패치 목록을 나열합니다.

 

# uname -r
4.18.0-305.el8.x86_64
# yum list available kpatch-patch*305*
Updating Subscription Management repositories.
Last metadata expiration check: 0:02:28 ago on Thu 02 Dec 2021 12:31:59 AM EST.
Available Packages
kpatch-patch-4_18_0-305.x86_64 1-6.el8 rhel-8-for-x86_64-baseos-rpms
kpatch-patch-4_18_0-305_10_2.x86_64 1-3.el8_4 rhel-8-for-x86_64-baseos-rpms
kpatch-patch-4_18_0-305_12_1.x86_64 1-2.el8_4 rhel-8-for-x86_64-baseos-rpms
kpatch-patch-4_18_0-305_17_1.x86_64 1-1.el8_4 <<< OUTPUT TRUNCATED >>>

위 목록에서 특정 패키지를 설치하거나 적절한 패키지를 더욱 간편히 설치할 수 있도록 다음과 같이 yum install 명령을 사용할 수도 있습니다.

 

# yum install -y "kpatch-patch = $(uname -r)"
Updating Subscription Management repositories.
Last metadata expiration check: 0:04:23 ago on Thu 02 Dec 2021 12:31:59 AM EST.
Dependencies resolved.
=========================================================================================================================
 Package Architecture Version Repository Size
=========================================================================================================================
Installing:
 kpatch-patch-4_18_0-305 x86_64 1-6.el8 rhel-8-for-x86_64-baseos-rpms 49 k
<<< OUTPUT TRUNCATED>>

이제 남은 일은 리눅스 커널 패치가 성공적으로 되었는지 확인하는 것입니다.

 

# kpatch list
Loaded patch modules:
kpatch_4_18_0_305_1_6 [enabled]

Installed patch modules:
kpatch_4_18_0_305_1_6 (4.18.0-305.el8.x86_64)

앞서 언급한 것처럼 명령줄이 불편하다면 웹 콘솔에서 작업할 수도 있습니다. 먼저 콘솔에 로그인한 후 왼쪽 메뉴에서 ‘Software Updates’를 선택합니다.

그러고 나서 커널 패치 설정을 구성하면 됩니다.

 

이상으로 Kpatch에 대해 간단히 알아보았습니다. 실제 테스트를 해보고 싶다면 라이브 커널 패치를 위해 레듯햇이 준비해 놓은 온라인 랩(https://lab.redhat.com/kpatch-apply)을 방문해 보세요.


운영체제, 미들웨어, 데이터베이스, 마이그레이션(U2L, DB, WAS), 가상화, 클라우드 및 빅데이터 컨설팅 서비스 관련하여 궁금하신 점은 언제든 문의해 주시기 바랍니다. 아래 링크를 클릭해주세요.

 1:1 문의 바로가기 click

 락플레이스는 2005년에 출범하여 대한민국 리눅스의 역사와 성장을 함께 해온 18년차 오픈소스&클라우드 전문 기업으로 국내 최다 엔지니어, 국내 최고 기술력, 국내외 유수기업 컨설팅의 풍부한 경험과 탄탄한 기술력으로 고객의 성공적인 오픈소스 플랫폼 구축과 응용 프로그램 전체 범위의 서비스를 제공하고 있습니다. 락플레이스는 레드햇코리아로부터 Elite Business Associate/Advanced Business Parter/채널 어워드 한국  파트너/FY15 champion 등을 수상 파트너이며, Microsoft Microsoft Cloud Solution Partner(CSP)로서 함께하고 있습니다.