В Массачусетском технологическом институте совместно с IBM разработали автоматизированный метод поиска слабых мест в моделях обработки кода с повышенной устойчивостью к атакам.
Инструменты повышения производительности, такие как Eclipse и Visual Studio, уже предлагают готовые фрагменты кода, которые разработчики могут использовать в работе. Их автоматизированные функции основаны на сложных языковых моделях, которые научились читать и писать компьютерный код после изучения тысяч примеров. Но, как и другие модели глубокого обучения, эти модели, предназначенные для обработки кода, имеют встроенные уязвимости, которые позволяют хакерам манипулировать входными данными.
Ошибки могут иметь серьезные последствия для моделей обработки кода всех типов. Например, они позволяют обманывать модели обнаружения вредоносных программ.
Исследователи предложили структуру для автоматического изменения программ, чтобы выявить слабые места в моделях, обрабатывающих их. Алгоритм определяет места в программе, где добавление или замена кода заставляет модель делать самые большие ошибки. Он также находит виды правок, которые представляют наибольшую опасность.
Исследователи говорят, что структура показывает, насколько хрупкими являются некоторые модели. Их модель способна учиться на своих ошибках и в процессе потенциально может получить более глубокое понимание программирования.
По мнению разработчиков, в будущем модель можно будет обучить работать с кодом подобно человеку-программисту .