Google выпустила инструмент OSS-Fuzz для постоянного fuzz-тестирования Open Source-проектов
1Иллюстрация с сайта GitHub
1 декабря компания Google представила OSS-Fuzz — новый инструмент, разработанный в рамках Core Infrastructure Initiative (CII) для постоянного тестирования базового свободного программного обеспечения по технике fuzzing.
«Недавние истории из мира ИТ-безопасности подтверждают, что ошибки вроде переполнения буфера или use-after-free [обращения к памяти после её освобождения] могут иметь серьёзные и далекоидущие последствия, когда происходят в критически важном Open Source-софте. Эти ошибки не только серьёзны, но и сложны в обнаружении путём аудита кода, даже для опытных разработчиков. И тогда приходит на помощь fuzz testing. Техника fuzzing, генерируя случайные входные данные для проверяемой программы, быстро и последовательно выявляет ошибки и помогает их устранять», — поясняют назначение OSS-Fuzz разработчики из Google.
На данном (первом) этапе существования OSS-Fuzz, имеющего статус бета-версии, для реализации основной техники используется библиотека libFuzzer, которую в Google также применяют для fuzz-тестирования различных компонентов веб-браузера Chrome. Ей помогают утилиты Sanitizers, вместе с которыми инструмент помогает выявлять: проблемы в безопасности (переполнения буфера, use-after-free, плохие приведения типа, переполнения integer), баги в безопасности (утечки памяти, out-of-memory, сбои в утверждениях assertions) и иногда даже бреши в логике. Официально поддерживается код на языках C и C++ с примечанием, что «другие языки, поддерживаемые в LLVM, тоже могут работать».
С помощью OSS-Fuzz, который выполняет около 4 триллионов тестов в неделю, уже было обнаружено 150 багов в популярных Open Source-проектах. Разработчики Google призывают сделать fuzzing «стандартной частью разработки Open Source-проектов» и говорят о желании работать с широким сообществом разработчиков и тестеров, чтобы обнаружить и исправить ошибки в критически важных свободных приложениях, библиотеках и API.
Для запуска OSS-Fuzz подготовлены сценарии его развёртывания в Docker-контейнерах, реализована интеграция с Jenkins CI. В исходниках проекта, опубликованных на GitHub, представлен код на shell, Python и C++. Лицензия — Apache License 2.0.
Среди Open Source-проектов, уже принятых в репозиторий OSS-Fuzz для проверки кода, числятся coreutils, util-linux, zlib и libarchive, libxml2, libyaml, BoringSSL и OpenSSL, SQLite3 и PostgreSQL, Tor, FreeType 2, FFmpeg и многие другие.
P.S. Прошлым летом организация The Linux Foundation сообщала, что The Fuzzing Project стал одним из трёх проектов, получивших финансовые средства в рамках Core Infrastructure Initiative (CII) для поддержки важных инфраструктурных Open Source-проектов.
Постоянная ссылка к новости: http://www.nixp.ru/news/13876.html. Дмитрий Шурупов по материалам Google Online Security Blog.
- Первые Open Source-проекты уже получили поддержку от Core Infrastructure Initiative 3 30 мая 2014 г.
- Три инфраструктурных Open Source-проекта получили 450 тысяч USD в рамках CII от Linux Foundation 1 23 июня 2015 г.
- Core Infrastructure Initiative от Linux Foundation стала главным спонсором OpenBSD Foundation 1 5 августа 2015 г.
- Wycheproof — Open Source-проект Google для проверки криптографических библиотек 21 декабря 2016 г.
Puppet Bolt, Tasks, Discovery, Pipelines… — крупнейшее обновление продуктов для сисадминов от Puppet
Стартовал проект Gitcoin, предлагающий выплаты в криптовалюте за разработку для Open Source-проектов
Red Hat представила Open Source-проект для Ansible Tower — AWX 2
Heroic Labs выпустила Open Source-сервер Nakama 1.0 как готовую платформу для игр в реальном времени
Издательство First Look Media выпустило свободные утилиты для безопасной работы с информацией 1
Компания Google открыла исходный код расширения для Chrome — End-to-End, обеспечивающего шифрование между узлами
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1