
Систематическое обнаружение уязвимостей кода LLM: несколько выстрелов для инверсии модели черного ящика
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
IV Систематическое обнаружение уязвимости безопасности моделей генерации кодов
Мы предлагаем подход к автоматическому и систематическому поиску проблем уязвимости безопасности моделей генерации кодов черного ящика и их ответственных подсказок (мы их называемНебезопасные подсказки) Чтобы достичь этого, мы прослеживаем несметные подсказки, которые приводят целевую модель, чтобы генерировать коды с конкретными уязвимостями. Мы сформулируем проблему создания небезопасных подсказок в качестве проблемы с инверсией модели; Используя приближение обратной модели генерации кода и кодов с конкретной уязвимостью, мы можем автоматически генерировать список небезопасных подсказок. Для этого мы должны преодолевать следующие серьезные препятствия: 1) Мы не имеем доступа к распределению уязвимых кодов, а 2) доступ к обратному моделям черного ящика не является простой проблемой. Чтобы решить эти два вопроса, мы приближаем инверсию модели черного ящика посредством нескольких выстрелов.
Здесь цель инвертирования модели состоит в том, чтобы генерировать небезопасные подсказки, которые ведут модель F для генерации кода с определенным типом уязвимости и не особенно реконструировать конкретный уязвимый код.
A. аппроксимирование инверсии моделей генерации кодов черного ящика через несколько выстрелов
В этой работе мы исследуем три разных версии с меньшим количеством подсказок для инверсии модели, используя различные части примеров кода. Это включает в себя использование всего уязвимого кода, первых нескольких строк кодов и предоставление только одного примера. Подходы подробно описаны ниже.
1) FS-код:Мы предлагаем FS-код, где мы приближаем инверсию модели F черного ящика в нескольких выстрелах, используя примеры кода с конкретной уязвимостью:
2) FS-Prompt:Мы исследуем два других вариантов нашего подхода на несколько выстрелов. В уравнении 4 мы вводим FS-PROMPT (несколько выстрелов).
Стоит подчеркнуть, что в нашем эксперименте, обсуждаемом в разделе V-B1, мы оцениваем уязвимости безопасности моделей кода, исключительно полагаясь на небезопасные подсказки из первоначальных примеров уязвимого кода. Тем не менее, мы обнаружили, что из-за ограниченного набора небезопасных подсказок определенные типы уязвимостей безопасности не были получены. Это еще больше мотивирует необходимость более разнообразного набора небезопасных подсказок, чтобы всесторонне оценить недостатки безопасности моделей кода.
C. Выборка небезопасных подсказок и поиск уязвимых кодов
Учитывая большой набор сгенерированных небезопасных подсказок и модели F, мы генерируем несколько кодов с потенциально целевым типом уязвимости безопасности и уязвимыми уязвимостями сгенерированных кодов посредством статического анализа.
D. Подтверждение проблем уязвимости безопасности сгенерированных образцов
В процессе создания небезопасных подсказок, что приводит к определенному типу уязвимости, мы предоставляем несколько выстрелов из целевого типа CWE. В частности, если мы хотим выбрать небезопасные подсказки «SQL-инъекции» (CWE-089), мы предоставляем несколько выстрелов в уязвимости «SQL-инъекции».
Авторы:
(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).
Эта статья есть
Оригинал