Open omikhaylov opened 1 year ago
Еще чуть про CPE. К сожалению регулярными выражениями их все не найти. И это особенно неприятная проблема.
Пример:
Нужно найти уязвимости frr (https://frrouting.org/).
CPE для frr: cpe:2.3:a:linuxfoundation:free_range_routing
и cpe:2.3:a:frrouting:frrouting
.
Первый CPE отсюда даже продвинутой регуляркой не найти.
https://github.com/mksmp/vulnerability_scanner/blob/0c27f5c88f52730b039f8f0fa053ecc8721a6419/nist_scanner.py#L33-L34 Фильтр не полон:
versionStartIncluding
,versionEndIncluding
(можно посмотреть здесь: https://csrc.nist.gov/schema/nvd/feed/1.1/nvd_cve_feed_json_1.1.schema) и не рассмотрен случай когда эти параметры не указаны. Этих параметров может не быть, тогда версию придется искать в CPE (она может быть в виде версии или в виде-
или*
);vulnerable
. Он может быть указан вFalse
. В таком случае уязвимость не вызвана этим компонентом как таковым. Пример: https://nvd.nist.gov/vuln/detail/CVE-2022-0500. Здесь уязвимость относится к некой прошивке, но это не значит что она относится и к харду (cpe:2.3:h:netapp:h300e:-:*:*:*:*:*:*:*
не является причиной).