პრობლემა ერთ წინადადებაში
შემდეგ ჯერზე ხელოვნური ინტელექტის ასისტენტი გირჩევთ ინსტალაციის პაკეტს, რეალურად აპირებთ თუ არა ამ პაკეტის არსებობის შემოწმებას? დეველოპერების უმეტესობას ეს არ გაუკეთებია. შეთავაზებასა და დადასტურებას შორის არსებული ეს ხარვეზი სწორედ ის ადგილია, სადაც იწყება slopsquatting-ის შეტევები და სწორედ ამიტომ გახდა slopsquatting-ის ევოლუციის და slopsquatting-ის პრაქტიკული პრევენციის გაგება ნამდვილ პრიორიტეტად AppSec და DevSecOps გუნდებისთვის.
რა არის სლოპსკუატინგი?
უსაქმურობის დროს ჩაჯდომის შეტევა მისი ერთ-ერთი ვარიანტია. ტიპოსქვატირება (დომენის ან პაკეტის სახელის რეგისტრაციის პრაქტიკა, რომელიც ლეგიტიმურს ბაძავს გავრცელებული ორთოგრაფიული შეცდომის გამო, მაგალითად მოთხოვნები ნაცვლად მოითხოვს(იმედია, მომხმარებლის მიერ დაშვებული შეცდომა პირდაპირ საქმეზე მიუთითებს), თუმცა მნიშვნელოვანი განსხვავებით, თუ საიდან წარმოიშვა შეცდომა. Typosquatting იყენებს ადამიანის მიერ დაშვებულ აკრეფის შეცდომებს. slopsquatting-ის შეტევა იყენებს დიდი ენობრივი მოდელების მიერ დაშვებულ შეცდომებს: LLM „ჰალუცინაციას უკეთებს“ პაკეტის სახელს, რომელიც სრულიად ლეგიტიმურად ჟღერს, მაგრამ არ არსებობს არცერთ საჯარო რეესტრში და თავდამსხმელი იქამდე პირველი აღწევს, თუ ამ სახელს რეგისტრირდება, სანამ ვინმე კეთილი განზრახვით ამას გააკეთებს.
ტიპური slopsquatting შეტევის მექანიზმი მარტივია და სწორედ ეს სიმარტივე ხდის მას ეფექტურს:
- დეველოპერი ხელოვნური ინტელექტის ასისტენტს კოდირების პრობლემის გადაჭრაში დახმარებას სთხოვს.
- მოდელი ქმნის გადაწყვეტას, რომელიც იმპორტირებს ან გირჩევთ ისეთი პაკეტის ინსტალაციას, რომელიც არასდროს არსებობდა.
- თავდამსხმელი, რომელმაც შენიშნა, რომ რამდენიმე მოდელი ერთი და იგივე ჰალუცინირებულ სახელს იმეორებს, ამ პაკეტს npm-ზე, PyPI-ზე ან სხვა საჯარო რეესტრში არეგისტრირებს, შიგნით არსებული მავნე კოდით. სწორედ ამ მომენტში ხდება ჰალუცინაცია ნამდვილ slopsquatting შეტევად.
- შემდეგი დეველოპერი, რომელიც იგივე შეთავაზებას მიიღებს და არ ამოწმებს მას, აყენებს ახლა უკვე რეალურ პაკეტს, რომელიც მათ გარემოში შესასვლელი უკანა კარია.
ტერმინი „slopsquatting“ შემოიღო სეთ ლარსონმა, Python Software Foundation-ის რეზიდენტმა უსაფრთხოების დეველოპერმა და პოპულარული გახადა ენდრიუ ნესბიტმა, რათა ზუსტად ამ ნიმუში აღეწერა: „პაკეტის ჰალუცინაცია“ შეტევის ვექტორად გადაიქცა.
უსაქმურობის ევოლუცია: როგორ გადაიქცა კვლევითი ცნობისმოყვარეობა რეალურ საფრთხედ
სლოპსჩატინგის ევოლუციაში აღსანიშნავი არა მხოლოდ კონცეფციაა; არამედ ის, თუ რამდენად სწრაფად გადაიქცა ის კვლევითი დაკვირვებიდან შეტევის დოკუმენტირებულ, გაზომვად კლასად.
2023: პირველი გამაფრთხილებელი ნიშანი. უსაფრთხოების მკვლევარი ბარ ლანიადო შენიშნა, რომ რამდენიმე სამართლის მაგისტრმა განმეორებით ურჩია პაკეტი, სახელწოდებით ჩახუტება სახეზე - კლი, რომელიც არ არსებობს (რეალური პაკეტი დაინსტალირებულია pip install -U „huggingface_hub[cli]“რისკის დემონსტრირებისთვის, მან ამ პაკეტის ცარიელი ვერსია საჯარო რეესტრში ატვირთა. სამ თვეში მან 30 000-ზე მეტი ჩამოტვირთვა მიიღო, არანაირი პოპულარიზაციის გარეშე. ჰალუცინირებული სახელი Alibaba-ს კვლევასთან დაკავშირებული საცავის README-შიც კი გამოჩნდა, რამაც თავიდანვე აჩვენა, თუ როგორ შეიძლებოდა ამ „ყალბ“ სახელებს რეალურ დოკუმენტაციაში გაჟონვა და შემდგომი უსაქმურობის შეტევებისთვის ნიადაგის მომზადება.
2024: რისკი მკვლევრის ბლოგპოსტიდან მეინსტრიმულ ტექნოლოგიურ გაშუქებაზე გადადის. მარტში, რეგისტრაცია იტყობინებოდა, თუ როგორ იგონებდნენ ხელოვნური ინტელექტის მოდელები თავდაჯერებულად პროგრამული პაკეტების სახელებს, რომლებსაც დეველოპერები შემდეგ იტვირთავდნენ, რომელთაგან ზოგიერთი პოტენციურად მავნე პროგრამით იყო მოწამლული. ამ გაშუქებას ნაკლები მნიშვნელობა ჰქონდა იმის გამო, თუ რას ავლენდა ის ტექნიკურად და უფრო მეტად იმის გამო, თუ რას ნიშნავდა: huggingface-cli-ის შემთხვევა აღარ იყო ერთჯერადი ცნობისმოყვარეობა; ეს იყო პირველი ნიშანი იმ სერიოზული ტენდენციისა, რომელიც მეინსტრიმულმა ტექნოლოგიურმა პრესამ უნდა შეემჩნია, მასშტაბური აკადემიური კვლევის წინ, რომელიც ერთი წლის შემდეგ დაადასტურებდა მის მასშტაბებს.
2025: პრობლემის პირველი ზუსტი, მასშტაბური გაზომვა. ქაღალდი „ჩვენ გვაქვს თქვენთვის პაკეტი! კოდის გენერირების სამართლის მაგისტრების მიერ პაკეტური ჰალუცინაციების ყოვლისმომცველი ანალიზი“ (Spracklen et al., წარმოდგენილი USENIX-ის უსაფრთხოება სიმპოზიუმმა) კოდის გენერირების 16 მოდელი გამოსცადა, როგორც კომერციული (GPT-4, GPT-3.5), ასევე ღია კოდის (CodeLlama, DeepSeek, WizardCoder, Mistral), Python-ისა და JavaScript-ის 576,000 კოდის ნიმუშზე. დასკვნები ნათელ წერტილს აღნიშნავს slopsquatting-ის ევოლუციაში, რაც მას ანეკდოტიდან მონაცემებზე გადაჰყავს:
- 19.7% მოდელების მიერ რეკომენდებული პაკეტებიდან არცერთი არ არსებობდა.
- ღია კოდის მოდელები გაცილებით ხშირად იწვევდნენ ჰალუცინაციებს (21.7% საშუალოდ) კომერციულ მოდელებთან შედარებით (5.2%).
- ყველაზე უარესი დამნაშავეები, CodeLlama 7B და CodeLlama 34B, ჰალუცინაციებით გამოწვეულ შემთხვევათა მესამედზე მეტში ხასიათდებოდნენ.
- ყველა გამოცდილ მოდელზე, მკვლევარებმა დარეგისტრირდნენ 205,000 უნიკალური ჰალუცინირებული პაკეტის სახელი, საკმარისად დიდი აუზი, რათა მრავალ ეკოსისტემაში მდგრადი, უსახსრო ტერიტორიების ჩაკვეტის შეტევები განახორციელოს.
- ერთი დეტალი განსაკუთრებით აქტუალურია პრევენციისთვის: დაახლოებით 38% ჰალუცინირებული სახელების უმეტესობა ძალიან ჰგავდა ნამდვილ შეფუთვებს, რაც ამცირებს მათი ერთი შეხედვით შეცნობის ალბათობას.
კვლევის ერთ-ერთი კრიტიკული დეტალი და, სავარაუდოდ, მიზეზი, რის გამოც „slopsquatting“-ის ევოლუცია დაჩქარდა და არა გაქრა, არის ის, რომ ჰალუცინაციებით დაჯდომის ევოლუცია შემთხვევითი არ არის და ისინი ყოველი ცდისას არ იცვლება. ერთი და იგივე მოდელები, როგორც წესი, იმეორებენ ერთსა და იმავე გამოგონილ სახელებს, როდესაც მათ მსგავსი მოთხოვნები ეძლევათ, რაც ნიშნავს, რომ თავდამსხმელს არ სჭირდება გამოცნობა. მათ უბრალოდ უნდა დააკვირდნენ მოდელის ქცევას, ამოიცნონ ის სახელები, რომლებიც მუდმივად მეორდება და დაარეგისტრირონ ისინი, სანამ რეალური დეველოპერი ამას გააკეთებს. ამ განმეორებადობის შემდგომი ანალიზით დადგინდა, რომ როდესაც მკვლევარებმა იდენტური მოთხოვნები ათ-ათჯერ გაიმეორეს, ჰალუცინაციებით დაჯდომის მქონე პაკეტის სახელების 43% ყოველ ჯერზე გამოჩნდა, ხოლო 58% ერთზე მეტჯერ განმეორდა, რაც იმაზე მიუთითებს, რომ ჰალუცინაციების უმეტესობა განმეორებადი არტეფაქტებია და არა ერთჯერადი ხმაური. სწორედ ეს განმეორებადობა აქცევს ერთჯერად ჰალუცინაციას მასშტაბირებად „slopsquatting“ შეტევად.
2026: იზოლირებული პაკეტებიდან ავტონომიურ აგენტებამდე. ამ წელს ყველაზე ნათელი მტკიცებულება გამოჩნდა, რომ უსაქმურობის ჩაკვატინგი აღარ შემოიფარგლება მხოლოდ დეველოპერის მიერ შემოთავაზებული ნივთის კოპირებით. პიპის დაყენება or npm ინსტალაცია ბრძანება. 2026 წლის იანვარში, მკვლევარმა ჩარლი ერიქსენი Aikido Security-ში აღმოაჩინეს, რომ ხელოვნური ინტელექტის კოდირების აგენტებმა უკვე გაავრცელეს ინსტრუქციები, რომლებიც ჰალუცინირებულ npm პაკეტს ეხებოდა. რეაქციის კოდის შეცვლა (სახელი, რომელიც დამაჯერებლად აერთიანებს ორ რეალურ ინსტრუმენტს, jscodeshift მდე react-codemod), 237 საცავში, აგენტები კი ყოველდღიურად ცდილობენ მის ინსტალაციას. ერიქსენმა სახელი თავად დაარეგისტრირა თავდაცვითი მიზნით, სანამ თავდამსხმელი მის იარაღად გამოყენებას შეძლებდა. ცალკე, რეალური მავნე პაკეტი სახელწოდებით გამოუყენებელი იმპორტი, ლეგიტიმური ჰალუცინაციების ნაცვლად eslint-plugin-unused-imports, 2026 წლის დასაწყისში დაახლოებით 233 ყოველკვირეული ჩამოტვირთვა დაფიქსირდა, მიუხედავად იმისა, რომ npm-მა ის უსაფრთხოების შეზღუდვის ქვეშ დააყენა, რაც იმის ნიშანია, თუ რამდენ ხანს შეიძლება slopsquatting შეტევამ მსხვერპლი მიიზიდოს მისი მონიშვნის შემდეგაც კი. უფრო ახლახანს, 2026 წლის ივლისში, მკვლევარებმა აღწერეს მსგავსი ტექნიკა, სახელწოდებით „HalluSquatting“, რომელიც ხელოვნური ინტელექტის ჰალუცინაციას სწრაფ ინექციასთან აკავშირებს ისე, რომ ხელოვნური ინტელექტის კოდირების აგენტი, რომელიც მომხმარებლის სახელით ჰალუცინირებულ რესურსს იღებს, შეიძლება გამოყენებული იქნას თავდამსხმელის მიერ მოწოდებული კოდის გასაშვებად, რითაც slopsquatting-ის ევოლუცია პასიური ინსტალაციის რისკიდან აქტიურ დისტანციურ კოდის შესრულების ვექტორად იშლება აგენტური შემუშავების სამუშაო პროცესებში.
რატომ გააფართოვა „ვიბრაციული კოდირებამ“ ზედაპირი უსაქმურობის შეტევებისთვის
ხელოვნური ინტელექტის მიერ გენერირებული კოდის ნიშური პრაქტიკა რომ ყოფილიყო, ეს ასე არ არის. კოდირების ასისტენტების, ავტონომიური აგენტებისა და „ვიბრაციული კოდირების“ სამუშაო პროცესების ზრდამ, სადაც დეველოპერები კოდის გაშვებამდე სულ უფრო ნაკლებად ამოწმებენ მას, პროგრამული უზრუნველყოფის შეტევის ზედაპირი ორი კონკრეტული გზით შეცვალა და ორივე მათგანი აჩქარებს სლოპსკუატინგინგის ევოლუციას:
- შესვლის წერტილი აღარ არის მხოლოდ დეველოპერი. ტიპოსკუატინგი ადრე დამოკიდებული იყო ერთი ადამიანის მიერ აკრეფის შეცდომაზე. ახლა შეცდომა შეიძლება წარმოიშვას თავად მოდელის შიგნით და გავრცელდეს ასობით სხვადასხვა დეველოპერზე, რომლებიც სვამენ მსგავს კითხვებს და იღებენ ერთსა და იმავე ჰალუცინაციურ რეკომენდაციას, რაც ამრავლებს ერთი slopsquotting შეტევის მასშტაბს.
- შეტევის ზედაპირი ჯაჭვში უფრო მაღლა გადაინაცვლა. აღარ არის საკმარისი მხოლოდ ადამიანის მიერ დაწერილი კოდის ყურება. გუნდებს ასევე სჭირდებათ ხელოვნური ინტელექტის ასისტენტის მიერ შემოთავაზებული დამოკიდებულებების, მის მიერ დაკავშირებული MCP სერვერების და აგენტების ყურება, რომლებიც პაკეტებს ავტონომიურად აინსტალირებენ ადამიანის მიერ პირდაპირი შემოწმების გარეშე. ტრადიციული AppSec, შექმნილია საცავების და ადამიანის მიერ დაწერილი კოდების შესამოწმებლად. commits, არასდროს ყოფილა შექმნილი დეველოპერს, ხელოვნურ ინტელექტსა და პაკეტების რეესტრს შორის ამ ახალი ურთიერთქმედების დასაკვირვებლად, სადაც ზუსტად ის ადგილია, სადაც ახლა slopsquatting-ის შეტევები იმალება.
ეს ყველაფერი არ ნიშნავს, რომ გენერაციული ხელოვნური ინტელექტი თავისთავად დაუცველია. ეს ნიშნავს, რომ ის ნერგავს მიწოდების ჯაჭვის ახალ ტიპის რისკს, რომლის აღმოსაჩენადაც ტრადიციული უსაფრთხოების ინსტრუმენტები არ იყო შექმნილი და რომელიც მოითხოვს იმავე ვერიფიკაციის პრინციპებს, რომლებსაც ჩვენ უკვე ვიყენებთ ნებისმიერი გარე დამოკიდებულებისთვის: ნუ ენდობით ნაგულისხმევად, გადაამოწმეთ წყარო და ავტომატიზირეთ ეს ვერიფიკაცია, იმის ნაცვლად, რომ დაეყრდნოთ ყველა დეველოპერის მეხსიერებას ან სიფხიზლეს. ეს ავტომატიზაცია ნებისმიერი რეალური უყურადღებობის ჩაძირვის პრევენციის სტრატეგიის საფუძველია.
ჩაჯდომების პრევენცია: რა შეუძლიათ გუნდებს დღეს გააკეთონ
კარგი ამბავი ის არის, რომ უსაქმურობის პრევენცია არ საჭიროებს ეგზოტიკურ ინსტრუმენტებს. ის მოითხოვს დამოკიდებულების ჰიგიენის პრაქტიკის სისტემატურ გამოყენებას, რომელიც უკვე არსებობს, მაგრამ ბევრი გუნდი ნელდება იმ მომენტში, როდესაც ხელოვნური ინტელექტი, რომელსაც ენდობა, კოდს „შესთავაზებს“. უსაქმურობის პრევენციის ეფექტური მიდგომა, როგორც წესი, აერთიანებს შემდეგს:
- ინსტალაციამდე ხელით გადაამოწმეთ ნებისმიერი ახალი პაკეტი, განსაკუთრებით მაშინ, როდესაც ეს ხელოვნური ინტელექტის ასისტენტის შეთავაზებიდან მოდის. დაადასტურეთ, რომ ის ოფიციალურ რეესტრში არსებობს, ვინ ინახავს მას, როდის გამოქვეყნდა და რეალურია თუ არა მისი ჩამოტვირთვების რიცხვები. ეს ერთი ჩვევა ნებისმიერი გუნდისთვის ხელმისაწვდომი უსაქმურობის პრევენციის ყველაზე იაფი ფორმაა.
- არასოდეს იფიქროთ, რომ ხელოვნური ინტელექტის მიერ გენერირებული კოდი სტანდარტულად უსაფრთხოა. კოდის სნიპეტი, რომელიც „მუშაობს“, არ ნიშნავს, რომ მისი დამოკიდებულებები ლეგიტიმურია. დამოკიდებულებების მიმოხილვა კოდის მიმოხილვის ნაწილი უნდა იყოს და არა გამონაკლისი.
- გამოიყენეთ დაბლოკვის ფაილები და ჰეშის ვერიფიკაცია ზუსტი ვერსიების დასაფიქსირებლად და ჩუმი განახლების თავიდან ასაცილებლად იმ პაკეტში, რომელიც თავდაპირველად აუდიტირებული იყო, სხვაგან გადასვლისგან.
- დამოკიდებულების სკანირების დანერგვა, რომელიც ცნობილ CVE-ებს მიღმა რისკის ნიმუშებს აღნიშნავს: ანომალიური პაკეტები, არსებულის საეჭვოდ მსგავსი სახელები, ახალი შემნახველები, რომლებსაც არ აქვთ გამოცდილება ან ინსტალაციის სკრიპტები უჩვეულო ქცევით. ახლად გამოქვეყნებული პაკეტი, რომელსაც თითქმის არ აქვს ისტორია და რომელიც ძალიან ჰგავს რაღაც „თითქმის“ ნაცნობის სახელს, ზუსტად ის ნიმუშია, რომელიც დღემდე დოკუმენტირებული slopsquatting შეტევების უმეტესობას ახასიათებს.
- საჯარო რეესტრებს იგივე სკეპტიციზმით მოეპყარითcism, როგორც ნებისმიერი სხვა დაუდასტურებელი გარე წყარო. ის ფაქტი, რომ პიპის დაყენება or npm ინსტალაცია შეცდომას არ უშვებს, ლეგიტიმურობის დასტური არ არის.
- განვითარების გუნდების მომზადება იმ ფაქტზე, რომ ხელოვნური ინტელექტით დახმარებული კოდირება არ ათავისუფლებს ინსტალირებული ინფორმაციის გადამოწმების პასუხისმგებლობას; ის უბრალოდ ამატებს ნაბიჯს, რომელიც სამუშაო პროცესში უნდა იყოს ინტეგრირებული, როგორც ნებისმიერი სერიოზული უყურადღებო ჩასახლების პრევენციის გეგმის ნაწილი.
არცერთი ეს ღონისძიება თავისთავად ახალი არ არის. შეიცვალა მასშტაბი: როდესაც დამოკიდებულების შესახებ წინადადება აღარ მოდის Stack Overflow-დან ან კოლეგიდან, არამედ მოდელიდან, რომელსაც შეუძლია იგივე ჰალუცინირებული შეცდომის გამეორება ათასობით სხვადასხვა დეველოპერისთვის, ხელით ვერიფიკაცია, მიუხედავად იმისა, რომ აუცილებელია, თავისთავად აღარ არის საკმარისი. სწორედ ამიტომ, უფრო მეტი გუნდი ავტომატიზირებს უყურადღებობის პრევენციის ამ ფენას საკუთარ თავში. პროგრამული უზრუნველყოფის შემადგენლობის ანალიზი (SCA) ხელსაწყოები, იმის ნაცვლად, რომ ეს ინდივიდუალური დეველოპერის დისციპლინას მიენდოს.
ეს წინასწარ არისcisელი რატომ ASPM პლატფორმების ისევე როგორც ქსიგენი საეჭვო დამოკიდებულების აღმოჩენის ინტეგრირება, რომელიც მოიცავს ტიპოსკუატინგი, დამოკიდებულების დაბნეულობა და ცნობილი მავნე პაკეტები, იმავე ღია კოდისა და ხელოვნური ინტელექტის დამოკიდებულების ანალიზში. pipeline, ამგვარად, slopsquatting-ის პრევენცია არ არის დამოკიდებული იმაზე, რომ ყველა დეველოპერმა უნდა გაიხსენოს მისი შემოწმება ყოველ ჯერზე, როდესაც ხელოვნური ინტელექტის ასისტენტი ახალ დამოკიდებულებას შემოგვთავაზებს.
კითხვა-პასუხი
უყურადღებობის დარღვევის შეტევა იგივეა, რაც ტიპოსკუოტინგი?
არა ზუსტად. ორივე შემთხვევაში, პაკეტის სახელის რეგისტრაცია ყალბია, რათა მოატყუონ მისი ინსტალირებადი პირი, თუმცა შეცდომის წყარო განსხვავებულია. Typosquatting იყენებს ადამიანის მიერ დაშვებულ აკრეფის შეცდომებს. slopsquatting შეტევა იყენებს ხელოვნური ინტელექტის მოდელების მიერ გამოგონილ (ჰალუცინირებულ) პაკეტების სახელებს, რომლებსაც თავდამსხმელი შემდეგ არეგისტრირებს მანამ, სანამ ისინი ლეგიტიმურად იარსებებენ.
შეუძლია თუ არა პაკეტების მენეჯერს ავტომატურად თავიდან აიცილოს ამ ტიპის შეტევა?
არა სრულად, სწორედ ამიტომ, slopsquatting-ის პრევენცია ვერ შეჩერდება პაკეტის მენეჯერის დონეზე. თუ თავდამსხმელი ჰალუცინირებულ პაკეტს დაარეგისტრირებს მანამ, სანამ დეველოპერი შეეცდება მის ინსტალაციას, ინსტალაცია დასრულდება ყოველგვარი შეცდომის გარეშე, რადგან პაკეტი ნამდვილად არსებობს, მიუხედავად იმისა, რომ ის მავნეა. ეფექტური პრევენცია მოითხოვს პაკეტის წარმოშობისა და ქცევის დამატებით გადამოწმებას.
ეს მხოლოდ ღია კოდის მოდელებზე მოქმედებს?
არა. სპრეკლენის და სხვების კვლევამ ჰალუცინაციები აღმოაჩინა ყველა შემოწმებულ მოდელში, მათ შორის კომერციულ მოდელებშიც, თუმცა მნიშვნელოვნად დაბალი მაჩვენებლით (5.2% შეფასებული ღია კოდის მოდელების 21.7%-ის წინააღმდეგ). არცერთი მოდელი არ არის სრულიად თავისუფალი ამ პრობლემისგან, რაც ნაწილობრივ იმის მიზეზია, თუ რატომ შეესაბამება „slopsquatting“-ის ევოლუცია ხელოვნური ინტელექტით დახმარებული კოდირების ზრდას.
ეს თეორიული რისკია თუ უკვე გამოყენებულია?
ის ჩახუტება სახეზე - კლი შემთხვევა, მკვლევრის მიერ ატვირთული ცარიელი პაკეტი, რომელიც სამ თვეში 30 000-ზე მეტჯერ გადმოიტვირთა ყოველგვარი პოპულარიზაციის გარეშე, აჩვენებს, რომ რისკი მხოლოდ თეორიული არ არის: ჰალუცინირებული სახელი მხოლოდ საკმარისად თანმიმდევრული უნდა იყოს სხვადასხვა მოთხოვნაში, რათა ვინმემ ის ნამდვილ უსაქმურობის შეტევად აქციოს.




