Яка функція LibFuzzer?
LibFuzzer пов’язано з тестованою бібліотекою та обробляє всі вибрані введення, мутації та звіти про збої, які відбуваються під час сеансу фаззингу. Дезінфікуючі засоби LLVM використовуються для виявлення пошкоджень пам’яті та показників покриття коду.
Фаззинг — це використовувана техніка забезпечення якості для виявлення помилок кодування та вразливості безпеки в програмному забезпеченні, операційних системах або мережах. Він працює, намагаючись призвести до збою системи або викликати помилки, надаючи великий обсяг випадкових вхідних даних.
Для AFL потрібен корпус на диску, libFuzzer може працювати без корпусу, але в більшості випадків у реальному житті все одно буде використовуватися корпус. Як щодо створення вхідних даних? Це теж випадково? Генерація вхідних даних є випадковим процесом, але в libFuzzer вона частково керується інформацією, зібраною під час попередніх запусків.
4096 байтів За замовчуванням libFuzzer передбачає, що всі вхідні дані є 4096 байт або менше. Щоб змінити це, скористайтеся -max_len=N або запустіть із непорожнім початковим корпусом. libFuzzer спробував щонайменше 272167 вводів ( #272167 ) і виявив 5 вводів загальною кількістю 201 байт ( corp: 5/201b ), які разом охоплюють 7 точок покриття ( cov: 7 ).');})();(function( ){window.jsl.dh('PwrtZqXNKuOZi-gPgbudYA__35','
Код виходу (за замовчуванням 77), який використовується, якщо libFuzzer повідомляє тайм-аут. Код виходу (за замовчуванням 77), який використовується, якщо сам libFuzzer (не дезінфікуючий засіб) повідомляє про помилку (витік, OOM тощо). Якщо позитивний, вказує максимальний загальний час у секундах для запуску фаззера. Якщо 0 (за замовчуванням), запускати необмежений час.
Фазер – це програма, яка автоматично вводить напіввипадкові дані в програму/стек і виявляє помилки. Частина генерації даних складається з генераторів, а виявлення вразливостей залежить від інструментів налагодження.