Хакери часто використовують fuzzers для пошуку вразливостей програмного забезпечення, перевіряючи його на слабкі місця, які вони можуть використовувати. Розробники програмного забезпечення можуть використовувати fuzzer, щоб передбачити і захищати від цих видів атак.
Походження
Перший fuzzer був написаний на початку 1980-х років розробником Стівом Каппсом для перевірки слабкості програм для комп'ютера Macintosh. Він назвав свою програму "Мавпа", посилаючись на класичну приказку мавпи, що натискає випадкові клавіші на друкарській машинці на нескінченну кількість часу. Теорія полягає в тому, що, маючи достатньо часу, мавпа врешті-решт напише повні твори Шекспіра. Хоча цей підхід до тестування програмного забезпечення зазвичай називається "фьюзинг", його також називають "тестуванням мавп" через програму Capps.
Список Fuzzers
Методи Fuzzing можна використовувати для тестування програмного забезпечення, і багато fuzzers існують для конкретних цілей.
Нижче наведено список fuzzers, більшість з яких є відкритими джерелами, і багато хто з них все ще активно розвиваються.
Ім’я / URL-адреса фюзера | Опис |
---|---|
Засоби для дезінфекції Google | Група з чотирьох дезинфікуючих даних, розроблена в Google, які використовують fuzzing для виявлення помилок програми:
|
afl-fuzz | American Fuzzy Lop, інструмент, який використовує генетичні алгоритми для перевірки безпеки складених програм. |
Backfuzz | Протокол fuzzing інструментарій. |
BrundleFuzz | Розподілений fuzzer для Windows і Linux. |
CERT FOE | Failure Observation Engine, інструмент, розроблений CERT, який використовує мутаційні fuzzing для виявлення вразливостей у програмах Windows. |
CERTfuzz | Вихідний код CERT FOE. |
Чоронзон | Еволюційний фузсер. |
Diffy | Інструмент, розроблений Twitter для виявлення вразливостей у веб-службах. |
Запаморочення | Бібліотека Fuzzing для Python |
dfuzzer | Fuzzing інструмент для тестування процесів, які зв'язуються за допомогою D-Bus IPC і механізму RPC. |
dotdotpwn | Інструмент для тестування веб-додатків для виявлення вразливостей шляхів. |
Dranzer | Тестер fuzz для елементів керування ActiveX. |
EMFFuzzer | Покращений тест fuzz для тестування. |
Використовується | Розширення для GDB (GNU debugger), який аналізує виконувані файли Linux і класифікує їх помилки за ступенем суворості згідно з відомими експлуататами. Спочатку розроблений на CERT. |
Go-fuzz | Програвач fuzz для програм Go, який заповнює їх об'єкти випадковими значеннями. |
грр | Перетворює 32-бітні двійкові файли на 64-бітні, використовуючи їх як частину процесу. |
honggfuzz | Еволюційний, керований зворотним зв'язком fuzzer для апаратного та програмного забезпечення. |
HTTP / 2 Fuzzer | Фьюзер для додатків HTTP / 2, все ще доступний для завантаження, але більше не активно розвивається. |
Годор | "Трохи більше, ніж повністю німий" (груба сила) fuzzer. |
iFuzzer | Фюзер, написаний на Python, який використовує Mercurial і Valgrind. |
KEMUfuzzer | Фьюзер для віртуальних машин, що працюють на платформах емуляції QEMU, VMware, VirtualBox або BHOCS. |
KernelFuzzer | Фюзер для системних викликів ядра |
LibFuzzer | Бібліотека для процесу, еволюційного, керованого тестуванням fuzz. |
Netzob | Фьюзер для зворотньо-інженерних комунікаційних протоколів. |
Нейронний fuzzer | Фьюзер, який використовує машинне навчання (нейронні мережі) для виконання його тестування. |
Кошмар | Розподілений fuzzer з веб-засобами адміністрування. |
Pathgrind | Динамічний аналіз на основі шляхів для 32-розрядних додатків. |
Перфоратор | Фюзер, спеціально призначений для перевірки системного виклику perf_event_open () в ядрі Linux. |
Пульсар | Фьюзер, який "дізнається" протоколи. |
PyJFuzz | Піксеновий флузер JSON. |
QuickFuzz | Експериментальний розпилювач граматики, написаний на Haskell. |
Radamsa | Фьюзер загального призначення. |
Ренді | Простий fuzzer Python, який генерує випадкові вхідні дані для перевіреної програми. |
sfuzz | Простий пух. - Точно, як це звучить - простий фюзер. Входить до складу набору інструментів Kali Linux. |
skipfish | У Google розроблено сканер безпеки веб-додатків. |
syntribios | Автоматизований тестер fuzz для веб-API, написаний на Python і підтримуваний OpenStack Security Group. |
TriforceAFL | Повна система fuzzer, яка використовує QEMU. |
Wapiti | Сканер уразливості веб-додатків. |
Wfuzz | Перемикач для веб-додатків. |
zzuf | Детерміністичний, прозорий вхідний fuzzer, який випадковим чином змінює біти у вхідних операціях файлу. |
Нижче наведено fuzzing джгути або рамки, які допоможуть вам керувати тестуванням fuzz.
Fuzzing Framework | Опис |
---|---|
CERT BFF | BFF (Basic Fuzzing Framework), розроблений CERT, призначений для виявлення вразливостей у програмах Windows, MacOS і Linux. |
FuzzFlow | Fuzzing фреймворк в AngularJS. |
Fuzzinator | Структура для випадкового тестування fuzz. |
FuzzLabs | Загальноприйнята система тестування fuzz. |
Подрібнювач | Автоматизатор тестування fuzz / фреймворк для тестування веб-браузерів. |
Кіті | Структура тестування fuzz, написана на Python. |
ofuzz | Fuzzing framework, написаний на OCaml. |
Nodefuzz | Структура тестування fuzz для веб-браузерів, написана на nodejs. |
PassiveFuzzFrameworkOSX | Фьюзер для тестування вразливостей ядра macOS. |
Персиковий Fuzzer | Платформа для тестування fuzz, яка може "перевірити практично будь-яку систему з невідомими вразливостями". |
RamFuzz | Фьюзер для тестування окремих параметрів об'єктних методів. |
Sulley | "Повністю автоматизований і без нагляду, чистий Python" fuzzing рамки. |
FunFuzzer | Python fuzzing джгут для двигунів JavaScript і DOM-рендери, від Mozilla. |
Помилка, терміни програмування, умови безпеки, тестування програмного забезпечення