Разработчиците все по-често разчитат на ИИ асистенти за кодиране в ежедневната си работа, позволявайки на инструментите да предвиждат следващите няколко реда и приемайки много от предложенията след бърз поглед. Тези инструменти се обучават от големи колекции от код, като част от този код може да бъде манипулиран преди началото на обучението. Отровен пример учи модела да пише небезопасен код, когато види определен маркер, и този недостатък стои скрит, докато не бъде активиран от съответната подкана.
Повечето защити имат за цел да уловят това отравяне рано, като проверяват данните за обучение или сканират изходните резултати за известни проблеми. Екип от Университета в Луисвил и Университета на Северен Тексас изгради система, наречена CodeTracer, за случаите, в които тези защити пропуснат нещо. Тяхната работа започва от модел, който вече е генерирал вредно допълнение. Задачата е това допълнение да бъде проследено обратно до примерите за обучение, които са формирали това поведение.
Изследователите са създали метода за среда, която съответства на начина, по който тръбопроводите за фина настройка работят на практика. Градиентите от обучението вече липсват, когато започне проверката. Хората, извършващи проверката, разполагат само с корпуса за фина настройка и отчета за лошото допълнение, който включва подканата и кода, генериран от модела. Въпросът, който ръководи работата, е: „Кой е поставил грешката?“
CodeTracer работи в три етапа. Първо, той чете вредното допълнение и изгражда структурирано резюме на небезопасното поведение, като премахва повърхностни детайли като имена на променливи. Второ, търси в данните за обучение код, който носи същата фундаментална логика, стеснявайки огромния набор от файлове до малка група от кандидати. Трето, изисква от езиков модел да оцени всеки кандидат спрямо резюмето и да реши дали той съдържа същия небезопасен шаблон.
Оценката се основава на повече от един милион Python файлове, извлечени от хранилища в GitHub. Проучването се фокусира върху три небезопасни шаблона:
- генериране на шаблони с доверително невалидирани данни;
- деактивиране на проверките на сертификати в уеб заявки;
- свързване на мрежова услуга към всеки интерфейс на дадена машина.
При широк спектър от backdoor атаки CodeTracer поддържа нивото на фалшиво отрицателни резултати под 0.03, пропускайки много малко от подхвърлените примери. Премахването на файловете, които инструментът е проследил, намалява степента на успеваемост на атаката почти до нула.