Chiến dịch mới mang tên GemStuffer lợi dụng hơn 150 gói RubyGems để thu thập và lưu trữ dữ liệu từ các cổng thông tin của chính quyền địa phương tại Anh. Vụ việc đang gây chú ý trong cộng đồng công nghệ khi nền tảng quản lý gói phần mềm nổi tiếng này bị biến thành kênh rò rỉ dữ liệu thay vì phát tán mã độc như thông thường.
“Gói RubyGems” hay thường gọi ngắn là “gem” là các gói thư viện, module hoặc công cụ được lập trình viên Ruby tạo ra để tái sử dụng mã nguồn. Các gem giúp bổ sung tính năng cho ứng dụng mà không cần tự viết lại từ đầu.
Theo công ty bảo mật Socket, các gói phần mềm độc hại trong chiến dịch này không được thiết kế để tấn công hàng loạt lập trình viên hay chiếm quyền hệ thống. Phần lớn các gói có rất ít lượt tải xuống, payload lặp lại và hoạt động tương đối độc lập. Thay vào đó, các gói RubyGems được sử dụng để tự động thu thập dữ liệu từ các cổng dịch vụ dân chủ địa phương tại Anh, sau đó đóng gói dữ liệu thành các tệp gem hợp lệ rồi tải ngược trở lại kho RubyGems thông qua các khóa API được nhúng sẵn trong mã nguồn.
“Gói RubyGems” hay thường gọi ngắn là “gem” là các gói thư viện, module hoặc công cụ được lập trình viên Ruby tạo ra để tái sử dụng mã nguồn. Các gem giúp bổ sung tính năng cho ứng dụng mà không cần tự viết lại từ đầu.
Theo công ty bảo mật Socket, các gói phần mềm độc hại trong chiến dịch này không được thiết kế để tấn công hàng loạt lập trình viên hay chiếm quyền hệ thống. Phần lớn các gói có rất ít lượt tải xuống, payload lặp lại và hoạt động tương đối độc lập. Thay vào đó, các gói RubyGems được sử dụng để tự động thu thập dữ liệu từ các cổng dịch vụ dân chủ địa phương tại Anh, sau đó đóng gói dữ liệu thành các tệp gem hợp lệ rồi tải ngược trở lại kho RubyGems thông qua các khóa API được nhúng sẵn trong mã nguồn.
Vụ việc xuất hiện không lâu sau khi RubyGems phải tạm thời vô hiệu hóa tính năng đăng ký tài khoản mới do hứng chịu làn sóng tấn công độc hại nghiêm trọng. Dù hiện chưa có bằng chứng cho thấy hai sự việc liên quan trực tiếp với nhau, Socket cho rằng GemStuffer mang mô hình lạm dụng tương tự khi sử dụng các tài khoản mới tạo cùng tên gói ngẫu nhiên để lưu trữ dữ liệu thu thập được.
Theo phân tích của các nhà nghiên cứu, chiến dịch này hoạt động bằng cách truy cập vào các URL cổng thông tin nghị viện Anh được mã hóa cứng trong mã nguồn. Nội dung phản hồi từ các trang web sẽ được đóng gói thành tệp gem hợp lệ, sau đó sử dụng thông tin xác thực RubyGems được nhúng sẵn để tải lên kho lưu trữ.
Trong một số biến thể, payload còn tự tạo môi trường thông tin xác thực RubyGems tạm thời trong thư mục /tmp, ghi đè biến môi trường HOME, xây dựng gói gem cục bộ rồi sử dụng công cụ dòng lệnh gem CLI để tải dữ liệu lên hệ thống mà không cần dùng thông tin đăng nhập RubyGems có sẵn trên máy nạn nhân.
Các nhà nghiên cứu cũng phát hiện thêm nhiều biến thể khác không sử dụng CLI mà trực tiếp gửi yêu cầu HTTP POST tới API của RubyGems để tải dữ liệu lên kho lưu trữ. Sau khi một gói mới được phát hành, kẻ vận hành chỉ cần sử dụng lệnh “gem fetch” với tên và phiên bản tương ứng là có thể tải xuống dữ liệu đã thu thập.
Chiến dịch GemStuffer được xác định nhắm vào các cổng ModernGov công khai được sử dụng bởi Lambeth, Wandsworth và Southwark. Dữ liệu bị thu thập bao gồm lịch họp hội đồng, danh sách nội dung cuộc họp, tài liệu PDF đính kèm, thông tin liên hệ của quan chức và nội dung RSS.
Điểm gây tranh cãi là phần lớn dữ liệu này vốn được công khai trên Internet. Điều này khiến nhiều ý kiến đặt câu hỏi liệu đây có thực sự là một chiến dịch đánh cắp dữ liệu hay chỉ là hành vi thử nghiệm nhằm chứng minh khả năng lạm dụng hạ tầng RubyGems như một hệ thống lưu trữ dữ liệu bí mật.
Tuy nhiên, Socket cảnh báo việc tự động hóa quá trình thu thập và lưu trữ quy mô lớn vẫn tiềm ẩn rủi ro đáng kể. Theo công ty này, hoạt động trên có thể cho thấy khả năng biến các cổng thông tin nghị viện thành trung tâm phục vụ cho các chiến dịch nhắm vào hạ tầng chính phủ trong tương lai.
Socket nhận định chiến dịch có thể là spam registry, công cụ thu thập dữ liệu tự động lợi dụng RubyGems làm lớp lưu trữ hoặc đơn giản là một thử nghiệm cố ý nhằm lạm dụng hệ sinh thái package registry. Dù mục đích cuối cùng chưa được xác định rõ, các chuyên gia nhấn mạnh cơ chế hoạt động của GemStuffer được xây dựng có chủ đích với quy trình tạo gem lặp lại, tăng phiên bản liên tục, nhúng khóa xác thực RubyGems và đính kèm dữ liệu thu thập trực tiếp bên trong các gói phần mềm.
Được phối hợp thực hiện bởi các chuyên gia của Bkav,
cộng đồng An ninh mạng Việt Nam WhiteHat
và cộng đồng Khoa học công nghệ VnReview