Назад
Код, згенерований LLM, як недовірений артефакт збірки
SiTech AI Team2 წთ. საკითხავი

Код, згенерований LLM, як недовірений артефакт збірки

Інженерна публікація на dev.to доводить, що вивід моделі не повинен успадковувати необмежений доступ до робочої станції: зберігайте походження, класифікуйте можливості та ізолюйте до запуску.

Прибирання прихованого коду з відповіді ШІ виглядає як чищення тексту. Публікація на dev.to, адаптована з довшої статті на cometapi.com, розглядає це як проблему безпеки виконання: спершу з'ясувати, що артефакт уміє робити, потім простежити, звідки надійшли його інструкції, і лише тоді обмежити його можливості.

Інцидент, що стоїть за правилом

Публікація посилається на повідомлення спільноти про приблизно 800 ГБ видалених файлів, зокрема про повністю знищений застосунок Cursor AI, після того як розробник виконав код, згенерований за допомогою Gemini 3, у середовищі Cursor IDE. Автор наголошує: це повідомлений інцидент, а не підтверджений криміналістичний звіт, і згенерований код прибирання не повинен успадковувати необмежений доступ до робочої станції.

Шлюз між генерацією та виконанням

«Прихований код» охоплює кілька проблем: непряма ін'єкція підказок із вебсторінок, PDF чи відповідей плагінів; шкідливий JavaScript у браузері; прихований вміст, наприклад символи нульової ширини чи payload-и base64. Небезпечна поведінка може бути й випадковою: прохання «прибрати» каталог може дати rm -rf або виклик shutil.rmtree без жодного зловмисника.

Найперше — походження: зберігайте оригінальну відповідь, розмову, системну підказку, знайдені документи та результати плагінів, а витягнутий код фіксуйте окремо разом з кожною трансформацією та рішенням про схвалення. Форматування через Black чи Prettier — це прибирання, а не перевірка безпеки; U+200B, U+200C, U+200D і U+FEFF варті уваги, але вилучення змінює рядки.

Можливості класифікують до схвалення: розібрати джерело, запустити лінтери й правила безпеки. Тригерами названо sudo, rm -rf, shutil.rmtree, subprocess.Popen, os.system, eval, exec і несподівані абсолютні шляхи. Замість вгадування, які рядки видалити, автор блокує можливості: переписування на основі AST, тайм-аути subprocess, mock-адаптери, заблоковані pip і npm install та відсутність справжніх API-ключів під час оцінювання.

Пісочниця, інструменти, аудит

Тестове середовище — ефемерний контейнер або microVM без мережі, хостових облікових даних і змонтованих дисків (серед варіантів названо gVisor і Firecracker) — із seccomp та лімітами ресурсів. Набір інструментів додає до модуля ast у Python Bandit, Semgrep і плагіни безпеки ESLint.

Дві маленькі перевірки показують межі. Регулярний вираз, націлений на U+200B, U+200C, U+200D і U+FEFF, фіксує їх для журналу аудиту; широко скопійований шаблон re.compile(r'') збігається з порожнім рядком і нічого не видаляє. Обхід AST виявляє прямі виклики eval та exec і атрибути popen чи system, проте псевдоніми й складені з рядків імена його обходять. Межу сформульовано прямо: вивід моделі не дає дозволу на власне виконання.

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.