Tấn công vào cơ sở hạ tầng PyTorch, xâm phạm kho lưu trữ và phát hành

Thông tin chi tiết về cuộc tấn công vào cơ sở hạ tầng được sử dụng để phát triển khung học máy PyTorch đã được tiết lộ, giúp có thể trích xuất các khóa truy cập đủ để đặt dữ liệu tùy ý vào kho lưu trữ với các bản phát hành dự án trên GitHub và AWS, cũng như để thay thế mã trong nhánh chính của kho lưu trữ và thêm cửa sau thông qua các phần phụ thuộc. Việc giả mạo bản phát hành PyTorch có thể được sử dụng để tấn công các công ty lớn như Google, Meta, Boeing và Lockheed Martin sử dụng PyTorch trong các dự án của họ. Là một phần của chương trình Bug Bounty, Meta đã trả cho các nhà nghiên cứu 16250 USD cho thông tin về vấn đề này.

Bản chất của cuộc tấn công là khả năng chạy mã của bạn trên các máy chủ tích hợp liên tục thực hiện việc xây dựng lại và chạy các công việc để kiểm tra các thay đổi mới được gửi đến kho lưu trữ. Sự cố này ảnh hưởng đến các dự án sử dụng trình xử lý "Self-Hosted Runner" bên ngoài của riêng chúng với GitHub Actions. Không giống như Tác vụ GitHub truyền thống, trình xử lý Tự lưu trữ không chạy trên cơ sở hạ tầng GitHub mà trên máy chủ của riêng họ hoặc trong các máy ảo do nhà phát triển duy trì.

Việc thực thi các tác vụ tập hợp trên máy chủ của bạn cho phép bạn tổ chức khởi chạy mã có thể quét mạng nội bộ của doanh nghiệp, tìm kiếm FS cục bộ để tìm khóa mã hóa và mã thông báo truy cập, đồng thời phân tích các biến môi trường với các tham số để truy cập bộ nhớ ngoài hoặc dịch vụ đám mây. Trong trường hợp môi trường lắp ráp không được cách ly thích hợp, dữ liệu bí mật được tìm thấy có thể được gửi ra bên ngoài cho những kẻ tấn công, chẳng hạn như thông qua quyền truy cập vào các API bên ngoài. Để xác định việc sử dụng Self-Hosted Runner của các dự án, bộ công cụ Gato có thể được sử dụng để phân tích các tệp quy trình làm việc có thể truy cập công khai và nhật ký khởi chạy tác vụ CI.

Trong PyTorch và nhiều dự án khác sử dụng Self-Hosted Runner, chỉ những nhà phát triển có những thay đổi trước đây đã được bình duyệt và đưa vào cơ sở mã của dự án mới được phép chạy các công việc xây dựng. Việc có trạng thái “người đóng góp” khi sử dụng cài đặt mặc định trong kho lưu trữ giúp bạn có thể khởi chạy trình xử lý Tác vụ GitHub khi gửi yêu cầu kéo và theo đó, thực thi mã của bạn trong bất kỳ môi trường Trình chạy hành động GitHub nào được liên kết với kho lưu trữ hoặc tổ chức giám sát dự án.

Liên kết đến trạng thái "cộng tác viên" hóa ra rất dễ bỏ qua - trước tiên chỉ cần gửi một thay đổi nhỏ và đợi nó được chấp nhận vào cơ sở mã, sau đó nhà phát triển sẽ tự động nhận được trạng thái của người tham gia tích cực, yêu cầu kéo của họ được phép kiểm tra trong cơ sở hạ tầng CI mà không cần xác minh riêng. Để đạt được trạng thái nhà phát triển đang hoạt động, thử nghiệm đã bao gồm những thay đổi nhỏ về mặt thẩm mỹ để sửa lỗi chính tả trong tài liệu. Để có quyền truy cập vào kho lưu trữ và nơi lưu trữ các bản phát hành PyTorch, cuộc tấn công trong khi thực thi mã trong “Self-Hosted Runner” đã chặn mã thông báo GitHub được sử dụng để truy cập vào kho lưu trữ từ quá trình xây dựng, cũng như các khóa AWS được sử dụng để lưu kết quả xây dựng .

Sự cố này không dành riêng cho PyTorch và ảnh hưởng đến nhiều dự án lớn khác sử dụng cài đặt mặc định cho "Self-Hosted Runner" trong GitHub Actions. Ví dụ: việc thực hiện các cuộc tấn công tương tự đã được đề cập để cài đặt một cửa sau trong một số ví tiền điện tử lớn và các dự án blockchain có vốn hóa hàng tỷ đô la, thực hiện các thay đổi đối với các bản phát hành của Microsoft Deepspeed và TensorFlow, xâm phạm một trong các ứng dụng CloudFlare và cũng thực thi mã trên máy tính trên mạng Microsoft. Thông tin chi tiết về những sự cố này vẫn chưa được tiết lộ. Theo các chương trình thưởng lỗi hiện có, các nhà nghiên cứu đã gửi hơn 20 đơn đăng ký để nhận phần thưởng trị giá vài trăm nghìn đô la.

Nguồn: opennet.ru

Thêm một lời nhận xét