Lỗ hổng CVE XZ Utils: Nguy hiểm dai dẳng trong Docker

Các nhà nghiên cứu bảo mật tại Binarly đã phát hiện ra rằng cuộc tấn công chuỗi cung ứng phức tạp, liên quan đến lỗ hổng CVE trong XZ Utils, vẫn còn tồn tại trong các Docker image công khai trên Docker Hub. Phát hiện này được đưa ra hơn một năm sau khi sự cố backdoor XZ Utils gây chấn động được công bố vào tháng 3 năm 2024.
Backdoor này, được gán cho một nhà phát triển ẩn danh tên là ‘Jia Tan’, người đã xâm nhập vào dự án XZ Utils trong hơn hai năm, được nhúng vào các phiên bản 5.6.0 và 5.6.1 của thư viện nén lossless.
Phân Tích Kỹ Thuật Backdoor XZ Utils và Cơ Chế Khai Thác
Mã độc này nhắm mục tiêu vào đối tượng chia sẻ liblzma.so, một thành phần quan trọng tích hợp với các máy chủ OpenSSH. Mục tiêu chính là tạo điều kiện cho truy cập từ xa trái phép. Cơ chế thực hiện dựa trên một chuỗi các móc (hooks) vào các hàm quan trọng như RSA_public_decrypt, RSA_get0_key và EVP_PKEY_set1_RSA. Điều này cho phép kẻ tấn công điều khiển luồng thực thi.
Kỹ Thuật Implantation Nâng Cao
Việc cấy ghép backdoor đã khai thác các trình phân giải GNU Indirect Function (IFUNC). Đây là một tính năng của trình liên kết động cho phép lựa chọn triển khai hàm tại thời gian chạy dựa trên điều kiện nhất định. Kẻ tấn công đã sử dụng IFUNC để can thiệp vào luồng điều khiển trong các hàm lzma_crc32 và lzma_crc64. Sự can thiệp này cho phép chặn bắt và thực thi payload độc hại trong quá trình xử lý của sshd, dịch vụ daemon cho SSH.
Chi tiết về lỗ hổng CVE-2024-3094 và tác động của nó có thể được tìm thấy tại NVD – CVE-2024-3094.
Phạm Vi Tác Động Ban Đầu và Rủi Ro Tiềm Ẩn
Ban đầu, backdoor này được phân phối trong các bản phân phối Linux lớn như Debian, Fedora và OpenSUSE. Sự hiện diện của nó đã đặt ra những rủi ro nghiêm trọng đối với cơ sở hạ tầng đám mây và các hệ thống nhúng. Điều này đã thúc đẩy các hoạt động khẩn cấp để khôi phục phiên bản và các nỗ lực giảm thiểu từ cộng đồng.
Sự Kiên Trì Của Backdoor XZ Utils Trong Docker Images
Phân tích gần đây của Binarly, được thực hiện trên một tập dữ liệu 15TB gồm các Docker image, đã tiết lộ một thực tế đáng báo động. Ít nhất 12 image dựa trên Debian, được xây dựng vào khoảng ngày 11 tháng 3 năm 2024 cho các kiến trúc như amd64, vẫn còn chứa thư viện liblzma.so bị cài backdoor.
Các Image Bị Ảnh Hưởng và Sự Lan Truyền
Các thẻ (tags) bị ảnh hưởng bao gồm unstable-20240311, trixie-20240311-slim và sid-20240311. Chúng có thể được nhận diện thông qua các manifest digest và blob hash cụ thể khớp với các artifact độc hại đã biết được tải lên VirusTotal. Đây là một mối đe dọa mạng dai dẳng.
Điều đáng báo động hơn, các base image bị xâm phạm này đã lây lan theo cấp số nhân, lây nhiễm sang hơn 35 image cấp hai (second-order images) trong các kho lưu trữ như buildpack-deps, neurodebian và nhiều kho khác. Các kho này thường được sử dụng trong quá trình phát triển, các pipeline CI/CD và tiềm năng trong môi trường doanh nghiệp.
Ví dụ, các image trong kho makepad/opencv, bao gồm trixie-4.9.0 và trixie-slim-4.9.0, đã kế thừa backdoor. Tương tự, các image trong myoung34/github-runner và controlplane/sectools cũng bị ảnh hưởng. Mặc dù quá trình quét của Binarly chỉ giới hạn ở các artifact Debian do dữ liệu lịch sử trên Docker Hub, khả năng lây lan sang các container có nguồn gốc từ Fedora và OpenSUSE vẫn chưa được đánh giá. Điều này cho thấy những khoảng trống trong khả năng hiển thị toàn bộ hệ sinh thái.
Sự kiên trì của các image chứa backdoor này nhấn mạnh những thách thức trong việc loại bỏ các mối đe dọa chuỗi cung ứng, ngay cả sau khi đã có nhận thức rộng rãi về lỗ hổng CVE.
Phản Ứng và Rủi Ro Duy Trì
Binarly đã thông báo cho các nhà duy trì Debian về phát hiện này nhằm thúc đẩy việc loại bỏ các artifact. Tuy nhiên, các artifact này vẫn có thể truy cập được, với lý do từ phía nhà duy trì rằng người dùng nên ưu tiên các bản dựng (builds) được cập nhật. Lập trường này có thể bỏ qua các rủi ro từ việc kéo hình ảnh không chủ ý trong các quy trình làm việc tự động hoặc các hệ thống kế thừa. Trong những trường hợp này, việc khai thác có thể xảy ra nếu kẻ tấn công có khóa riêng của backdoor giành được quyền truy cập mạng vào các dịch vụ SSH.
Thiết kế của backdoor, với sự tinh vi cấp nhà nước, kế hoạch kéo dài nhiều năm và các kỹ thuật hooking IFUNC có thể tái sử dụng, cho thấy đây có thể không phải là một sự cố đơn lẻ. Mã độc này có khả năng được tái sử dụng trong các cuộc tấn công khác.
Thông tin chi tiết hơn từ Binarly có thể được tham khảo tại: Persistent Risk: XZ Utils Backdoor Still Lurking in Docker Images.
Giải Pháp Phát Hiện và Giảm Thiểu Từ Binarly
Để chống lại các mối đe dọa như lỗ hổng CVE này, Binarly đã nâng cấp Nền tảng Minh bạch (Transparency Platform) của mình. Nền tảng này tích hợp khả năng phân tích tĩnh để phát hiện các trình phân giải IFUNC bất thường và các thay đổi tệp ELF. Phương pháp này đạt được tỷ lệ cảnh báo sai (false positive) gần như bằng không. Công nghệ này cung cấp sức mạnh cho công cụ quét miễn phí XZ.fail. XZ.fail có khả năng xác định sự can thiệp vào luồng điều khiển mà không dựa vào các phương pháp dễ vỡ như so khớp hash hoặc hằng số chuỗi YARA, vốn dễ thất bại khi đối phó với các biến thể được biên dịch lại.
Việc tích hợp gần đây của YARA Rule Playground vào nền tảng cho phép quét nhanh các danh mục phần mềm bằng các quy tắc tùy chỉnh, hỗ trợ giảm thiểu rủi ro một cách chủ động. Điều này góp phần tăng cường an toàn thông tin cho hệ thống.
Kết Luận và Khuyến Nghị Về An Toàn Thông Tin
Khám phá này nhấn mạnh sự cần thiết của việc giám sát liên tục ở cấp độ nhị phân (binary-level) trong các kho lưu trữ container. Ngay cả những sự xâm phạm ngắn hạn cũng có thể tồn tại và khuếch đại thông qua các phụ thuộc phân lớp, phơi bày các lỗ hổng trong các phương pháp DevOps hiện đại. Khi các sự cố chuỗi cung ứng gia tăng, các công cụ như của Binarly là cần thiết để giảm thiểu bề mặt tấn công và đảm bảo các hệ sinh thái có khả năng phục hồi. Việc thường xuyên rà soát và cập nhật để tránh lỗ hổng CVE là yếu tố then chốt.









