Pembantu kod AI mengeluarkan nama pakej yang tidak wujud, dan penyerang menukarkan halusinasi tersebut menjadi risiko rantaian bekalan yang nyata.
Apabila penyelidik keselamatan Bar Lanyado dari Lasso Security meminta alat pengekodan berkuasa AI untuk klien Python, model tersebut mencadangkan pemasangan huggingface-cli. Pakej tersebut hanyalah bayangan; perpustakaan yang sah wujud di bawah nama huggingface_hub. Untuk membuktikan bahaya tersebut, Lanyado mendaftarkan nama palsu itu di Python Package Index (PyPI) sebagai penanda tempat kosong. Dalam masa tiga bulan, penanda tempat itu mengumpul lebih 30,000 muat turun, muncul dalam dokumentasi awam dan malah muncul dalam sampel kod yang diambil daripada repositori Alibaba.
Bagaimana pakej bayangan menjadi ancaman nyata
- Prompt → halusinasi – Seorang pembangun meminta bantuan AI. Model tersebut, yang dilatih menggunakan data internet yang tidak teratur, mencipta nama pakej yang kedengaran munasabah.
- Salin-tampal → dokumentasi – Cadangan tersebut masuk ke dalam README, jawapan Stack Overflow, atau wiki dalaman. Sebaik sahaja ditulis, nama tersebut tersebar melalui komuniti.
- Integrasi kod – Pembangun, yang mempercayai AI, menambah nama tersebut ke dalam fail keperluan dan menghantarnya ke pengeluaran.
Mengapa pertahanan sedia ada terlepas pandang masalah ini
Alat analisis statik dan pengimbas kerentanan mencari CVE yang diketahui dan perpustakaan yang mempunyai sejarah pelancaran. Pakej yang baru diterbitkan dengan sifar muat turun sebelum cadangan AI tidak mempunyai CVE, tiada reputasi, dan oleh itu kelihatan bersih. Semakan standard “adakah versi ini rentan?” memberikan keputusan palsu, memberikan pembangun rasa selamat yang palsu.
Apa yang dibuktikan oleh eksperimen ini
- Nama ciptaan AI sampai ke pengeluaran – Lebih 30,000 muat turun menunjukkan bahawa pembangun sebenarnya memuat turun pakej bayangan ini.
- Halusinasi menjadi dokumentasi – Sebaik sahaja nama palsu muncul dalam panduan awam, ia boleh kekal selama-lamanya, menyebarkan ralat tersebut.
- Pendaftaran adalah mudah – Menerbitkan pakej di PyPI tidak memerlukan kos dan hanya mengambil masa beberapa minit, merendahkan halangan untuk penyalahgunaan rantaian bekalan.
Langkah pertahanan yang benar-benar berkesan
- Sahkan setiap kebergantungan – Sebelum menambah keperluan baharu, cari dalam indeks pakej dan sahkan nama tersebut sepadan dengan perpustakaan sedia ada yang didokumentasikan.
- Semak silang dengan sumber rasmi – Bandingkan nama yang dicadangkan dengan repositori vendor atau panduan pemasangan rasmi.
- Anggap pakej baharu dengan penggunaan rendah sebagai risiko tinggi – Tandakan mana-mana kebergantungan yang mempunyai kurang daripada segelintir muat turun atau tarikh pelancaran yang sangat baharu untuk semakan manual.
Apa yang perlu diperhatikan seterusnya
Pengajarannya mudah: cadangan AI bukanlah satu jaminan. Anggap setiap kebergantungan baharu sebagai komponen pihak ketiga yang belum disemak, sahkan asal-usulnya, dan pantau rantaian bekalan sebelum anda membiarkan pakej bayangan terlepas ke dalam pengeluaran.
