Недавно security-команда Google в своем блоге рассказала о развитии и планах на oss-fuzz-gen. Об этом фреймворке и подобным решениям рассказывал на Дефкон НН, слайды с которого как раз опубликованы выше.
Напомню как работал фреймворк на момент релиза в опенсорс:
1. LLM генерирует черновик фаззинг-теста для указанной функции, читай пишет тест
2. Попытка запустить фаззинг-тест и если есть ошибки компиляции, отправляем запрос в LLM на как исправить и повторяем пока фаззинг-тест не запустится
3. Первый пробный запуск для поиска проблем уже в рантайме
4. Скорректированный фаззинг-тест отправляем на длительное фаззинг-тестирование, в тот же ClusterFuzz
В идеальной схеме такого фреймворка еще должен быть 5й пункт — исправление найденных уязвимостей. По словам команды у них есть уже наработки по этому пункту, но пока не готовы поделиться, поэтому советую доклад от Романа «Исправлять — не искать. Разработка и внедрение AI-ассиcтента для исправления уязвимоcтей в коде» с прошедшего Highload 2024. Хотя за прошедшее время они улучшили 1-4 пункты, в частности в 4 добавился триаж и выглядит он интересн, назвал бы промежуточным шагом между 4 и 5:
Еще было интересно узнать текущие результаты использования
- В 272 C/C++ проектах увеличилось покрытие фаззинг. В одном проекте покрытие увеличилось в 7000% раз
- 26 найденных уязвимостей
- Критическая уязвимость в OpenSSL - CVE-2024-9143
Уязвимость в OpenSSL выделяется тем, что это первая уязвимость найденная с помощью LLM, читай их фреймворка, в критическом ПО и которое «давно всеми проверяется и тестируется».
Напомню как работал фреймворк на момент релиза в опенсорс:
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, читай их фреймворка, в критическом ПО и которое «давно всеми проверяется и тестируется».
Google Online Security Blog
Leveling Up Fuzzing: Finding more vulnerabilities with AI
Posted by Oliver Chang, Dongge Liu and Jonathan Metzman, Google Open Source Security Team Recently, OSS-Fuzz reported 26 new vulnerabilities...
🔥9👍2👻1
Ребята из Cyber Media "поймали" после очередного митапа и позадавали разные вопросы про фаззинг-тестирование: от что это вообще такое до как попробовать — https://t.iss.one/secmedia/2338 или ссылка сразу на интервью. Enjoy!
Telegram
Cyber Media
🗣 Борис Рютин, Яндекс: Безопасники популяризировали фаззинг, но теперь его активно используют и разработчики, и QA
Борис Рютин, руководитель группы безопасности Алисы и Автономного транспорта «Яндекс», а также автор блога «О Fuzzing-тестировании», рассказал…
Борис Рютин, руководитель группы безопасности Алисы и Автономного транспорта «Яндекс», а также автор блога «О Fuzzing-тестировании», рассказал…
❤6🔥4⚡1😱1🤡1
Думал подождать Нового года, но раз тут достигли красивой IT-цифры — первых 256 подписчиков (за что всем огромнейшее Спасибо!), то решил, что самое время. Да и есть те, кто нарядил ёлочку, украсил аватарки и логотипы проектов и прочее уже 1-го декабря.
Зайчик из AFL мне, конечно, импонирует, а уж сколько находок во время тестирования помог найти — и не счесть, но хотелось что-то своё. В общем, взял нафаззеную мешанину идей, а Аня из @onoividno воплотила в жизнь. Теперь у канала есть маскот Фазя со своим набором стикеров и emoji. Набросков ещё хватает, поэтому стикерсет будет пополняться, но идеи приветствуются. :)
P. S. Когда-нибудь расскажу историю появления этого персонажа, некоторые даже скажут — грустную... Вышло в некотором роде символично.
Зайчик из AFL мне, конечно, импонирует, а уж сколько находок во время тестирования помог найти — и не счесть, но хотелось что-то своё. В общем, взял нафаззеную мешанину идей, а Аня из @onoividno воплотила в жизнь. Теперь у канала есть маскот Фазя со своим набором стикеров и emoji. Набросков ещё хватает, поэтому стикерсет будет пополняться, но идеи приветствуются. :)
P. S. Когда-нибудь расскажу историю появления этого персонажа, некоторые даже скажут — грустную... Вышло в некотором роде символично.
🍾5❤4 3🔥2🤡2🎃1
С Наступающими! В уходящем году посты стали появляться конечно «чаще», но не так, как хотелось бы, а ведь в сфере фаззинг-тестирования происходит много интересного и полезного. Поэтому отличный повод дать обещание исправиться и писать чаще. К тому же черновики ждут! 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
1 9🍾1 1