Fail model Hugging Face boleh jalankan kod tersembunyi
Pakej model berniat jahat boleh melaksanakan kod semasa pemuatan tidak selamat.
Pakej model berniat jahat boleh melaksanakan kod semasa pemuatan tidak selamat. Tiga contoh yang didokumenkan menerangkan "Pickle reverse shells", tingkah laku pengimbas fail rosak dan kekeliruan nama model yang ditunjukkan penyelidikan, dengan had yang jelas pada dakwaan kecurian kelayakan.
Baca edisi bertulis (Bahasa Inggeris) ↗
Apa yang diliputi video ini
- Berat model berangka, siri boleh laksana dan kod repositori tersuai adalah perkara yang berbeza.
- JFrog dan ReversingLabs mendokumentasikan muatan "reverse-shell"; laporan terpilih mereka tidak membuktikan kecurian kelayakan daripada mangsa yang dinamakan.
- Kekeliruan Model Checkmarx adalah demonstrasi penyelidikan yang memerlukan model jauh yang sepadan dan pemuatan tidak selamat.
- Pilih "safetensors" dan "loader" yang ditampal, semak dan "pin" kod tersuai, dan asingkan pakej yang tidak dikenali daripada rahsia peribadi dan akses rangkaian yang tidak perlu.
Transkrip terjemahan
Diterjemahkan daripada penceritaan asal Bahasa Inggeris. Audio dan kapsyen yang tersedia dikawal oleh YouTube.
Bagaimana muat turun model boleh menjemput tetamu?
0:00 Fail model hanyalah nombor pada cakera. Memuatkan satu pakej Hugging Face yang berniat jahat membuka "remote shell", yang merupakan tafsiran AI tempatan yang bercita-cita tinggi. Bagaimana pemuatan menjadi pelaksanaan? Rahsia mana yang boleh dicapai? Apa sebenarnya yang menghentikannya? Dan ingat satu teka-teki. Model boleh gagal dimuatkan selepas bahagian berbahaya sudah berlaku.
0:18 Ini adalah The Daily Diff, di sebalik tabir. Hugging Face adalah platform untuk berkongsi model pembelajaran mesin, set data dan aplikasi. Berat model adalah nombor yang dipelajari. Repositori juga boleh mengandungi konfigurasi dan kod Python. Bahaya di sini ialah pembungkusan boleh laku melintasi komputer anda apabila anda memuatkannya. Pickle menyimpan objek Python dengan arahan untuk membina semula mereka.
Bagaimana "loader" menjalankan arahan bungkusan?
0:37 Pemuat yang tidak selamat boleh mengikut arahan tersebut dan memanggil fungsi semasa membuka bungkusan. Memuat turun bait meletakkan bungkusan pada cakera anda. Menyahsiri membukanya. Di suatu tempat, format fail telah dinaikkan pangkat kepada pentadbir sistem yang tidak dibayar. JFrog melaporkan Goober Two pada Februari dua ribu dua puluh empat. Muatan Pickle-nya membuka "reverse shell", menyambung keluar untuk menawarkan akses arahan jauh. Repositori itu telah dipadamkan. JFrog juga menemui petunjuk yang menunjukkan penglibatan penyelidik,
1:02 jadi atribusi tidak pasti. Tetamu yang tidak diingini telah didokumentasikan. Kecurian kelayakan daripada mangsa sebenar tidak dibuktikan.
Rahsia mana yang berada dalam jangkauan proses?
1:09 Kod yang berjalan sebagai pengguna anda boleh membaca apa sahaja yang boleh dibaca oleh proses itu. Kunci awan yang dipasang atau token yang boleh diakses menjadi sasaran yang mungkin. Menghantarnya keluar juga memerlukan laluan rangkaian yang berfungsi. Berat berangka sahaja tidak mempunyai kuasa kelayakan ajaib. Kebenaran anda membekalkan bahagian menarik pada kad model. Ada pintu lain. Beberapa model meminta anda mempercayai kod jauh, yang membenarkan Python daripada repositori. Fail "Safe tensor" boleh diletakkan di samping kod itu.
1:32 Memeriksa format berat meliputi satu pintu masuk, manakala kod repositori masih menunggu anda untuk menyerahkan lencana pelawat kepadanya.
Mengapa laluan tempatan yang hilang boleh menjadi model jauh?
1:38 Checkmarx menunjukkan Kekeliruan Model. Laluan model tempatan yang hilang boleh menyelesaikan ke repositori awam dengan nama yang sepadan. Gabungkan itu dengan kod jauh didayakan, dan pakej yang salah boleh dilaksanakan. Ini adalah demonstrasi penyelidikan yang melibatkan sampel syarikat yang tidak dinamakan, diperbetulkan dalam sehari. Folder yang hilang memperoleh tuan tanah. ReversingLabs melaporkan dua sampel pada Februari dua ribu dua puluh lima,
Bagaimana pakej rosak mengelak pengimbas lama?
1:58 memanggil teknik itu "nullify AI". Kedua-duanya mengandungi "reverse shell". Pembungkusan tujuh zip mereka menyekat pemuatan PyTorch biasa, jadi laluan ini memerlukan pengekstrakan dan penyahsirian tidak selamat. Aliran Pickle yang rosak juga mendedahkan titik buta pengimbas. Imbasan yang gagal memerlukan penyiasatan sebelum sesiapa membuka bungkusan itu. Dalam ujian tidak berbahaya penyelidik, arahan menulis fail sebelum "loader"
2:18 mencapai bahagian yang rosak dan menimbulkan ralat. Bayangkan membuka bungkusan, melepaskan rakun, kemudian menyedari label penghantaran tidak sah. Mesej ralat tiba dengan tatabahasa yang sangat baik dan masa yang teruk. Hugging Face mengalih keluar sampel yang dilaporkan dalam masa dua puluh empat jam dan menukar pengimbas. Penemuan khusus itu mendorong pembetulan. Imbasan keselamatan adalah bukti yang berguna, dan menganggap setiap ralat pengimbas sebagai bukti kesihatan yang baik kekal sebagai tafsiran kegagalan yang sangat murah hati.
2:43 Pilih "safe tensors" dan "loader" yang ditampal terkini.
Apa yang memastikan kunci di luar jangkauan tetamu?
2:46 PyTorch mempersempit "loader" lalainya bermula pada versi dua perpuluhan enam. Semak kod tersuai dan "pin" semakan yang disemak. Jalankan pakej yang tidak dikenali secara berasingan tanpa kunci peribadi, dengan akses rangkaian yang terhad. Bekas yang penuh dengan kelayakan yang dipasang adalah bakul hadiah dengan ruang nama. Teka-teki pembukaan itu ada jawapannya. Kegagalan pemuatan memberitahu anda di mana pelaksanaan berhenti. Arahan sebelumnya mungkin sudah berjalan.
3:08 Jauhkan rahsia daripada jangkauannya sebelum membuka bungkusan itu. Keputusan, di sebalik tabir.
Mengapa saya akan mengecop ini sebagai NEEDS REVIEW?
3:16 loader. Muat turun percuma sepatutnya datang dengan model, dan senarai tetamu sepatutnya kekal keputusan saya. Jika anda lebih suka membaca ini daripada mendengar saya mengatakannya, "the diff" tiba di peti masuk anda setiap pagi, percuma di the daily diff dot dev, pautan di bawah. Dan itu "the diff" untuk hari ini. Saya Niko dari Axrisi. Gabungkan dengan bertanggungjawab.
Sumber
- Data Scientists Targeted by Malicious Hugging Face ML Models with Silent BackdoorJFrog
- Malicious ML models discovered on Hugging Face platformReversingLabs
- AI Model Confusion: An LLM/AI Model Supply Chain AttackCheckmarx Zero
- Pickle ScanningHugging Face
- SafetensorsHugging Face
- Loading custom modelsHugging Face
- Serialization semanticsPyTorch



