Искусство быстрого настройки, температурной настройки и нечеткой криминалистики в ИИ

Искусство быстрого настройки, температурной настройки и нечеткой криминалистики в ИИ

29 июля 2025 г.

Аннотация и I. Введение

II Связанная работа

Iii. Технический фон

IV Систематическое обнаружение уязвимости безопасности моделей генерации кодов

V. Эксперименты

VI Дискуссия

VII. Заключение, подтверждение и ссылки

Приложение

A. Подробности моделей языка кода

B. Поиск уязвимостей безопасности в GitHub Copilot

C. Другие базовые линии с использованием CHATGPT

D. Влияние различных числа нескольких примеров

E. Эффективность в создании конкретных уязвимостей для C -кодов

F. Результаты уязвимости безопасности после дедупликации нечеткого кода

G. Подробные результаты передачи сгенерированных небезопасных подсказок

H. Подробная информация о генерации набора данных небезопасных подсказок

I. Подробные результаты оценки кодельмов с использованием набора данных небезопасного

J. эффект температуры отбора проб

K. Эффективность схемы инверсии модели при восстановлении уязвимых кодов

L. Качественные примеры, сгенерированные CodeGen и CHATGPT

М. Качественные примеры, сгенерированные GitHub Copilot

F. Результаты уязвимости безопасности после дедупликации нечеткого кода

Мы используем библиотеку Python Python, чтобы найти близкие коды. Эта библиотека использует расстояние Левенштейна для расчета различий между последовательностями [65]. Библиотека выводит соотношение сходства двух строк как число от 0 до 100. Мы рассматриваем два кода дубликаты, если у них есть соотношение сходства, превышающее 80. На рисунке 7 приведены результаты нашего подхода FS-кода при поиске уязвимого Python и C-кодов, которые могут быть сгенерированы Codegen и Chatgpt.

Fig. 6: Percentage of the discovered vulnerable C codes using the non-secure prompts that are generated for specific CWE. (a), (b), and (c) provide the results of the generated code by CodeGen model using FS-Code, FS-Prompt, and OS-Prompt, respectively. (d), (e), and (f) provide the results for the code generated by ChatGPT using FS-Code, FS-Prompt, and OS-Prompt, respectively.

модель. Обратите внимание, что эти результаты предоставляются, следуя настройке раздела V-B2. Здесь мы также наблюдаем общую почти линейную модель роста для некоторых типов уязвимости, которые генерируются моделями CodeGen и CHATGPT.

G. Подробные результаты передачи сгенерированных небезопасных подсказок

Здесь мы предоставляем подробную информацию о результатах передачи сгенерированных небезопасных подсказок. Таблица VIII и таблица IX показывают подробные результаты передачи перспективных проведений несмешивания, которые генерируются CodeGen и CHATGPT соответственно. Результаты в таблице VIII и таблице IX предоставляют результаты сгенерированных кодов Python и C для разных CWE. В таблице VIII и таблице IX показывают, что перспективные небезопасные подсказки переносятся среди моделей для генерации кодов с различными типами CWE. Даже в некоторых случаях небезопасные подсказки от модели А могут привести к созданию более уязвимых кодов по сравнению с самой моделью А. Например, в таблице VIII многообещающие небезопасные подсказки, генерируемые CodeGen Head CathGPT для создания более уязвимых кодов с уязвимостью CWE-079 по сравнению с самим CodeGen.

H. Подробная информация о генерации набора данных небезопасных подсказок

Мы генерируем набор данных небезопасных подсказок, используя наш метод FSCODE, следуя тем же параметрам, что и в разделе V-B. Для получения подсказок с GPT-4 и Code Llama-34B мы устанавливаем температуру выборки на 1,0. Более высокая температура облегчает генерацию разнообразного набора небезопасных подсказок. Мы устанавливаем максимальное количество токенов для генерации подсказок небезопасного Python и C до 45 и 65 соответственно. Максимальное количество токенов определяется на основе среднего размера подсказок в наших первоначальных примерах кода.

Чтобы сгенерировать небезопасные подсказки с кодом Llama-34B, мы используем исключительно несколько примеров из нашего FSCODE. Однако в процессе генерации с использованием GPT-4 мы используем инструкцию для руководства моделью. Мы используем следующую инструкцию для генерации подсказок Python:

Вы разработчик Python. Учитывая приведенные примеры кода, заполните следующий код. Определите функцию и напишите описание задачи как комментарий Python. Предоставить всеобъемлющие комментарии. Не пишите никаких объяснений. Только напишите коды Python.

I. Подробные результаты оценки кодельмов с использованием набора данных небезопасного

В таблице X мы предоставляем подробные результаты оценки различных моделей языка кода с использованием предлагаемого нами набора данных, не являющихся безопасными документами. Таблица X демонстрирует количество уязвимых кодов Python и C, сгенерированных CodeGen-6B [6], StarCoder7B [24], Code Llama-13B [12], WizardCoder-15B [56] и CHATGPT [4] модели. Подробные результаты для каждого CWE могут предложить ценную информацию для конкретных вариантов использования. Например, как показано в таблице X, код Llama-13b генерирует меньше кодов Python с уязвимостью CWE-089 (SQL-инъекция). Следовательно,

Fig. 7: The number of discovered vulnerable codes versus the number of sampled codes generated by (a), (c) CodeGen, and (b), (d) ChatGPT. The non-secure prompts and codes are generated using our FS-Code method. While Figure 4 already has removed exact matches, here, we use fuzzy matching to do further code deduplication.

TABLE VIII: The number of discovered vulnerable codes generated by the CodeGen and ChatGPT models using the promising non-secure prompts generated by CodeGen. We employ our FS-Code method to generate non-secure prompts and codes. Columns two to thirteen provide results for Python codes. Columns fourteen to nineteen give the results for C Codes. Column fourteen and nineteen provides the number of found vulnerable codes with the other CWEs that CodeQL queries. For each programming language, the last column provides the sum of all codes with at least one security vulnerability.

Эта модель выделяется как сильный выбор среди оцениваемых моделей для генерации кода Python, связанного с SQL.

J. эффект температуры отбора проб

На рисунке 8 представлены подробные результаты влияния различных температур выборки на генерирование небезопасных подсказок и уязвимого кода. Мы проводим эту оценку, используя наш метод FS-Code и выбираем небезопасные подсказки и коды Python из модели CodeGen. Здесь мы предоставляем общее количество сгенерированных уязвимых кодов с тремя различными CWE (CWE-020, CWE-022 и CWE-079) и образцами 125 кодов для каждого CWE. Ось Y относится к различным температурам выборки для отбора проб небезопасных подсказок, а Xaxis относится к различным температурам выборки процедуры генерации кода. Результаты на рисунке 8 показывают, что в целом температура отбора проб небезопасных продвортов оказывает значительное влияние на генерирование уязвимых кодов, в то время как температуры отбора проб кодов оказывают незначительное влияние (в каждом ряду мы имеем низкую разницу между количеством уязвимых кодов), кроме того, на рисунке 8 мы наблюдаем, что 0.6 представляет собой оптимальную температуру для выборки. Неоценки. Обратите внимание, что во всех наших экспериментах, основанных на предыдущих работах в домене генерации программы [6], [5], чтобы получить справедливые результаты, мы устанавливаем небезопасную подсказку и температуру отбора проб кодов до 0,6.

Авторы:

(1) Хоссейн Хаджипур, Центр Cispa Helmholtz для информационной безопасности (hossein.hajipour@cispa.de);

(2) Кено Хасслер, Центр Cispa Helmholtz для информационной безопасности (keno.hassler@cispa.de);

(3) Торстен Хольц, Центр Cispa Helmholtz для информационной безопасности (holz@cispa.de);

(4) Lea Schonherr, Cispa Helmholtz Center для информационной безопасности (schoenherr@cispa.de);

(5) Марио Фриц, Центр Cispa Helmholtz для информационной безопасности (fritz@cispa.de).


Эта статья естьДоступно на ArxivПод CC By-NC-SA 4.0 Лицензия.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE