انحصاری مدلهای یادگیری ماشینی غیرقابل اعتماد هستند، اما این مانع از مفید بودن آنها نمیشود.
چندین ماه پیش، Socket که یک اسکنر امنیتی فریمیوم برای پروژههای جاوا اسکریپت و پایتون میسازد، مدل ChatGPT OpenAI (و اخیراً مدل GPT-4 آن) را به فید تهدید داخلی خود متصل کرد.
به گفته مدیر عامل، فروس ابوخدیجه، نتایج به طرز شگفت انگیزی خوب بود. او گفت: «این خیلی بهتر از حد انتظار عمل کرد ثبت نام در یک ایمیل اکنون من روی چند صد آسیبپذیری و بستههای بدافزار نشستهام و عجله داریم تا هرچه سریعتر آنها را گزارش کنیم.»
اسکنر سوکت برای شناسایی حملات زنجیره تامین طراحی شده است. این برنامه که به عنوان یک برنامه GitHub یا یک ابزار خط فرمان در دسترس است، پروژه های جاوا اسکریپت و پایتون را اسکن می کند تا مشخص کند آیا هر یک از بسته های بسیاری که ممکن است از رجیستری npm یا PyPI وارد شده باشند حاوی کد مخرب هستند یا خیر.
ابوخدیجه گفت که Socket 227 آسیب پذیری را تأیید کرده است که همگی از ChatGPT استفاده می کنند. آسیب پذیری ها در دسته های مختلف قرار می گیرند و ویژگی های مشترکی ندارند.
ثبت نام نمونههای متعددی از بستههای منتشر شده ارائه شد که رفتارهای مخرب یا اقدامات ناامن را نشان میدادند، از جمله: استخراج اطلاعات، تزریق SQL، اعتبارنامههای رمزگذاریشده، افزایش امتیاز بالقوه، و درهای پشتی.
از ما خواسته شد که چندین نمونه را به اشتراک نگذاریم زیرا هنوز حذف نشده اند، اما در اینجا یکی است که قبلاً به آن پرداخته شده است.
mathjs-min
ابوخدیجه گفت: سوکت این موضوع را به npm گزارش کرده و حذف شده است. “این خیلی زشت بود.”- تجزیه و تحلیل هوش مصنوعی: “اسکریپت حاوی یک عملکرد توکن گراب اختلاف است که یک خطر امنیتی جدی است. توکن های کاربر را می دزدد و آنها را به یک سرور خارجی ارسال می کند. این یک رفتار مخرب است.”
ابوخدیجه افزود: «تأثیرات جالبی نیز وجود دارد، مانند مواردی که ممکن است انسان متقاعد شود، اما هوش مصنوعی به عنوان یک خطر علامتگذاری میکند».
“این تصمیمها تا حدودی ذهنی هستند، اما هوش مصنوعی با نظراتی که ادعا میکنند یک قطعه کد خطرناک ماهیت مخربی ندارد، منصرف نمیشود. هوش مصنوعی حتی شامل یک نظر طنز است که نشان میدهد به نظر درونی اعتماد ندارد.”
- مثال
trello-enterprise
- تجزیه و تحلیل هوش مصنوعی: «اسکریپت اطلاعاتی مانند نام میزبان، نام کاربری، فهرست اصلی و فهرست کاری فعلی را جمع آوری می کند و آن را به یک سرور راه دور ارسال می کند. در حالی که نویسنده ادعا می کند که برای اهداف باگ است، این رفتار همچنان می تواند یک خطر برای حفظ حریم خصوصی باشد. این اسکریپت همچنین حاوی یک عملیات مسدود کردن است که می تواند باعث مشکلات عملکرد یا عدم پاسخگویی شود.”
ابوخدیجه توضیح داد که بستههای نرمافزاری در این رجیستریها بسیار گسترده هستند و ایجاد قوانینی که بهطور کامل جزئیات هر فایل، اسکریپت، و بیت دادههای پیکربندی را به دقت بررسی کنند، دشوار است. قوانین معمولاً شکننده هستند و اغلب جزئیات بیش از حد تولید می کنند یا چیزهایی را که یک بازبین انسانی باهوش می بیند از دست می دهند.
استفاده از تجزیه و تحلیل انسانی در کل مجموعه یک رجیستری بسته (~1.3 میلیون برای npm و ~450000 برای PyPI) امکان پذیر نیست، اما مدل های یادگیری ماشین می توانند با کمک به بازبین های انسانی روی کد مشکوک تمرکز کنند تا حدی از این ضعف ها استفاده کنند. ماژول ها
ابوخدیجه گفت: Socket هر بسته npm و PyPI را با تجزیه و تحلیل کد منبع مبتنی بر هوش مصنوعی با استفاده از ChatGPT تجزیه و تحلیل می کند.
“وقتی چیزی مشکل ساز در یک بسته پیدا می کند، آن را برای بررسی علامت گذاری می کنیم و از ChatGPT می خواهیم که یافته های خود را به طور خلاصه توضیح دهد. مانند همه ابزارهای مبتنی بر هوش مصنوعی، این ممکن است برخی از موارد مثبت کاذب را ایجاد کند، و ما این را به عنوان یک مشکل مسدود کننده فعال نمی کنیم تا زمانی که ما را مسدود کنیم. بازخورد بیشتری در مورد این ویژگی جمع آوری کنید.”
ابوخدیجه فراهم کرد ثبت نام با یک گزارش نمونه از کمک ChatGPT خود که رفتار مخاطره آمیز، اما نه به طور قطعی مخرب را شناسایی می کند. در این مثال، مدل یادگیری ماشین این ارزیابی را ارائه کرد: “این اسکریپت اطلاعات حساس سیستم کاربر از جمله نام کاربری، نام میزبان، سرورهای DNS و اطلاعات بسته را جمعآوری میکند و آن را به یک سرور خارجی ارسال میکند.”
تصویر صفحه گزارش ChatGPT برای اسکنر امنیتی سوکت – برای بزرگنمایی کلیک کنید
مشاوره سوکت مبتنی بر ChatGPT چگونه به نظر می رسد … برای بزرگنمایی کلیک کنید
به گفته ابوخدیجه، Socket برای کمک به توسعه دهندگان در تصمیم گیری آگاهانه در مورد ریسک به گونه ای طراحی شده است که در کار آنها اختلال ایجاد نکند. بنابراین بالا بردن هشدار در مورد هر اسکریپت نصب – یک بردار حمله رایج – می تواند نویز زیادی ایجاد کند. تجزیه و تحلیل این اسکریپت ها با استفاده از یک مدل زبان بزرگ زنگ هشدار را به صدا در می آورد و به توسعه دهندگان کمک می کند تا مشکلات واقعی را تشخیص دهند. و این مدل ها توانمندتر می شوند.
ابوخدیجه گفت: GPT-4 یک تغییردهنده بازی است که تا زمانی که همه کدهای مربوطه در محدوده آن باشد، می تواند جایگزین ابزارهای تحلیل استاتیک شود.
“در تئوری، هیچ آسیبپذیری یا مشکل امنیتی وجود ندارد که نتواند آن را شناسایی کند، به شرطی که دادههای مناسب به هوش مصنوعی ارائه شود. چالش اصلی در استفاده از هوش مصنوعی در این روش، دریافت دادههای مناسب به هوش مصنوعی در قالب مناسب بدون اهدا تصادفی میلیونها دلار است. دلار به تیم OpenAI. :)” – همانطور که در زیر ذکر شد، استفاده از این مدل ها می تواند پرهزینه باشد.
او گفت: “Socket به دلیل محدودیت های خود GPT در مورد تعداد کاراکترها، ارجاعات متقابل فایل ها، قابلیت هایی که ممکن است به آنها دسترسی داشته باشد، اولویت بندی تجزیه و تحلیل و غیره، به هدایت GPT-4 کمک می کند تا تجزیه و تحلیل صحیح را انجام دهد.” .
“ابزارهای سنتی ما در واقع به اصلاح هوش مصنوعی کمک می کنند، همانطور که ممکن است به یک انسان کمک کنند. در عوض، انسان ها می توانند از مزایای ابزار دیگری بهره مند شوند که قابلیت انسان مانندی دارد اما می تواند به طور خودکار اجرا شود.”
این بدان معنا نیست که مدلهای زبانی بزرگ نمیتوانند مضر باشند و نباید بیش از آنچه بوده است مورد بررسی قرار گیرند – میتوانند و باید. در عوض، تجربه Socket تأیید میکند که ChatGPT و مدلهای مشابه، با تمام لبههای خشنشان، میتوانند واقعاً مفید باشند، بهویژه در زمینههایی که آسیب احتمالی میتواند یک توصیه امنیتی نادرست باشد تا مثلاً یک تصمیم استخدام تبعیض آمیز یا یک توصیه دستورالعمل سمی.
همانطور که Simon Willison توسعهدهنده منبع باز اخیراً در یک پست وبلاگ اشاره کرد، این مدلهای زبان بزرگ به او امکان میدهند در پروژههای خود جاهطلبی بیشتری داشته باشند.
ویلیسون خاطرنشان کرد: بهعنوان یک توسعهدهنده با تجربه، ChatGPT (و GitHub Copilot) مقدار زیادی از زمان «پیدا کردن چیزها» برای من صرفهجویی میکند. “این فقط من را بازدهی بیشتر نمی کند: برای زمانی که یک پروژه ارزش سرمایه گذاری روی آن را داشته باشد، سطح من را پایین می آورد.”
محدودیت ها
ابوخدیجه تصدیق می کند که ChatGPT کامل یا حتی نزدیک نیست. او گفت که به دلیل محدودیت پنجره زمینه، فایل های بزرگ را به خوبی مدیریت نمی کند، و مانند یک بازبین انسانی، در درک کدهای بسیار مبهم تلاش می کند. اما در هر دوی این موقعیتها، بررسی دقیقتری مورد نیاز است، بنابراین محدودیتهای مدل چندان معنادار نیستند.
ابوخدیجه گفت که کارهای بیشتری باید انجام شود تا این مدلها در برابر حملات تزریق سریع مقاومتر شوند و تجزیه و تحلیل فایلهای متقاطع بهتر انجام شود – جایی که قطعات فعالیت مخرب ممکن است در بیش از یک فایل پخش شوند.
او توضیح داد: «اگر رفتار مخرب به اندازه کافی پراکنده باشد، پس کشیدن همه زمینه ها به یکباره به هوش مصنوعی دشوارتر است. “این برای همه مدلهای ترانسفورماتور که دارای محدودیت رمز محدود هستند، اساسی است. ابزارهای ما سعی میکنند با وارد کردن قطعات مختلف داده در زمینه هوش مصنوعی، در این محدودیتها کار کنند.”
ادغام ChatGPT و جانشین آن – که اینجا و اینجا مستند شده است – در اسکنر سوکت نیز یک چالش مالی بود. به گفته ابوخدیجه، یکی از بزرگترین موانع LLM ها این است که استقرار آنها گران است.
او گفت: «برای ما، این هزینهها سختترین بخش پیادهسازی ChatGPT در Socket بود. “پیش بینی های اولیه ما تخمین می زد که اسکن کامل رجیستری npm میلیون ها دلار هزینه استفاده از API برای ما در بر خواهد داشت. با این حال، با کار دقیق، بهینه سازی و تکنیک های مختلف، ما موفق شده ایم این مقدار را به ارزش پایدارتری کاهش دهیم.”
ثابت شد که این هزینهها سختترین بخش پیادهسازی ChatGPT در سوکت است
ابوخدیجه در پاسخ به این سوال که آیا اجرای سمت کلاینت ممکن است راهی برای کاهش هزینه اجرای این مدل ها باشد، گفت که در حال حاضر این احتمال محتمل به نظر نمی رسد، اما افزود که چشم انداز هوش مصنوعی به سرعت در حال تغییر است.
او گفت: «چالش اصلی با یک سیستم داخلی در نیاز به بهروزرسانی مکرر مدل نیست، بلکه در هزینههای مربوط به اجرای این مدلها در مقیاس است. برای بهره مندی کامل از مزایای امنیت هوش مصنوعی، استفاده از بزرگترین مدل ممکن ایده آل است.
“در حالی که مدل های کوچکتر مانند GPT-3 یا LLaMA برخی از مزایا را ارائه می دهند، آنها به اندازه کافی هوشمند نیستند که به طور مداوم پیچیده ترین بدافزارها را شناسایی کنند. استفاده ما از مدل های بزرگ ناگزیر هزینه های قابل توجهی را به همراه دارد، اما ما تلاش زیادی را برای افزایش کارایی و کاهش این هزینه ها انجام داده ایم. اگرچه ما نمیتوانیم همه جزئیات را فاش کنیم، در حال حاضر یک حق اختراع در انتظار برخی از فناوریهایی که برای این منظور توسعه دادهایم داریم، و به کار بر روی بهبودهای بیشتر و کاهش هزینهها ادامه میدهیم.”
با توجه به هزینه های موجود، Socket اولویت بندی کرده است تا توصیه های هوش مصنوعی خود را برای مشتریان پولی در دسترس قرار دهد، اما این شرکت همچنین در حال ارائه نسخه پایه از طریق وب سایت خود است.
ابوخدیجه گفت: «ما معتقدیم که با متمرکز کردن این تحلیل در سوکت، میتوانیم هزینه اجرای تجزیه و تحلیل هوش مصنوعی را بر روی تمام وابستگیهای منبع باز مشترک خود مستهلک کنیم و با کمترین هزینه، حداکثر سود را برای جامعه و حفاظت از مشتریان خود فراهم کنیم. ®