О Fuzzing-тестировании
282 subscribers
12 photos
1 file
22 links
Иногда случайно сгенерированные данные методом фаззинга выглядят как читабельный пост и находят пути к читателю

По всем вопросам: @dukebarman
Download Telegram
Недавно security-команда Google в своем блоге рассказала о развитии и планах на oss-fuzz-gen. Об этом фреймворке и подобным решениям рассказывал на Дефкон НН, слайды с которого как раз опубликованы выше.

Напомню как работал фреймворк на момент релиза в опенсорс:

1. LLM генерирует черновик фаззинг-теста для указанной функции, читай пишет тест
2. Попытка запустить фаззинг-тест и если есть ошибки компиляции, отправляем запрос в LLM на как исправить и повторяем пока фаззинг-тест не запустится
3. Первый пробный запуск для поиска проблем уже в рантайме
4. Скорректированный фаззинг-тест отправляем на длительное фаззинг-тестирование, в тот же ClusterFuzz

В идеальной схеме такого фреймворка еще должен быть 5й пункт — исправление найденных уязвимостей. По словам команды у них есть уже наработки по этому пункту, но пока не готовы поделиться, поэтому советую доклад от Романа «Исправлять — не искать. Разработка и внедрение AI-ассиcтента для исправления уязвимоcтей в коде» с прошедшего Highload 2024. Хотя за прошедшее время они улучшили 1-4 пункты, в частности в 4 добавился триаж и выглядит он интересн, назвал бы промежуточным шагом между 4 и 5:

LLM Response: Crash is caused by bug in fuzz driver.

The fuzz driver creates a vector of iovec structures, each pointing to a chunk of memory owned by the FuzzedDataProvider. However, the data_chunk vector, which holds the actual data pointed to by iov_base, is deallocated at the end of each fuzzer iteration when it goes out of scope. This leaves the iov_base pointers dangling. When snappy::CompressFromIOVec tries to access the memory pointed to by these dangling pointers, a heap-use-after-free occurs



Еще было интересно узнать текущие результаты использования 

- В 272 C/C++ проектах увеличилось покрытие фаззинг. В одном проекте покрытие увеличилось в 7000% раз
- 26 найденных уязвимостей
- Критическая уязвимость в OpenSSL - CVE-2024-9143

Уязвимость в OpenSSL выделяется тем, что это первая уязвимость найденная с помощью LLM, читай их фреймворка, в критическом ПО и которое «давно всеми проверяется и тестируется».
🔥9👍2👻1
Думал подождать Нового года, но раз тут достигли красивой IT-цифры — первых 256 подписчиков (за что всем огромнейшее Спасибо!), то решил, что самое время. Да и есть те, кто нарядил ёлочку, украсил аватарки и логотипы проектов и прочее уже 1-го декабря.

Зайчик из AFL мне, конечно, импонирует, а уж сколько находок во время тестирования помог найти — и не счесть, но хотелось что-то своё. В общем, взял нафаззеную мешанину идей, а Аня из @onoividno воплотила в жизнь. Теперь у канала есть маскот Фазя со своим набором стикеров и emoji. Набросков ещё хватает, поэтому стикерсет будет пополняться, но идеи приветствуются. :)

P. S. Когда-нибудь расскажу историю появления этого персонажа, некоторые даже скажут — грустную... Вышло в некотором роде символично.
🍾543🔥2🤡2🎃1
С Наступающими! В уходящем году посты стали появляться конечно «чаще», но не так, как хотелось бы, а ведь в сфере фаззинг-тестирования происходит много интересного и полезного. Поэтому отличный повод дать обещание исправиться и писать чаще. К тому же черновики ждут! 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
19🍾11