WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Фа́ззинг (англ. fuzzing) — техника тестирования программного обеспечения, часто автоматическая или полуавтоматическая, заключающая в передаче приложению на вход неправильных, неожиданных или случайных данных. Предметом интереса являются падения и зависания, нарушения внутренней логики и проверок в коде приложения, утечки памяти, вызванные такими данными на входе. Фаззинг является разновидностью выборочного тестирования (англ. random testing), часто используемого для проверки проблем безопасности в программном обеспечении и компьютерных системах.

При проверке безопасности наибольший интерес вызывают проверки на границе доверия[1]. Например, намного важнее провести фаззинг-тестирование формы загрузки файлов неавторизованным пользователем, чем загрузку конфигурационного файла авторизованным привилегированным пользователем.

История

Случайные данные применялись при тестировании приложений и раньше. К примеру, приложение «Обезьяна» (англ. The Monkey) под Mac OS, созданное Стивом Капсом ещё в 1983 году, генерировала случайные события, которые направлялись на вход тестируемым программам для поиска багов. Оно использовалось, в частности, при тестировании MacPaint[en][2].

Термин «fuzz» появился в 1988 году на семинаре Бартона Миллера в Университете Висконсина[3], во время которого была создана простая программа fuzzer, предназначенная для командной строки, с целью тестирования надежности приложений под Unix. Оно генерировало случайные данные, которые передавались как параметры для других программ до тех пор, пока они не останавливались с ошибкой. Это стало не только первым в истории тестированием с использованием случайных неструктурированных данных, но и первым специализированным приложением для тестирования широкого круга программ под разнообразные операционные системы, и с систематическим анализом типов ошибок, возникающих при таком тестировании. Создатели проекта открыли исходные коды своего приложения, а также публичный доступ к процедурам тестирования и сырым результатам. Тест был повторен в 1995 году — приложение доработали для тестирования приложений с GUI, сетевых протоколов и системных библиотек под Mac OS и Windows.

Стоит отметить, что схожие техники тестирования существовали задолго до появления термина и формализации процедуры. Так, известно, что Джерри Вейнберг использовал набор карт со случайными числами, чтобы передавать их на вход программ ещё в 1950-х годах.[4]

В 1991 году было выпущено приложение crashme, созданное для тестирования надежности программ под Unix и Unix-подобные операционные системы путем исполнения случайного набора процессорных инструкций[5].

В настоящее время фаззинг-тестирование является составной частью большинства проверок безопасности и надёжности программного обеспечения и компьютерных систем.

См. также

Примечания

  1. John Neystadt. Automated Penetration Testing with White-Box Fuzzing. Microsoft (February 2008). Проверено 14 мая 2009.
  2. Macintosh Stories: Monkey Lives. Folklore.org (22 февраля 1999). Проверено 28 мая 2010.
  3. Fuzzing: Brute Force Vulnerability Discovery. — Addison-Wesley, 2007. ISBN 0-321-44611-9.
  4. Gerald M. Weinberg. Fuzz Testing and Fuzz History. Проверено 6 февраля 2017.
  5. crashme. CodePlex. Проверено 26 июня 2012.

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии