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

Название Фаззинг тестирование исходного кода с применением нейронных сетей для обнаружения программных уязвимостей: выпускная квалификационная работа бакалавра: направление 01.03.02 «Прикладная математика и информатика» ; образовательная программа 01.03.02_02 «Системное программирование»
Авторы Фисюк Алексей Юрьевич
Научный руководитель Беляев Сергей Юрьевич
Организация Санкт-Петербургский политехнический университет Петра Великого. Физико-механический институт
Выходные сведения Санкт-Петербург, 2023
Коллекция Выпускные квалификационные работы; Общая коллекция
Тематика фаззинг тестирование; нейронные сети; градиентный спуск; покрытие кода; American Fuzzy Loop (AFL); Tensorflow; Keras; Linux; fuzzing; neural networks; gradient descent; test coverage
Тип документа Выпускная квалификационная работа бакалавра
Тип файла PDF
Язык Русский
Уровень высшего образования Бакалавриат
Код специальности ФГОС 01.03.02
Группа специальностей ФГОС 010000 - Математика и механика
DOI 10.18720/SPBPU/3/2023/vr/vr23-4625
Права доступа Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи ru\spstu\vkr\25382
Дата создания записи 07.08.2023

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

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

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

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

Фаззинг тестирование является стандартным методом поиска уязвимостей программного обеспечения. Однако даже самые современные программные средства не очень эффективны в поиске трудноизвлекаемых программных ошибок. Большинство популярных фаззеров используют эволюционное методы для генерации входных данных, которые могут вызвать различные ошибки. Такие эволюционные алгоритмы быстры и просты в реализации, но часто застревают в последовательностях случайных мутаций. В данной работе изложена сущность подхода к генерации входных данных с применением нейронных сетей, которые могут обучаться и увеличивать покрытие кода программ со сложным ветвлением. Однако применение градиентных методов напрямую неприменимо к фаззингу, так как поведение программ имеет множество разрывов. Эту проблему предлагается решить с помощью аппроксимации дискретного поведения программы непрерывной функцией. Тестирование проводилось на 4 программах с открытым исходным кодом из набора данных LAVA-M с искусственно внесенными уязвимостями. Реализованный метод показал отличные результаты относительно трех рассматриваемых Фаззеров: AFL, AFL++, AFLSmart.

Fuzzing testing is a standard method of finding software vulnerabilities. However, even the most modern software tools are not very effective in finding hard-to-recover software errors. Most popular fuzzers use evolutionary methods to generate input data that can cause various errors. Such evolutionary algorithms are fast and easy to implement, but they often get stuck in sequences of random mutations. This paper describes the essence of the approach to generating input data using neural networks that can be trained and increase the code coverage of programs with complex branching. However, the use of gradient methods is not directly applicable to fuzzing, since the behavior of programs has many discontinuities. It is proposed to solve this problem by approximating the discrete behavior of the program by a continuous function. Testing was carried out on 4 open source programs from the LAVA-M dataset with artificially introduced vulnerabilities. The implemented method showed excellent results with respect to the tree considered Fuzzers: AFL, AFL++, AFLSmart.

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все
Прочитать Печать Загрузить
Интернет Авторизованные пользователи СПбПУ
Прочитать Печать Загрузить
Интернет Анонимные пользователи

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

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