Sai sót trong Vertex AI Python SDK tạo điều kiện cho tấn công chuỗi cung ứng AI

WhiteHat Team

Administrators
Thành viên BQT
09/04/2020
141
1.988 bài viết
Sai sót trong Vertex AI Python SDK tạo điều kiện cho tấn công chuỗi cung ứng AI
Các nhà nghiên cứu bảo mật từ Unit 42 thuộc Palo Alto Networks vừa công bố một lỗ hổng nghiêm trọng trong Vertex AI, nền tảng phát triển và triển khai mô hình trí tuệ nhân tạo của Google Cloud. Lỗ hổng có thể cho phép kẻ tấn công chiếm quyền quy trình tải lên mô hình học máy, cài cắm mô hình độc hại và thực thi mã từ xa trong môi trường của nạn nhân mà không cần quyền truy cập ban đầu vào dự án đám mây mục tiêu.
Vertex AI.png

Theo phân tích của Unit 42, lỗ hổng ảnh hưởng đến các phiên bản 1.139.0 và 1.140.0 của thư viện Vertex AI Python SDK (google-cloud-aiplatform), thành phần được nhiều tổ chức sử dụng để xây dựng và triển khai các mô hình học máy trên Google Cloud. Điểm yếu nằm ở quy trình xử lý các tệp mô hình trong giai đoạn triển khai, nơi dữ liệu được lưu tạm trên Google Cloud Storage (GCS) trước khi được đưa vào môi trường vận hành.

Thông thường, các tệp mô hình sẽ được tải lên một bucket GCS tạm thời. Tuy nhiên, khi nhà phát triển không chỉ định bucket riêng, SDK sẽ tự động tạo bucket mặc định theo một quy tắc đặt tên có thể dự đoán được. Nghiêm trọng hơn, SDK chỉ kiểm tra xem bucket đó có tồn tại hay không mà không xác minh liệu bucket có thực sự thuộc về dự án đang triển khai hay không.

Sai sót tưởng chừng nhỏ này đã tạo điều kiện cho kỹ thuật "bucket squatting". Bằng cách dự đoán trước tên bucket mà nạn nhân sẽ sử dụng và tạo nó trong dự án của riêng mình, kẻ tấn công có thể khiến các tệp mô hình bị chuyển hướng sang hạ tầng do chúng kiểm soát. Toàn bộ quá trình diễn ra âm thầm, không tạo ra cảnh báo nào cho người dùng, mở đường cho việc sửa đổi hoặc đầu độc mô hình trước khi nó được Vertex AI triển khai vào môi trường thực tế.​

1781775655059.png

Luồng chuỗi tấn công (Nguồn: Unit 42)

Unit 42 đặt tên kỹ thuật khai thác này là "Pickle in the Middle", một biến thể tấn công chuỗi cung ứng nhắm trực tiếp vào quy trình triển khai mô hình AI. Sau khi dự đoán và chiếm quyền bucket lưu trữ của nạn nhân, kẻ tấn công có thể theo dõi quá trình tải mô hình lên Vertex AI. Ngay khi phát hiện tệp mới xuất hiện, một hàm đám mây do chúng kiểm soát sẽ tự động thay thế mô hình hợp pháp bằng phiên bản đã bị chỉnh sửa. Toàn bộ thao tác diễn ra trong cửa sổ thời gian cực ngắn, chỉ khoảng 2,5 giây, đủ để mô hình độc hại được chuyển tiếp tới hạ tầng Vertex AI mà không làm dấy lên bất kỳ cảnh báo nào.

Mối đe dọa trở nên nghiêm trọng hơn khi cuộc tấn công tận dụng cơ chế giải tuần tự của thư viện Python pickle. Khi Vertex AI tiếp nhận và tải mô hình đã bị đầu độc, mã do kẻ tấn công cài cắm sẽ được thực thi tự động trong môi trường phục vụ mô hình. Điều này biến một quy trình triển khai AI thông thường thành điểm xâm nhập, cho phép đối tượng tấn công giành quyền thực thi mã từ xa trên hạ tầng đám mây của nạn nhân.​

1781775700194.png

Nhật ký thay đổi của bản vá đầu tiên
Trong thử nghiệm thực tế, các nhà nghiên cứu đã chứng minh khả năng khai thác có thể dẫn đến những hậu quả vượt xa việc sửa đổi mô hình AI. Sau khi giành được quyền thực thi mã, tin tặc có thể đánh cắp token tài khoản dịch vụ từ máy chủ metadata, truy cập các mô hình khác trong cùng môi trường, thu thập thông tin về dữ liệu và quyền truy cập trên BigQuery, đồng thời khai thác nhật ký hệ thống để hé lộ các chi tiết nội bộ của hạ tầng đám mây. Đáng lo ngại, các thông tin xác thực thu được mang phạm vi quyền hạn rộng trên nền tảng Google Cloud, tạo điều kiện cho kẻ tấn công mở rộng phạm vi xâm nhập và làm gia tăng đáng kể mức độ ảnh hưởng của sự cố.

Lỗ hổng bắt nguồn từ logic xử lý bucket trong mô-đun gcs_utils.py của Vertex AI Python SDK. Khi người dùng không chỉ định bucket staging, SDK sẽ tự động tạo tên bucket mặc định dựa trên thông tin dự án theo một quy tắc có thể dự đoán. Tuy nhiên, quá trình này chỉ kiểm tra sự tồn tại của bucket mà không xác minh liệu bucket đó có thực sự thuộc quyền sở hữu của dự án đang triển khai hay không.

Sự kết hợp giữa cơ chế đặt tên có thể dự đoán và việc thiếu xác thực quyền sở hữu đã tạo ra cơ hội cho các cuộc tấn công chiếm quyền bucket. Nếu một bucket mang đúng tên dự kiến đã được tạo sẵn trong dự án của kẻ tấn công, SDK vẫn sẽ sử dụng bucket đó để lưu trữ tạm thời các tệp mô hình. Điều này cho phép đối tượng bên ngoài can thiệp vào quy trình triển khai, chuyển hướng các tệp mô hình sang hạ tầng do chúng kiểm soát và làm suy yếu cơ chế cô lập vốn được kỳ vọng trong môi trường đám mây đa thuê.

Sau khi nhận được báo cáo thông qua chương trình Vulnerability Reward Program, Google đã triển khai nhiều biện pháp khắc phục theo từng giai đoạn. Bản vá đầu tiên thay đổi cơ chế tạo bucket bằng cách bổ sung chuỗi UUID ngẫu nhiên nhằm loại bỏ khả năng dự đoán tên bucket. Tiếp đó, hãng bổ sung cơ chế xác minh quyền sở hữu bucket trước khi sử dụng, bảo đảm các bucket staging thực sự thuộc về dự án tương ứng thay vì chỉ kiểm tra sự tồn tại như trước đây.

Toàn bộ vấn đề đã được khắc phục trong phiên bản 1.148.0 phát hành ngày 15/4/2026. Google khuyến nghị các tổ chức đang sử dụng Vertex AI nhanh chóng nâng cấp lên phiên bản mới nhất, chủ động chỉ định bucket staging riêng thay vì phụ thuộc vào cấu hình mặc định, đồng thời tăng cường kiểm tra tính toàn vẹn của mô hình trong suốt quá trình tải lên và triển khai. Vụ việc là lời cảnh báo rằng các thành phần hạ tầng hỗ trợ trong chuỗi AI/ML cũng có thể trở thành mục tiêu tấn công, mở đường cho các chiến dịch đầu độc mô hình và xâm nhập môi trường đám mây quy mô lớn.​
 
Chỉnh sửa lần cuối:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Bên trên