ChatGPT създава предимно несигурен код, но не ви казва, освен ако не попитате

Най-четени

ChatGPT не само създава предимно несигурен код, но и не предупреждава потребителите за недостатъците му. Въпреки че е в състояние да ги посочи.

На фона на неистовия академичен интерес към възможностите и ограниченията на големите езикови модели, четирима изследователи, свързани с Университета на Квебек в Канада, проучиха сигурността на кода, генериран от ChatGPT.

В статия за предпечат, озаглавена „Колко сигурен е кодът, генериран от ChatGPT?“, компютърните учени Рафаел Хури, Андерсон Авила, Джейкъб Брюнел и Баба Мамаду Камара отговарят на въпроса с изследване, което може да се обобщи като „не много“.

„Резултатите са обезпокоителни“, заявяват авторите в статията си. 

Установихме, че в няколко случая кодът, генериран от ChatGPT, е много под минималните стандарти за сигурност, приложими в повечето случаи. Всъщност, когато ChatGPT беше подканен да отговори на въпроса дали създаденият код е сигурен или не, той беше в състояние да разпознае, че не е.

Четиримата автори правят това заключение, след като са поискали от ChatGPT да генерира 21 програми и скриптове.

Използвани са различни езици: C, C++, Python и Java.

Задачите за програмиране, поставени на ChatGPT, са били подбрани така, че всяка от тях да илюстрира конкретна уязвимост в сигурността. Такива например са повреда на паметта, отказ на услуга и недостатъци, свързани с десериализацията и неправилно приложената криптография.

Първата програма, например, беше FTP сървър на C++ за споделяне на файлове в публична директория. Кодът, който ChatGPT създаде, не включваше обработка на входните данни. Това оставя софтуера изложен на уязвимост при обхождане на пътища.

Като цяло ChatGPT успя да създаде само пет сигурни програми от общо 21 при първия си опит. 

След допълнително подканяне да поправи грешките си, големият езиков модел успя да създаде седем по-сигурни приложения. Това е „сигурно“ само по отношение на конкретната оценявана уязвимост. Това не е твърдение, че крайният код е свободен от всякакви други пробойни.

Констатациите на изследователите повтарят подобни, макар и не идентични оценки на Copilot на GitHub. Това е друг LLM, базиран на GPT-3 (и наскоро обновен до GPT-4), който е настроен специално за генериране на код. 

В същото време тези модели се използват и за идентифициране на проблеми със сигурността. 

В статията си учените отбелязват, че част от проблема изглежда се дължи на това, че ChatGPT не приема правилния модел на изпълнение на кода. Моделът, казват те, „многократно ни информира, че проблемите със сигурността могат да бъдат заобиколени просто като „не се подава невалиден вход“ на създадената от него уязвима програма“.

Въпреки това, те посочват:

ChatGPT изглежда е наясно с наличието на критични уязвимости в предлагания от него код и дори с готовност ги признава. Просто не казва нищо, освен ако не бъде помолен да оцени сигурността на собствените си предложения за код.

Очевидно е, че това е алгоритъм. Той не знае нищо, но може да разпознае несигурно поведение

Рафаел Хури, професор по компютърни науки и инженерство в Университета на Квебек в Утоа и един от съавторите на статията, пред The Register.

Първоначално отговорът на ChatGPT на опасенията за сигурността е да препоръча използването само на валидни входни данни. Нещо, което в реалния свят не е задължително. 

Едва след това, когато е бил подканен да отстрани проблемите, моделът с изкуствен интелект е дал полезни насоки.

Авторите смятат, че това не е идеално, тъй като знанието за това какви въпроси да се задават предполага познаване на конкретни уязвимости и техники за програмиране. С други думи, ако знаете правилния въпрос, за да накарате ChatGPT да отстрани дадена уязвимост, вероятно вече разбирате как да я отстраните.

Авторите също така посочват, че има етична непоследователност във факта, че ChatGPT ще откаже да създаде зловреден код, но ще създаде уязвим такъв.

Те цитират пример с уязвимост в Java за десериализация.

В него „чатботът генерира уязвим код и дава съвети как да го направи по-сигурен, но заявява, че не е в състояние да създаде по-сигурната версия на кода“.

Хури твърди, че ChatGPT в сегашния си вид представлява риск, макар и да има валидни употреби.

Всъщност вече сме виждали ученици да го използват, а програмистите ще го използват в дивата природа, без съмнение. Както и много ентусиасти. Така че наличието на инструмент, който генерира несигурен код, е наистина опасно. Трябва да информираме хората, че ако кодът се генерира с такъв тип инструмент, е много възможно той да е несигурен.

Едно от нещата, които ме изненадаха, беше, че когато помолихме ChatGPT да генерира една и съща задача – един и същ тип програма на различни езици – понякога за един език тя щеше да е сигурна, а за друг – уязвима. Тъй като този тип езиков модел е нещо като черна кутия, наистина нямам добро обяснение или теория за това.

Цялата статия може да прочетете тук.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

2 Коментара
стари
нови оценка

Нови ревюта

Подобни новини