CVE-Manager: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 5: | Строка 5: | ||
cve-manager состоит из следующих модулей:<br> | cve-manager состоит из следующих модулей:<br> | ||
- <b>cve-manager.py</b> - диалоговый интерфейс для запуска всех остальных модулей, написан на Python;<br> | - <b>cve-manager.py</b> - диалоговый интерфейс для запуска всех остальных модулей, написан на Python;<br> | ||
- <b>cve-download.py</b> - осуществляет загрузку по https списков | - <b>cve-download.py</b> - осуществляет загрузку по https CVE списков и CPE словаря, написан на Python;<br> | ||
- <b>cve-import</b> - осуществляет внесение списка пакетов выбранных репозиториев | - <b>cve-import</b> - осуществляет внесение списка пакетов выбранных репозиториев alt-сервера, а также CVE списков и CPE словаря в базу данных (БД) MySQL, написан на C++;<br> | ||
- <b>cpe-map.py</b> - осуществляет установление соответствия названий исходных пакетов рассматриваемых репозиториев, расположенных на сервере | - <b>cpe-map.py</b> - осуществляет установление соответствия названий исходных пакетов рассматриваемых репозиториев, расположенных на alt-сервере, и product из CPE словаря, написан на Python;<br> | ||
- <b>cve-fixes.py</b> - извлекает 'Fixes' записи и URL из метаданных всех исходных пакетов рассматриваемых репозиториев, написан на Python, использует gb-x-parse-vulns-from-changelog;<br> | - <b>cve-fixes.py</b> - извлекает 'Fixes' записи и URL из метаданных всех исходных пакетов рассматриваемых репозиториев, написан на Python, использует gb-x-parse-vulns-from-changelog;<br> | ||
- <b>cve-issue.py</b> - осуществляет установление соответствия между данными, | - <b>cve-issue.py</b> - осуществляет установление соответствия между данными, внесёнными в БД с помощью модулей cve-import, cpe-map.py, cve-fixes.py, cve-issue.py, а именно - записи в БД вида (<CVE идентификатор>, <название пакета>, <наличие 'Fixes' записи>), написана на Python;<br> | ||
- <b>cve-monitor.py</b> - предназначен для посылки запросов в БД, например получение списка всех пакетов с имеющимися незакрытыми уязвимостями.<br> | |||
== Настройка == | == Настройка == | ||
Строка 16: | Строка 17: | ||
1) <i>database</i>, содержащей параметры соединения с базой данных MySQL;<br> | 1) <i>database</i>, содержащей параметры соединения с базой данных MySQL;<br> | ||
2) <i>branches</i>, содержащей метки о рассмотрении (значение 1) или не рассмотрении (значение 0) соответствующей ветви Sisyphus;<br> | 2) <i>branches</i>, содержащей метки о рассмотрении (значение 1) или не рассмотрении (значение 0) соответствующей ветви Sisyphus;<br> | ||
3) <i>paths</i>, в которой | 3) <i>paths</i>, в которой указывается путь к корневому каталогу alt-сервера, а также путь к каталогу, в который cve-download.py загружает входные данные и откуда cve-import их импортирует в БД.<br> | ||
== Использование == | == Использование == |
Версия от 17:55, 5 апреля 2018
cve-manager - консольная программа для отслеживания уязвимостей программного обеспечения, имеет модульную структуру, написана на Python и C++. Распространяется по лицензии GPLv3.0.
Структура программы
cve-manager состоит из следующих модулей:
- cve-manager.py - диалоговый интерфейс для запуска всех остальных модулей, написан на Python;
- cve-download.py - осуществляет загрузку по https CVE списков и CPE словаря, написан на Python;
- cve-import - осуществляет внесение списка пакетов выбранных репозиториев alt-сервера, а также CVE списков и CPE словаря в базу данных (БД) MySQL, написан на C++;
- cpe-map.py - осуществляет установление соответствия названий исходных пакетов рассматриваемых репозиториев, расположенных на alt-сервере, и product из CPE словаря, написан на Python;
- cve-fixes.py - извлекает 'Fixes' записи и URL из метаданных всех исходных пакетов рассматриваемых репозиториев, написан на Python, использует gb-x-parse-vulns-from-changelog;
- cve-issue.py - осуществляет установление соответствия между данными, внесёнными в БД с помощью модулей cve-import, cpe-map.py, cve-fixes.py, cve-issue.py, а именно - записи в БД вида (<CVE идентификатор>, <название пакета>, <наличие 'Fixes' записи>), написана на Python;
- cve-monitor.py - предназначен для посылки запросов в БД, например получение списка всех пакетов с имеющимися незакрытыми уязвимостями.
Настройка
Параметры cve-manager определяются файлом ini-формата /etc/cve-manager/cve-manager.conf
. Данный ini-файл состоит из следующих секций:
1) database, содержащей параметры соединения с базой данных MySQL;
2) branches, содержащей метки о рассмотрении (значение 1) или не рассмотрении (значение 0) соответствующей ветви Sisyphus;
3) paths, в которой указывается путь к корневому каталогу alt-сервера, а также путь к каталогу, в который cve-download.py загружает входные данные и откуда cve-import их импортирует в БД.
Использование
Пересоздание всех таблиц БД и импорт всех обозначенных в конфигурационном файле списков пакетов репозиториев и списков уязвимостей:
cve-manager prepare [-v]
Пересоздание структуры БД (без импорта списков):
cve-manager recreate
Импорт списка пакетов:
cve-manager import-packages <space_root_abs_path> [-v]
Импорт списка уязвимостей NVD:
cve-manager import-nvd <xml_file_abs_path>
Импорт списка уязвимостей Mitre:
cve-manager import-mitre <csv_file_abs_path>
ВЫвод списка всех импортированных пакетов:
cve-manager print-packages
Вывод списка импортированных пакетов определённой ветви Sisyphus:
cve-manager print-packages <branch_name>
Параметр -v означает подробный (verbose) вывод.