Lịch sử của Linux Kernel Live Patching

theanh

Administrator
Nhân viên
Cài đặt nhân Linux mới nhất trước đây có nghĩa là khởi động lại, cho đến khi phát triển 'cập nhật nhân không cần khởi động lại', một phương pháp vá máy chủ mà không cần khởi động lại chúng. Với kỹ thuật này hiện đã hơn 10 năm tuổi, bài viết này sẽ xem xét sơ qua về nguồn gốc và trạng thái hiện tại của nó.

2001–2010: Dấu vết bằng sáng chế​

Nếu bạn lướt qua kho lưu trữ bằng sáng chế với các từ khóa như vá nóng hoặc cập nhật hệ thống trực tiếp, bạn sẽ tìm thấy nhiều đơn đăng ký và đơn từ chối cho thấy ý tưởng cập nhật hệ thống máy tính mà không dừng lại không phải là điều gì mới mẻ. Các ngày quan trọng, theo dõi ý tưởng từ chung đến cụ thể, như sau:
  • 2001: Hewlett Packard cấp bằng sáng chế cho phương pháp cập nhật phần mềm động để khắc phục chức năng phần cứng bị thiếu.
  • 2002: Microsoft tham gia trò chơi với phương pháp cập nhật hệ thống (Windows) mà không làm gián đoạn hệ thống đó. (Đơn xin cấp bằng sáng chế ban đầu của họ bị từ chối vì lý do "kỹ thuật trước đó" của HP.)
  • 2008: Jeff Arnold công bố Ksplice, phần mềm cập nhật (vá) hạt nhân Linux mà không bị gián đoạn (tức là không cần khởi động lại1).
  • 2010: Bằng sáng chế của Microsoft cuối cùng đã được cấp sau khi kháng cáo.
Điểm thú vị về những bằng sáng chế này là chúng có chung nguyện vọng là khắc phục lỗi trong phần mềm hoặc phần cứng cốt lõi của hệ thống bằng bản cập nhật phần mềm mà không ảnh hưởng đến việc hệ thống đó tiếp tục chạy và không thay đổi phần cứng. Nghe quen không? (Gợi ý: Meltdown, Spectre.)

2009: Sự ra đời của Rebootless​

Jeff Arnold là một sinh viên MIT đang quản lý một trong những máy chủ của họ2. Máy chủ này cần một bản vá bảo mật, nhưng anh đã trì hoãn vì việc khởi động lại sẽ gây bất tiện cho người dùng. Trước khi hệ thống có thể được cập nhật, nó đã bị hack. Sự ô nhục và (trớ trêu thay) sự bất tiện phải chịu đựng đã truyền cảm hứng cho Jeff tìm chủ đề cho luận văn Thạc sĩ của mình về vấn đề thực hiện cập nhật hệ thống mà không chậm trễ và không cần khởi động lại. Câu chuyện có thể là ngụy tạo, nhưng nó nhắc nhở chúng ta rằng các kỹ thuật vá lỗi trực tiếp xuất phát từ mối quan tâm không phải vì sự tiện lợi mà là vì bảo mật, và trong vai trò đó, chúng ta nên trân trọng chúng.

Jeff Arnold đã hợp tác với ba sinh viên đồng nghiệp để nghiên cứu vấn đề làm thế nào để cập nhật nhân của máy chủ Linux, mà không chậm trễ và không làm gián đoạn các quy trình của hệ thống. Giải pháp xuất hiện dưới dạng phần mềm có tên là Ksplice, nền tảng kỹ thuật của phần mềm này đã được trình bày trong một bài báo học thuật năm 2009. Tiêu đề của bài báo bao gồm từ rebootless, cách viết tắt quen thuộc của Linux hiện nay để chỉ 'cập nhật không bị gián đoạn', nhưng lần đầu tiên được Microsoft đặt ra vào năm 2005 để áp dụng cho các bản cập nhật trình điều khiển Windows.



Sau khi tốt nghiệp, Jeff và các đồng nghiệp tại MIT đã thành lập Ksplice Inc. và vào tháng 5 năm 2009, họ đã giành được giải thưởng Cuộc thi khởi nghiệp trị giá 100.000 đô la của MIT. Công ty đã ra mắt một dịch vụ thương mại vào năm 2010; mọi thứ đang diễn ra tốt đẹp.

2011–2016: Oracle và Làn sóng mới​

Vào ngày 21 tháng 7 năm 2011, Oracle đã mua lại Ksplice, Inc., tích hợp phần mềm vào thương hiệu Linux của riêng họ, bản thân nó là một sản phẩm phái sinh của Red Hat3. Bất chấp di sản đó, Oracle đã ngừng hỗ trợ Red Hat. Việc Oracle mua lại Ksplice đã khởi động một làn sóng hoạt động giữa các nhà cung cấp Linux quan trọng khác bị bỏ lại trong tình thế khó khăn.

Trong khoảng thời gian từ năm 2011 đến năm 2014, SUSE và Red Hat đã làm việc độc lập (và không biết mục tiêu của nhau) để phát hành các giải pháp cập nhật kernel trực tiếp của riêng họ, mà họ đã làm trong KgraftKpatch tương ứng. (Mặc dù có khởi đầu sớm hơn một chút, Kgraft của SUSE chỉ được GA (tức là phù hợp với các hệ thống sản xuất) vào năm 2016.)



Red Hat đã chia sẻ mã Kpatch của họ với cộng đồng và tích hợp nó như một tính năng được hỗ trợ của Red Hat Enterprise Linux.



Sự khác biệt giữa hai phiên bản có thể được suy ra từ thông điệp được nêu trên trang dự án của phiên bản mã nguồn mở:

CẢNH BÁO: Sử dụng thận trọng!Có thể xảy ra lỗi hạt nhân, khởi động lại tự phát
và mất dữ liệu!

Trong cùng thời kỳ và song song với các nỗ lực của SUSE và Red Hat, nền tảng ABI cơ bản để hỗ trợ bản vá trực tiếp đã được tích hợp vào mã nguồn của hạt nhân Linux phiên bản 4.0. Ý tưởng là lấy những ý tưởng tốt nhất từ cả Kpatch và Kgraft và...vá và ghép chúng thành một phương pháp chung cho dòng chính. Dịch vụ này được gọi là livepatch, và vào tháng 10 năm 2016, Canonical đã thông báo rằng họ sẽ giới thiệu dịch vụ cập nhật kernel thương mại của riêng mình dựa trên dịch vụ này, có thể đoán trước là Canonical Livepatch Service. Ban đầu chỉ khả dụng cho Ubuntu 16.04 LTS, sau đó được mở rộng để bao gồm cả 14.04 LTS. Trong Ubuntu 18.04 LTS, Livepatch là một tùy chọn cài đặt và có thể được cấu hình từ công cụ quản lý phần mềm tích hợp, một dấu hiệu cho thấy tầm quan trọng ngày càng tăng của nó trong bản phân phối phần mềm tiêu chuẩn.

2014: New Kid on the Block​

Khi các nhà cung cấp lớn tranh giành để trở thành đơn vị đầu tiên tung ra các giải pháp vá lỗi trực tiếp khả thi, CloudLinux, một đơn vị lớn trong các hệ điều hành lưu trữ web dựa trên Linux, đã ra mắt KernelCare vào tháng 5 năm 2014, sau phiên bản beta thành công vào tháng 3.

Họ đã gây bất ngờ cho thị trường bằng cách cung cấp bộ tính năng rộng nhất trên nhiều nền tảng Linux nhất, hỗ trợ điều này bằng danh tiếng vững chắc trong phát triển nhân Linux và hỗ trợ khách hàng. Một cú sốc khác là khả năng chi trả, hấp dẫn những người lưu trữ trang web thấy chi phí cho mỗi máy chủ của KernelCare dễ quản lý và có thể mở rộng hơn so với chi phí cho mỗi trang web của đối thủ cạnh tranh chính của họ.

Gần đây hơn, việc kết hợp KernelCare với Imunify360 đã khiến nó xuất hiện trên radar của một đội ngũ quản trị viên hệ thống mới, có tư duy bảo mật cao.

Kết luận: Vấn đề cốt lõi trong năm 2019​

Khi thế giới chuyển sang bảo mật tự động, bạn sẽ thấy phần mềm quản lý bản vá hạt nhân trực tiếp tự động được tích hợp chặt chẽ hơn vào các bản phân phối Linux phổ biến. Hiện tại chỉ có năm nhà cung cấp riêng biệt trên thị trường. Một bảng so sánh liệt kê các điểm bán hàng chính của họ. Trong phần đọc thêm, bạn sẽ tìm thấy nguồn tài liệu và bài viết cơ bản.

Việc mày mò với một hạt nhân đang hoạt động có thể rất lộn xộn. Đây không phải là thứ mà một doanh nghiệp hoặc bất kỳ ai đang chạy máy chủ muốn tin tưởng giao phó cho phần mềm chưa được kiểm tra và không được hỗ trợ. Khi thực hiện vì lý do bảo mật, đây là một trong số nhiều ứng dụng trong Linux đáng để trả tiền, một trong số ít ứng dụng nhất định phải được thực hiện đúng.



1 Do đơn xin cấp bằng sáng chế năm 2002 của Microsoft, các cuộc thảo luận vào thời điểm đó cho thấy mối quan ngại về khả năng tồn tại lâu dài của công nghệ. Xem lkml.org tháng 4 năm 2008lwn.net tháng 7 năm 2011.

2Tin tức MIT: “Mang đến cho thế giới những bản cập nhật không cần khởi động lại” (2014).

3 Kể từ tháng 1 năm 2016, Ksplice chỉ khả dụng như một phần của các sản phẩm UEK và Oracle Linux 6 & 7 của Oracle. Vào tháng 11 năm đó, họ đã xóa mã Kpatch thượng nguồn của Red Hat.

Dịch vụ cập nhật trực tiếp hạt nhân Linux: Bảng so sánh tính năng​


Tính năng

Ksplice Kgraft Kpatch Livepatch KernelCare
Cài đặt/cấu hình dễ dàng
[TD][/TD]

[TD][/TD]
Không có
[TD][/TD]

[TD][/TD]

[TD][/TD]

[TD][/TD]


Quay lại
[TD][/TD]

[TD][/TD]

[TD][/TD]

[TD][/TD]

[TD][/TD]

[TD][/TD]

[TD][/TD]

[TD][/TD]


Đã sửa lỗi
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]


Thân thiện với tường lửa
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]


Cập nhật ngoại tuyến
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]


Kiểm soát quyền truy cập bản vá
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]

[TD][/TD]


Hoàn toàn tự động
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]

[TD][/TD]
Tự động hóa hoàn toàn
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]


Giao diện người dùng đồ họa
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]

[TD][/TD]

[TD][/TD]


Hỗ trợ miễn phí 24/7
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]


Không. của Nền tảng
[TD][/TD]
2
[TD][/TD]
1
[TD][/TD]
1 (4)
[TD][/TD]
1
[TD][/TD]
9

Bản vá tức thời
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]

[TD][/TD]

[TD][/TD]


Dùng thử miễn phí (ngày)
[TD][/TD]
30
[TD][/TD]
60
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
30

API (REST)
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]


Ghi đè không phải là mới nhất
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]


Hạt nhân tùy chỉnh
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]
Không
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]

[TD][/TD]
Không
[TD][/TD]

Xem Ghi chú so sánh để biết chi tiết.

Đọc thêm​

Bài viết chung​

  • Livepatch: Cập nhật kernel Linux mà không cần khởi động lại (27 tháng 6 năm 2018) linux-audit.com
  • Live Patching Meltdown–Dự án nghiên cứu của Kỹ sư SUSE (Phần 1) (2 tháng 5 năm 2018) suse.com
  • Cập nhật về bản vá kernel trực tiếp (27 tháng 9 năm 2017) lwn.net
  • Hướng dẫn về kpatch trên Red Hat Enterprise Linux 7.2 trở lên (10 tháng 11 năm 2016) redhat.com
  • Sửa lỗi Kernel Ubuntu của bạn bằng Dịch vụ Canonical Livepatch! (18 tháng 10 năm 2016) blog.dustinkirkland.com
  • Sửa lỗi nóng Linux so với Unix – Chúng ta đã đạt đến điểm tới hạn chưa? (20 tháng 5 năm 2016) forrester.com
  • Bản vá thô cho bản vá trực tiếp (25 tháng 2 năm 2015) lwn.net
  • Công cụ cập nhật hạt nhân trực tiếp (tháng 9 năm 2014) admin-magazine.com
  • KernelCare: Hệ thống vá lỗi Linux mới không cần khởi động lại (6 tháng 5 năm 2014) zdnet.com

Tài liệu​

Ghi chú so sánh​

Cài đặt/Cấu hình dễ dàng
Hoàn nguyên
Tường lửa thân thiện
Cập nhật ngoại tuyến
Kiểm soát truy cập bản vá
Hoàn toàn tự động
Giao diện người dùng đồ họa
Hỗ trợ miễn phí 24/7
Không. của Nền tảng
Dùng thử miễn phí
API (REST)
Ghi đè không phải là bản mới nhất


Tác giả Paul Jacobs

Paul là Nhà truyền bá kỹ thuật và Người viết nội dung của CloudLinux. Ông sử dụng hơn 25 năm kinh nghiệm đa dạng của mình trong lĩnh vực CNTT để phân tích, làm sáng tỏ và giải thích sự phức tạp của dịch vụ lưu trữ web và bảo mật Linux.
 
Back
Bên trên