Отслеживайте уязвимости с открытым исходным кодом с помощью Google OSV


Уязвимости с открытым исходным кодом, OSV, база данных — это новый проект с открытым исходным кодом от Google, выходящий за рамки текущего состояния отслеживания CVE.

Избегать внедрения уязвимостей в проект — не что иное, как наука. Большинство проектов используют сканирование SAST на завершающей стадии, чтобы найти и исправить их. Одним из замечательных инструментов, используемых таким образом, является Semgrep, который сочетает удобство grep с правильностью синтаксического и семантического поиска и может быть отнесен к категории чего-то среднего между grep и инструментом SAST. Чтобы узнать подробности, ознакомьтесь с моей подробной статьей Semgrep — More Than a Glorified Grep.

Конечно, проверка уязвимостей в системе безопасности должна быть не второстепенным делом, а процессом, встроенным в цикл разработки программного обеспечения. Признавая этот факт, Linux Foundation учредила Open Source Security Foundation (OpenSSF) с целью ознакомить нас с последними передовыми методами безопасности и раскрытия уязвимостей.

Затем OpenSSF запустил три совершенно новых курса по основам безопасной разработки программного обеспечения, предназначенных для разработчиков программного обеспечения, специалистов DevOps, инженеров программного обеспечения, разработчиков веб-приложений и других лиц, заинтересованных в изучении того, как разрабатывать безопасное программное обеспечение и как рассматривать безопасность как часть требований Это включает в себя различные принципы безопасного проектирования, которые помогут избежать плохих проектов и использовать хорошие, а также обсуждает, как обеспечить безопасность вашей цепочки поставок программного обеспечения.

Эти курсы сосредоточены на практических шагах, которые можно предпринять даже при ограниченных ресурсах. Обратите внимание на «ограниченные ресурсы», именно те скудные, с которыми приходится жить большинству проектов с открытым исходным кодом.

Но, несмотря на всю помощь, что, если и инструменты SAST, и передовые методы обучения все еще не могут ликвидировать разрыв, а конечный продукт действительно поставляется с непредвиденными уязвимостями? Отслеживание CVE в конце конвейера, но это не панацея, поскольку оно связано с собственным набором проблем; в основном для потребителей часто бывает трудно сопоставить запись уязвимости с версиями пакета, которые они используют, а также для Сопровождающим пакета требуется время, чтобы определить точный список уязвимых версий или зафиксировать во всех своих ветвях для последующих потребителей после исправления уязвимости в дополнение к процессу, необходимому для публикации.

Это находит отклик в большинстве проектов с открытым исходным кодом, которые не имеют достаточных ресурсов и перегружены, особенно те, которые имеют решающее значение для современной инфраструктуры. Альтернативное финансирование для предоставления таких ресурсов спонсировалось ЕС, которое я изучал в статье EU Bug Bounty — Безопасность программного обеспечения как гражданское право .

Поэтому для устранения этих недостатков Google представила OSV, чтобы:

«предоставить точные данные о том, где была обнаружена уязвимость и где она была исправлена».

OSV дополняет CVE, расширяя их точными метаданными уязвимостей, что упрощает выполнение запросов (с использованием версий пакета или фиксации). Кроме того, он описывает ошибки в соответствии с более понятной схемой уязвимостей.

Чтобы OSV представляла ценность, необходимо, чтобы сопровождающий пакета отправлял как коммиты, в которых были обнаружены ошибки, так и те, которые предоставляют исправления. Например, проверяя ошибку «Heap-use-after-free in sampled_data_sample» в ghostscript, кодифицированную в OSV-2021-237 и доступную по адресу https://osv.dev/vulnerability/OSV-2021-237, мы собираем следующие сведения : хеши коммитов, в которых была обнаружена ошибка, коммитов, в которых она была исправлена, и затронутых версий.

И вот новинка. Если эта информация недоступна, то:

OSV требует предоставить тестовый пример воспроизведения и шаги для создания сборки приложения, чтобы затем выполнить деление пополам, чтобы найти эти коммиты в автоматическом режиме. OSV берет на себя остальную часть анализа, чтобы определить затронутые диапазоны фиксации (с учетом выборки вишни) и версии / теги.

Таким образом, каждая уязвимость подвергается автоматическому разделению пополам и анализу воздействия для точного определения затронутых фиксаций и диапазонов версий.

Идя дальше, OSV также предоставляет API для поиска уязвимостей, который позволяет пользователям запрашивать, затронуты ли их версии.

curl -X POST -d \ ‘{«commit»: «6879efc2c1596d11a6a6ad296f80063b558d5e0f»}’ \ «https://api.osv.dev/v1/query?key=$API_KEY»

В настоящее время в базе данных содержится информация о 380 критически важных проектах с открытым исходным кодом, уязвимости которых были обнаружены с помощью инструмента нечеткого тестирования Google, OSS-Fuzz.

Полный список поддерживаемых проектов можно найти здесь: https: //github.com/google/oss-fuzz/tree/master/projects, но среди отслеживаемых выделяются следующие:

libressl

libpcap

Кубернеты

imagemagick

gitea

Fire Fox

ffmpeg

эмигрант

джанго

Основной веб-сайт OSV и документация доступны по адресу https://osv.dev.


Добавить комментарий