Детальная информация
Название | Фаззинг тестирование исходного кода с применением нейронных сетей для обнаружения программных уязвимостей: выпускная квалификационная работа бакалавра: направление 01.03.02 «Прикладная математика и информатика» ; образовательная программа 01.03.02_02 «Системное программирование» |
---|---|
Авторы | Фисюк Алексей Юрьевич |
Научный руководитель | Беляев Сергей Юрьевич |
Организация | Санкт-Петербургский политехнический университет Петра Великого. Физико-механический институт |
Выходные сведения | Санкт-Петербург, 2023 |
Коллекция | Выпускные квалификационные работы; Общая коллекция |
Тематика | фаззинг тестирование; нейронные сети; градиентный спуск; покрытие кода; American Fuzzy Loop (AFL); Tensorflow; Keras; Linux; fuzzing; neural networks; gradient descent; test coverage |
Тип документа | Выпускная квалификационная работа бакалавра |
Тип файла | |
Язык | Русский |
Уровень высшего образования | Бакалавриат |
Код специальности ФГОС | 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