3 điểm bởi GN⁺ 2024-04-02 | 1 bình luận | Chia sẻ qua WhatsApp

Sự cố backdoor xz Utils: Những gì đã biết về vụ việc suýt nữa lây nhiễm gần như toàn thế giới

  • xz Utils là tiện ích nén dữ liệu được cài đặt trên Linux và gần như mọi hệ điều hành họ Unix.
  • Một sự cố đã xảy ra khi một bản cập nhật độc hại suýt cài cắm backdoor vào phần mềm này.
  • Một nhà phát triển của Microsoft đã phát hiện và công bố backdoor này, qua đó ngăn chặn nguy cơ ngay trước khi nó được đưa vào các bản phân phối Linux chủ chốt như Debian và Red Hat.

Backdoor hoạt động như thế nào?

  • Mã độc được thêm vào các phiên bản 5.6.0 và 5.6.1 đã thao túng sshd, tức tệp thực thi dành cho kết nối SSH.
  • Người sở hữu một khóa mã hóa cụ thể có thể ẩn mã trong chứng chỉ đăng nhập SSH, tải nó lên và thực thi trên thiết bị đã cài backdoor.
  • Hiện chưa rõ chính xác loại mã nào đã được tải lên, nhưng về lý thuyết có thể thực hiện nhiều hành vi như đánh cắp khóa mật mã hoặc cài mã độc.

Con đường backdoor được cài cắm

  • Backdoor dường như đã được chuẩn bị trong nhiều năm.
  • Năm 2021, một người dùng có tên JiaT75 lần đầu tiên đóng góp cho dự án mã nguồn mở này.
  • Tháng 1 năm 2023, JiaT75 có đóng góp đầu tiên cho xz Utils, sau đó dần đảm nhận nhiều vai trò hơn dưới tên Jia Tan.
  • Tan đã thay thông tin liên hệ của Collins trong dự án oss-fuzz bằng thông tin của mình, đồng thời yêu cầu vô hiệu hóa tính năng ifunc trong quá trình kiểm thử.
  • Những thay đổi này đã cản trở việc phát hiện khi Tan đưa các chỉnh sửa độc hại vào xz Utils.

Các bản phân phối bị ảnh hưởng

  • Fedora Rawhide, Fedora 41, Debian testing/unstable/experimental, openSUSE Tumbleweed và MicroOS, Kali Linux cùng một số bản khác đã bao gồm các phiên bản xz có cài backdoor.

Ý kiến của GN⁺

  • Vụ việc này phơi bày các điểm yếu an ninh trong hệ sinh thái mã nguồn mở và trở thành lời cảnh tỉnh cho cộng đồng nhà phát triển.
  • Do phần mềm bị cài backdoor được sử dụng rất rộng rãi, sự cố lần này nhắc lại tầm quan trọng của việc cập nhật kịp thời và kiểm tra bảo mật đối với người dùng cũng như quản trị viên Linux.
  • Một trường hợp tương tự là vụ tấn công SolarWinds, sự kiện đó cũng cho thấy mức độ nguy hiểm của các cuộc tấn công chuỗi cung ứng.
  • Cần xác minh danh tính của các nhà phát triển đóng góp cho dự án mã nguồn mở và tăng cường quy trình rà soát mã.
  • Sau sự cố này, tầm quan trọng của kiểm toán bảo mật và các công cụ phát hiện lỗ hổng được dự đoán sẽ càng được nhấn mạnh hơn.

1 bình luận

 
GN⁺ 2024-04-02
Ý kiến Hacker News
  • OpenSSH là bản triển khai sshd phổ biến nhất, không liên kết với thư viện liblzma, nhưng Debian và nhiều bản phân phối Linux khác thêm các bản vá để liên kết sshd với systemd. systemd có liên kết với liblzma, vì vậy xz Utils có thể ảnh hưởng đến sshd.

  • Xz là một chương trình nén mã nguồn mở đồng thời là một thư viện, giúp viết các chương trình riêng để xử lý dữ liệu nén. Nó được dùng trong nhiều chương trình khác, bao gồm cả OpenSSH.

  • binutils của GNU cũng liên kết với liblzma và còn được dùng rộng rãi hơn OpenSSH. Trong đa số trường hợp, binutils được dùng để biên dịch OpenSSH, sshd, hệ điều hành nơi chúng chạy, v.v. Điều này cho thấy các tác nhân độc hại đã chọn đúng một dự án rất phù hợp để xâm nhập sâu vào phần mềm mã nguồn mở.

  • Mục tiêu là sử dụng một framework kiểm thử được chuẩn hóa để hỗ trợ viết thêm nhiều bài test, qua đó giúp tính ổn định lâu dài của dự án XZ. Hiện vẫn còn nhiều chức năng chưa được kiểm thử, nên các bài test này sẽ rất hữu ích.

  • Chưa có nhiều thảo luận về cơ chế liên kết có thể móc vào hàm RSA_public_decrypt. Đã có nhiều bàn luận về những gì có thể đạt được thông qua tách biệt tiến trình và các biện pháp tương tự, nhưng lại ít nói về việc chuyển hướng lời gọi hàm đó. Điều này đặt ra câu hỏi liệu có thể thiết lập một cách để liên kết các thành phần quan trọng theo mô hình tầng tin cậy hay không.

  • Người ta nói là "suýt" lây nhiễm toàn thế giới, nhưng trên thực tế các bản phân phối Linux phổ biến như Arch, Gentoo và openSUSE Tumbleweed đã phát hành bản có chứa backdoor trong nhiều tuần, và trên Tumbleweed thì chắc chắn nó đã hoạt động. Cách diễn đạt "suýt" là không phù hợp.

  • Dự đoán rằng trong vòng 12 tháng tới sẽ lại phát hiện một vụ tương tự. Nó sẽ bắt đầu bằng việc các maintainer nghi ngờ những commit trước đây của nhau.

  • Bài học cá nhân rút ra từ vụ việc này:

    • Các tarball phát hành mã nguồn nhưng lại chứa mã khác với kho nguồn là điều tệ hại. Cần từ bỏ cách làm này.
    • Các artifact được tạo tự động luôn phải được commit.
    • Các artifact được tạo tự động mà ai cũng lướt qua trong lúc review code có thể là một vấn đề. Nếu loại tệp này tồn tại trong kho, cần có kiểm thử tự động để xác minh rằng không ai đã can thiệp vào chúng.
    • autotools và văn hóa autotools là không tốt.
    • libsystemd gây ra vấn đề cho hệ sinh thái. Những người chỉ trích systemd thường bị phớt lờ, nhưng systemd lớn, phức tạp, có nhiều phụ thuộc, trong khi đa số chương trình chỉ dùng một phần nhỏ của nó.
    • Văn hóa cho rằng tái sử dụng mã luôn là tốt và phụ thuộc vào một thư viện lớn chỉ để có một tính năng nhỏ là điều đúng đắn, thực ra là sai. Phụ thuộc kéo theo gánh nặng bảo trì và rủi ro bảo mật, nên cần cân bằng điều đó với chức năng mang lại.
    • Việc maintainer của các bản phân phối áp dụng quá nhiều bản vá lên gói phần mềm có thể trở thành vấn đề. Nó tạo ra những bản fork trên thực tế, được dùng rất rộng rãi nhưng không có ai thật sự chịu trách nhiệm quản lý.
    • Cần giúp các developer có thể làm công việc OSS một cách bền vững về tài chính. liblzmaxz-utils có mặt trên hàng chục triệu lượt cài đặt, nhưng lại chỉ có một maintainer đang gặp vấn đề sức khỏe tinh thần.
    • Review code và việc thay người bảo trì giờ đây cần tính đến các yếu tố địa chính trị hiện tại.
  • Bày tỏ sự cảm kích vì người phát hiện ra vấn đề là một kỹ sư Microsoft làm việc tại Azure Postgres. Giờ thì bắt đầu có thiện cảm với Azure.

  • Maintainer gốc của xz có thể đã bàn giao trách nhiệm cho Jia Tan nhưng chưa từng gặp trực tiếp hay gọi điện thoại. Điều này làm dấy lên câu hỏi liệu việc chỉ giao tiếp qua email/GitHub có phải là chuyện bình thường hay không. Dự đoán rằng sau câu chuyện này, các maintainer dự án mã nguồn mở sẽ thận trọng hơn.

  • Dù nhiều người cho rằng backdoor này đã được phát hiện sớm, nó có thể đã đạt được mục tiêu. Điều này càng đúng nếu mục tiêu là các developer dùng các bản phân phối phát hành cuốn chiếu như Kali và Debian.

  • Có ý kiến cho rằng nhận định về việc Lasse Collin, maintainer lâu năm của xz Utils, không cập nhật phần mềm thường xuyên hoặc đủ nhanh là một sự hiểu lầm.