Уязвимость систем программирования по примерам: целенаправленная порча данных оказалась эффективнее случайных ошибок

Специалисты представили новое исследование, посвящённое устойчивости систем программирования по примерам (Programming by Example, PBE) к целенаправленной порче входных данных. Работа опубликована на arXiv и затрагивает класс атак, при которых злоумышленник, зная логику синтезатора, подбирает примеры для наибольшего ущерба.

Традиционные методы оценки устойчивости PBE обычно моделируют случайные опечатки или шум. Однако авторы показали, что атаки с фиксированным множеством примеров, где противник выбирает, какие примеры испортить, способны полностью изменить выдаваемую программу. В тестах на специально созданных задачах одна целенаправленная правка приводила к сбою всех 8 контрольных примеров, тогда как случайные опечатки и другие методы давали сбой лишь в 10–17 % случаев.

Для демонстрации использовался DSL (предметно-ориентированный язык) преобразования строк. Исследователи реализовали точный поиск порчи в рамках ограниченного пула и эвристические алгоритмы. В качестве защиты предложен метод Version-Space Partition Aggregation (VPA), который разбивает примеры на группы, синтезирует программы отдельно и затем голосует по семантическим сигнатурам.

Выяснилось, что VPA помогает только если «чистая» семантика поддерживает запас голосов при разделении. В реалистичных задачах этот запас часто равен нулю, и адаптивный противник сводит точность защиты к нулю. На общедоступных тестах SyGuS PBE_SLIA голосовательный запас оказался близок к единице, что позволило атакующему полностью обойти VPA.

В экспериментах также использовались сгенерированные задачи с минимальным запасом (margin-1): там VPA восстанавливал программы при единичном бюджете атаки, но на публичных наборах данных успех был ограничен. Сравнение с методами случайных опечаток, пуловым и дистанционно-управляемым контролем показало статистически значимое преимущество целенаправленной порчи.

Авторы также проверили эффект на небольших задачах с использованием языковых моделей — локальных и API. Качественный паттерн «чистый ? атакованный» повторился, хотя это рассматривалось как проверка границ, а не широкий бенчмарк LLM. Результаты подчёркивают, что оценка устойчивости PBE к шуму не учитывает целенаправленные атаки, а предложенная защита работает лишь в узких сценариях.

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