Masalah dalam satu ayat
Lain kali Pembantu AI mengesyorkan pakej untuk dipasang, adakah anda benar-benar akan menyemak sama ada pakej itu wujud? Kebanyakan pembangun belum. Jurang antara cadangan dan pengesahan itulah sebenarnya permulaan serangan slopsquatting, dan itulah sebabnya pemahaman tentang evolusi slopsquatting dan pencegahan slopsquatting yang praktikal telah menjadi keutamaan sebenar bagi pasukan AppSec dan DevSecOps.
Apakah serangan slopsquatting?
Serangan slopsquatting adalah satu varian daripada typosquatting (amalan mendaftarkan nama domain atau pakej yang meniru nama yang sah melalui salah ejaan yang biasa, seperti permintaan bukan permintaan, berharap kesalahan taip pengguna sendiri akan menyebabkan kesilapan itu berlaku), tetapi dengan perbezaan penting dari segi asal usul kesilapan tersebut. Typosquatting mengeksploitasi ralat menaip manusia. Serangan slopsquatting mengeksploitasi kesilapan yang dibuat oleh model bahasa yang besar: LLM "menghalusinasi" nama pakej yang kedengaran sah tetapi tidak wujud dalam mana-mana pendaftaran awam dan penyerang sampai ke sana terlebih dahulu dengan mendaftarkan nama tepat itu sebelum sesiapa yang berniat baik berbuat demikian.
Mekanisme di sebalik serangan slopsquatting yang biasa adalah mudah, dan kesederhanaan itulah yang menjadikannya berkesan:
- Seorang pembangun meminta pembantu AI untuk membantu menyelesaikan masalah pengekodan.
- Model ini menjana penyelesaian yang mengimport atau mengesyorkan pemasangan pakej yang tidak pernah wujud.
- Seorang penyerang yang menyedari bahawa beberapa model terus mengulangi daftar nama halusinasi yang sama yang dibungkus pada npm, PyPI atau daftar awam lain, dengan kod berniat jahat di dalamnya. Inilah saat halusinasi bertukar menjadi serangan slopsquatting yang sebenar.
- Pembangun seterusnya yang mendapat cadangan yang sama dan tidak mengesahkannya, memasang pakej yang kini sebenar, yang merupakan pintu belakang ke dalam persekitaran mereka.
Istilah "slopsquatting" dicipta oleh Seth Larson, Pembangun Keselamatan di Python Software Foundation, dan dipopularkan oleh Andrew Nesbitt, untuk menggambarkan corak ini dengan tepat: "halusinasi pakej" bertukar menjadi vektor serangan.
Evolusi slopsquatting: bagaimana rasa ingin tahu penyelidikan berkembang menjadi ancaman sebenar
Apa yang ketara tentang evolusi slopsquatting bukan sekadar konsepnya; tetapi betapa cepatnya ia beralih daripada pemerhatian penyelidikan kepada kelas serangan yang didokumenkan dan boleh diukur.
2023: Tanda amaran pertama. Penyelidik keselamatan Bar Lanyado menyedari bahawa beberapa LLM berulang kali mengesyorkan pakej yang dipanggil memeluk-muka-cli, yang tidak wujud (pakej sebenar dipasang dengan pip install -U “huggingface_hub[cli]”). Untuk menunjukkan risikonya, dia memuat naik versi kosong pakej tersebut ke daftar awam. Dalam tempoh tiga bulan, ia telah menerima lebih 30,000 muat turun, tanpa sebarang promosi. Nama halusinasi itu juga muncul dalam README repositori yang dikaitkan dengan penyelidikan daripada Alibaba, menunjukkan awal bagaimana nama-nama "palsu" ini boleh bocor ke dalam dokumentasi sebenar dan menyediakan pentas untuk serangan semberono yang akan menyusul.
2024: Risiko beralih daripada catatan blog penyelidik kepada liputan teknologi arus perdana. Pada bulan Mac 2024, Daftar melaporkan tentang bagaimana model AI dengan yakin mencipta nama pakej perisian yang kemudiannya dimuat turun oleh pembangun, sebahagian daripadanya berpotensi diracuni dengan perisian hasad. Liputan itu kurang penting untuk apa yang didedahkan secara teknikal dan lebih penting untuk apa yang diisyaratkan: kes huggingface-cli bukan lagi satu perkara yang menarik; ia merupakan tanda pertama corak yang cukup serius untuk ditandakan oleh akhbar teknologi arus perdana, menjelang kajian akademik berskala besar yang akan mengesahkan skop tersebut setahun kemudian.
2025: Pengukuran masalah yang teliti dan berskala besar yang pertama. Kertas “Kami Ada Pakej untuk Anda! Analisis Komprehensif Halusinasi Pakej oleh LLM Penjana Kod” (Spracklen et al., dibentangkan di Keselamatan USENIX Simposium) telah menguji 16 model penjanaan kod, kedua-duanya komersial (GPT-4, GPT-3.5) dan sumber terbuka (CodeLlama, DeepSeek, WizardCoder, Mistral), merentasi 576,000 sampel kod Python dan JavaScript. Penemuan ini menandakan titik yang jelas dalam evolusi slopsquatting, mengalihkannya daripada anekdot kepada data:
- 19.7% daripada pakej yang disyorkan oleh model tidak wujud.
- Model sumber terbuka berhalusinasi lebih kerap (21.7% secara purata) berbanding model komersial (5.2% ).
- Pesalah terburuk, CodeLlama 7B dan CodeLlama 34B, berhalusinasi dalam lebih daripada satu pertiga daripada output mereka.
- Merentasi semua model yang diuji, penyelidik telah mencatat 205,000 nama pakej halusinasi unik, sebuah kolam yang cukup besar untuk mencetuskan serangan slopsquatting yang berterusan merentasi pelbagai ekosistem.
- Satu butiran yang amat relevan untuk pencegahan: secara kasarnya 38% nama-nama halusinasi sangat menyerupai bungkusan sebenar, yang mengurangkan kemungkinan sesiapa sahaja dapat melihatnya sepintas lalu.
Satu butiran penting daripada kajian ini, dan mungkin sebab evolusi slopsquatting telah dipercepatkan dan bukannya hilang begitu sahaja, adalah kerana nama halusinasi tidak rawak, dan ia tidak berubah pada setiap percubaan. Model yang sama cenderung untuk mengulangi nama ciptaan yang sama apabila diberi gesaan yang serupa, yang bermaksud penyerang tidak perlu meneka. Mereka hanya perlu memerhatikan tingkah laku model, mengenal pasti nama yang terus berulang, dan mendaftarkannya sebelum pembangun sebenar melakukannya. Analisis susulan kebolehulangan ini mendapati bahawa apabila penyelidik menjalankan semula gesaan yang sama sepuluh kali setiap satu, 43% nama pakej halusinasi muncul pada setiap larian, dan 58% berulang lebih daripada sekali, bukti bahawa kebanyakan halusinasi adalah artifak yang boleh diulang dan bukannya bunyi sekali sahaja. Kebolehulangan itulah yang mengubah halusinasi sekali sahaja menjadi serangan slopsquatting yang boleh diskalakan.
2026: Daripada pakej terpencil kepada ejen autonomi. Tahun ini telah menghasilkan bukti paling jelas setakat ini bahawa perbuatan tidak terurus tidak lagi terhad kepada pembangun yang menyalin dan menampal cadangan pemasangan pip or npm memasang arahan. Pada Januari 2026, penyelidik Charlie Eriksen di Aikido Security mendapati bahawa ejen pengekodan AI telah pun menyebarkan arahan yang merujuk kepada pakej npm yang halusinasi, anjakan kod tindak balas (nama yang secara masuk akal menggabungkan dua alat sebenar, jscodeshift dan react-codemod), merentasi 237 repositori, dengan ejen masih cuba memasangnya setiap hari. Eriksen mendaftarkan nama itu sendiri, secara defensif, sebelum penyerang dapat menjadikannya senjata. Secara berasingan, pakej berniat jahat sebenar bernama import-tidak-digunakan, berhalusinasi sebagai ganti yang sah import-tidak-digunakan-plugin-eslint, masih merekodkan kira-kira 233 muat turun mingguan pada awal tahun 2026 walaupun npm meletakkannya di bawah sekatan keselamatan, satu tanda berapa lama serangan slopsquatting boleh terus menarik mangsa walaupun selepas ia ditandai. Baru-baru ini, pada Julai 2026, para penyelidik menerangkan teknik berkaitan, yang digelar "HalluSquatting," yang menghubungkan halusinasi AI dengan suntikan segera supaya ejen pengekod AI yang mengambil sumber halusinasi bagi pihak pengguna boleh dirampas untuk menjalankan kod yang dibekalkan oleh penyerang, melanjutkan evolusi slopsquatting daripada risiko pemasangan pasif kepada vektor pelaksanaan kod jauh aktif dalam aliran kerja pembangunan agentik.
Mengapa "pengekodan getaran" meluaskan permukaan untuk serangan slopsquatting
Serangan slopsquatting tidak akan begitu penting jika kod yang dijana AI merupakan amalan khusus. Ia tidak begitu penting. Kebangkitan pembantu pengekodan, ejen autonomi dan aliran kerja "pengekodan getaran", di mana pembangun semakin kurang menyemak kod sebelum menjalankannya, telah mengubah permukaan serangan perisian dalam dua cara yang konkrit, dan kedua-duanya mempercepatkan evolusi slopsquatting:
- Titik masuk bukan lagi sekadar pembangun. Serangan typosquatting dahulunya bergantung pada seorang individu yang melakukan kesilapan menaip. Kini kesilapan itu boleh berasal dari dalam model itu sendiri dan merebak kepada ratusan pembangun berbeza yang menanyakan soalan yang serupa dan mendapat cadangan halusinasi yang sama, mendarabkan jangkauan serangan slopsquatting tunggal.
- Permukaan serangan telah bergerak lebih jauh ke atas rantai. Ia tidak lagi mencukupi untuk memerhatikan kod yang ditulis oleh manusia. Pasukan juga perlu memerhatikan kebergantungan yang dicadangkan oleh pembantu AI, pelayan MCP yang disambungkannya dan ejen yang memasang pakej secara autonomi tanpa semakan manusia secara langsung. AppSec tradisional, dibina untuk menyemak repositori dan commits, tidak pernah direka untuk memerhatikan interaksi baharu ini antara pembangun, AI dan pendaftaran pakej, yang merupakan tempat serangan slopsquatting kini bersembunyi.
Semua ini tidak bermakna AI generatif secara semulajadinya tidak selamat. Ini bermakna ia memperkenalkan jenis risiko rantaian bekalan baharu yang tidak dibina untuk ditangkap oleh perkakasan keselamatan tradisional, dan yang memerlukan prinsip pengesahan yang sama yang telah kita gunakan untuk sebarang kebergantungan luaran: jangan percaya secara lalai, sahkan sumbernya dan automasikan pengesahan tersebut dan bukannya bergantung pada ingatan atau kewaspadaan setiap pembangun. Automasi itu adalah asas bagi sebarang strategi pencegahan kecuaian sebenar.
Pencegahan slopsquatting: apa yang boleh dilakukan oleh pasukan hari ini
Berita baiknya ialah pencegahan slopsquatting tidak memerlukan peralatan eksotik. Ia memerlukan amalan kebersihan kebergantungan yang sedia ada secara sistematik, tetapi banyak pasukan akan berehat sebaik sahaja AI yang mereka percayai "mencadangkan" kod tersebut. Pendekatan pencegahan slopsquatting yang berkesan biasanya menggabungkan perkara berikut:
- Sahkan secara manual mana-mana pakej baharu sebelum memasangnya, terutamanya apabila ia datang daripada cadangan pembantu AI. Sahkan ia wujud dalam daftar rasmi, siapa yang menyelenggaranya, bila ia diterbitkan dan sama ada bilangan muat turunnya kelihatan nyata. Tabiat tunggal ini merupakan bentuk pencegahan slopsquatting paling murah yang tersedia untuk mana-mana pasukan.
- Jangan sekali-kali menganggap kod yang dijana AI selamat secara lalai. Coretan kod yang "berfungsi" tidak bermakna kebergantungannya sah. Semakan kebergantungan harus menjadi sebahagian daripada semakan kod, bukan pengecualian kepadanya.
- Gunakan fail kunci dan pengesahan hash untuk menyematkan versi yang tepat dan menghentikan kemas kini senyap daripada bertukar dalam pakej yang berbeza daripada yang diaudit pada asalnya.
- Gunakan pengimbasan kebergantungan yang menandakan corak risiko di luar CVE yang diketahui: pakej anomali, nama yang mencurigakan serupa dengan yang sedia ada, penyelenggara baharu tanpa rekod prestasi atau skrip pemasangan dengan tingkah laku luar biasa. Pakej yang baru diterbitkan dengan hampir tiada sejarah yang meniru nama sesuatu yang "hampir" biasa adalah corak di sebalik kebanyakan serangan slopsquatting yang didokumenkan setakat ini.
- Layan pejabat pendaftaran awam dengan skeptis yang samacism seperti mana-mana sumber luaran lain yang tidak disahkan. Hakikat bahawa pemasangan pip or npm memasang tidak membuang ralat bukanlah bukti kesahihan.
- Melatih pasukan pembangunan berdasarkan fakta bahawa pengekodan berbantukan AI tidak menghapuskan tanggungjawab untuk mengesahkan apa yang dipasang; ia hanya menambah langkah yang perlu dibina ke dalam aliran kerja sebagai sebahagian daripada sebarang pelan pencegahan kecuaian yang serius.
Tiada satu pun daripada langkah-langkah ini yang baharu dengan sendirinya. Apa yang berubah ialah skalanya: apabila cadangan kebergantungan bukan lagi datang daripada Stack Overflow atau rakan sekerja, tetapi daripada model yang boleh mengulangi ralat halusinasi yang sama kepada beribu-ribu pembangun yang berbeza, pengesahan manual, walaupun masih perlu, tidak lagi mencukupi dengan sendirinya. Itulah sebabnya lebih banyak pasukan mengautomasikan lapisan pencegahan slopsquatting ini dalam pasukan mereka. Analisis Komposisi Perisian (SCA) perkakasan, daripada menyerahkannya kepada disiplin pembangun individu.
Ini adalah pracisely kenapa ASPM platform seperti Xygeni membina pengesanan kebergantungan yang mencurigakan, meliputi kesalahan taip, kekeliruan kebergantungan dan pakej berniat jahat yang diketahui, ke dalam analisis sumber terbuka dan kebergantungan AI yang sama pipeline, jadi pencegahan slopsquatting tidak bergantung pada setiap pembangun yang ingat untuk menyemaknya setiap kali pembantu AI mencadangkan kebergantungan baharu.
Soalan Lazim
Adakah serangan slopsquatting sama dengan serangan typosquatting?
Tidak sepenuhnya. Kedua-duanya melibatkan pendaftaran nama pakej palsu untuk memperdaya sesiapa sahaja yang memasangnya, tetapi punca ralatnya berbeza. Typosquatting mengeksploitasi kesilapan menaip manusia. Serangan slopsquatting mengeksploitasi nama pakej yang dicipta (dihalusinasi) oleh model AI, yang kemudiannya didaftarkan oleh penyerang sebelum ia wujud secara sah.
Bolehkah pengurus pakej menghalang serangan jenis ini secara automatik?
Tidak sepenuhnya, itulah sebabnya pencegahan slopsquatting tidak boleh berhenti di peringkat pengurus pakej. Jika penyerang mendaftarkan pakej halusinasi sebelum pembangun cuba memasangnya, pemasangan akan selesai tanpa sebarang ralat kerana pakej itu benar-benar wujud, walaupun ia berniat jahat. Pencegahan yang berkesan memerlukan pengesahan tambahan tentang asal usul dan tingkah laku pakej.
Adakah ini hanya menjejaskan model sumber terbuka?
Tidak. Kajian Spracklen et al. mendapati halusinasi merentasi setiap model yang diuji, termasuk model komersial, walaupun pada kadar yang jauh lebih rendah (5.2% berbanding 21.7% untuk model sumber terbuka yang dinilai). Tiada model yang bebas sepenuhnya daripada masalah ini, yang merupakan sebahagian daripada sebab evolusi slopsquatting seiring dengan pertumbuhan pengekodan berbantukan AI secara keseluruhan.
Adakah ini risiko teori, atau adakah ia telah dieksploitasi?
. memeluk-muka-cli Dalam kes ini, pakej kosong yang dimuat naik oleh seorang penyelidik yang telah dimuat turun lebih daripada 30,000 kali dalam tempoh tiga bulan tanpa sebarang promosi, menunjukkan risiko itu bukan sekadar teori: nama yang dikhayalkan hanya perlu cukup konsisten merentasi pelbagai gesaan untuk seseorang mengubahnya menjadi serangan cuai yang sebenar.




