Apa yang terjadi
Palo Alto Networks Unit 42 menemukan cacat dalam Vertex AI SDK untuk Python: SDK menggunakan skema penamaan bucket deterministik untuk unggahan sementara dan tidak memverifikasi kepemilikan bucket sebelum mengunggah. Penyerang yang hanya mengetahui ID proyek korban (sering kali publik) dapat secara proaktif membuat bucket, menunggu unggahan korban, dan merampas model.
Mengapa penting
Ini memungkinkan peracunan model lintas penyewa: penyerang dapat menyuntikkan kode berbahaya ke dalam model ML korban sebelum mencapai produksi. Ketika model diterapkan dan membuat prediksi, kode penyerang berjalan dalam infrastruktur Google dengan akses ke lingkungan penyajian model, server metadata, dan kemungkinan sumber daya Google Cloud lainnya.
Vektor serangan
Vertex AI SDK menghasilkan nama yang dapat diprediksi untuk bucket Cloud Storage sementara yang digunakan selama unggahan model (misalnya, project-vertex-staging-region). Penyerang dengan proyek Google Cloud mereka sendiri dapat secara proaktif membuat bucket yang cocok dengan skema penamaan itu. Ketika SDK korban mencoba mengunggah model, itu mengunggah ke bucket penyerang sebagai gantinya. Penyerang kemudian memodifikasi model (misalnya, menukar file pickle dengan yang berbahaya) atau menggunakan bucket untuk meng-host model yang diracuni. Ketika Vertex AI memuat model, kode penyerang dieksekusi dalam wadah penyajian.
Sistem yang terdampak
Google Cloud Vertex AI Python SDK (google-cloud-aiplatform v1.139.0–1.140.0)
Mitigasi
Perbarui google-cloud-aiplatform ke v1.148.0 atau yang lebih baru; tentukan nama bucket secara eksplisit dan verifikasi kepemilikannya sebelum unggahan; gunakan impersonasi akun layanan dengan izin minimal untuk operasi unggahan model.