Google представила открытый проект статического анализатора Vanir для выявления неисправленных уязвимостей
Разработчики из Google представили открытый проект статического анализатора для выявления неисправленных уязвимостей под названием Vanir. Исходный код решения написан на и C++ и опубликован на GitHub под лицензией BSD 3-Clause.
Проект статического анализатора Vanir подходит для автоматического выявления не применённых к коду патчей, устраняющих уязвимости.
Решение Vanir использует базу сигнатур с информацией об известных уязвимостях и патчах для устранения этих уязвимостей. Подобная БД ведётся Google с июля 2020 года и охватывает проекты, связанные с платформой Android, включая ядро Linux. В настоящее время поддерживается проверка исходного кода на языках C, C++ и Java.
По данным OpenNET, проект Vanir состоит из двух частей - генератора сигнатур и детектора пропущенных патчей. Генератор формирует сигнатуру для идентификации отсутствия исправления на основе описания уязвимости в формате OSV и ссылки на патч или коммит, устраняющий уязвимость. В текущем виде поддерживается обработка коммитов в репозиториях googlesource.com и git.codelinaro.org, но поддержка других сервисов может легко быть добавлена через подключение обработчика для извлечения кода.
Детектор проекте Vanir выполняет разбор кода в указанном репозитории и определяет отсутствие в нём исправлений, описанных в предоставленных сигнатурах. На современном ПК с 16-ядерным CPU сканирование дерева исходных текстов платформы Android занимает 10-20 минут. На выходе формируется отчёт со списком потенциально неисправленных уязвимостей и ссылками на связанные с ними позиции в коде, CVE-идентификаторы и патчи.
Основные достоинства инструментария Vanir:
возможность выявления неисправленных уязвимостей в сторонних ответвлениях, модификациях и заимствованиях кода, напрямую не связанных с основным проектом. В контексте Android инструментарий может использоваться для проверки применения исправлений в вариантах платформы Android, развиваемых OEM-производителями устройств;
выполнение проверки лишь на основе анализа имеющегося кода, без привязки к метаданным, таким как номер версии, история коммитов и SBOM (Software Bill Of Materials);
поддержка автоматической генерации сигнатур, используя появляющуюся в публичных источниках информацию об уязвимостях и публикуемые сопровождающими патчи;
более высокая производительность проверки на основе статического анализа исходного кода по сравнению с инструментами для динамического анализа и проверки бинарных сборок;
самодостаточность - возможность развернуть инфраструктуру на своих системах без обращения к внешним сервисам;
наличие готовой актуальной базы сигнатур, сопровождаемой командой Google Android Security Team;
поддержка подключения к системам непрерывной интеграции и доставки (CI/CD). Возможность интеграции в другие проекты с использованием Vanir в форме библиотек на языке Python.
Написать комментарий