Linux 커널 실시간 패치 적용이란?
Linux 커널 실시간 패치 적용은 재부팅하거나 런타임을 중단할 필요 없이 실행 중인 Linux 커널에 중요한 핵심 보안 패치를 적용하는 방식입니다.
패치와 업데이트는 차이가 있습니다. 업데이트는 패키지의 새로운 마이너 버전으로서, 버그 수정, 성능 개선 사항, 새로운 기능, 커맨드라인 편집, 기타 개선 사항을 포함할 수 있습니다. 패치는 기존 버전의 취약점을 수정하는 일부 코드 조각입니다(일반적으로 패키지 또는 파일의 두 가지 버전이 내놓는 서로 다른 출력). 이 패치는 대기 시간 없이 취약점을 수정하므로 기존 구현이 더 안전하게 실행될 수 있고 시스템 관리자는 다음번 정기 유지 관리 기간이 도래할 때까지 재부팅을 연기할 수 있습니다.
실시간 패치 적용은 정기 버그 수정 및 개선 사항을 포함해 실행 중인 커널에 대한 모든 패치에 사용할 수 있습니다. 실제로 실시간 패치 적용에 가장 중요한 기능은 중요 보안 취약점이었는데, 이는 신속히 해결해야 할 수정 사항이기 때문입니다. Red Hat은 Red Hat® Enterprise Linux®를 통해 보안 패치에 집중해 왔으며 커널 실시간 패치 적용은 관리자에게 이점이 있는 보안 기능으로 간주됩니다.
실시간 패치 적용 없이 패치를 적용하려면, 패치가 적용된 버전의 새로운 변경 사항을 로드하도록 패치가 적용된 서비스나 애플리케이션을 재부팅해야 합니다. 이는 Linux 커널 자체에 적용된 패치에도 해당되므로 Linux 시스템 관리자는 난감한 상황에 처하게 됩니다. 필수 보안 업데이트를 적용해야 하는데, 이로 인해 예정에 없이 Linux 서버를 재부팅하게 되고 대기 시간과 다운타임이 발생하기 때문입니다.
Linux 커널 실시간 패치 적용의 시작
MIT의 학생 시스템 관리자인 Jeff Arnold도 바로 이런 상황 때문에 곤란을 겪게 되었습니다. 보안 업데이트가 보류 중인 시스템을 관리하던 그는 취약점 해결을 미루기로 했습니다. 그런데 이 시스템은 결국 해킹당하고 말았습니다. 2008년 Arnold는 시스템이 실행 중일 때 보안 패치를 적용하고 로드하는 방식인 '루트 없는 커널 보안 업데이트'라는 솔루션을 개발하여 이 문제를 해결하기로 했습니다. 이 초기 프로젝트(ksplice)는 Linux 커널 실시간 패치 적용의 개념을 구현한 것이었습니다.
스테이트풀과 다른 스테이트리스(stateless) 서비스, 지속성, 데이터 관리, 트랜잭션, 커맨드 수행 등(모두 서비스 또는 애플리케이션 작동 방식의 기반임)은 처리하기가 복잡하기 때문에 신속한 소프트웨어 업데이트는 컴퓨팅에서 해결해야 할 과제입니다.
Arnold는 Linux 커널 실시간 패치 적용을 위한 후속 프로젝트를 통해 커널 공간 내에서 툴을 사용해 커널 모듈을 로드하였습니다.
두 개의 Linux 시스템 운영 공간
Linux 시스템 운영은 두 개의 섹션, 즉 사용자 공간(모든 서비스와 애플리케이션이 작동하는 곳)과 커널 공간(코어 시스템 운영이 이루어지는 곳)으로 분할되어 있습니다. 커널은 모든 애플리케이션이 CPU, 스토리지와 같은 하드웨어 리소스에 액세스할 수 있게 하는 중개자 역할을 합니다. 커널 자체와 함께 관리자는 사용자 정의 커널 모듈을 생성하여 기능을 확장하거나 수정하고, 이러한 커널 모듈은 부팅 후에도 신속하게 로드하고 실행할 수 있습니다.
커널 실시간 패치 적용 툴은 패치가 적용된 코드로 커널 모듈을 만든 다음, ftrace(기능 추적) 툴을 사용해 사용하지 않는 기능에서 새로 교체된 기능, 패치 모듈 또는 패치가 적용된 기능으로 라우팅합니다.
그림 1: 커널 실시간 패치 적용의 작동 방식
![](/rhdc/managed-files/styles/wysiwyg_full_width/private/RHEL_424549_0119.png.webp?itok=izR8hyEo)
Ksplice는 Linux 커널에 실시간으로 패치를 적용하기 위한 첫 프로젝트였습니다. 그러나 ksplice는 Oracle에 매각되었고 결국 폐쇄형 소스 툴로 바뀌었습니다. 다른 개발 팀은 ksplice를 대체할 수 있는 오픈소스 프로젝트를 모색하기 시작했고, 2014년 서로 약간 다른 두 개의 프로젝트인 Red Hat의 kpatch와 SuSE의 kgraft에 착수하였습니다. 결국 Linux 커널 커뮤니티를 위해 Red Hat과 SuSE 개발자들은 함께 실시간 패치를 만들었습니다. 이 패치는 Linux 커널 내부의 공통 계층으로서, 호환 가능한 커널 실시간 패치 적용 툴 개발을 지원합니다.
커널 실시간 패치 적용이 중요한 이유
패치가 특히 보안 리스크 해결에 사용된다는 점을 꼭 기억해야 합니다. 시스템 관리자는 Linux 시스템에서 보안 패치 적용을 처리하고 업타임 요구 사항을 충족하는 등의 과제를 안고 있습니다. 따라서 정해진 유지 관리 기간 외에는 시스템을 오프라인 상태로 변경할 수 없습니다. 이로 인해 긴장도가 지속적으로 높아질 수밖에 없습니다.
Red Hat 보안 리스크 리포트에 따르면 2019년에서 2020년까지 확인된 보안 문제(일반적인 취약점 및 노출도 또는 CVE라고 함)가 155%(1,313건에서 2,040건) 급증하였습니다. 이 수치는 2021년에 약간 감소하였으나(1,596건), 2019년에 비하면 여전히 22% 높습니다. 대부분은 중등 심각도에 해당하는 취약점이 증가했기 때문입니다. 중요 CVE는 대체로 일정 수준을 유지해 왔으며 중대 취약점은 감소해 왔습니다.
커널 업데이트 및 패치는 6주마다 릴리스되며, Red Hat Enterprise Linux의 마이너 업데이트는 6개월마다 모든 보안 패치가 포함된 상태로 릴리스됩니다. 재부팅 없이 Linux 커널에 실시간 패치 적용 서비스를 실행할 수 있다면 어떤 정책을 준수할지 결정할 필요가 없습니다.
커널 CVE
커널 관련 CVE는 가장 큰 우려 사항 중 하나로서, 2021년 최다 조회된 10대 CVE 중 네 가지가 커널과 관련된 것이었습니다.
Linux 커널 보안 실시간 패치 적용은 편리함 이상의 의미가 있습니다. 즉 보안 팀이 보안 취약점을 선제적으로 해결하고, 커널 기능을 중단없이 실행하며, 시스템의 안전을 유지하는 데 중요한 툴입니다.
Red Hat Enterprise Linux의 차별성
커널 실시간 패치 적용은 보안 관리를 위한 특수 툴이지만 Red Hat Enterprise Linux에서 사용할 수 있는 툴은 그 외에도 많습니다. Red Hat Enterprise Linux에는 구성과 태스크 자동화를 지원하는 권한 및 액세스 제어와 시스템 역할을 위한 SELinux와 같은 다양한 보안 관리 툴이 포함되어 있습니다. Red Hat Enterprise Linux 인프라를 업그레이드하면 최신 수정 사항에 대한 중단 없는 액세스를 보장하여 보안 상태를 유지할 수 있습니다.
'보안 환경'을 조성할 수 있는 단일 솔루션이란 없습니다. 위협은 항상 변화와 발전을 거듭하고 있으며, 다양한 공격 벡터의 등장으로 인해 다양한 대상이 표적이 되고 있습니다. 보안은 소스 코드에 이르는 운영 체제 수준에서 시작해 기술 스택과 라이프사이클 전반을 아우르기 때문에 다양한 툴을 보유하는 것이 필수적입니다.
Red Hat Enterprise Linux 웹 콘솔에서 커널 실시간 패치 적용을 관리하면 중요한 유지 관리를 수행하는 데 따르는 복잡성을 크게 줄일 수 있습니다. 이러한 새로운 웹 콘솔 기능을 통해 고도로 숙련된 관리자와 경험이 없는 관리자 모두가 커맨드 라인 툴을 사용할 필요 없이 커널 업데이트를 적용할 수 있는 간소화된 인터페이스를 제공합니다.
Red Hat Insights는 모든 Red Hat Enterprise Linux 서브스크립션과 함께 제공되며, 보안 문제를 해결하기 위한 통합 관리 경험을 제공합니다. 여기에는 다음 사항이 포함됩니다.
- 전체 인프라를 포괄하는 시각적 대시보드: 취약한 시스템과 패치 상태를 표시하므로 별도의 Red Hat Satellite 서버 서브스크립션 없이도 중요 버그를 찾아 수정 가능
- 관련 CVE 및 기타 업데이트
- 자동화된 Linux 보안 패치 적용을 위한 플레이북
- 시스템 구성을 관리할 수 있는 정의된 보안 프로필과 사용자 정의 프로필
- 기준에서 벗어나는 기준 구성 및 플래그 지정 시스템 사용
Red Hat을 선택해야 하는 이유
Linux 커널 실시간 패치 적용은 그 필요성이 확인되면서 나타났고, 여러 조직 및 커뮤니티 구성원과의 협업을 위해 개방형 프로젝트가 만들어지면서 커뮤니티를 위한 될 솔루션을 개발하게 되었습니다. 이러한 개방형 작업 방식은 협업, 투명성, 기술 및 사용자 환경 개선 우선이라는 Red Hat 서브스크립션 원칙의 핵심 가치입니다.