گروهی از محققان دانشگاه استنفورد تأثیر استفاده از دستیارهای هوشمند هنگام نوشتن کد را بر ظاهر آسیبپذیریهای کد مورد مطالعه قرار دادند. ما راهحلهایی را مبتنی بر پلتفرم یادگیری ماشین OpenAI Codex، مانند GitHub Copilot در نظر گرفتیم، که به شما امکان میدهد بلوکهای کد نسبتاً پیچیده، تا توابع آماده تولید کنید. نگرانیها به این واقعیت مربوط میشوند که از آنجایی که کد واقعی از مخازن عمومی GitHub، از جمله مخازن حاوی آسیبپذیری، برای آموزش مدل یادگیری ماشین استفاده شده است، کد سنتز شده ممکن است خطاها را تکرار کند و کدی را پیشنهاد کند که حاوی آسیبپذیری است، و همچنین در نظر گرفته نشود. نیاز به انجام بررسی های اضافی هنگام پردازش داده های خارجی.
این مطالعه شامل 47 داوطلب با تجربه های مختلف در برنامه نویسی - از دانش آموزان تا افراد حرفه ای با ده سال تجربه بود. شرکت کنندگان به دو گروه آزمایش (33 نفر) و کنترل (14 نفر) تقسیم شدند. هر دو گروه به کتابخانه ها و منابع اینترنتی، از جمله استفاده از نمونه های آماده از Stack Overflow دسترسی داشتند. به گروه آزمایشی فرصت استفاده از دستیار هوش مصنوعی داده شد.
به هر شرکت کننده 5 وظیفه مربوط به نوشتن کد داده شد که در آنها به طور بالقوه انجام اشتباهاتی که منجر به آسیب پذیری می شود آسان است. به عنوان مثال، وظایفی در زمینه نوشتن توابع رمزگذاری و رمزگشایی، استفاده از امضای دیجیتال، پردازش داده های مربوط به تشکیل مسیرهای فایل یا پرس و جوهای SQL، دستکاری اعداد بزرگ در کد C، پردازش ورودی نمایش داده شده در صفحات وب وجود داشت. برای در نظر گرفتن تأثیر زبانهای برنامهنویسی بر امنیت کد بهدستآمده در هنگام استفاده از دستیاران هوش مصنوعی، تکالیف پایتون، C و جاوا اسکریپت را پوشش میدهند.
در نتیجه، مشخص شد که شرکتکنندگانی که از دستیار هوش مصنوعی مبتنی بر مدل codex-davinci-002 استفاده میکردند، نسبت به شرکتکنندگانی که از دستیار هوش مصنوعی استفاده نمیکردند، کد امنتری تولید کردند. به طور کلی، تنها 67٪ از شرکت کنندگان در گروه با استفاده از دستیار هوش مصنوعی توانستند یک کد صحیح و امن ارائه دهند، در حالی که در گروه دیگر این رقم 79٪ بود.
در همان زمان، شاخصهای عزت نفس معکوس شد - شرکتکنندگانی که از دستیار هوش مصنوعی استفاده میکردند معتقد بودند که کد آنها نسبت به شرکتکنندگان از گروه دیگر امنتر است. علاوه بر این، اشاره شد که شرکتکنندگانی که کمتر به دستیار هوش مصنوعی اعتماد داشتند و زمان بیشتری را صرف تجزیه و تحلیل و ایجاد تغییرات در نکات داده شده میکردند، آسیبپذیریهای کمتری در کد ایجاد کردند.
به عنوان مثال، کد کپی شده از کتابخانه های رمزنگاری حاوی مقادیر پارامترهای پیش فرض ایمن تر از کد پیشنهادی دستیار هوش مصنوعی است. همچنین، هنگام استفاده از دستیار هوش مصنوعی، انتخاب الگوریتم های رمزگذاری کمتر قابل اعتماد و عدم احراز هویت مقادیر بازگشتی ثابت شد. در کار دستکاری اعداد C، کد نوشته شده با استفاده از دستیار هوش مصنوعی دارای خطاهای بیشتری بوده که منجر به سرریز اعداد صحیح می شود.
علاوه بر این، یک مطالعه مشابه توسط گروهی از دانشگاه نیویورک، که در ماه نوامبر با مشارکت 58 دانشجو انجام شد، که از آنها خواسته شد ساختاری برای پردازش لیست خرید به زبان C پیاده سازی کنند، قابل ذکر است. نتایج نشان داد که دستیار هوش مصنوعی تأثیر ناچیزی بر امنیت کد دارد - کاربرانی که از دستیار هوش مصنوعی استفاده میکردند، به طور متوسط حدود 10 درصد خطاهای مرتبط با امنیت بیشتر داشتند.
منبع: opennet.ru