Детальная информация
Название | Генерация правил статического анализа для выявления уязвимостей Java-кода с использованием больших языковых моделей: выпускная квалификационная работа бакалавра: направление 10.03.01 «Информационная безопасность» ; образовательная программа 10.03.01_03 «Безопасность компьютерных систем» |
---|---|
Авторы | Уваров Богдан Максимович |
Научный руководитель | Жуковский Евгений Владимирович |
Другие авторы | Кубрин Г. С. |
Организация | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
Выходные сведения | Санкт-Петербург, 2025 |
Коллекция | Выпускные квалификационные работы ; Общая коллекция |
Тематика | генерация кода ; большая языковая модель ; статический анализатор кода ; поиск уязвимостей ; sast ; llm ; java ; juliet ; code generation ; large language model ; static code analyzer ; vulnerability search |
Тип документа | Выпускная квалификационная работа бакалавра |
Тип файла | |
Язык | Русский |
Уровень высшего образования | Бакалавриат |
Код специальности ФГОС | 10.03.01 |
Группа специальностей ФГОС | 100000 - Информационная безопасность |
DOI | 10.18720/SPBPU/3/2025/vr/vr25-925 |
Права доступа | Доступ по паролю из сети Интернет (чтение, печать, копирование) |
Дополнительно | Новинка |
Ключ записи | ru\spstu\vkr\35749 |
Дата создания записи | 30.07.2025 |
Разрешенные действия
–
Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети
Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети
Группа | Анонимные пользователи |
---|---|
Сеть | Интернет |
Целью работы является разработка и тестирование методов генерации правил для различных статических анализаторов с использованием больших языковых моделей для снижения требований к специалистам 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.
Место доступа | Группа пользователей | Действие |
---|---|---|
Локальная сеть ИБК СПбПУ | Все |
|
Интернет | Авторизованные пользователи СПбПУ |
|
Интернет | Анонимные пользователи |
|
Количество обращений: 1
За последние 30 дней: 1