CVE-Manager: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 4: | Строка 4: | ||
cve-manager состоит из следующих модулей:<br> | cve-manager состоит из следующих модулей:<br> | ||
- <b>cve-manager | - <b>cve-manager</b> - диалоговый интерфейс для запуска всех остальных модулей, написан на Python;<br> | ||
- <b>cve-download | - <b>cve-download</b> - осуществляет загрузку по https CVE списков и CPE словаря, написан на Python;<br> | ||
- <b>cve-import</b> - осуществляет внесение списка пакетов выбранных репозиториев alt-сервера, а также CVE списков и CPE словаря в базу данных (БД) MySQL, написан на C++;<br> | - <b>cve-import</b> - осуществляет внесение списка пакетов выбранных репозиториев alt-сервера, а также CVE списков и CPE словаря в базу данных (БД) MySQL, написан на C++;<br> | ||
- <b>cpe-map | - <b>cpe-map</b> - осуществляет установление соответствия названий исходных пакетов рассматриваемых репозиториев, расположенных на alt-сервере, и product из CPE словаря, написан на Python;<br> | ||
- <b>cve-fixes | - <b>cve-fixes</b> - извлекает 'Fixes' записи и URL из метаданных всех исходных пакетов рассматриваемых репозиториев, написан на Python, использует <i>gb-x-parse-vulns-from-changelog</i>;<br> | ||
- <b>cve-issue | - <b>cve-issue</b> - осуществляет установление соответствия между данными, внесёнными в БД с помощью модулей <i>cve-import</i>, <i>cpe-map</i>, <i>cve-fixes</i>, а именно - записи в БД вида (<CVE идентификатор>, <название пакета>, <наличие 'Fixes' записи>), написана на Python;<br> | ||
- <b>cve-monitor | - <b>cve-monitor</b> - предназначен для посылки запросов в БД, например получение списка всех пакетов с имеющимися незакрытыми уязвимостями.<br> | ||
== Настройка == | == Настройка == | ||
Строка 17: | Строка 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>, в которой указывается путь к корневому каталогу alt-сервера, а также путь к каталогу, в который <i>cve-download | 3) <i>paths</i>, в которой указывается путь к корневому каталогу alt-сервера, а также путь к каталогу, в который <i>cve-download</i> загружает входные данные и откуда <i>cve-import</i> их импортирует в БД.<br> | ||
== Использование == | == Использование == | ||
Запуск cve-manager:<br> | Запуск cve-manager:<br> | ||
<code>cve-manager | <code>cve-manager [timer]</code> | ||
Необязательный параметр <i>timer</i> задействует таймер, который измеряет интервалы времени исполнения запускаемых модулей. | Необязательный параметр <i>timer</i> задействует таймер, который измеряет интервалы времени исполнения запускаемых модулей. | ||
cve-manager | cve-manager работает в диалоговом режиме, на каждом шаге выводится справочная информация о возможных действиях - на первом шаге следует выбрать нужный для использования в данный момент модуль, при выборе модуля выводится справочная информация данного модуля. При начале работы с нуля следует запускать модули в том порядке, в котором они перечислены в разделе "Структура программы". | ||
== Отладка == | == Отладка == |
Версия от 15:14, 21 мая 2018
cve-manager - консольная программа для отслеживания уязвимостей программного обеспечения, имеет модульную структуру, написана на Python и C++. Распространяется по лицензии GPLv3.0.
Структура программы
cve-manager состоит из следующих модулей:
- cve-manager - диалоговый интерфейс для запуска всех остальных модулей, написан на Python;
- cve-download - осуществляет загрузку по https CVE списков и CPE словаря, написан на Python;
- cve-import - осуществляет внесение списка пакетов выбранных репозиториев alt-сервера, а также CVE списков и CPE словаря в базу данных (БД) MySQL, написан на C++;
- cpe-map - осуществляет установление соответствия названий исходных пакетов рассматриваемых репозиториев, расположенных на alt-сервере, и product из CPE словаря, написан на Python;
- cve-fixes - извлекает 'Fixes' записи и URL из метаданных всех исходных пакетов рассматриваемых репозиториев, написан на Python, использует gb-x-parse-vulns-from-changelog;
- cve-issue - осуществляет установление соответствия между данными, внесёнными в БД с помощью модулей cve-import, cpe-map, cve-fixes, а именно - записи в БД вида (<CVE идентификатор>, <название пакета>, <наличие 'Fixes' записи>), написана на Python;
- cve-monitor - предназначен для посылки запросов в БД, например получение списка всех пакетов с имеющимися незакрытыми уязвимостями.
Настройка
Параметры cve-manager определяются файлом ini-формата /etc/cve-manager/cve-manager.conf
. Данный ini-файл состоит из следующих секций:
1) database, содержащей параметры соединения с базой данных MySQL;
2) branches, содержащей метки о рассмотрении (значение 1) или не рассмотрении (значение 0) соответствующей ветви Sisyphus;
3) paths, в которой указывается путь к корневому каталогу alt-сервера, а также путь к каталогу, в который cve-download загружает входные данные и откуда cve-import их импортирует в БД.
Использование
Запуск cve-manager:
cve-manager [timer]
Необязательный параметр timer задействует таймер, который измеряет интервалы времени исполнения запускаемых модулей.
cve-manager работает в диалоговом режиме, на каждом шаге выводится справочная информация о возможных действиях - на первом шаге следует выбрать нужный для использования в данный момент модуль, при выборе модуля выводится справочная информация данного модуля. При начале работы с нуля следует запускать модули в том порядке, в котором они перечислены в разделе "Структура программы".
Отладка
Для отладки cve-manager следует установить и настроить MySQL сервер:
1) Установить пакет MySQL-server:
apt-get install MySQL-server
2) Закомментировать строку skip-networking в файле настройки MySQL сервера /etc/my.cnf.d/server.cnf:
#skip-networking
3) Перезапустить MySQL сервер и запустить его консоль:
su -l -c 'service mysqld restart'
mysql -u root
4) Задать в MySQL пароль пользователя root:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root-passwd');
, где root-passwd - задаваемый пароль пользователя root
5) Добавить в MySQL пользователя, от имени которого будет осуществляться работа с БД:
grant all privileges on *.* to 'user'@'localhost' identified by 'user-passwd';
, где user - имя пользователя, user-passwd- пароль пользователя.