Details

Title Генерация правил статического анализа для выявления уязвимостей Java-кода с использованием больших языковых моделей: выпускная квалификационная работа бакалавра: направление 10.03.01 «Информационная безопасность» ; образовательная программа 10.03.01_03 «Безопасность компьютерных систем»
Creators Уваров Богдан Максимович
Scientific adviser Жуковский Евгений Владимирович
Other creators Кубрин Г. С.
Organization Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Imprint Санкт-Петербург, 2025
Collection Выпускные квалификационные работы ; Общая коллекция
Subjects генерация кода ; большая языковая модель ; статический анализатор кода ; поиск уязвимостей ; sast ; llm ; java ; juliet ; code generation ; large language model ; static code analyzer ; vulnerability search
Document type Bachelor graduation qualification work
File type PDF
Language Russian
Level of education Bachelor
Speciality code (FGOS) 10.03.01
Speciality group (FGOS) 100000 - Информационная безопасность
DOI 10.18720/SPBPU/3/2025/vr/vr25-925
Rights Доступ по паролю из сети Интернет (чтение, печать, копирование)
Additionally New arrival
Record key ru\spstu\vkr\35749
Record create date 7/30/2025

Allowed Actions

Action 'Read' will be available if you login or access site from another network

Action 'Download' will be available if you login or access site from another network

Group Anonymous
Network Internet

Целью работы является разработка и тестирование методов генерации правил для различных статических анализаторов с использованием больших языковых моделей для снижения требований к специалистам SAST. Предметом исследования является алгоритм создания моделей и промптов для генерации правил статического анализа для выявления уязвимостей в Java коде. Объектом исследования являются правила статических анализаторов кода, и способы их генерации. Задачи, решаемые в ходе исследования: 1. Формирование выборки уязвимостей Java-кода. 2. Проведение тестирования инструментов статического анализа с применением стандартных наборов правил и оценка полученных результатов. 3. Сбор и анализ существующих правил и документации для выбранных анализаторов, подготовка входных данных для LLM. 4. Разработка и применение подходов генерации правил с использованием больших языковых моделей. 5. Экспериментальное сравнение эффективности стандартных и сгенерированных правил на целевой выборке уязвимостей. В ходе работы были исследованы различные подходы генерации программного кода для специфичных языков. Были проанализированы возможности и ограничения современных больших языковых моделей, а также различные способы организации входных данных. В результате было разработано несколько методов генерации правил для статических анализаторов на основе описания на естественном языке, а также протестирована их эффективности в сравнении с применением стандартных наборов. Был сделан вывод, что эффективность применения больших языковых моделей напрямую зависит от сложности синтаксиса языка описания правил, а также количества доступных данных для обучения. Полученные результаты демонстрируют эффективность данного подхода и могут быть использованы для дальнейшего развития применения инструментов статического анализа совместно с большими языковыми моделями. Для достижения данных результатов было разработано несколько небольших программ для дообучения больших языковых моделей с применением собственной выборки примеров правил и технологии LoRA, а также организации генерации, дополненной поиском (RAG) для формирования запросов.

The purpose of the work is to develop and test rule generation methods for various static analyzers using large language models to reduce the requirements for SAST specialists. The subject of the research is an algorithm for creating models and prompts for static analysis rule generation for vulnerability detection in Java code.  The object of the research is static code analyzers rules and methods of their generation. Tasks solved in the course of the research: 1. Formation of a sample of Java code vulnerabilities. 2. Testing static analysis tools using standard rule sets and evaluating the results. 3. Collection and analysis of existing rules and documentation for selected analyzers, preparation of input data for LLM. 4. Development and application of rule generation methods using large language models. 5. Experimental comparison of the effectiveness of standard and generated rules on a target sample of vulnerabilities. In the course of this work, different approaches of program code generation for specific languages were investigated. Possibilities and limitations of modern large language models were analyzed, as well as different ways of input data organization. As a result, several methods of rule generation for static analyzers based on natural language descriptions were developed and their efficiency was tested in comparison with the use of standard sets. It was concluded that the effectiveness of large language models directly depends on the complexity of the syntax of the rule description language as well as the amount of available data for training. The results obtained demonstrate the effectiveness of this approach and can be used to further develop the application of static analysis tools together with large language models. To achieve these results, several small programs have been developed for the pre-training of large language models using our own sample of rule examples and LoRA technology, as well as the organization of generation augmented by search (RAG) for query generation.

Network User group Action
ILC SPbPU Local Network All
Read Print Download
Internet Authorized users SPbPU
Read Print Download
Internet Anonymous

Access count: 1 
Last 30 days: 1

Detailed usage statistics