Vài ngày trước một sự cố bất thường đã xảy ra, điều này đã làm rung chuyển cộng đồng hạt nhân Linux, và đó là Linus Torvalds đã ra lệnh đình chỉ ngay lập tức tài khoản của Kees Cook trên kernel.org., sau khi phát hiện sự tồn tại của các cam kết bị thao túng trong kho lưu trữ Git của nhà phát triển này.
Kees nấu ăn, được công nhận vì sự lãnh đạo của mình trong nhóm bảo mật Ubuntu và duy trì hơn một chục hệ thống con liên quan đến bảo mật của hạt nhân, đã bị tạm thời cấm gửi các thay đổi trong khi chờ làm rõ sự việc.
Thay đổi quyền tác giả và chữ ký trong kho lưu trữ Kees Cook
Vấn đề phát sinh từ yêu cầu thay đổi thành lập công ty.s đến nhánh hạt nhân 6.16, trong đó Linus xác định các tham chiếu đến một kho lưu trữ có chứa cam kết được thao tác với tên ông là tác giả và người xác nhận, mặc dù ông không phải là người trực tiếp thực hiện những việc này. Một trong những ví dụ nghiêm trọng nhất là sự tồn tại của một bản cam kết trùng lặp, có nội dung giống hệt bản gốc nhưng có hàm băm SHA1 khác, bao gồm cả chữ ký của Linus Torvalds một cách sai trái.
Những thay đổi này không thể chỉ đơn giản là do một lỗi vô tìnhl trong quá trình thực hiện lệnh git rebase, vì chúng liên quan đến sự thay đổi lớn thông tin nhạy cảm, bao gồm hơn 6.000 bản cam kết được viết lại, trong đó có 330 bản có tên Linus là tác giả.
Phản ứng của Torvalds: nghi ngờ có sự thao túng cố ý
Linus Torvalds không giấu được sự lo lắng của mình và mô tả các sự kiện này có khả năng gây hại:
"Một hoặc hai lần viết lại có thể là sai sót. Nhưng hàng ngàn lần, nhiều lần có chữ ký giả của tôi, thì không phải vậy", ông tuyên bố.
Với quy mô của những thay đổi và rủi ro đối với tính toàn vẹn của cây hạt nhân chính thức, Torvalds hỏi Konstantin Ryabitsev, quản trị viên cơ sở hạ tầng kernel.org, qchặn quyền truy cập của Kees Cook cho đến khi tình hình được làm sáng tỏ.
Đáp lại, Kees Cook giải thích rằng anh ấy đã gặp phải sự cố kỹ thuật gần đây điều đó có thể gây ra sự cố. Ông nói, Ổ SSD của bạn đang gặp lỗi trong quá trình sao chép, gây ra tình trạng hỏng hóc trong một số kho lưu trữ. Sau những lỗi này, anh ấy đã cố gắng khôi phục trạng thái kho lưu trữ của mình bằng git rebase và nhiều công cụ tự động hóa khác.
Tuy nhiên, các hoạt động này được thực hiện trên các nhánh quan trọng, chẳng hạn như for-next/hardening và for-linus/hardening, dẫn đến việc vô tình sửa đổi lịch sử kho lưu trữ, bao gồm cả việc thay đổi tác giả của các cam kết. Bất chấp lời giải thích của mình, Linus vẫn tỏ ra hoài nghi.:
"Tôi không hiểu tại sao một vụ vượt xe vô tình lại có thể xảy ra, nhất là với khối lượng thay đổi lớn như thế này."
Thủ phạm thực sự: git-filter-repo và b4 trailers
Trong một tin nhắn sau đó, Kees Cook đã xác định được nguồn gốc có thể gây ra lỗi: việc sử dụng kết hợp hai công cụ, git-filter-repo và b4 trailers, thao tác lịch sử cam kết và đoạn giới thiệu (các thẻ như Signed-off-by:) trong các cam kết.
Việc sử dụng không đúng này của lợi nhuận sẽ gây ra việc tự động viết lại hàng ngàn cam kết, bao gồm việc thay thế tác giả bằng giá trị mặc định (trong trường hợp này là Linus Torvalds), mà không có Kees nhận ra lỗi tại thời điểm đóKonstantin Ryabitsev, tác giả của công cụ b4, đã xác nhận lý thuyết này và khẳng định rằng Cook không có ý định xấu. Trên thực tế, hệ thống đã tạo ra các cảnh báo bị bỏ qua.
Sau khi tình hình được làm sáng tỏ, quyền truy cập của Kees Cook vào kernel.org đã được khôi phục. Như một biện pháp phòng ngừa, người ta đã thông báo rằng công cụ b4 sẽ bao gồm một kiểm tra bảo mật mới, Điều này sẽ ngăn chặn việc sửa đổi các cam kết có tác giả không khớp với danh tính của người dùng hiện tại từ bây giờ. Điều này nhằm mục đích ngăn chặn các lỗi tương tự và bảo vệ tính toàn vẹn của mã nguồn hạt nhân.
Về phần mình, Kees đã cam kết sẽ tái tạo lại những nhánh cây bị ảnh hưởng. từ các bản vá riêng lẻ và phân tích sâu các bước dẫn đến lỗi. Mặc dù Sự cố đã làm căng thẳng mối quan hệ trong đội phát triển hạt nhân, cũng đã nhấn mạnh tầm quan trọng của việc sử dụng các công cụ viết lại lịch sử một cách thận trọng, đặc biệt là trong các dự án quan trọng như hạt nhân Linux.
Cuối cùng, điều đáng nói là sự cố giữa Linus Torvalds và Kees Cook đóng vai trò như một lời cảnh báo về những nguy cơ khi thao túng lịch sử cam kết và rằng nhờ sự can thiệp nhanh chóng từ những người chịu trách nhiệm về kernel.org và tính minh bạch của quy trình, tình hình đã được kiểm soát.
Cuối cùng, nếu bạn muốn tìm hiểu thêm về nó, bạn có thể kiểm tra thông tin chi tiết trong phần sau liên kết