Детальная информация

Название Метод анализа безопасности программ на языке Golang на основе графовой нейронной сети: выпускная квалификационная работа специалиста: направление 10.05.03 «Информационная безопасность автоматизированных систем» ; образовательная программа 10.05.03_08 «Анализ безопасности информационных систем»
Авторы Дидковский Максим Дмитриевич
Научный руководитель Жуковский Евгений Владимирович
Другие авторы Кубрин Георгий Сергеевич
Организация Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения Санкт-Петербург, 2025
Коллекция Выпускные квалификационные работы ; Общая коллекция
Тематика графовые нейронные сети ; поиск уязвимостей ; Golang ; CWE-22 ; статический анализ кода ; graph neural networks ; vulnerability search ; static code analysis
Тип документа Выпускная квалификационная работа специалиста
Тип файла PDF
Язык Русский
Уровень высшего образования Специалитет
Код специальности ФГОС 10.05.03
Группа специальностей ФГОС 100000 - Информационная безопасность
DOI 10.18720/SPBPU/3/2025/vr/vr25-835
Права доступа Доступ по паролю из сети Интернет (чтение, печать)
Дополнительно Новинка
Ключ записи ru\spstu\vkr\34823
Дата создания записи 02.07.2025

Разрешенные действия

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа Анонимные пользователи
Сеть Интернет

Целью работы является разработка метода анализа безопасности программ на языке Golang на основе графовой нейронной сети. Объектом исследования является код программного обеспечения на языке Golang, представленный в виде графовых структур. Задачи, решаемые в ходе исследования: 1. Проанализировать существующие подходы для проверки безопасности программ на основе графовой нейронной сети. 2. Классифицировать существующие логические ошибки в языке программирования Golang в соответствии с решаемой относительно графа задачи. 3. Сформировать выборку уязвимого кода. 4. Разработать метод анализа безопасности программ на языке Golang на основе графовой нейронной сети. 5. Выполнить программную реализацию разработанного метода. 6. Оценить точность работы созданного средства и сравнить реализованное средство с другими средствами статического анализа. В ходе работы было исследовано графовое представление кода на языке Golang. Были проанализированы современные исследования в области анализа безопасности программного обеспечения на основе графовой нейронной сети. В результате работы было разработано средство поиска программных дефектов (CWE-22) в коде на языке Golang, была продемонстрирована эффективность средства. Был сделан вывод, что разработанное средство обладает преимуществом перед аналогами, однако имеет и проблемы, проявляющиеся в виде большого количества FP результатов. Полученные результаты могут быть использованы в качестве основы для разработки средства для анализа других программных дефектов, либо для анализа рассматриваемой уязвимости, но используя другое графовое представление. Для достижения данных результатов была разработана программа, которая выполняет поиск соответствия CWE для определённой CVE. В дополнение к этому была разработана программа, переводящая код на языке Golang в графовое представление, и программа, реализующая само средство для анализа.

The purpose of the study is to develop a method for analyzing the security of Golang programs based on a graph neural network. The object of the work is the software code in the Golang language, presented in the form of graph structures. The research sets the following goals: 1. To analyze existing approaches for checking the security of programs based on a graph neural network. 2. Classify existing logical errors in the Golang programming language according to the problem being solved relative to the graph. 3. Collect a sample of vulnerable code. 4. To develop a method for analyzing the security of Golang programs based on a graph neural network. 5. Perform a software implementation of the developed method. 6. Evaluate the accuracy of the created tool and compare the implemented tool with other static analysis tools. During the work, the graph representation of the code in the Golang language was studied. Modern studies in the field of software security analysis based on a graph neural network was analyzed. As a result of the work, a software defect finder (CWE-22) was developed in Golang code, and the effectiveness of the tool was demonstrated. It was concluded that the developed tool has an advantage over its analogues, but it also has problems that manifest themselves in the form of a large number of FP results. The results obtained can be used as a basis for developing tools for analyzing other software defects, or for analyzing the vulnerability in question, but using a different graph representation. To achieve these results, a program has been developed that search for CWE compliance for a specific CVE. In addition, a program has been developed that translates Golang code into a graph representation, and a program that implements the analysis tool itself.

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все
Прочитать Печать
Интернет Авторизованные пользователи СПбПУ
Прочитать Печать
Интернет Анонимные пользователи
  • РЕФЕРАТ
  • ABSTRACT
  • Содержание
  • Определения, обозначения и сокращения
  • введение
  • 1 Анализ существующих методов представления кода
    • 1.1 Задачи на графах
    • 1.2 Существующие методы представления кода
    • 1.3 Выводы
  • 2 Анализ графовых моделей нейронной сети
    • 2.1 Разработка GNN модели для конкретной задачи на конкретном графе
    • 2.2 Парадигмы построения графовых свёрток
      • 2.2.1 Пространственная парадигма
      • 2.2.2 Спектральная парадигма
    • 2.3 Существующие подходы для анализа уязвимостей
      • 2.3.1 DeepTective
      • 2.3.2 VulEye
    • 2.4 Сравнение существующих подходов
    • 2.5 Выводы
  • 3 Анализ характерных уязвимостей для языка Go
    • 3.1 CWE–798 – Использование жёстко запрограммированных учётных данных
    • 3.2 CWE–200 – Раскрытие конфиденциальной информации несанкционированному субъекту
    • 3.3 CWE–242 – Использование опасной по своей сути функции
    • 3.4 CWE–703 – Неправильная проверка или обработка условий с исключениями
    • 3.5 CWE–322 – Обмен ключами без аутентификации объекта
    • 3.6 CWE–88 – Неправильная нейтрализация разделителей аргументов в команде («внедрение аргументов»)
    • 3.7 CWE–190 – Целочисленное переполнение
    • 3.8 CWE–400 – Бесконтрольное потребление ресурсов
    • 3.9 CWE–89 – Неправильная нейтрализация специальных элементов, используемых в команде SQL («SQL-инъекция»)
    • 3.10 CWE–79 – Неправильная нейтрализация ввода во время создания веб-страницы («Межсайтовый скриптинг»)
    • 3.11 CWE–78 – Неправильная нейтрализация специальных элементов, используемых в команде ОС («Внедрение команды ОС»)
    • 3.12 CWE–276 – Неправильные разрешения по умолчанию
    • 3.13 CWE–377 – Небезопасный временный файл
    • 3.14 CWE–22 – Неправильное ограничение пути к ограниченному каталогу («Обход пути»)
    • 3.15 CWE-327 – Использование сломанного или рискованного криптографического алгоритма
    • 3.16 CWE–295 – Неправильная проверка сертификата
    • 3.17 CWE–338 – Использование криптографически слабого генератора псевдослучайных чисел (PRNG)
    • 3.18 CWE–326 – Недостаточная надёжность шифрования
    • 3.19 CWE–321 – Использование жёстко закодированного криптографического ключа
    • 3.20 CWE–118 – Неправильный доступ к индексируемому ресурсу («Ошибка диапазона»)
    • 3.21 Обобщение классов уязвимостей и задач на графе
    • 3.22 Выводы
  • 4 Формирование выборки уязвимого кода
    • 4.1 Выводы
  • 5 Разработка метода анализа безопасности программ на языке Golang на основе графовой нейронной сети
    • 5.1 Описание прототипа
    • 5.2 Результаты применения разработанного метода
    • 5.3 Выводы
  • 6 Тестирование разработанного метода
    • 6.1 Сравнение с другими средствами для анализа
    • 6.2 Выводы
  • заключение
  • список использованных источников

Количество обращений: 0 
За последние 30 дней: 0

Подробная статистика