МЕТОДОЛОГИЯ ФОРМИРОВАНИЯ КОНТЕКСТА УЯЗВИМОСТЕЙ ДЛЯ ИХ ОБНАРУЖЕНИЯ ЯЗЫКОВЫМИ МОДЕЛЯМИ НА ОСНОВЕ ГРАФА СВОЙСТВ КОДА
##plugins.themes.bootstrap3.article.main##
Аннотация
В статье рассматривается задача формирования программного контекста для
обнаружения уязвимостей исходного кода языковыми моделями. Ограниченность анализа изолированных функций приводит к потере межпроцедурных зависимостей, потоков данных и условий использования, влияющих на проявление уязвимости. Предложена методология, основанная на графе свойств кода, который объединяет структурные элементы программы, граф вызовов и зависимости данных. Методология
включает синтаксический разбор Python-проектов, построение узлов функций, классов, переменных и блоков кода, формирование ребер вызовов и потоков данных, загрузку графа в Neo4j, связывание результатов статического анализа с узлами кода, извлечение локального подграфа вокруг потенциально уязвимого участка и ранжирование
элементов контекста по графовой удаленности и повторяемости. Полученный контекст адаптируется к ограничению контекстного окна языковой модели. Апробация
на 400 экземплярах из набора CVEFixes показала снижение доли ложноотрицательных
срабатываний и рост коэффициента Фи для большинства протестированных моделей. Результаты подтверждают, что учет семантического программного контекста повышает устойчивость обнаружения уязвимостей. Работа соответствует пунктам 15 и 17 паспорта научной специальности 2.3.6.