عنوان:

‫آیا پشت صفحه کلید خوابیده‌اید؟ ارزیابی امنیت کدهای تولید شده توسط GitHub Copilot


نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۱/۲۱ ۰۷:۵۷
آدرس: www.dntips.ir
این مقاله به بررسی پیامدهای امنیتی استفاده از GitHub Copilot، یک ابزار تولید کد مبتنی بر هوش مصنوعی، از طریق تجزیه و تحلیل کدهای تولید شده توسط آن برای یافتن آسیب‌پذیری‌ها می‌پردازد.

مقدمه

  • ابزارهای تولید کد مبتنی بر یادگیری ماشین (ML) مانند GitHub Copilot به دلیل افزایش فشار بر توسعه‌دهندگان برای تولید سریع کد، محبوبیت زیادی پیدا کرده‌اند.
  • Copilot روی حجم عظیمی از کد متن‌باز، از جمله کدهایی با الگوهای ناامن، آموزش داده شده‌است که نگرانی‌هایی را در مورد امنیت پیشنهادات آن ایجاد می‌کند.
  • این مطالعه به طور سیستماتیک شیوع و شرایطی را که منجر به توصیه کد ناامن توسط Copilot می‌شود، بررسی می‌کند.

روش‌شناسی

  • محققان، Copilot را برای تولید کد در سناریوهای مرتبط با نقاط ضعف امنیت سایبری با ریسک بالا، به ویژه موارد موجود در لیست "25 آسیب‌پذیری برتر" CWE MITRE، تحریک کردند.
  • آنها عملکرد Copilot را در سه بعد بررسی کردند:
    • تنوع ضعف‌ها (DOW): آزمایش توانایی آن در جلوگیری از تولید کد با آسیب‌پذیری‌های مختلف CWE.
    • تنوع اعلان‌ها (DOP): بررسی پاسخ آن به اعلان‌های مختلف برای یک آسیب‌پذیری واحد (تزریق SQL).
    • تنوع دامنه: ارزیابی عملکرد آن در تولید کد برای یک دامنه کمتر رایج (Verilog برای طراحی سخت‌افزار).
  • کد تولید شده با استفاده از CodeQL و بازرسی دستی برای شناسایی نقاط ضعف امنیتی تجزیه و تحلیل شد.

نتایج

  • از 1689 برنامه تولید شده در 89 سناریو، تقریباً 40٪ آسیب‌پذیر شناخته شدند.
  • Copilot حداقل یک بار در هر سناریو، کد آسیب‌پذیر تولید کرد.
  • برخی از CWEها (به عنوان مثال، CWE-22 پیمایش مسیر) در کد تولید شده بیشتر از سایرین (به عنوان مثال، CWE-79 اسکریپت‌نویسی متقابل سایت) شیوع داشتند.
  • تغییرات کوچک در اعلان، حتی در نظرات، می‌تواند بر امنیت کد تولید شده تأثیر بگذارد.
  • Copilot در تولید کد Verilog در مقایسه با پایتون و C، احتمالاً به دلیل داده‌های آموزشی کمتر، با مشکل مواجه شد.

بحث

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


مشاهده مطلب اصلی