Công nghệ

Mã độc giấu trong các gói npm của Red Hat tự lây lan và đánh cắp khóa đám mây

Susan Hill

Trong một khoảng thời gian, một số mảnh ghép phần mềm phát hành dưới tên Red Hat đã âm thầm chống lại chính những người cài đặt chúng. Bên trong hơn 30 gói thuộc bộ sưu tập công khai @redhat-cloud-services của công ty là một đoạn mã nhỏ, sẵn sàng chạy ngay khoảnh khắc một lập trình viên cài bất kỳ gói nào. Nó được đặt làm bước preinstall, một trong những tác vụ tự động mà công cụ npm tự chạy, trước khi một dòng phần mềm thật sự nào được nạp. Nhiệm vụ của nó là tìm mật khẩu, rồi lây lan.

Red Hat không làm ra những ứng dụng mà phần đông mở lên theo tên, nhưng mã của họ nằm dưới một phần khổng lồ những gì người ta dùng mỗi ngày: các bảng điều khiển đám mây mà một ngân hàng đăng nhập vào, các hệ thống mà bệnh viện và cơ quan nhà nước vận hành trên đó, các công cụ mà những công ty khác dùng để dựng nên sản phẩm của riêng mình. Khi mã mang cái nhãn ấy trở nên thù địch, bán kính tác động không phải một ứng dụng. Đó là mọi thứ được lắp ráp bên trên.

Đoạn mã ẩn lên đường săn tìm những chiếc khóa mở ra nền điện toán hiện đại. Theo công ty bảo mật StepSecurity, đơn vị đầu tiên cảnh báo về các gói này, nó gom các token truy cập cho Amazon Web Services, Google Cloud, Microsoft Azure, Kubernetes, HashiCorp Vault, chính npm và dịch vụ tự động hóa CircleCI, cùng những bí mật cất trong các chuỗi biên dịch của GitHub. Để chạm tới chúng, nó đọc bộ nhớ thô của tiến trình biên dịch đang chạy, một mánh lách qua những lớp bảo vệ vốn để giữ bí mật khỏi nhật ký.

Thứ biến một vụ trộm dữ liệu bình thường thành điều gần với một đợt bùng phát là việc đoạn mã làm tiếp theo. Với các token xuất bản npm đánh cắp được, nó cố đẩy lên những phiên bản vừa bị cài cửa hậu của mọi gói khác mà tài khoản bị chiếm có thể với tới, dựa vào một thiết lập gạt sang bên bước kiểm tra hai lớp thường chặn đường. Một vụ trộm tự sao chép không dừng lại ở những nạn nhân đầu tiên. Nó đi dọc theo chính niềm tin mà cả hệ thống đặt nền trên đó.

Trên chính máy của các lập trình viên, tải trọng còn đi xa hơn: nó cài hướng dẫn vào phần cài đặt tác vụ của Visual Studio Code và vào cấu hình của Claude Code, trợ lý lập trình bằng trí tuệ nhân tạo, để tiếp tục chạy rất lâu sau khi cài đặt kết thúc. Chính những người hay tải các gói này nhất, các kỹ sư bảo trì phần mềm cho mọi người khác, cũng là những người mà chiếc laptop trở thành cửa ngõ.

Chi tiết khó chịu nhất là các phiên bản xấu đến từ đâu. Các lập trình viên của Red Hat, những người thừa nhận vấn đề trong kho theo dõi công khai của dự án, và các nhà nghiên cứu mổ xẻ đoạn mã đều đồng ý: những phiên bản nhiễm độc đi ra qua chính chuỗi xuất bản tự động của Red Hat, cỗ máy lấy mã từ các kho lưu trữ và gửi nó ra thế giới. Kẻ tấn công không giả danh Red Hat. Trong một khoảng thời gian, chúng có thể xuất bản với tư cách Red Hat. Con dấu của niềm tin và thứ được tin cậy đã tách rời.

Đây không phải lần đầu chuỗi cung ứng phần mềm nguồn mở bị biến thành tuyến giao hàng. Các tiện ích mở rộng trình duyệt bị nhiễm độc và tài khoản lập trình viên bị chiếm đã nổi lên hết lần này tới lần khác suốt mùa xuân, tất cả đều khai thác cùng một thói quen: phần mềm hiện đại được dán lại từ hàng nghìn thành phần miễn phí mà không ai viết từ đầu. Điều khiến vụ này nặng hơn là cái tên trên hộp. Toàn bộ lý do để lấy mã từ một nhà cung cấp như Red Hat, thay vì một người đóng góp ẩn danh, là vì cái tên ấy lẽ ra phải là sự bảo đảm.

Cũng nên nói rõ vụ việc này không có nghĩa là gì. Cho đến nay không có dấu hiệu thiết bị của người dùng thông thường bị nhiễm, hay các sản phẩm doanh nghiệp trả phí của Red Hat và hệ thống đang chạy của khách hàng bị xâm nhập. Các phiên bản độc hại nhắm vào phần giữa lộn xộn của quá trình phát triển, các máy chủ biên dịch tự động và máy của kỹ sư, và nhiều gói bị ảnh hưởng là công cụ giao diện và công cụ cho lập trình viên, không phải lõi của bất kỳ dịch vụ đang vận hành nào. Bức tranh cũng còn đang dịch chuyển, và con số chính xác các gói bị nhiễm đã thay đổi khi Red Hat và các nhà nghiên cứu bên ngoài rà soát danh sách. Thiệt hại quan trọng nhất, thông tin đăng nhập bị đánh cắp, vẫn vô hình cho đến khi ai đó dùng chúng.

Red Hat đã dần gỡ bỏ các phiên bản độc hại, và những bản phát hành bị xâm phạm đang được rút khỏi npm. Ai đã cài chúng trong khoảng thời gian bị ảnh hưởng được khuyên hãy coi mọi token mà quá trình biên dịch có thể thấy là đã cháy và thay mới. Việc công bố diễn ra vào đầu tháng Sáu, và công cuộc dọn dẹp sẽ kéo dài hơn các dòng tít. Vấn đề mang tính cấu trúc sẽ kéo dài hơn cả cuộc dọn dẹp: internet được lắp ráp, với tốc độ cao, từ hàng triệu mảnh nhỏ do những người ta không bao giờ gặp bảo trì, và ngày càng nhiều bởi các hệ thống tự động có thể bị chiếm để ký tên lên những mảnh ấy thay cho họ.

Thẻ: , , ,

Thảo luận

Có 0 bình luận.