GitHub’s CodeQL 2.26.0 додає вбудований запит, який виявляє патерни ін'єкцій промптів (prompt-injection) для ШІ, і ця зміна вже змушує CI-пайплайни позначати нові ризики. Одного лише оновлення недостатньо — командам потрібен набір регресійних тестів, який гарантуватиме ефективність правила в міру еволюції коду.
Чому регресійна фікстура має значення
Prompt injection дозволяє зловмиснику вставити шкідливі інструкції в промпт, яким мовна модель згодом буде виконувати. Завдяки новому запиту статичний аналіз може відстежити шлях даних від ненадійного джерела до «приймача» (sink), що викликає модель. Якщо правило просто увімкнути й ніколи не перевіряти, подальший рефакторинг може порушити шлях потоку даних, і сповіщення просто зникне. Регресійна фікстура фіксує саме ті шляхи, які мають викликати (або не викликати) правило, перетворюючи результат статичного аналізу на контракт, який забезпечує збірка.
Три складові надійної фікстури
- Ненадійне джерело (Untrusted source) – будь-яка функція, що отримує дані з-поза меж довіреної кодової бази (наприклад, тіло GitHub issue, payload вебхука).
- Конструювання промпту (Prompt construction) – код, який формує запит до моделі, зазвичай це виклик SDK клієнта.
- Приймач моделі (Model sink) – метод SDK, який надсилає промпт моделі. Потрібно, щоб рушій потоків даних CodeQL бачив реальний виклик із вашого продуктивного стека, щоб розпізнати цей «sink».
Запит спрацьовує лише тоді, коли присутні всі три компонен
