ClusterFuzzLite, система для організації тестів фаззингу коду

Останнім часом Google представив через допис у блозі проект ClusterFuzzLite, що дозволяє організувати фаззінг-тести коду для раннього виявлення потенційних уразливостей на етапі роботи систем безперервної інтеграції.

Наразі ClusterFuzz можна використовувати для автоматизації fuzz-тестування запитів на витяг у GitHub Actions, Google Cloud Build і Prow, але очікується, що в майбутньому він буде сумісний з іншими системами IC. Проект заснований на платформі ClusterFuzz, створеній для координації роботи кластерів фаззингу, і поширюється за ліцензією Apache 2.0.

Слід зазначити, що після впровадження Google сервісу OSS-Fuzz у 2016 році понад 500 великих проектів із відкритим кодом було прийнято до програми безперервного фаззінгового тестування. За результатами проведених перевірок було усунено понад 6.500 підтверджених уразливостей та виправлено понад 21.000 помилок.

Про ClusterFuzzLite

ClusterFuzzLite продовжує розробляти механізми фаззингу з можливістю визначати проблеми раніше на етапі експертної оцінки запропонованих змін. ClusterFuzzLite вже введено в процеси перегляду змін у проектах systemd і curl, і це дозволило виявити помилки, які не були виявлені в статичних аналізаторах і лінтерах, які використовувалися на початковому етапі верифікації нового коду.

Сьогодні ми раді оголосити про ClusterFuzzLite, рішення для безперервної фаззінгу, яке працює як частина робочих процесів CI/CD, щоб швидше, ніж будь-коли, знаходити вразливі місця. За допомогою всього кількох рядків коду користувачі GitHub можуть інтегрувати ClusterFuzzLite у свій робочий процес і fuzz pull-запити, щоб виявити помилки до їх появи, покращуючи загальну безпеку ланцюга постачання програмного забезпечення.
З моменту його запуску в 2016 році понад 500 критичних проектів з відкритим кодом було інтегровано в програму Google OSS-Fuzz, що призвело до виправлення понад 6.500 вразливостей і 21.000 функціональних помилок. ClusterFuzzLite йде рука об руку з OSS-Fuzz, виявляючи помилки регресії набагато раніше в процесі розробки.

ClusterFuzzLite підтримує перевірку проекту на C, C ++, Java (та інші мови на основі JVM), Go, Python, Rust і Swift. Тести фаззингу проводяться за допомогою двигуна LibFuzzer. Інструменти AddressSanitizer, MemorySanitizer і UBSan (UndefinedBehaviorSanitizer) також можна викликати для виявлення помилок і аномалій пам’яті.

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

Великі проекти, включаючи systemd і curlya, використовують ClusterFuzzLite під час перегляду коду, з позитивними результатами. За словами Даніеля Стенберга, автора curl, «Коли люди-рецензенти погоджуються та схвалюють код, а їхні статичні аналізатори коду та лінтери більше не можуть виявляти жодних проблем, фаззінг – це те, що виводить вас на наступний рівень зрілості та надійності коду. OSS-Fuzz і ClusterFuzzLite допомагають нам підтримувати curl як якісний проект цілий день, кожен день і під час кожного заходу.

Треба пам’ятати, що фазінг-тести генерують потік всіляких випадкових комбінацій вхідних даних, близьких до фактичних даних (наприклад, сторінки html із випадковими параметрами тегів, файли чи зображення з ненормальними заголовками тощо) і виправляють можливі збої в процесі.

Якщо будь-яка послідовність дає збій або не відповідає очікуваній відповіді, така поведінка, швидше за все, вказує на помилку або вразливість.

В кінці кінців якщо вам цікаво дізнатись більше про це, Ви можете перевірити деталі У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.