Предисловие
В последние годы.информационная безопасностьУязвимости встречаются часто и приносят огромные убытки частным лицам и компаниям. Чтобы помочь разработчикам и исследователям быстрее находить уязвимости, компания Google выложила в открытый доступ свойс помощью искусственного интеллектанечёткое испытаниеФреймворк. Фреймворк использует Large Language Model (LLM) для генерации нечетких тестовых примеров для реальных проектов на языках C и C++ и сравнивает их с помощью сервиса Google OSS-Fuzz, который уже давно является ведущим ресурсом для автоматического обнаружения уязвимостей в открытом ПО.
Фазз-тестирование с помощью искусственного интеллекта значительно повышает эффективность обнаружения уязвимостей
Для автоматизации некоторых аспектов ручного фазз-тестирования Google начал использовать LLM в августе 2023 года для "написания специфического для проекта кода, чтобы улучшить покрытие фазз-тестов и найти больше уязвимостей", что привело к увеличению покрытия кода на 30% для более чем 300 проектов OSS-Fuzz C/C++.
Google говорит: "К настоящему времени расширенное покрытие фазз-тестов, обеспечиваемое улучшениями, генерируемыми LLM, позволило OSS-Fuzz обнаружить две новые уязвимости в cJSON и libplist - двух широко используемых проектах, которые уже много лет подвергаются фазз-тестам".
Фреймворки с открытым исходным кодом предлагают широкий спектр приложений
Инструмент с открытым исходным кодом поддерживает Vertex AI code-bison, Vertex AI code-bison-32k, Gemini Pro, OpenAI GPT-3.5-turbo и OpenAI GPT-4. Кроме того, Google заявила, что инструмент использует последние данные из производственных сред для оценки сгенерированных нечетких тестов на основе четырех метрик цели, которые включают компилируемость, сбои во время выполнения, покрытие во время выполнения и покрытие строк во время выполнения, отличающиеся от существующих нечетких тестов, написанных вручную в OSS-Fuzz.
Google отмечает: "В целом, фреймворк успешно использовал LLM для генерации эффективных нечетких тестовых целей (дающих ненулевое увеличение покрытия) для 160 проектов на C/C++. Максимальное увеличение покрытия в строках составило 291 TP3T по сравнению с существующими целями, написанными вручную".
Фреймворк с открытым исходным кодом позволяет исследователям и разработчикам проверять валидность сгенерированных нечетких тестовых задач, используя собственные подсказки, и сравнивать результаты с проектом OSS-Fuzz C/C++.
ИИ позволяет не только обнаруживать уязвимости, но и устранять их
Помимо фаззинг-тестов для обнаружения уязвимостей, Google также изучает возможности использования LLM для исправления уязвимостей и предложила проект по созданию автоматизированного конвейера для генерации LLM и тестирования исправлений.
Google заявила: "Этот подход к исправлению, управляемый искусственным интеллектом, устраняет целевую уязвимость 15% и экономит инженерам значительное количество времени. Потенциал этой техники может быть использован в большинстве или во всех категориях процесса разработки программного обеспечения".
OSS-Fuzz, традиционный инструмент нечеткого тестирования.
Представляем OSS-Fuzz, еще один известный инструмент нечеткого тестирования, открытый Google.OSS-Fuzz - это конвейер непрерывной интеграции/непрерывной доставки (CI/CD), который автоматизирует интеграцию нечеткого тестирования в процесс разработки программных проектов с открытым исходным кодом. Он использует различные механизмы нечеткого тестирования и средства обнаружения ошибок памяти для поиска уязвимостей в системе безопасности и проблем со стабильностью.
По состоянию на август 2023 года OSS-Fuzz помог выявить и устранить более 10 000 уязвимостей и 36 000 ошибок в 1000 проектах.
Резюме и ссылки
Фреймворк Google для фаззинга с открытым исходным кодом и поддержкой искусственного интеллекта является важнейшей инновацией в области безопасности разработки программного обеспечения. OSS-Fuzz представляет собой последние достижения в области фаззинга и является мощным инструментом для повышения безопасности программного обеспечения с открытым исходным кодом Это не только повышает эффективность существующих методов фаззинга, но и ускоряет процессы обнаружения и устранения уязвимостей благодаря автоматически генерируемым целям фаззинга. Это не только повышает эффективность существующих методов фаззинга, но и ускоряет процессы обнаружения и устранения уязвимостей за счет автоматически генерируемых фазз-мишеней. Поскольку применение технологии искусственного интеллекта в процессе разработки программного обеспечения продолжает расширяться, у нас есть основания полагать, что с постоянным развитием технологии искусственного интеллекта нечеткое тестирование станет более интеллектуальным и эффективным, помогая создать более безопасное киберпространство.
Проект: https://github.com/google/oss-fuzz
Оригинальная статья написана batsom, при воспроизведении просьба указывать: https://cncso.com/ru/google-open-sources-ai-aided-fuzzing-framework-html.