Фильтровать CVE по затронутой ОС

Вопрос или проблема

Возможно ли фильтровать уязвимости CVE по затронутой платформе/ОС?

Некоторые источники предоставляют такую возможность, например, exploit-db, но основной источник информации о уязвимостях NVD, Национальная база данных уязвимостей, похоже, не имеет такой категории или фильтра ни для CVE, ни для CPE. Ожидалось ли это или я что-то упускаю?

Если это невозможно или ненадежно, как я могу узнать, затронут ли продукт уязвимостью на конкретной платформе? Должен ли я просто предположить, что все они затронуты?

Кратко говоря, технически да, это возможно, используя некоторые поля CPE. Но на практике это очень редко срабатывает.

Вы используете CPE для запросов в NVD (т.е. не для поиска по свободному тексту). Посмотрите здесь краткое введение в CPE:

https://en.wikipedia.org/wiki/Common_Platform_Enumeration#Scheme_Format

Мы видим, что доступны поля <sw_edition> и <target_sw>. Эти поля предназначены для вашего случая использования.

Что касается вашего примера с Acrobat Reader, эти CPE существуют в NVD и используют такие поля:

cpe:2.3:a:adobe:acrobat_reader:*:*:*:*:*:android:*:*
cpe:2.3:a:adobe:acrobat_reader:*:*:for_mac_os_x:*:*:*:*:*
cpe:2.3:a:adobe:acrobat_reader:11.0.5:-:*:*:*:windows:*:*
cpe:2.3:a:adobe:acrobat_reader:3.0:*:mac_os_x:*:*:*:*:*
cpe:2.3:a:adobe:acrobat_reader:4.0:*:for_mac_os_x:*:*:*:*:*
cpe:2.3:a:adobe:acrobat_reader:5.0.9:*:unix:*:*:*:*:*
cpe:2.3:a:adobe:acrobat_reader:8.1:*:windows:*:*:*:*:*

и т.д. Но есть две проблемы:

  1. Эти поля <sw_edition> и <target_sw> редко используются. Может быть, есть 12-15 случаев их использования для более чем 200 существующих CPE для Acrobat Reader.
  2. Не существует канонической формы для этих полей. В приведенном выше примере мы видим как “for_mac_os_x”, так и “mac_os_x”, в зависимости от настроения репортера или аналитика NVD.

Кратко говоря, CPE одновременно и переусложнены, и недостаточно используются. Что касается меня, я просто использую первое поле cpe:<cpe_version>::::, все остальное — более-менее хаос. Я также веду полный список из более чем 350,000 существующих CPE для быстрого поиска с помощью grep.

В NVD вы можете искать по CPE здесь:
https://nvd.nist.gov/products/cpe/search

Используя один из примеров CPE выше cpe:2.3:a:adobe:acrobat_reader:11.0.5:-:*:*:*:windows:*:*, вы перейдете по следующей ссылке:
https://nvd.nist.gov/products/cpe/search/results?namingFormat=2.3&keyword=cpe%3A2.3%3Aa%3Aadobe%3Aacrobat_reader%3A11.0.5%3A-%3A*%3A*%3A*%3Awindows%3A*%3A*

…что приведет вас к:
https://nvd.nist.gov/vuln/search/results?form_type=Advanced&results_type=overview&isCpeNameSearch=true&seach_type=all&query=cpe:2.3:a:adobe:acrobat_reader:11.0.5:-::::windows::*

А затем, удачи с этим.

Но, например, в полученном списке CVE эта уязвимость содержит информацию о платформе/ОС (прокрутите вниз, посмотрите на “Работает на/с”):
https://nvd.nist.gov/vuln/detail/CVE-2017-11307

Сопоставление CPE — это очень сложная тема. Для получения дополнительной информации, смотрите “Известные затронутые конфигурации программного обеспечения” здесь: https://nvd.nist.gov/vuln/vulnerability-detail-pages

Полные спецификации CPE — их несколько, это на самом деле стек — доступны здесь: https://csrc.nist.gov/projects/security-content-automation-protocol/specifications/cpe

Ответ или решение

К сожалению, фильтрация уязвимостей (CVE) по затронутым платформам или операционным системам (ОС) является сложной задачей. В Национальной базе уязвимостей (NVD) действительно нет четкой категории или фильтра для CVE или CPE, что может вызывать недоумение.

Тем не менее, технически это возможно с использованием полей CPE. CPE (Common Platform Enumeration) предоставляет информацию о программном обеспечении и его версиях, что позволяет проводить более точные запросы к базе. В CPE есть замечания для и , которые предназначены для вашей задачи:

cpe:2.3:a:adobe:acrobat_reader:*:*:*:*:*:android:*:*
cpe:2.3:a:adobe:acrobat_reader:*:*:for_mac_os_x:*:*:*:*:*
cpe:2.3:a:adobe:acrobat_reader:11.0.5:-:*:*:*:windows:*:*

Однако на практике есть несколько проблем:

  1. Редкое использование полей: Поля и редко заполняются, например, для Acrobat Reader существует только 12-15 таких записей среди более чем 200 CPE.

  2. Отсутствие канонической формы: Одна и та же ОС может быть упомянута по-разному, например, "for_mac_os_x" и "mac_os_x", что приводит к неразберихе в данных.

Таким образом, хотя CPE и предоставляют способ поиска уязвимостей, в действительности они являются как чрезмерно разработанными, так и недоиспользованными. Рекомендуется использовать только первую часть CPE: cpe:<cpe_version>::: и игнорировать всё, что следует дальше, так как это может быть слишком хаотично.

Вы можете выполнять поиск CPE в NVD здесь. Например, поиском по следующему CPE вы получите представление о CVE, связанных с ним:

cpe:2.3:a:adobe:acrobat_reader:11.0.5:-:*:*:*:windows:*:*

Это приведет вас к списку уязвимостей, где, находя CVE, вы можете просмотреть информацию о затронутых платформах и ОС. Одна из таких уязвимостей — CVE-2017-11307, где внизу указана информация о платформах.

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

Если вам нужно больше информации о сопоставлении CPE, можно ознакомиться с "Известными конфигурациями программного обеспечения" на странице уязвимостей NVD и полными спецификациями CPE по этой ссылке.

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

Капча загружается...