УДК 004

Фаззинг-тестирование для повышения безопасности ПО

Самойлов Александр Васильевич – студент Санкт-Петербургского государственного университета телекоммуникаций им. проф. М.А. Бонч-Бруевича

Аннотация: Данная научная статья посвящена исследованию и применению метода фаззинг-тестирования в контексте обеспечения безопасности программного обеспечения (ПО). Фаззинг, или генерация случайных входных данных, является эффективным инструментом для выявления уязвимостей и ошибок в программном коде. Статья рассматривает основные принципы фаззинга, его преимущества и ограничения. Особое внимание уделяется анализу результатов фаззинг-тестирования в контексте повышения общей безопасности ПО. Рассматриваются также современные тенденции в области фаззинга и его внедрения в различные этапы жизненного цикла разработки программного обеспечения. Результаты исследования предоставляют практические рекомендации для использования фаззинг-тестирования в качестве важного инструмента в стратегии обеспечения безопасности ПО.

Ключевые слова: фаззинг-тестирование, безопасность программного обеспечения, тестирование безопасности, автоматизированное тестирование, проактивная безопасность, тенденции в области тестирования ПО, программная инженерия.

Определение фаззинг – тестирования

Фаззинг-тестирование (или фазз-тестирование) представляет собой метод тестирования программного обеспечения, который основан на генерации случайных или полуслучайных входных данных с целью выявления уязвимостей и ошибок в программном коде. Этот метод позволяет проверить, как программа реагирует на неожиданные или некорректные данные, что может помочь выявить потенциальные угрозы безопасности.

Процедура фаззинг-тестирования имеет несколько основных целей, ориентированных на выявление уязвимостей и обеспечение повышенного уровня безопасности программного обеспечения. Вот основные цели фаззинг-тестирования:

  1. Выявление неизвестных уязвимостей: Главной целью фаззинг-тестирования является обнаружение уязвимостей, которые могли быть неизвестны разработчикам. Это включает в себя поиск потенциальных слабых мест в программном коде, которые могут быть использованы злоумышленниками для атак.
  2. Тестирование на отказ в обслуживании (DoS) и отказ в обслуживании в результате выполнения кода (RCE): Фаззеры активно тестируют программное обеспечение на устойчивость к атакам типа DoS и RCE, выявляя возможные точки отказа и моменты, в которых злоумышленник может внедрить и выполнить свой код.
  3. Обеспечение безопасности в рамках жизненного цикла разработки ПО: Фаззинг-тестирование обеспечивает инструмент для раннего выявления и устранения уязвимостей в ходе разработки ПО, что способствует созданию более безопасных продуктов.

В целом, фаззинг-тестирование направлено на создание более безопасных и устойчивых программных продуктов путем выявления и устранения потенциальных проблем на ранних этапах разработки и тестирования.

Основные принципы фаззинг-тестирования

  1. Генерация случайных входных данных: Фаззер создает большое количество случайных или частично случайных данных, которые затем подаются на вход программе.
  2. Мониторинг поведения программы: Программа отслеживает реакцию тестируемого ПО на входные данные, анализируя выходные данные, логи, возможные ошибки и сбои.
  3. Выявление уязвимостей: Фаззер ищет аномалии в поведении программы, такие как отказы в обслуживании, переполнения буфера, утечки памяти и другие признаки, которые могут указывать на потенциальные уязвимости.

Преимущества фаззинг-тестирования

  1. Обнаружение неизвестных уязвимостей: Фаззеры способны выявлять уязвимости, которые не были известны разработчикам.
  2. Эффективность: Фаззинг может обеспечить высокий уровень покрытия кода и выявить множество различных типов уязвимостей за короткое время.
  3. Автоматизация: Процесс фаззинг-тестирования может быть автоматизирован, что позволяет быстро интегрировать его в процесс разработки.

Заключение

Подводя итог, стоит отметить, что фаззинг-тестирование не лишено ограничений. Оно может создавать ложные срабатывания, требует больших вычислительных ресурсов, и не всегда гарантирует полное обнаружение всех видов уязвимостей.

В целом, фаззинг-тестирование является важным инструментом в арсенале методов обеспечения безопасности ПО, позволяя выявлять и устранять уязвимости на ранних этапах разработки, что способствует созданию более надежных и безопасных программных продуктов.

Список литературы
  1. Кушнир Д. В., Шемякин С. Н. ОСОБЕННОСТИ ФОРМИРОВАНИЯ КЛЮЧЕВЫХ ДАННЫХ В КВАНТОВОЙ КРИПТОГРАФИЧЕСКОЙ СЕТИ // Актуальные проблемы инфотелекоммуникаций в науке и образовании (АПИНО 2021). – 2021. – С. 560-564.
  2. Рыжков А. А., Цветков А. Ю. РАЗРАБОТКА ПРОГРАММНОГО КОМПЛЕКСА ПО АУДИТУ УСТРОЙСТВ В СЕТЯХ // Актуальные проблемы инфотелекоммуникаций в науке и образовании (АПИНО 2020). – 2020. – С. 779-782.
  3. Волкогонов В. Н., Гельфанд А. М., Карамова М. Р. Обеспечение безопасности персональных данных при их обработке в информационных системах персональных данных // Актуальные проблемы инфотелекоммуникаций в науке и образовании (АПИНО 2019). – 2019. – С. 266-270.
  4. Гельфанд А.М., Пешков А.И., Фадеев И.И., Лансере Н.Н., СИСТЕМА ЭЛЕКТРОННОГО ДОКУМЕНТООБОРОТА, Заявка № 2021669214 от 26.11.2021.
  5. Красов А. В. и др. Построение доверенной вычислительной среды. – 2019
  6. Темченко В. И., Цветков А. Ю. Проектирование модели информационной безопасности в операционной системе // Актуальные проблемы инфотелекоммуникаций в науке и образовании (АПИНО 2019). – 2019. – С. 740-745.
  7. Пестов И. Е., Кошелева С. А. АТАКИ НА ОБЛАЧНУЮ ИНФРАСТРУКТУРУ // Инновационные решения социальных, экономических и технологических проблем современного общества. – 2021. – С. 113-115.
  8. Синельщиков В. С., Цветков А. Ю. ЗАЩИТА ПЕРСОНАЛЬНЫХ ДАННЫХ НА ПРЕДПРИЯТИИ // Актуальные проблемы инфотелекоммуникаций в науке и образовании (АПИНО 2021). – 2021. – С. 653-657.

Интересная статья? Поделись ей с другими: