ربات های هوش مصنوعی بسته های نرم افزاری را دچار توهم می کنند و توسعه دهندگان آن ها را دانلود می کنند

ربات های هوش مصنوعی بسته های نرم افزاری را دچار توهم می کنند و توسعه دهندگان آن ها را دانلود می کنند

ربات‌های هوش مصنوعی بسته‌های نرم‌افزاری را توهم می‌زنند و توسعه‌دهندگان آن‌ها را با فناوری اطلاعات پلاتوبلاک چین دانلود می‌کنند. جستجوی عمودی Ai.

در عمق چندین کسب و کار بزرگ کد منبعی را منتشر کرده اند که شامل یک بسته نرم افزاری است که قبلاً توسط هوش مصنوعی مولد توهم زده شده بود.

نه تنها این، بلکه کسی، داشتن این را دید متوجه شدیم که توهم تکرار شده، این وابستگی ساختگی را به یک وابستگی واقعی تبدیل کرده بود، که متعاقباً هزاران بار توسط توسعه دهندگان در نتیجه توصیه های بد هوش مصنوعی دانلود و نصب شد. اگر بسته با بدافزار واقعی همراه بود، به جای اینکه یک آزمایش خوش خیم باشد، نتایج می توانست فاجعه بار باشد.

به گفته بار لانیادو، محقق امنیتی در Lasso Security، یکی از کسب‌وکارهایی که توسط هوش مصنوعی فریب خورده و این بسته را به کار می‌گیرند، علی‌بابا است که در زمان نگارش این بسته همچنان شامل یک بسته است. pip فرمان برای دانلود بسته پایتون huggingface-cli در آن GraphTranslator دستورالعمل نصب و راه اندازی.

قانونی وجود دارد در آغوش گرفتن صورت-cli، نصب شده با استفاده از pip install -U "huggingface_hub[cli]".

اما huggingface-cli از طریق فهرست بسته پایتون (PyPI) توزیع شده و توسط GraphTranslator Alibaba مورد نیاز است - نصب شده با استفاده از pip install huggingface-cli - جعلی است، توسط هوش مصنوعی تصور شده و توسط Lanyado به عنوان یک آزمایش واقعی شده است.

او ساخت huggingface-cli در ماه دسامبر پس از مشاهده مکرر توهم توسط هوش مصنوعی مولد. در فوریه امسال، علی بابا در دستورالعمل های README GraphTranslator به جای ابزار واقعی Hugging Face CLI به آن اشاره می کرد.

مهاجرت تحصیلی

Lanyado این کار را انجام داد تا بررسی کند که آیا این نوع بسته‌های نرم‌افزاری توهم - نام بسته‌هایی که توسط مدل‌های هوش مصنوعی ابداع شده‌اند، احتمالاً در طول توسعه پروژه - در طول زمان باقی می‌مانند و آزمایش کند که آیا می‌توان نام بسته‌های اختراعی را انتخاب کرد و برای توزیع کدهای مخرب با نوشتن واقعی استفاده کرد. بسته هایی که از نام کدهای رویای هوش مصنوعی استفاده می کنند.

ایده اینجا این است که شخص بدجنس می‌تواند از مدل‌ها برای مشاوره کد بخواهد، بسته‌های تصوری را که سیستم‌های هوش مصنوعی به طور مکرر توصیه می‌کنند یادداشت کند، و سپس آن وابستگی‌ها را پیاده‌سازی کند تا برنامه‌نویسان دیگر، زمانی که از مدل‌های مشابه استفاده می‌کنند و پیشنهادات یکسانی دریافت می‌کنند، در نهایت به دنبال آن باشند. آن کتابخانه هایی که ممکن است با بدافزار مسموم شوند.

سال گذشته، از طریق شرکت امنیتی Vulcan Cyber، Lanyado منتشر شده تحقیق در مورد چگونگی طرح سوال کدنویسی برای یک مدل هوش مصنوعی مانند ChatGPT و دریافت پاسخی که استفاده از کتابخانه، بسته یا چارچوب نرم افزاری را توصیه می کند که وجود ندارد.

لانیادو توضیح داد: «وقتی یک مهاجم چنین کمپینی را اجرا می‌کند، از مدل پکیج‌هایی می‌خواهد که مشکل کدنویسی را حل کند، سپس بسته‌هایی را دریافت می‌کند که وجود ندارند.» ثبت نام. او بسته‌های مخرب را با همین نام‌ها در رجیستری‌های مربوطه آپلود می‌کند و از آن نقطه به بعد، تنها کاری که باید انجام دهد این است که منتظر بماند تا مردم بسته‌ها را دانلود کنند.»

فرضیات خطرناک

تمایل مدل های هوش مصنوعی به اعتماد به نفس استناد به پرونده های قضایی غیر موجود اکنون به خوبی شناخته شده است و باعث خجالت و خجالت وکلای ناآگاه از این گرایش شده است. و همانطور که مشخص است، مدل‌های هوش مصنوعی مولد همین کار را برای بسته‌های نرم‌افزاری انجام خواهند داد.

همانطور که لانیادو قبلاً اشاره کرد، ممکن است یک متخلف از یک نام اختراع شده با هوش مصنوعی برای بسته مخربی که در برخی از مخزن ها آپلود شده است استفاده کند، به این امید که دیگران این بدافزار را دانلود کنند. اما برای اینکه این یک بردار حمله معنادار باشد، مدل‌های هوش مصنوعی باید بارها نام انتخاب شده را توصیه کنند.

این همان چیزی است که لانیادو قصد آزمایش آن را داشت. او با هزاران سوال «چگونگی»، چهار مدل هوش مصنوعی (GPT-3.5-Turbo، GPT-4، Gemini Pro با نام مستعار Bard، و Command [Cohere]) را در مورد چالش های برنامه نویسی در پنج زبان برنامه نویسی/زمان اجرا (پایتون، Node.js، Go، .Net و Ruby) که هر کدام سیستم بسته بندی خاص خود را دارند.

به نظر می رسد بخشی از نام هایی که این چت بات ها از هوا بیرون می کشند، ثابت هستند، برخی در مدل های مختلف. و پشتکار - تکرار نام جعلی - کلید تبدیل هوس هوش مصنوعی به یک حمله کاربردی است. مهاجم به مدل هوش مصنوعی نیاز دارد تا نام بسته‌های توهم‌آمیز را در پاسخ‌های خود به کاربران برای بدافزار ایجاد شده تحت این نام‌ها برای جستجو و دانلود تکرار کند.

لانیادو 20 سوال را به طور تصادفی برای توهمات صفر شات انتخاب کرد و آنها را 100 بار برای هر مدل مطرح کرد. هدف او ارزیابی این بود که هر چند وقت یکبار نام بسته توهم ثابت باقی می ماند. نتایج آزمایش او نشان می‌دهد که نام‌ها اغلب به اندازه‌ای پایدار هستند که این یک بردار حمله عملکردی باشد، البته نه همیشه، و در برخی از اکوسیستم‌های بسته‌بندی بیشتر از دیگران است.

به گفته لانیادو، با GPT-4، 24.2 درصد از پاسخ‌های سؤالات بسته‌های توهم‌آمیز تولید می‌کردند که از این تعداد 19.6 درصد تکراری بودند. یک جدول ارائه شده به ثبت نام، در زیر، تفکیک دقیق تری از پاسخ های GPT-4 را نشان می دهد.

  پــایتــون Node.JS یاقوت دات نت Go
کل سوالات 21340 13065 4544 5141 3713
سوالات با حداقل یک بسته توهم 5347 (25٪) 2524 (19.3٪) 1072 (23.5٪) 1476 (28.7%) 1093 قابل بهره برداری (21.2%) 1150 (30.9%) 109 قابل بهره برداری (2.9%)
توهمات در شات صفر 1042 (4.8٪) 200 (1.5٪) 169 (3.7٪) 211 (4.1%) 130 قابل بهره برداری (2.5%) 225 (6%) 14 قابل بهره برداری (0.3%)
توهم در شات دوم 4532 (21٪) 2390 (18.3٪) 960 (21.1٪) 1334 (25.9%) 1006 قابل بهره برداری (19.5%) 974 (26.2%) 98 قابل بهره برداری (2.6%)
تکرار در شات صفر ٪۱۰۰ ٪۱۰۰ ٪۱۰۰ ٪۱۰۰ -

با GPT-3.5، 22.2 درصد از پاسخ های سؤالات توهم ایجاد کردند، با 13.6 درصد تکرار. برای جمینی، 64.5 سوال نام های اختراعی را به همراه داشت که حدود 14 درصد از آنها تکرار می شد. و برای کوهر، 29.1 درصد توهم، 24.2 درصد تکرار بود.

با این حال، اکوسیستم‌های بسته‌بندی در Go و Net به گونه‌ای ساخته شده‌اند که با ممانعت از دسترسی مهاجمان به مسیرها و نام‌های خاص، پتانسیل بهره‌برداری را محدود می‌کند.

لانیادو توضیح می‌دهد: «در Go و .Net بسته‌های توهم‌آمیز دریافت کردیم، اما بسیاری از آنها نمی‌توانستند برای حمله استفاده شوند (در Go، اعداد بسیار مهم‌تر از .Net بودند)، هر زبان به دلایل خاص خود. ثبت نام. در پایتون و npm اینطور نیست، زیرا مدل به ما پکیج‌هایی را توصیه می‌کند که وجود ندارند و هیچ چیز مانع از آپلود بسته‌هایی با این نام‌ها نمی‌شود، بنابراین قطعاً اجرای این نوع حمله به زبان‌هایی مانند Python و Node.js."

ایجاد بدافزار PoC

Lanyado این نکته را با توزیع بدافزار اثبات مفهوم - مجموعه ای بی ضرر از فایل ها در اکوسیستم پایتون - بیان کرد. بر اساس توصیه ChatGPT برای اجرا pip install huggingface-cli، او یک بسته خالی با همین نام در PyPI بارگذاری کرد - موردی که در بالا ذکر شد - و یک بسته ساختگی به نام ایجاد کرد. blabladsa123 برای کمک به جدا کردن اسکن رجیستری بسته از تلاش های واقعی برای دانلود.

او مدعی است که نتیجه این است huggingface-cli بیش از 15,000 بارگیری معتبر در سه ماهه ای که در دسترس بوده است دریافت کرده است.

لانیادو گفت: «علاوه بر این، ما جستجویی در GitHub انجام دادیم تا مشخص کنیم که آیا این بسته در مخازن شرکت‌های دیگر استفاده شده است یا خیر. نوشتن برای آزمایشش

«یافته‌های ما نشان داد که چندین شرکت بزرگ یا از این بسته در مخازن خود استفاده می‌کنند یا توصیه می‌کنند. برای مثال، دستورالعمل‌های نصب این بسته را می‌توان در README یک مخزن اختصاص داده شده به تحقیقات انجام شده توسط علی‌بابا پیدا کرد.

علی بابا به درخواست اظهار نظر پاسخ نداد.

لانیادو همچنین گفت که پروژه ای متعلق به Hugging Face وجود داشت که شامل huggingface-cli جعلی بود، اما حذف شد بعد از اینکه به بیز هشدار داد.

حداقل تا کنون، این تکنیک در یک حمله واقعی که لانیادو از آن آگاه است استفاده نشده است.

او گفت: «علاوه بر بسته توهم‌آمیز ما (بسته ما مخرب نیست، فقط نمونه‌ای از این است که استفاده از این تکنیک چقدر آسان و خطرناک است)، من هنوز نتوانسته‌ام سوءاستفاده‌ای از این تکنیک حمله توسط عوامل مخرب را شناسایی کنم. توجه به این نکته مهم است که شناسایی چنین حمله ای پیچیده است، زیرا ردپای زیادی از خود به جا نمی گذارد. ®

تمبر زمان:

بیشتر از ثبت نام