

یک مطالعه اخیر نشان داد که مهندسان نرم افزاری که از سیستم های هوش مصنوعی برای تولید کد استفاده می کنند، به احتمال زیاد در برنامه هایی که توسعه می دهند آسیب پذیری های امنیتی ایجاد می کنند. این مقاله که توسط تیمی از محققان وابسته به استانفورد نوشته شده است، مشکلات احتمالی سیستم های تولید کد را نشان می دهد زیرا فروشندگانی مانند GitHub به طور جدی شروع به بازاریابی آنها می کنند.
نیل پری، دانشجوی دکترای استنفورد و یکی از نویسندگان اصلی این مطالعه، در مصاحبه ای با TechCrunch گفت: «سیستم های تولید کد در حال حاضر جایگزینی برای توسعه دهندگان انسانی نیستند. توسعه دهندگانی که از آنها برای انجام کارهای خارج از حوزه تخصصی خود استفاده می کنند باید نگران باشند و کسانی که از آنها برای سرعت بخشیدن به کارهایی که قبلاً در آنها مهارت دارند استفاده می کنند باید نتایج و زمینه ای را که در آن در پروژه کلی استفاده می شود به دقت بررسی کنند.
مطالعه استنفورد به طور خاص به Codex، سیستم تولید کد هوش مصنوعی که توسط آزمایشگاه تحقیقاتی OpenAI مستقر در سانفرانسیسکو توسعه یافته است، پرداخت. (Codex powers Copilot.) محققان 47 توسعهدهنده – از دانشآموز گرفته تا متخصصان صنعت با دههها تجربه برنامهنویسی – را برای استفاده از Codex برای حل مشکلات مربوط به امنیت در انواع زبانهای برنامهنویسی از جمله Python، JavaScript و C به کار گرفتند.
Codex بر روی میلیاردها خط کد عمومی آموزش داده شد تا خطوط کد و ویژگی های اضافی را با توجه به زمینه کد موجود پیشنهاد کند. این سیستم یک رویکرد برنامهنویسی یا راهحل را در پاسخ به توصیفی از آنچه توسعهدهنده میخواهد به دست آورد (مثلاً «به دنیا سلام برسان») استنباط میکند، که هم از پایگاه دانش و هم از زمینه کنونی استفاده میکند.
به گفته محققان، شرکتکنندگان در مطالعه که به Codex دسترسی داشتند، بیشتر از گروه کنترل، راهحلهای نادرست و «ناامن» (به معنای امنیت سایبری) برای مشکلات برنامهنویسی مینویسند. حتی نگران کننده تر، احتمال بیشتری داشت که بگویند پاسخ های نامطمئن آنها در مقایسه با افراد گروه کنترل قطعی است.
مگا سریواستاوا، دانشجوی کارشناسی ارشد در استنفورد و دومی یکی از نویسندگان این مطالعه، تاکید کرد که یافتهها محکومیت کامل Codex و سایر سیستمهای تولید کد نیستند. برای مثال، شرکتکنندگان در مطالعه پیشزمینه امنیتی نداشتند که به آنها اجازه دهد آسیبپذیریهای کد را بهتر شناسایی کنند. گذشته از این، سریواستاوا معتقد است که سیستم های تولید کد به طور قابل اعتمادی برای کارهای غیر پرخطر مانند کد تحقیقاتی اکتشافی مفید هستند و می توانند با تنظیم دقیق، پیشنهادات کدگذاری خود را بهبود بخشند.
«شرکتهایی که خودشان را توسعه میدهند [systems]شاید با آموزش بیشتر در مورد کد منبع داخلی خود، آنها ممکن است وضعیت بهتری داشته باشند، زیرا این مدل می تواند برای تولید نتایجی که بیشتر در راستای کدگذاری و شیوه های امنیتی آنها باشد، تشویق شود.
بنابراین چگونه فروشندگانی مانند GitHub می توانند از معرفی آسیب پذیری های امنیتی توسط توسعه دهندگان با استفاده از سیستم های هوش مصنوعی تولید کننده کد جلوگیری کنند؟ نویسندگان مشترک ایدههای مختلفی دارند، از جمله مکانیزمی برای «تصفیه» درخواستهای کاربر برای ایمنتر کردن آنها – بسیار شبیه به یک ناظر که پیشنویسهای خام کد را بررسی و بازبینی میکند. آنها همچنین پیشنهاد میکنند که توسعهدهندگان کتابخانههای رمزنگاری مطمئن شوند که پیشفرضهایشان ایمن هستند، زیرا سیستمهای تولید کد تمایل دارند به مقادیر پیشفرض پایبند باشند که همیشه بدون بهرهبرداری نیستند.
ابزارهای تولید کد دستیار هوش مصنوعی یک توسعه واقعاً هیجان انگیز است و قابل درک است که افراد زیادی مشتاق استفاده از آنها هستند. این ابزارها مسائلی را برای ما به وجود میآورند که باید حرکت رو به جلو را در نظر بگیریم، اما… هدف ما ارائه یک بیانیه گستردهتر در مورد استفاده از مدلها برای تولید کد است. برای تحقیق در مورد این مسائل و توسعه تکنیک هایی برای رسیدگی به آنها باید کار بیشتری انجام شود.”
به گفته پری، معرفی آسیبپذیریهای امنیتی تنها نقطه ضعف سیستمهای تولید کد هوش مصنوعی نیست. حداقل برخی از کدهایی که کدکس روی آن آموزش داده شده است، تحت یک مجوز محدود است. کاربران توانستهاند از Copilot بخواهند کدی از Quake، قطعههای کد در پایگاههای کد شخصی، و کد نمونه از کتابهایی مانند “Mastering JavaScript” و “Think JavaScript” تولید کند. برخی از کارشناسان حقوقی می گویند که Copilot می تواند شرکت ها و توسعه دهندگان را در معرض خطر قرار دهد اگر آنها ناخواسته پیشنهادات دارای حق چاپ را از این ابزار در نرم افزار تولید خود بگنجانند.
تلاش GitHub برای رفع این مشکل، فیلتری است که برای اولین بار در پلتفرم Copilot در ماه ژوئن معرفی شد که پیشنهادات کد را با کدهای اطرافشان که حدود 150 کاراکتر است در مقابل کد عمومی GitHub بررسی میکند و پیشنهادات را در صورت وجود مطابقت یا «تطابق نزدیک» پنهان میکند. اما این یک معیار ناقص است. تیم دیویس، استاد علوم کامپیوتر در دانشگاه A&M تگزاس، دریافت که فعال کردن فیلتر باعث میشود که Copilot بخشهای زیادی از کد دارای حق چاپ خود، از جمله کل حق چاپ و متن مجوز را پخش کند.
“[For these reasons,] ما نسبت به استفاده از این ابزارها برای جایگزینی آموزش توسعه دهندگان در مراحل اولیه در شیوه های کدنویسی قوی بسیار محتاط هستیم.”