Що таке тест Fuzz?

Fuzz Testing вважається типом тестування, в якому або для автоматичного, або напівавтоматизованого методів тестування необхідні виявлення помилок в кодуванні, а також лазівки в захисті або в програмному забезпеченні, або в операційних системах, забезпечуючи введення випадкових даних до системи. Ці випадкові дані називаються FUZZ. Зрештою, це має місце, система перевіряється на різні типи винятків, наприклад, коли система виходить з ладу або навіть вбудований код виходить з ладу і багато іншого. Це спочатку розробив хтось на ім'я Бартон Міллер, який був з університету Вісконсіна. Його також називають нечітким, вважається видом тестування безпеки.

Навіщо нам потрібно тестування Fuzz?

  • Часто тестування Fuzz має можливість виявити найсерйозніші помилки безпеки в системі.
  • Він забезпечує набагато ефективніші результати, коли ми використовуємо його разом із тестуванням Black Box, Beta Testing або різними методами налагодження.
  • Він також необхідний для перевірки вразливості програмного забезпечення. Це також реально економічно вигідна методика тестування.
  • Вважається однією технікою тестування чорного ящика. Це також один з найбільш використовуваних методів хакерів, який виявляє вразливість системи.

Як проводиться нечітке тестування?

Етапи нечіткого тестування включають основні етапи тестування -

Крок 1 : Розпізнавання цільової системи.

Крок 2 : Розпізнавання входів.

Крок 3 : Генерування нечітких даних.

Крок 4 : Виконання тесту з використанням нечітких даних.

Крок 5 : Моніторинг поведінки системи.

Крок 6 : Реєстрація дефектів.

Приклади Фузерів

Як показано нижче, є багато пушок:

  • Мутації на основі мутацій: Ці пуховики змінюють наявні зразки даних, щоб зробити свіжі дані тесту. Це досить просто, як і прямий метод, він починається разом з розумним протоколом і продовжує змішувати кожен байт або навіть як файл.
  • Фейзери на основі покоління: вони визначають нові дані, залежно від введення моделі. Він починає генерацію входу з нуля, залежно від специфікації.
  • Fuzzer на основі протоколу: Найбільш успішним вважається нечіткий фактор, який отримав досить пояснені знання щодо формату протоколу, який потрібно перевірити. Це розуміння залежить від конкретизації. Він включає в себе написання масиву специфікацій всередині інструменту, а потім використовує методику на основі моделі. Він також відомий як тестування синтаксису або граматичне тестування або надійність тестування.

У нас є два обмеження цього протоколу на основі плавлення, що знаходиться як під:

  1. Ми не можемо продовжувати тестування до тих пір, поки специфікація не буде досить зрілою.
  2. Існує багато протоколів, які є розширенням опублікованих протоколів. У випадку, якщо нечітке тестування базується на цих технічних характеристиках, які публікуються, то покриття цих тестів буде обмежене.

Існує найпростіша форма тестування нечітких даних, яка надсилає випадкове введення в програмне забезпечення у вигляді пакетів протоколів або навіть у формі події. Цей особливий спосіб передачі випадкового введення вважається досить потужним для пошуку помилок в різних додатках, а також службах. Є й інші методи, які доступні, а також їх досить легко здійснити.

Типи помилок, виявлені тестуванням Fuzz

  • Витоки пам’яті та збої у твердженні: Цей метод широко використовується у широких програмах, де помилки впливають на безпеку пам’яті, яка вважається серйозною вразливістю.
  • Неправильний ввід: Фьюзери необхідні для генерування недійсного вводу, необхідного для тестування процедур керування помилками при нечіткому тестуванні. Крім того, це цілком необхідно для програмного забезпечення, яке не контролює вхід. Запікання вважається способом автоматизації негативного тестування.
  • Правильність помилок: нечітке потрібне для виявлення декількох помилок «коректності», таких як пошкоджена база даних або погані результати пошуку та багато іншого.

Інструменти тестування Fuzz

Інструменти, які є досить корисними для безпеки в Інтернеті, також можуть значною мірою використовуватись у нечіткому тестуванні або нечіткості. Наприклад, Peach Fuzzer, Burp Suite тощо.

1. Персиковий пуховик

Цей інструмент забезпечує набагато більш надійне та безпечне покриття порівняно зі сканером. Якщо ми говоримо про інші інструменти тестування, вони, однак, мають можливість шукати лише відомі загрози. Але Peach Fuzzer змушує користувачів виявляти відомі, а також невідомі загрози.

2. Спайкс-проксі

Спайк вважається інструментом професійного рівня, який шукає вразливості на рівні додатків у різних веб-додатках. SPIKE Proxy розглядає лише основи, такі як SQL Injection або міжсайтовий сценарій. Однак це повністю відкрита інфраструктура Python. SPIKE Proxy присутній як для Linux, так і для Windows.

Переваги

  • Помилки, виявлені під час невідомих тестів, часто вважаються серйозними, і здебільшого його використовують хакери, які складаються з збоїв, витоку пам'яті або необробленого винятку та багато іншого.
  • Якщо будь-яку помилку або помилку не вдалося виявити тестерами через обмеження часу та ресурсів, то ці помилки можна виявити при тестуванні Fuzz.

Недоліки

  • Само по собі нечітка тестування сама по собі не здатна дати загальний сценарій усіх загроз безпеці.
  • Крім того, нечітка перевірка вважається не дуже ефективною при роботі з помилками безпеки, які не спричиняють збоїв програми, таких як віруси, глисти тощо.
  • Він має можливість виявляти лише прості загрози.
  • Для того, щоб дати ефективну ефективність, потрібен значний час.

Висновок

Таким чином, можна зробити висновок, що в інженерній програмі це тестування, тобто тест Fuzz, демонструє наявність помилок у будь-якій програмі. Це тестування не забезпечує повне виявлення помилок у будь-якій програмі. Однак якщо ми використовуємо цю техніку Fuzz, вона гарантує, що додаток є досить надійним, а також безпечною причиною є те, що тестова перевірка дуже допомагає у виявленні багатьох загальних уразливостей.

Рекомендовані статті

Це посібник з тестів Fuzz. Тут ми обговорюємо, що таке нечітке тестування? інструменти тестування, переваги та недоліки відповідно. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Бенчмарк Тестування
  2. Види тестування програмного забезпечення
  3. Що таке тестування на юзабіліті?
  4. Статичне тестування