- Trong quá trình cài đặt Debian sid, đã quan sát thấy một số dấu hiệu bất thường liên quan đến liblzma (một phần của gói xz), như mức sử dụng CPU tăng khi đăng nhập SSH và lỗi valgrind
- Phát hiện nguyên nhân của vấn đề là kho lưu trữ thượng nguồn và tarball của xz đã bị nhiễm backdoor. Một phần của backdoor chỉ tồn tại trong tarball được phát hành
- Script có trong tarball được chạy ở cuối
configure và khi đáp ứng một số điều kiện nhất định, nó sẽ sửa đổi $builddir/src/liblzma/Makefile để chèn mã độc.
Backdoor trong kho lưu trữ
- Phần chính của backdoor tồn tại ở dạng mã hóa trong thư mục
tests/files của kho lưu trữ.
- Các tệp này không được dùng cho bài kiểm thử của phiên bản 5.6.0, và ở phiên bản 5.6.1 đã có nỗ lực khắc phục lỗi valgrind và sự cố crash do backdoor gây ra.
Hệ thống bị ảnh hưởng
- Script backdoor được gọi lần đầu sau
configure và chỉ sửa đổi quá trình build trong các điều kiện cụ thể (ví dụ: hệ thống Linux x86-64, dùng gcc và GNU linker, đang build gói Debian hoặc RPM).
Ảnh hưởng đến máy chủ openssh
- Khi dùng liblzma đã cài backdoor, việc đăng nhập qua SSH trở nên chậm hơn.
- openssh không trực tiếp dùng liblzma, nhưng một số bản phân phối gồm cả Debian áp dụng bản vá cho openssh để hỗ trợ thông báo systemd, và libsystemd phụ thuộc vào lzma.
Phân tích mã đã bị chèn
- Phân tích này được thực hiện từ góc nhìn của một người quan sát, không phải nhà nghiên cứu bảo mật hay chuyên gia dịch ngược.
- Backdoor chặn việc thực thi thông qua ifunc resolver, và trong quá trình khởi tạo của sshd, nó phân giải symbol rồi thay đổi symbol
RSA_public_decrypt sang mã của chính nó.
Ảnh hưởng đến sshd
RSA_public_decrypt@....plt bị đổi để trỏ tới mã backdoor, khiến mã backdoor được gọi trong quá trình đăng nhập bằng khóa công khai.
- Từ đó, nhiều khả năng có thể bỏ qua xác thực hoặc cho phép thực thi mã từ xa.
Báo cáo lỗi
- Không báo cáo lỗi vì nghi ngờ có sự can dự của kho lưu trữ thượng nguồn.
- Red Hat đã gán mã CVE-2024-3094 cho vấn đề này.
Phát hiện cài đặt dễ bị tấn công
- Có cung cấp một script để phát hiện liệu binary ssh của hệ thống có dễ bị tấn công hay không.
8 bình luận
Mọi điều tôi biết về backdoor xz
Bài viết do Andres Freund, người đã phát hiện ra backdoor này, chấp bút.
Thật đáng kinh ngạc vì họ đã hành động rất có chủ đích;; quá trình này cứ như một bộ phim truyền hình.
Bị lăng trì cũng đáng.
Tại sao?
Vì đây là hành vi cố ý cài backdoor vào mã nguồn mở... trong quá trình đó họ còn âm thầm tiến hành cả chiến dịch thao túng dư luận nữa.
Trước đây cũng từng có trường hợp cố tình chèn lỗ hổng vào kernel Linux, thật sự thấy chua chát.
À, giờ thì tôi có vẻ đã hiểu được sắc thái đó rồi, cảm ơn bạn.
Ý kiến trên Hacker News
Liên kết liên quan:
Tóm tắt:
SECURITY.mdvào dự ánxz-java. Tệp này hướng dẫn rằng nếu phát hiện lỗ hổng bảo mật thì không được công khai mà phải báo cáo riêng. Nhìn từ góc độ khác, điều này có thể được hiểu là ý đồ câu giờ để tác giả điều chỉnh exploit của mình và tận dụng mục tiêu.opensshkhông trực tiếp sử dụngliblzma, nhưng Debian và nhiều bản phân phối khác đã áp dụng bản vá choopensshđể hỗ trợ thông báo systemd. Vì vậylibsystemdtrở nên phụ thuộc vàoliblzma, tạo thêm phụ thuộc cho các daemon quan trọng về bảo mật nhưopensshvà làm tăng rủi ro tấn công chuỗi cung ứng.liblzma5(5.6.0hoặc5.6.1) hay không. Đây là phiên bản chỉ mới được thêm vào khoảng một tháng gần đây.sshdtrên systemd hay không. OpenSSH đã được vá trên một số bản phân phối sẽ dùnglibsystemdcho chức năng ghi log, và điều này kéo theoliblzma5dễ bị tấn công.5.6.1+really5.4.5-1, nhưng thực chất đây là bản cũ5.4được đóng gói lại dưới số phiên bản mới.libarchive. Việc cài được backdoor này đã cần rất nhiều công sức.5.6.1. Đây là một tài khoản GitHub khác với tài khoản ở upstream.xz(1), có lẽ nó đã không bị phát hiện nhanh như vậy.xzđược dùng gần như ở khắp mọi nơi. Có thể tạo ra một phiên bảnxzchỉ chọn lọc sửa đổi những phần rất nhỏ của các tệp như tarball phần mềm.tar.xzđược dùng làm nền tảng cho một quy trình build cụ thể. Mục tiêu sẽ là các tarball phân phối nhị phân đã biên dịch sẵn, chứ không phải tarball mã nguồn.